this string has no description
eigenstate.md edited
63 lines 3.6 kB view raw view rendered
1# Eigenstate 2 3**Eigenstate** is an orchestrator for amplifying correctness, quality, and 4intent. 5 6## What is Eigenstate? 7 8Eigenstate is an attempt at extracting intent from humans' brains as rigorously 9as possible in a way from which software can be effectively built. The goal is 10to explore whether agents can produce consistently higher quality output when 11forced into constant adversarial refinement. It is _not_ an IDE, workflow runner 12for CI, or a replacement for humans. Fundamentally, I believe in a core axiom: 13 14**Agents cannot be implicitly trusted to do the best thing. However, we can make 15them fight to maximize software quality before it ever hits a human.** 16 17By prioritizing and preserving quality at every step along the way, we should be 18able to build better software as well as avoiding wasting humans' time reviewing 19slop. 20 21## Architecture and technology 22 23Eigenstate is aspirational software, and is yet incomplete. It should be 24designed as rigorously as it aspires to design other software: 25 26- **Rust**: Because I like it, but also because it bakes good software. It's 27 very easy to systematically encode invariants about your system in Rust's 28 type system. 29- **Jujutsu**: The more consistent mental model compared to Git means we can 30 more effectively spawn ephemeral environments for agents to work in. 31- **Disjoint eigentree for task state**: Keeping task state in the same tree as 32 your source code feels wrong to me; my hope is that keeping task state in a 33 separate tree based on `root()` will make things conceptually simpler to work 34 with. This includes all task state, wiki pages, etc. 35- **Ephemeral agent workspaces**: By creating temporary workspaces for agents, 36 each agent can get its own sandbox to play in. We can then populate these 37 workspaces with a megamerge between the source tree and the Eigentree to give 38 them a full picture of the project. 39- **Issue tracker**: Agents will formalize your tasks and give them priorities, 40 relationships (parent/child, related, and blocking), and work logs. Think 41 Beads, but it works consistently. 42- **Wiki**: Agents will document their findings in an atomic wiki that allows 43 future sessions to benefit from the knowledge of the past. This is intended 44 for domain knowledge and quirks of your system, not a detailed log of work. 45- **The Inquisitor**: Adversarial task refinement. Work with the Inquisitor to 46 make sure tasks are complete, planned, and most importantly possible. Both you 47 and the Inquisitor must sign off on work you bring to the table; if agents 48 report work to be done, the Inquisitor will investigate the work and determine 49 whether human input is needed to continue. 50- **Orchestration**: The real meat and potatoes. Tasks in the issue tracker get 51 picked up and worked on in dependency order. Disjoint tasks can be worked on 52 in parallel; all tasks require rigorous testing to be able to be completed. 53- **Wave function collapse**: For more complicated work items, have multiple 54 agents implementing at the same time. Have other agents review those 55 submissions, deduplicate close matches, and present the results to humans for 56 review. 57- **Diff annotations**: Provide an easy way to annotate diffs for agents to take 58 action on. Right now the best method of doing this is just to kind of talk at 59 the agent and hope it addresses everything; by providing a formal syntax for 60 annotating diffs it should provide a better (or at least more traditional) 61 review experience for humans while making it easier for models to make sure 62 they don't miss feedback. Minimizing review friction is vital for Eigenstate's 63 feedback loop.