A Turing machine simulating a Turing machine simulating a...
UTM simulating itself where L3 won't execute its first step until the year 2070.
An LLM-powered universal Turing machine
Disk-based state with git history lets you audit and replay agent runs.
Multi-agent systems researchers, AI engineers experimenting with agent architectures
LangGraph · AutoGen · LangChain
The basic idea: use the LLM for the step function of a Turing machine. State and instructions are MD files (STATE.md and INSTRUCTIONS.md, respectively). They represent the "modifiable tape" of the Turing machine. Each cycle, the LLM read the state and finds the corresponding instruction to execute. Instructions (and conditions) are written as free-text and, together with state, can be written by the LLM itself during execution.
The scope of each cycle is controlled - each LLM invocation only receives STATE and INSTRUCTIONS. On top of it, a call-stack mechanism provides hierarchical invocation of subroutines with argument passing and return values. This can be used to implement freely multi-agents patterns and also meta-frameworks.
To test its "universality", I implemented 14 patterns from the MAS literature, including Tree of Thoughts, LATS, Meta got, ADAS. They share common operatore when possible. is part is still very much a WIP and may be a bit rough around the edges, so feel free to peek and suggest improvements - but I can confirm it's easy to implement and see a new pattern run in no time; all it takes is some prompting to build the INTERPRETER.md.
There's also a visualizer that renders the cycles and the subroutines as a graph or each cycle as a log of the machine's state.
Let me know what you think, especially if you're working on agents or MAS research.
UTM simulating itself where L3 won't execute its first step until the year 2070.
Two-commit spec repo with no working implementation or demo.
Formal verification for LLM workflows—CTL model checking, Z3 proofs, zero hallucination math.
Bubble sort on a Turing Machine with 31 states; educational but purely academic novelty.
Subagent loops with strict diff parsing beat context stuffing, but llama.cpp needs a specific PR branch.
Machine-parseable traces for LLM agents when pdb and breakpoint() are useless.