Sub-agents and skills
Delegation that cannot widen access, and reusable bundles of instructions and capabilities.
Sub-agents
When Sub-agents is switched on in an agent's configuration, the agent gets a delegate tool. Each call starts an ephemeral sub-agent: a child run of the same agent version, on a blank context, with the mission the parent wrote. It does its work, returns its result to the parent, and ends, and it appears in the parent's trace. There is no second agent to configure and no second version to manage.
What a sub-agent may do is bounded by construction.
- Its access is the parent's frozen grants, minus the Blocked tools of the configuration, and limited to the tools the delegating call selects, when it selects some.
- It can therefore only ever be narrower than its parent. There is no path by which delegation widens access.
- It runs on the sub-agent model set in the configuration, or on the parent's model, never on a model the parent picks. Its answer goes back to the parent, not to the user.
- It spends from the run's ceilings. The cost and token ceilings cover the whole delegation tree, each sub-agent receives a share of what is left, and delegation is refused once the budget is spent.
- Depth is bounded, so a sub-agent delegating to a sub-agent cannot recurse without end. By default a sub-agent does not delegate in turn (depth 1), and the depth can go up to 3. By default a run's tree holds at most 8 sub-agents, and the limit can be raised to 16.
Delegation earns its keep when a sub-task needs a different model or a narrower set of tools: a cheap model summarizing a long document, or a step that must not be allowed near a write tool.
Skills
A skill is a reusable bundle: instructions, and optionally the capabilities that go with them. It can say how to use a particular tool, how to handle a particular kind of request, or what your style guide is, and it keeps the system prompt short by moving specialized instructions out of it. A skill belongs to one project and is attached to an agent from the agent's Skills tab. Editing a skill publishes a new version of it, and versions are immutable.
A skill reaches the model in one of two ways, its activation mode.
- Always: the instructions are injected into the prompt of every run. Use this for something that applies to every conversation.
- On demand, the default: the model sees the skill's name and description, and loads its instructions with the
load_skilltool when it judges them relevant. Use this when you have many skills and most are irrelevant to any given conversation, and write the description so the model knows when to load it.
Skills that carry capabilities
Besides instructions, a skill can carry tools, MCP servers and knowledge collections from its project. Granting the skill to an agent grants these capabilities to the agent's runs.
| Bundle content | Effect on the agent's runs |
|---|---|
| Instructions only | The instructions, and nothing else. |
| HTTP tools | The tools can be called. |
| An MCP server | The server's tools can be called, limited to the subset the skill names, if it names one. |
| One or more collections | The collections can be searched. |
The capabilities are resolved when a run is created, under the same rules as direct grants: a resource outside the agent's project, or deleted since, is dropped. A direct grant on the same resource takes precedence, so a skill never widens a restriction set on the agent. A skill carries neither secrets nor sub-agents.