this string has no description
eigenstate.md edited
63 lines 3.6 kB view raw view code

Eigenstate#

Eigenstate is an orchestrator for amplifying correctness, quality, and intent.

What is Eigenstate?#

Eigenstate is an attempt at extracting intent from humans' brains as rigorously as possible in a way from which software can be effectively built. The goal is to explore whether agents can produce consistently higher quality output when forced into constant adversarial refinement. It is not an IDE, workflow runner for CI, or a replacement for humans. Fundamentally, I believe in a core axiom:

Agents cannot be implicitly trusted to do the best thing. However, we can make them fight to maximize software quality before it ever hits a human.

By prioritizing and preserving quality at every step along the way, we should be able to build better software as well as avoiding wasting humans' time reviewing slop.

Architecture and technology#

Eigenstate is aspirational software, and is yet incomplete. It should be designed as rigorously as it aspires to design other software:

  • Rust: Because I like it, but also because it bakes good software. It's very easy to systematically encode invariants about your system in Rust's type system.
  • Jujutsu: The more consistent mental model compared to Git means we can more effectively spawn ephemeral environments for agents to work in.
  • Disjoint eigentree for task state: Keeping task state in the same tree as your source code feels wrong to me; my hope is that keeping task state in a separate tree based on root() will make things conceptually simpler to work with. This includes all task state, wiki pages, etc.
  • Ephemeral agent workspaces: By creating temporary workspaces for agents, each agent can get its own sandbox to play in. We can then populate these workspaces with a megamerge between the source tree and the Eigentree to give them a full picture of the project.
  • Issue tracker: Agents will formalize your tasks and give them priorities, relationships (parent/child, related, and blocking), and work logs. Think Beads, but it works consistently.
  • Wiki: Agents will document their findings in an atomic wiki that allows future sessions to benefit from the knowledge of the past. This is intended for domain knowledge and quirks of your system, not a detailed log of work.
  • The Inquisitor: Adversarial task refinement. Work with the Inquisitor to make sure tasks are complete, planned, and most importantly possible. Both you and the Inquisitor must sign off on work you bring to the table; if agents report work to be done, the Inquisitor will investigate the work and determine whether human input is needed to continue.
  • Orchestration: The real meat and potatoes. Tasks in the issue tracker get picked up and worked on in dependency order. Disjoint tasks can be worked on in parallel; all tasks require rigorous testing to be able to be completed.
  • Wave function collapse: For more complicated work items, have multiple agents implementing at the same time. Have other agents review those submissions, deduplicate close matches, and present the results to humans for review.
  • Diff annotations: Provide an easy way to annotate diffs for agents to take action on. Right now the best method of doing this is just to kind of talk at the agent and hope it addresses everything; by providing a formal syntax for annotating diffs it should provide a better (or at least more traditional) review experience for humans while making it easier for models to make sure they don't miss feedback. Minimizing review friction is vital for Eigenstate's feedback loop.