Configuration
Tools
Tools come in two kinds: read (fetch data) and write (modify data). Both kinds are listed in the same catalog and selected the same way throughenabled_tools. Write tools are off by default — you opt them in per step.
Selectors you can put in enabled_tools:
- A bare name picks one built-in tool (e.g.
"get_order_details") "colossal__{service}__*"picks every built-in in that service group (e.g."colossal__orders__*")"app__{integration}__*"picks every tool from a connected integration"app__{integration}__{action}"picks one tool from that integration
Built-in tools
See the tools catalog for the full input and output schema of each. Read tools are always safe to enable. Write tools are off by default and gated bytool_safety.
Integration tools
Every action from a connected integration shows up in the catalog underapp__{integration}__{action}. Read actions (HTTP GET) are tagged read; everything else is tagged write. Notion, Slack, Zendesk, Supabase, and any other installed integration contribute their full action list.
Tool approval
tool_safety sets the approval policy for each app’s write tools. Read tools never consult this field.
| Field | Type | Description |
|---|---|---|
default | "always_ask" | "never_ask" | "custom" | App-wide default for write calls |
overrides | object | Per-tool overrides. Only consulted when default is "custom". Each value is "ask" or "auto". |
always_ask is the safe default. Leaving tool_safety empty ({}) means every app falls back to always_ask — every write call pauses for human review.
What happens at runtime
When the agent calls a write tool that resolves toask:
Approval requested
The step appears in the activity log with status Awaiting approval, showing the tool name, arguments, and the agent’s reasoning excerpt.
auto, the tool runs inline with no pause.
Multiple write tool calls in a single agent turn each get their own approval row. The run resumes once every decision is in.
This is different from the approval step. Approval steps pause at a fixed point in the graph — useful when the workflow has already computed the action. Per-tool approval pauses inside the AI reasoning step — useful when the agent picks the action at runtime.
Output schema
Theoutput_schema defines the structure the AI must return. It must be a valid JSON Schema with either type or properties at the top level:
{{steps.<step_id>.<field>}}.
Skills
Theskills field names craft guidance the agent can load while it works. Skills are writing craft, not data access. Use enabled_tools for data.
| Skill | Use when |
|---|---|
colossal-seo-content | The step writes editorial or SEO copy: a guide, roundup, comparison, or article body, usually feeding a storefront builder step |
Examples
- Reasoning only
- Read-only investigation
- Write tool with approval
No tool calls — pure prompt-and-output.
Result
Each AI reasoning step produces:Use cases
- VIP detection: ai_reasoning outputs a structured
{is_vip, reason}, a downstream action step writes the order metadata. - Fraud screening: ai_reasoning decides whether the order is suspicious, an
approvalstep gates the action that creates the Zendesk ticket. - Smart routing: ai_reasoning categorises the request, a choice step branches.
- Inventory cleanup: ai_reasoning step calls
archive_productdirectly per matching variant — the agent picks which products to act on at runtime.
steps.<id>.output. Use the inline write-tool shape (the inventory cleanup case) when the agent must search for the target or make a variable number of writes per run.
Next steps
- Approval step. Pause at a fixed point for a human-confirmed deterministic action
- App action. Run a deterministic write with known inputs
- Data access. Reference trigger and step data in prompts and output schemas