Each graph node is assigned one cognition level. The levels are roles within one agent, not separate agents, and they are independent of which execution mode provides them.
Use the lowest sufficient cognitive level
Start at the bottom. Climb a rung only when the level below cannot answer. Each rung up costs more, is harder to check, and needs more verification before its output counts.Architecture contract
Choosing a level
Pick the cheapest correct form of inference before picking any component:- Deterministic code, when the answer can be computed (S0).
- Candidate scoring, when every legal answer is known in advance (S1).
- Structured decoding, when the shape is known but the values are not (S2 with a grammar).
- Free generation, when none of the above fit (S2 or S3).
Degradation
When a component is missing or not good enough, the chain is: alternate local component, then a stronger one, then deterministic reconstruction, then a human or an explicit failure. It never fails open. Why levels: most agent steps do not need generation. Classifying each step lets the system answer “which file”, “is this safe”, “are we done” with a scored choice or a computation, which is cheaper, faster and checkable, and reserve generation for the steps that need it.Current implementation
- S0: deterministic policy and tool execution run today through the gate and the permission floor.
- S1: the decision runtime is on main and runs in shadow mode by default. It records its answers and abstains. S1 does not act on anything until a primitive passes its calibration gate, and no primitive has yet.
- S2: generation runs today through the agent runtime. The rule that generated output is a candidate is enforced by the verifier for agency-origin work, and by the graph validator where the validator is used.
- S3: a human route goes through the attention gate today. The router that selects escalation to a stronger component is on main as library code, but nothing calls it on the normal path yet.