Skip to main content
subagent lets the lead Agent create temporary execution units during a conversation, hand an independent task to one, and get the result back after it completes the task in its own context. For the functional effect and use cases, see Sub-Agent; this page covers the tool’s types, configuration, and implementation details.

Built-in Types

A type is chosen at creation time, and it determines the system prompt and the range of available tools:

Custom Types

Add a type by placing a .md file in the workspace’s subagents/ directory, in the same format as a skill:
Field reference: Restricting tools is the most reliable constraint: a type that only has read, ls, search_files cannot modify any file. A type that specifies tools does not inherit skills; omit the field when skills are needed, and scope the work in the body instead. The first time a workspace starts, README.md and example.md.template are generated under subagents/; copy the latter to a .md file to enable it. Templates are re-read every turn, so a new file takes effect on the next message with no restart needed.
Tool names are matched exactly, and the tools allowlist does not include MCP tools. Omit the field when MCP tools are needed.

Disabled Tools

The following tools are unavailable to all sub-Agents:

Configuration

Sub-Agents are enabled by default. You can toggle them under “Config → Agent Config” in the Web console and desktop client, and a change takes effect on the next turn with no restart needed. Finer limits are adjusted in config.json:

Implementation Design

  • Context isolation: a sub-Agent starts with an empty message history, does not load persona files, and is not connected to the memory manager. Only a single call record and the final conclusion remain in the main conversation.
  • Parallel execution: multiple tasks in a single call run in their own threads and share one time budget; multiple calls issued in the same turn also start at the same time.
  • Halved step budget: a sub-Agent’s maximum step count is half that of the lead Agent. Its task scope is already well defined and does not need the same budget as a full conversation; when it runs out, it is asked to summarize what it has completed.
  • Traceable timeouts: a timed-out task is cancelled and marked as timed out, and the number of results always matches the number of tasks, so the lead Agent can tell “found nothing” apart from “did not finish”.
  • Presentation separate from context: what is returned to the model is structured data, while what is shown to the user is a formatted report; both are generated from the same result, and the displayed content does not enter the model’s context.