Tools
Tools are the capabilities agents can use. Three kinds:
- Built-in tools: capabilities the platform provides directly (memory, task history, task setup, feedback). Never passed in
tools; the configurable ones are toggled withenable_*fields. See Built-in tools. - 3rd-party integrations: external services like Gmail, Slack, and Google Ads, connected via OAuth.
- Desktop tools: when sandbox execution is enabled, every run also gets
computer,bash, and a file editor over a full Linux desktop, automatically. See Computer use.
The tools array below is only for 3rd-party integrations and custom tools. Passing a built-in name (e.g. "memory") returns a 422.
List available integrations
Assign tools to an agent
Set the base tool set when creating an agent. These tools are available on every run:
Override per task or per run
Tasks and runs can override the agent's tool set:
The most specific level wins: run over task over agent. If a run omits tools, the task's tools apply, then the agent's.
This cascade covers catalog tools. Custom tools attach to an agent only — a task- or run-level tools list containing a custom slug is rejected. For one agent per end-user acting on your own API, see Your API as MCP tools.
Account-level connections are made through the Developer Dashboard; OAuth flows are handled automatically, and client.apps.list() (above) shows what's connected.
End-user connections (multi-tenant OAuth)
Connect apps programmatically for your end-users. Each customer authorizes their own Gmail, Slack, etc.
1. Initiate connection
2. Complete connection
After the user completes OAuth and is redirected back:
3. Check status and disconnect
Isolation
- Each end-user gets their own OAuth connection, scoped by
user_id - Runs for that user automatically use their connected accounts
- There is no fallback from
user_id-scoped runs to account-level connections
Next: Built-in tools · Computer use · Human-in-the-loop · Users
