Files
tai/research/cap-protocol/conclusions/agent-delegation-tool-plus-skill.md
T

58 lines
4.4 KiB
Markdown

# Conclusion: Model and agent delegation as a bounded tool, guided by a skill
## Metadata
| Field | Value |
|---|---|
| Institute | Molodetz Institute — Research & Retrieval Division |
| Subject | cap-protocol |
| Document type | Conclusion |
| Tier | N/A |
| Date decided | 2026-10-25 (recommendation only, retoor has not yet decided) |
| Decided by | tai (agent, Claude Sonnet 5) as a recommendation, pending retoor |
| Status | Active |
| Confidence | Medium |
## Question / problem statement
Should tai let its own model call other CAP agents or models as a tool (model-as-tool), and should that capability be managed through a skill.
## Conclusion
Yes to a bounded agent-as-tool, and yes to a skill, with different jobs. A tool `ask_agent` (structured input: agent, optional model hint, prompt; returns only the delegate's final text) does the action: nested run in its own context, delegate permissions scoped and confirm-by-default, results treated as untrusted data, a depth of 1 (the tool is removed inside a delegated run), a static per-turn ceiling, and cost attributed to the delegate's model. It reuses `CapMention`. A single-turn advisor-style `ask_model` (no tools, one answer) is a possible second tool, deferred until delegation has been used. A bundled skill (for example `cap-agents`) carries the judgment: when delegation pays, how to write a brief (objective, output format, tool and source guidance, boundaries), how to pick a model tier, how to read the failure report. A skill cannot enforce caps or approvals, so it must not be the only mechanism. The human-chosen `@agent` route stays as the handoff form.
## Supporting sources
- [openai-agents-python-tools-agent-as-tool](../openai-agents-python-tools-agent-as-tool.md): shape of an agent-as-tool (own context, final output only, enable switch, approval pause).
- [openai-agents-python-multi-agent-orchestration](../openai-agents-python-multi-agent-orchestration.md): tool form when the manager keeps the reply.
- [anthropic-multi-agent-research-system](../anthropic-multi-agent-research-system.md): token multiple, brief contents, poor fit for most coding.
- [claude-code-advisor-docs](../claude-code-advisor-docs.md) and [openrouter-advisor-server-tool](../openrouter-advisor-server-tool.md): advisor form, depth guard, per-request cap, separate billing.
- [claude-code-skills-docs](../claude-code-skills-docs.md) and [agentskills-io-specification](../agentskills-io-specification.md): skills as low idle-cost guidance with size limits.
- [claude-code-sub-agents-docs](../claude-code-sub-agents-docs.md): description-driven delegation and its context cost.
- Tier 2: the Anthropic zero-trust guide and confused-deputy commentary back the least-privilege and untrusted-output rules.
## Alternatives considered and rejected
- Skill only: cheap and quick, but it enforces nothing and depends on the model following prose.
- Tool only: enforces limits but gives the model no guidance on when delegation pays, which the evidence says is where delegation fails (vague briefs, duplicated work).
- Automatic delegation from descriptions (Claude Code style): a bigger surface and a context cost for every described agent; tai has about 60 tools already and keyword-selects them.
- Handoff-only (the current `@agent` route): fine for humans, but the model cannot use another agent mid-task.
- Advisor first: its cited gain rests on one unverified transcript and tai's free backends are mostly one tier, so the benefit is unmeasured.
## Risks / open questions
- Anthropic reports most coding work is poorly parallelizable and delegation costs about 15x tokens; the tool could be net-negative on small tasks, so the skill must say when not to delegate.
- Delegated agents run with their own tools; the confused-deputy risk is real and the scoping is only as good as each agent's permission mode.
- A bundled skill must be added to tai.py first because the C++ port regenerates its bundled skills from it.
- No measurement exists on tai workloads; a trial with a counter on delegations and their cost should precede widening.
## Action taken
Recommendation only. Nothing built; retoor has not decided. If approved, the build order is `ask_agent` tool with caps, then the `cap-agents` skill in tai.py and the regenerated bundle, then evaluate before considering an advisor tool.
## Changelog
| Date | Change |
|---|---|
| 2026-10-25 | Initial conclusion recorded as a recommendation. |