The format
.claude/agents/billing.md
Frontmatter fields
The sub-agent’s identifier. This is the key you route to
(
app.agents["billing-specialist"], agent="billing-specialist").A short summary of what the sub-agent does. Used for routing and display.
Optional model override for this sub-agent (e.g.
claude-sonnet-4-6). Falls back to the harness/platform default if omitted.Optional sampling temperature.
Optional map of tool name -> enabled. Controls which tools this sub-agent may
use.
Optional permission rules - for example, allowing or denying specific skills
with
permissions.skill.primary or auxiliary. Karta preserves this metadata for the harness and
routing UI.Single vs. multiple sub-agents
- One sub-agent -> it is selected automatically;
app.default_agentis it. - Multiple sub-agents -> route explicitly by name, or set a default. For
OpenCode, the default is declared in
.opencode/opencode.jsoncas"default_agent": "name". If Karta cannot resolve a default, startup fails with a configuration error instead of guessing.
Handing off between sub-agents
Routing chooses a sub-agent per message; handoff changes the current sub-agent for the rest of a session:Skills
Reusable capabilities agents can invoke.
Sub-agents
Routing, handoff, and runtime authority.

