Agents
An agent is data: instructions, the tools it may call, the guardrails on its answer, what its model must support, and a budget. Each run of an agent is one turn: the model reads the instructions and the user's message, calls tools until it has an answer, and the answer is checked and stored. A turn is a run like any other, with a journal of every model call and tool call.
- Write an agent: the agent file, its instructions, tools and guardrails.
- Give an agent its input: the user message, parameters for its instructions, and the input of a flow step.
- Give an agent a typed answer: an answer your code can read as fields, checked against a schema.
- Choose the model an agent uses: capabilities,
preferences, and the
dev-echofallback. - Hold a conversation: continue a conversation turn by turn, read its history, close it.
- Give an agent memory: facts it reads before each turn, what it remembers, and its earlier conversations.
- Erase a person's data: clear an end user's words on request, and keep the erasure through a backup restore.
- Set an agent's budget: steps, cost and time per turn, and what happens when a turn runs out.
The examples use a pack named acme (from the sample template) with one more
tool, acme.lookup-order, shown on Write an agent. Where a
real model matters, the output is from Claude Sonnet 5.5, or on older
captures Claude Haiku 4.5 (outputs on newer models differ in wording, not
shape), registered with
kindgi providers register --preset=anthropic (see
Connect Anthropic). Without a model, dev-echo
answers.