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

Common fields

integer
The file version the document is written in. Omitted means 1; graph tool migrate brings a file to the current version.
string
required
Letters, digits, _ and -. The tool is called as user__<name>.
string
required
What the tool does and returns. Agents and the plan drafter read it when choosing tools.
enum<string>
required
What the tool runs. Each kind takes its own fields, listed below.Available options: exec, prompt, reshape, decision
object
JSON Schema for the input, validated before the tool runs. Templates reference it as {{input.<field>}}.
object
JSON Schema for the output. A prompt tool enforces it as structured output; for every kind it tells drafters what the tool returns.
boolean
Marks the tool as free of side effects. reshape and decision tools are read-only by default.

Kinds

Each kind adds its own fields.
  • exec: Runs a command.
  • prompt: One model call.
  • reshape: Builds a value in a new JSON shape from the input, with no process and no model call.
  • decision: Asks a decision model typed questions about the same state, each answered independently.