开发者教程
子代理开发
子代理解决一个问题:调研烧上下文。子代理拿到全新上下文、只读工具,只回传结论。
模型
主代理(全上下文,全部工具)
│ spawn(query, scope)
▼
子代理(全新上下文,只读:read/grep/symbols/index)
│ 自由探索 —— 过程不进主上下文
▼
结构化结果: { summary, key_files[], findings[], recommendations[] }
什么时候会生成
- 提示词里出现调研/研究/investigate
- 计划中的某一步是纯信息收集
- 调用
/review(审查子代理,只读) 转写里会看到:
▸ 生成调研子代理(全新上下文)
… 14 次文件读取、6 次符号查询(对主上下文隐藏)
◀ 调研完成 —— 摘要:3 个关键文件,2 条建议
驱动子代理的技巧
# 好:有边界的问题 + 期望的输出形式
> 调研:写入之后缓存失效是怎么触发的?
列出涉及的具体函数和调用位置。
# 好:对比式调研
> 调研:src/auth/ 的认证中间件和 examples/ 里的模式
有什么不同?用表格汇报差异。
# 差:漫无目的
> 调研一下代码库
子代理不能做什么
- 写、改、删(只读工具集)
- 执行 Shell 命令
- 看到你的对话历史 —— 所有上下文必须在查询里说明
配置
WOW_MAX_SUBAGENTS=3 # 并发上限
WOW_SUBAGENT_TIMEOUT=120 # 每次生成超时(秒)
WOW_SUBAGENT_MODEL=auto # 同模型 | 调研用更快的模型
扩展(代码层)
wow_agent/subagent.py 暴露生成器:
result = await subagent_manager.spawn(
type="research", # research | review
query="feature flags 在哪里被读取?",
scope=Path("src/"), # 限制探索范围
constraints=["忽略 tests/"],
)
result.summary # 2–3 句答案
result.key_files # [FileRef(path, line)]
result.recommendations
结果是 dataclass —— 可以安全地喂进规划提示词。
设计笔记
- 每次生成全新上下文:调研任务之间零污染
- Token 记账:子代理开销单独统计,
/status可见 - 失败廉价:超时的子代理返回部分发现,绝不阻塞主任务