Skip to main content
A subagent runs a self-contained subtask in an isolated context (a fresh graph on a namespaced thread, with its own persona, empty message history, and a restricted toolset) and folds back only a compact result. Subagents are defined as single files, packages/ziro-core/src/ziro/agents/.subagents/<id>.agent.md, where YAML frontmatter carries the name, model, tool surface, and scoped skills, and the Markdown body becomes the system prompt. The .subagents/ folder is dot-prefixed so subagents never appear in the interactive agent picker: they are spawn-only. A child’s tool rights are the intersection of its own declared tools and the parent’s current rights: inherit, never widen. Eight children ship: scout (source-grounded research), solver (drives a problem to a verified result), reflector (reflection coach), reviewer (read-only code review), tester (runs and writes tests), doc_writer, fact_checker (read plus web), and summarizer (read-only).
This page is in progress. It will cover subagent_policy.yaml in full (allowed children, depth and spawn caps, parallel fan-out, and model failover), plus skill scoping and the human-in-the-loop boundary rule that a gated parent must not allow a shell- or write-capable child.

Agents

The parent side of the relationship.

Tools

Namespaces and the rights intersection.

Agent files

The *.agent.md frontmatter schema.