Skip to main content
Unknown keys are a load error. For completion in your editor, start the file with # yaml-language-server: $schema=https://raw.githubusercontent.com/tylerdavis/graph/main/docs/schemas/agent.schema.json.

Fields

integer
The file version the document is written in. Omitted means 1; files graph writes always carry it.
string
required
Starts with a lowercase letter; lowercase letters, digits and _ only. Other agents and plan steps call it as agent__<name>.
string
required
What the agent is for, written for the people and agents choosing it.
string
required
The model role the agent runs on, standard (chat) or custom.
string[]
required
Catalog tools the agent may call, as exact names or * globs such as linear__*. [] means none and ["*"] means the whole catalog. Control step names and generated agent__ and transfer_to_ names aren’t allowed.
string[]
Agents this one can run as a subagent, each in a fresh context, called as agent__<name>. Listing the agent’s own name lets it run a fresh copy of itself. Nesting is capped at 3.
string[]
Agents this one can hand the conversation to, called as transfer_to_<name>. An agent can’t hand off to itself, and an agent handed the conversation gets transfer_back without listing it.
object
Typed input when the agent runs as a subagent or plan step. An object schema with a description on every property. Without it, a call takes {prompt}.
object
Typed output when the agent runs as a subagent or plan step. An object schema. Without it, a call returns the final reply as {result}.
integer
A cap on model rounds. Omitted means no cap as a subagent; in a conversation, [settings].max_agent_iterations applies.
string
required
The agent’s instructions, rendered with the template language. It can reference {{session.date}}, {{session.user}} and the {{rules.*}} blocks (control_steps, templating, tool_format, agent_format), and nothing else.