Skip to main content
Every tool call an agent makes costs a model round. When it makes the same calls on every run, a plan can make them instead, with no model in between.

Find the repeated calls

Run the agent and read the tool calls on stderr. This release_notes agent looks up the latest release, then reads the commits since it:
It makes the same two calls every time, so they can move into a plan.

Put the calls in a plan

Save the sequence as ./.graph/plans/unreleased_changes.yaml. The output finish returns the results as JSON without a model call:

Give the agent the plan

Replace the tools in the agent’s tools list with the plan, as plan__<identifier>:

Compare

Run the same question again. The agent calls the plan once, and the plan makes the tool calls:

Draft a plan in the workbench

Describe the work and let the workbench write the plan.

Steer tool choice

Help the agent pick the plan over other tools.

Talk to an agent

Run the agent with graph ask and graph chat.