From primitives to production
See how conversational, tool-using, human-supervised, multi-Agent, long-horizon, and data-intensive Agents compose from seven primitives.
The seven primitives are not seven product templates. They form a language from which Agent architectures are derived. A pattern belongs in a library when it can be expressed as composition; it belongs in the runtime only when it introduces a new durability or authority invariant.
Common compositions
| Agent architecture | Primitive composition |
|---|---|
| Conversational assistant | ledger → turn → commit |
| Tool-using ReAct Agent | repeat ledger → turn, execute governed Tool effects, then commit |
| Human-in-the-loop workflow | turn → await → commit |
| Delegating supervisor | turn → spawn → derived join → commit |
| Research Agent | ledger → turn → spawn → turn → commit |
| Planner and executor | turn → spawn or map → reduce → turn → commit |
| Data-intensive Agent | map → reduce → turn → commit |
| Long-horizon Agent | advance durable state while repeatedly composing the same seven words |
Memory does not add a primitive. An Agent invokes a governed Memory Resource, supplies retrieved records as untrusted context to turn, and uses commit for workflow truth. An external API does not add a primitive either: it is a Resource operation invoked directly by deterministic Agent code or through a Tool offered during turn.
Complexity stays above the runtime
@constal/std derives all, select, race, transcript chunking, and durable ReAct from Handles, ledgers, and turns. Application libraries can add domain planners, evaluators, routing strategies, or review loops in the same way. Their implementation may evolve without changing the durable meaning of the underlying program.
This keeps sophisticated behavior inspectable. Every judgment maps to a turn, every published truth to a fact, every wait or child to a durable Handle, every large computation to a Stage, and every world effect to an exact Resource invocation with Policy and recovery evidence.
Build the smallest useful composition first. Start with ledger → turn → commit, add await only when time crosses the invocation, add spawn only for independently durable work, and use map and reduce when cardinality no longer belongs in bounded child joins.
Use the Agent patterns catalog to move from this primitive vocabulary to implementation recipes for dialogue, research, knowledge, data, evaluation, action, workflow, software, operations, multi-Agent, and long-horizon systems.