Skip to main content

system

background.run

Run Tool in Background (fire-and-forget)

Effects: write

Run ANOTHER tool off the critical path: returns INSTANTLY while the target tool runs in the background, so a slow write/log/notify never delays your reply. Pass tool (the id of a tool you already have) and args (the target tool's arguments as a JSON object STRING). Optional serialize_key serializes background runs that share the key (e.g. the spreadsheet id when appending rows). Use ONLY for tools whose result you don't need this turn (logging, side-effect writes). Cannot run a tool you don't already have, cannot run a tool that requires approval, and cannot run a tool that deletes data — call those directly. Only callable from within an agent turn.

Arguments

ArgumentTypeRequiredDescription
argsstringyesThe target tool's arguments as a JSON object STRING, e.g. '{"spreadsheet_id":"abc","values":[["a","b"]]}'. (A JSON string — not a bare object — so the schema stays valid for strict function-calling on voice.)
serialize_keystringnoOptional. Background runs sharing this key run one-at-a-time (e.g. pass the spreadsheet id when appending rows).
toolstringyesId of the tool to run in the background. Must be a tool you already have.

feedback.save

feedback.save

Effects: write

Save a behavioral rule, preference, or correction that should guide future agent behavior. Use this when the user gives explicit guidance like 'always reply in Russian', 'don't suggest meetings before 11am', or 'invoice link goes via email, not chat'. Structure the rule as: the rule itself, why it matters (if stated), and how to apply it. Scope: 'workspace' for org-wide rules, 'agent' for per-agent overrides, 'person' for per-contact preferences. Prefer feedback.save over notes.save for anything that's instructive rather than informational.

Arguments

ArgumentTypeRequiredDescription
how_to_applystringnoWhen/how to apply the rule (optional). Helpful for conditional rules like 'apply when speaking to Russian-speaking customers'.
keystringyesShort identifier for this rule (e.g. 'reply_language', 'meeting_hours'). Must not start with '__' (reserved).
rulestringyesThe rule itself, in imperative form. Required.
scopestringyesScope of the rule. 'workspace' for org-wide rules; 'agent' for per-agent overrides; 'thread' for conversation-specific guidance; 'person' for per-contact preferences. 'global' accepted as deprecation alias for 'agent'. (one of workspace, agent, thread, person, global)
scope_ref_idstringnoRequired for scope='thread' (thread_id) and scope='person' (person_id).
target_agent_idintegernoTarget agent. In agent mode optional (defaults to self); required from MCP. Ignored when scope='workspace'.
whystringnoWhy this rule matters (optional but recommended for the distiller).

system.sleep

Sleep

Effects: read

Pause execution for a given number of seconds (max 30). Use when you need to wait for an external process to complete before retrying — e.g. message sync, backfill, or API propagation. Total sleep per run is capped at 60 seconds.

Arguments

ArgumentTypeRequiredDescription
reasonstringnoWhy you are waiting (logged for debugging)
secondsintegeryesNumber of seconds to sleep (1-30)