# 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 {#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 {#complexity-stays-above-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](/docs/agents/patterns.md) 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.
