Comment by _superposition_
5 hours ago
I know it's a type of blasphemy here, but deterministic workflows such as what you describe is where langgraph really shines imo.
5 hours ago
I know it's a type of blasphemy here, but deterministic workflows such as what you describe is where langgraph really shines imo.
It is not blasphemy if langgraph is trying to do that. As I understand langgraph manages orchestration in custom built agents. I usually stay away from systems which already make it seem as if building agents is a ritual.
What I am saying is the opposite - use Claude Code or whatever else - generate actual "programs". Basically scripts. We have tons of ways for "programs" to interact with each other. Then have clearly defined edge case handlers - think "try/catch". How far do you want to go down the rabbit hole in the "catch"? Do you want to re-write a new version of the "program" itself? I do not know, but this type of a system is what Unix already is, with the addition of programs themselves reaching out to LLMs in well defined edge case handlers.
You can drive agents via ACP these days, which I think is the layer you would want for what you’re talking about.
The API is basically what you see as a user of Claude Code or Pi or whatever. You can make new sessions, send messages to sessions, configure which MCPs get started, etc.
I’ve been poking at something similar to what you’re talking about via that route. My client prompts the agent to do a thing, and then afterwards launches deterministic things to check it which can either re-prompt the original session or start a new session.
Eg it automatically runs the tests afterwards, and will send a new prompt in the original chat to fix them if they fail. I also briefly poked at a security analyzer that gets changed files via git and makes a new session to check whether there are security issues and propose a fix that then gets sent to the original session.
If you want a circular loop where the LLM can adjust its own workflow while keeping it deterministic, you can let the agent modify the ACP client that drives it.
I think it all comes down to tight, context efficient, deterministic feedback loops. Pre commit hooks work well for this type of thing. Ideally I think a set of those hooks should run on every file edit, however I haven't gotten around to testing something like that yet.
I get what your saying, however we don't need to be stuck with the Claude code harness. You may find this interesting.
https://www.langchain.com/blog/tuning-the-harness-not-the-mo...