关于 nested-subagents
用于协调最多五层的层级子 Agent 树的 Skill,适合需要隔离上下文和结构化摘要,而非扁平并行委派的任务。
主要功能
- 01最多五层的层级委派
- 02各层使用独立上下文
- 03子 Agent 结构化摘要
- 04树状成本归因
- 05嵌套深度限制
适用场景
- 01拆分分层研究与验证任务
- 02管理超出单个上下文窗口的工作
- 03委派给专业叶节点 Agent
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill nested-subagents安装后在 Claude Code 中输入/nested-subagents确认已加载。
详细介绍
嵌套子 Agent
生成一棵子 Agent 树,其中每个子 Agent 都可以继续生成子 Agent,最多深入 5 层。这样做的目的是管理上下文,而不是并行处理:每一层都会获得一个全新的上下文窗口,因此深度工作不会耗尽顶层 Agent 的上下文预算。
适用场景
- 问题可以分解为嵌套层级(研究 → 扩展 → 验证 → 综合),否则每一层的内容都会污染父级的上下文。
- 单个 Agent 的上下文窗口不足以容纳所有中间状态。
- 树的叶节点是不同的
subagent_type,需要各自专用的提示词(例如,一个叶节点使用pii-detector,另一个使用tester)。
如果扁平扇出(在一条消息中使用 Task × N)就足够了,请跳过此技能——嵌套会增加延迟。
步骤
-
调用协调器——将
nested-coordinator生成为顶层 Agent:Task({ subagent_type: "nested-coordinator", name: "root-coordinator", description: "Decompose and delegate <problem>", prompt: "<problem statement, with constraints and expected output shape>" }) -
协调器先进行分解——在调用任何
Task之前,它会通过TodoWrite列出生成树。请先检查这棵树,再批准深度工作。 -
子级生成子级——任何
nested-coordinator(或 YAML frontmatter 声明了tools: [..., Task]的其他 Agent)都可以调用Task来生成下一级。叶 Agent(其工具列表中不包含Task)不能这样做。 -
每一级都返回摘要——子级返回约 200 个 token 的结构化摘要,而不是完整记录。这样做的关键目的,是让父级的上下文保持干净。
-
持久化树结构——每次生成 Agent 时,
post-task钩子都会将parent_agent_id和depth写入 AgentDB(ADR-147 P2)。运行结束后进行查询,以便归因成本并学习模式。
深度预算
| 来源 | 限制 |
|---|---|
| Anthropic API | 5 层(于 2026-06-09 宣布) |
Ruflo 默认设置(pre-task 钩子) | 4 层——设置一级保护余量,可在 claude-flow.config.json 中配置 |
| 严格模式环境变量 | 设置 CLAUDE_FLOW_STRICT_NESTING=true 以强制执行 Ruflo 上限 |
达到上限时,钩子会返回类型化的 NESTING_DEPTH_EXCEEDED 错误,并在负载中提供完整调用链,供父级决定是进行摘要、移交还是中止。
优势
- 每一级隔离上下文——顶层协调器看不到内部讨论;叶节点摘要会逐级向上传递。
- 更深入的委派,无需重复概括——避免了扁平扇出所迫使的“在第 1 层概括所有内容以便容纳”的反模式。
- 树形成本归因——
parent_agent_id血缘关系可准确统计每棵树的开销,而不只是每个 Agent 的开销。 - 可与 Ruflo 现有的编排器清晰对应——
ruflo-sparc:sparc-orchestrator(5 个阶段 ≈ 5 层)、ruflo-goals:dossier-investigator(递归扩展实体)、v3-queen-coordinator(hierarchical-mesh 顶层)。
反模式(请勿这样做)
- **不要将
Task传给叶 Agent。**叶节点不得生成子级。应直接在协调器下添加叶节点的subagent_type。 - **不要用协调器包装 Tier-1 codemod。**Codemod(
hooks_codemod)是深度为 0 的确定性转换——绝不要将它们放入生成树中。 - **不要为了“结构整洁”而嵌套。**过早增加嵌套层会增加延迟和成本,却不能节省上下文。如果一个 Agent 就能完成工作,就用一个 Agent。
- **不要让子级返回完整记录。**这会彻底破坏嵌套的目的。子级应返回结构化摘要。
相关内容
- Agent:
ruflo-agent:nested-coordinator——编排器 - ADR-147——设计依据和四阶段推出计划
- ADR-144——授权传播将深度计数器作为
AuthScope.delegationDepth共用 - ADR-099——dossier 调查器(递归并行研究)是典型的深度应用场景
评论
支持 Markdown