Source: https://docs.any.org/agents/subagents.html
# Subagents
`subagent@v1.delegate(space, task, opts=None)` runs the same conversation loop in **quiet mode**: no chat bubbles, no boot window, no auto-recall, no persisted turn, and the parent's mailbox is left alone. The child's final reply returns to the calling cell as a value.
The child starts from the task text alone — none of the parent's history or recalled memories. The call blocks: delegation is sequential, not a background worker.
## When to delegate
Delegate when intermediate steps would only clutter the parent's context — a survey over many objects, a batch transformation, a research errand. Write the task like a good ticket: goal, inputs (ids, names), and what the report must contain. The child starts blank and knows nothing of the parent conversation.
```python
sa = use("agent:subagent@v1")
out = sa.delegate(space,
"Survey every object of type `task` with status open in space 'dev'. "
"Report: count, the five oldest by createdAt (id, name, age in days), "
"and any task with no assignee.")
out["report"] # the child's final text
out["stop"] # done | wrapup | ...
out["turns"], out["tokens"]
```
## What the child gets
| Aspect | Child loop |
| --- | --- |
| Space | the same space as the parent — same types, objects, programs |
| Tools | the full tool surface; system prompt composed from the same skills without the `_soul` identity, plus a section saying it is a subagent whose reply returns to the delegating agent |
| Context | only the task text — no chat history, no memory injection |
| Chat | cannot post; interim text is not surfaced |
| Ceilings | bounded like any run — `maxTurns` 30 by default; `opts` takes `maxTurns`, `maxTokensTotal`, `tier`, `agentName` |
| Persistence | no `agent_turns` record, no ROI log |
| Trace | the child's model calls and cells nest inside the parent's trace under the `subagent.delegate` span |
Delegation is a thin wrapper, not a second loop implementation — `use("toolcaller@v1").main({..., "quiet": True})`. It is blocking and sequential; parallel children are not supported.
## Known limits
- Child cells share the kernel namespace with parent cells (`subcell` is reentrant by design). Cell ids stay distinct because tool-call ids are provider-unique.
- Depth beyond one level is mechanically possible and prompt-discouraged.
> **Note.** Because the child does not drain the mailbox, a `break` or `inject` sent during a delegation is seen by the parent on its next turn, after the child returns.
For a search-and-synthesise errand over the web rather than the space, use `deepResearch@v1` instead — it writes its findings as pages. See [Tools](https://docs.any.org/agents/tools.md.txt).