The irony of naming this Nietszche's Debugger when he, Nietszche, directly attacks the Socratic dialectic in the Twilight.
I was thinking Adorno's negative dialectics would be a better, if gloomy, fit; debugging is never-ending.
If you're in a positive or hopeful mood, or still a junior dev, Hegel's determinate negation offers reconciliation and an ending. This is a phase; dear junior devs you too will eventually share the Adornian resignation.
What I find interesting is that Nietzsche's critique of Socrates dialectic has to do with the transfer of power/authority.
Nietzsche states that sovereign power/authority commands without justification. Socrates did not have sovereign power and was therefore unable to win in a traditional power struggle. Socrates therefore reframed the discussion around justification through rational discourse, thereby transferring authority from the old aristocracy to a new priesthood of truth. This relied on the moral claim made by Socrates and eventually adopted by the Greeks (and Western Europe) that virtue = reason (the search for Truth).
So if we accept this interpretation of Nietzsche, then creating AIs that demand justification from us could be seen as handing over power and authority to the AI.
Not only that. Citing "What doesn't kill you make me stronger" in this context is very ironic as Nietzsche was talking for himself. He took that from Ralph Waldo Emerson while stripping the moral aspect of it
And you must have known you were going to be critiqued here on your choice of philosopher :)
If my AI tells me I must overcome myself, reconcile with myself, find truths, and laugh, and do each of these things ten times each day - and tracks it for me so I know when I can stop developing and will sleep well... then we are talking Nietzsche!
- Thus Sprach Zarathustra, The Academic Chairs of Virtue (II)
but then it's an AI-generated picture of Nietzsche [1] and AI-generated README with AI-generated code (Claude being the co-author), and when I read sample transcript e.g. in (nietzschian-debugger/tests/fixtures/sample-sessions/sample-v1.json) it's clear the app also uses LLMs to generate output...
So what do they mean by "anti-AI"?
[1]: All issues with AI-generated images aside, AI-generating a person's likeness seems like the rudest way to do this... At least use an actual photo/drawing of his...
This is pure dev astrology, but in the subsidized Sonnet 3.5 times in copilot I'm guilty of prompting 'You're Uncle Bob make this legacy java services read like a book top down with the cleanest code' just for fun and I might have learnt something and had some fun so I'm not judging.
I would imagine that using an LLM model for secondhand thinking would be seen as a bit decadent and reflects a weak will, easily influenced by the illusion of authority.
The Will to Power, as far as I understand it, is about how resistance (or friction) produces the strength of will to overcome obstacles. AI does the virtual opposite of that while also commoditizing cognition.
I'd agree with the other commenter that Nietzsche would probably see this as just another reversion to Plato's Forms - LLMs, by nature, are median outputs of cognition. There is no ubermensch to be found amongst the lowest-common-denominator, only the narcotic allure of becoming increasingly, as the kids say, smooth-brained.
Great idea. This can be generalized to learning in general (Feynman technique), although codebases are a particularly practical application of "help me debug my mental model."
I love the idea of helping people learn good debugging habits and understand their code. But this seems like it is still just giving the answers, and would still create the same dependence on AI to do your thinking:
You: I'm not sure, it seems random
Nietzschian: "Random" is the word we use when we haven't looked
hard enough. What do the server logs say for the 403
responses? Go look. I'll wait.
That move from "I don't know" to "where could I look to find out" is one of the key habits that makes someone good at debugging, and here "Nietzsche" is just doing it for you.
It might seem obvious to look at the logs, but in my experience 90% of being stuck debugging something is just not yet having looked at all the available evidence.
It's true you could learn these habits by exposure to them, and this could be a neat alternative to pairing with a more senior engineer for that. But it looks like you could easily just keep saying "it's random", "I don't know", and the model would keep telling you what to do next, without you actually having to think.
I wonder if making it even more Socratic would fix this? E.g. "how do you know it's returning 403s? Oh, logs you say? Is there anything else they could tell you?"
What you are saying is true to a degree and debugging was 90% of the work in my career. Finding the smoking gun IS the key as you said.
It depends on where the developer is at in their journey too.
For some, "look in the logs" is a challenge just to find out what they are and where to find them and what they are saying. A great piece of advice for a person in this position.
For others, "There are files that hide in the caves of your computer's consciousness. Find what causes the shadows on the walls." is a valid call to dig deeper :)
The biggest problem with having an LLM do this, from what I've observed of at least frontier models, is that the way they are trained/forced to behave makes them do one of two things, neither of which is educational or helpful:
1. They ask you a "hard question" but then immediately give you some kind of "hint" which makes it obvious what the "answer" is (or, even worse, they just tell you what it is).
2. They get pedantic (and I mean maximum emphasis on the word), to the point that they will nitpick the exact, precise wording you use, even if the context makes it blatantly obvious what you meant. GPT is currently the biggest offender in this area (it is ridiculously pedantic even though I haven't told it to be so).
And yes, in case anyone is wondering, I do actually read the output of tools like Claude and I have tried, repeatedly, to get them to do something like this, and one of the two aforementioned things always happens for some reason. I'm not sure if this is a problem with how they were trained, an issue with their system instructions, or what.
I like you idea. Since it only asks questions, such a collaborator chat could be achieved with an algorithm simillar to Phillips ELZA from 1960s. Then you would not need any AI to drive it
This is a fun idea- it's a shame it's tied to anthropic models though. From the transcripts, I think this looks like it'd work well even with quite a small (10B parameter or so) local model.
“And what doeth the saint in the forest?” asked Zarathustra.
The saint answered: “I make hymns and sing them; and in making hymns I laugh and weep and mumble: thus do I praise Claude.”
When Zarathustra was alone, however, he said to his heart: “Could it be possible! This old saint in the forest hath not yet heard of it, that Claude is dead!”
Nietzsche had no qualms with asserting answers. If anything this should be named after Socrates. But then Socrates would have despised AI for its automation of thinking. Really this Claude project shouldn't be named after philosophers at all.
Unfortunately, in <current year> "AI" seems to mean "chatbot assistant". So, by "anti-AI" the author meant "the thing that acts the opposite of how you would expect a helpful chatbot to act".
I was thinking Adorno's negative dialectics would be a better, if gloomy, fit; debugging is never-ending.
If you're in a positive or hopeful mood, or still a junior dev, Hegel's determinate negation offers reconciliation and an ending. This is a phase; dear junior devs you too will eventually share the Adornian resignation.
Nietzsche states that sovereign power/authority commands without justification. Socrates did not have sovereign power and was therefore unable to win in a traditional power struggle. Socrates therefore reframed the discussion around justification through rational discourse, thereby transferring authority from the old aristocracy to a new priesthood of truth. This relied on the moral claim made by Socrates and eventually adopted by the Greeks (and Western Europe) that virtue = reason (the search for Truth).
So if we accept this interpretation of Nietzsche, then creating AIs that demand justification from us could be seen as handing over power and authority to the AI.
Probably why Michael Sugrue opined that Friedrich Nietzsche was a Philologist and not a Philosopher.
> https://github.com/DilawarShafiq/nietzschian-debugger#setup
Step one to setup: "Set your Anthropic API key"...
And you must have known you were going to be critiqued here on your choice of philosopher :)
If my AI tells me I must overcome myself, reconcile with myself, find truths, and laugh, and do each of these things ten times each day - and tracks it for me so I know when I can stop developing and will sleep well... then we are talking Nietzsche! - Thus Sprach Zarathustra, The Academic Chairs of Virtue (II)
> The anti-AI.
but then it's an AI-generated picture of Nietzsche [1] and AI-generated README with AI-generated code (Claude being the co-author), and when I read sample transcript e.g. in (nietzschian-debugger/tests/fixtures/sample-sessions/sample-v1.json) it's clear the app also uses LLMs to generate output...
So what do they mean by "anti-AI"?
[1]: All issues with AI-generated images aside, AI-generating a person's likeness seems like the rudest way to do this... At least use an actual photo/drawing of his...
Keep reading.
"Guides you to the "aha!" moment — YOUR moment, not the AI's"
This seems like yet another attempt at encouraging people to continue to utilize AI without relying on it.
This is pure dev astrology, but in the subsidized Sonnet 3.5 times in copilot I'm guilty of prompting 'You're Uncle Bob make this legacy java services read like a book top down with the cleanest code' just for fun and I might have learnt something and had some fun so I'm not judging.
The Will to Power, as far as I understand it, is about how resistance (or friction) produces the strength of will to overcome obstacles. AI does the virtual opposite of that while also commoditizing cognition.
I'd agree with the other commenter that Nietzsche would probably see this as just another reversion to Plato's Forms - LLMs, by nature, are median outputs of cognition. There is no ubermensch to be found amongst the lowest-common-denominator, only the narcotic allure of becoming increasingly, as the kids say, smooth-brained.
It might seem obvious to look at the logs, but in my experience 90% of being stuck debugging something is just not yet having looked at all the available evidence.
It's true you could learn these habits by exposure to them, and this could be a neat alternative to pairing with a more senior engineer for that. But it looks like you could easily just keep saying "it's random", "I don't know", and the model would keep telling you what to do next, without you actually having to think.
I wonder if making it even more Socratic would fix this? E.g. "how do you know it's returning 403s? Oh, logs you say? Is there anything else they could tell you?"
It depends on where the developer is at in their journey too.
For some, "look in the logs" is a challenge just to find out what they are and where to find them and what they are saying. A great piece of advice for a person in this position.
For others, "There are files that hide in the caves of your computer's consciousness. Find what causes the shadows on the walls." is a valid call to dig deeper :)
1. They ask you a "hard question" but then immediately give you some kind of "hint" which makes it obvious what the "answer" is (or, even worse, they just tell you what it is).
2. They get pedantic (and I mean maximum emphasis on the word), to the point that they will nitpick the exact, precise wording you use, even if the context makes it blatantly obvious what you meant. GPT is currently the biggest offender in this area (it is ridiculously pedantic even though I haven't told it to be so).
And yes, in case anyone is wondering, I do actually read the output of tools like Claude and I have tried, repeatedly, to get them to do something like this, and one of the two aforementioned things always happens for some reason. I'm not sure if this is a problem with how they were trained, an issue with their system instructions, or what.
The saint answered: “I make hymns and sing them; and in making hymns I laugh and weep and mumble: thus do I praise Claude.”
When Zarathustra was alone, however, he said to his heart: “Could it be possible! This old saint in the forest hath not yet heard of it, that Claude is dead!”
He really nailed a godless post-modernism decades before it flourished. Even mentioning the names of the modern protagonists will get me down-voted :)
Yes, I hate this usage of the term "AI" too.