A turn, end to end
For a call:1. Append the goal
The goal links to the previous frontier. On the first turn, the runtime also adds the system contract.2. Compile the working view
The compiler starts with required state:- latest system and goal;
- every frontier head;
- current resource heads;
- ten recent non-superseded nodes;
- up to two levels of operational parents.
3. Call the model
The provider gets:input.prompt: the compiled view;input.system: the action protocol and tool list;- an abort signal;
- adapter parameters.
4. Record the action
Before the runtime acts, it appends aninference node. Its parents are exactly the IDs the compiler chose.
5. Execute or retry
For a tool:- validate the tool name and schema;
- record
tool_call; - run the tool;
- record
tool_result; - extract resource evidence and recognized verification evidence from the result;
- compile the next view.
node --check, or explicit app_control check,
restart, or smoke action also appends a dedicated verification node linked to
its tool_result. Domain-specific tools remain your policy boundary.
Invalid output becomes protocol_error and the loop continues. Failures stay as evidence for the next call.
6. Commit
A successful final appendsanswer, produces AgentRunResult, and replaces the agent’s committed state.
A failed or aborted run throws AgentRunError. Its diagnostic state, graph, trace, and metrics stay on the error, but the agent keeps its last good state.
Commit rule
Successful runs advance state. Failed and aborted runs do not.
The knobs
Next: Projection.