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/plan.schema.json.

Fields

integer
The file version the document is written in. Omitted means 1; graph plan migrate brings a file to the current version.
string
required
Letters, digits, _ and -. The plan is called as plan__<identifier>, and a plan with a built-in plan’s identifier replaces it.
string
required
Display name.
string
required
What the plan does. Agents read it when choosing tools.
string[]
Example requests the plan handles, added to its tool description.
string[]
MCP servers the steps use. The plan is hidden from the catalog while any of them isn’t configured.
object
JSON Schema for the plan’s inputs, validated before any step runs. Steps reference inputs as {{input.<field>}}.
object[]
required
The steps, run in order.
string
required
Unique across the plan, including steps inside bodies. Later steps read the result as {{<id>.<field>}}. Can’t be input, item, index, accumulator or length.
string
required
A catalog tool (<server>__*, user__*, builtin__*, plan__*, agent__*) or a control step (exit, route, filter, map, reduce, agent, ask).
object
required
The tool’s input. String values are templates over input and earlier results; a control step’s input is described on its page.
string
Why the step exists, for people reading the plan.
object
JSON Schema for the result of an output plan. Its properties must match the keys of finish.output.
"silent" | object
required
How the plan ends, and what it returns: silent, output or solver.
object
Returns this map as JSON, each template filled from step results. No model call.
object
A model call writes the answer as prose, returned as {answer}.
string
required
What the answer should say, as a template.
string
Extra system prompt for the solver call.
object
What the solver sees, as a map of templates over step results.