Skip to main content

Crate scema_agent

Crate scema_agent 

Source
Expand description

§scema-agent — the loop

  observe ─▶ hypothesise ─▶ simulate ─▶ score ─▶ decide ─▶ record ─▶ remember
     ▲                                                                  │
     └──────────────────────────────────────────────────────────────────┘

Every stage is a trait with at least one real implementation, and the whole pass is deterministic: the same world and goal produce the same DecisionRecord id. That is not an aesthetic property — it is what makes the record verifiable by somebody who was not there.

§One loop, four kinds of world

Agent::observe resolves a locator against an ordered registry. RepoObserver walks a source tree in this process; ImportObserver reads a WorldState that something else produced — the browser extension, scematica_mesh::omni, alchem_link.omni. Nothing above perception can tell which it was, which is what “domain-agnostic” has to mean in order to be worth claiming. The one thing that is distinguishable is attribution: an imported world’s observer field is stamped imported:, so a record can never claim a world that arrived as a file was observed here.

§What the loop does not do

It does not execute. Cycle ends at a decision and a record; nothing in this workspace writes to the environment it observed. The scema_world::Action values in a chosen hypothesis are a declaration of intent that has been risk-classified and constraint-checked, and turning one into a side effect is a separate crate with a separate approval model — the one alchem-link already worked out, where risk class is declared per tool and no terminal means deny.

Saying that plainly matters more than shipping it. An agent runtime that quietly gained a write path would invalidate every claim the rest of these crates make about being safe to point at a live system.

§Memory is written on every pass, including the abstentions

The rejected branches are the interesting ones. Each becomes a scema_memory::MemoryBody::Counterfactual holding what was projected for it and why it lost — and, per that crate’s rule, it stays unresolved forever unless somebody actually runs it. An abstention is recorded as an episode with scema_memory::Outcome::Unobserved, because “the agent declined” is a fact about the agent and not an outcome in the world.

Modules§

hypothesize
Hypothesizer: where competing futures come from.

Structs§

Agent
The orchestrator.
Cycle
One complete pass.

Constants§

RUNTIME
Runtime identifier stamped into every record.