视频 05 来源笔记:Subagent 与上下文隔离
来源元信息
- 讲者:小单说AI
- Bilibili:
BV14PdwB9E6w - 本地字幕:
从零实现自己的agent第五期:子代理实现.ai-zh.srt - 字幕覆盖:
00:00:00–00:13:17 - 对照材料:
bilibili-transcripts/05-子代理实现.txt、ppt/第五期-agent子代理的实现.html - 对应代码:
step09_subagent.py
按时间顺序的主题窗口
[00:00:00–00:00:55] “主事者派小弟”的比喻
主 Agent 负责目标与决策,把局部探索交给临时执行者。子代理完成后只回传结果,由主 Agent 决定下一步。
[00:00:55–00:02:03] 主上下文为什么会膨胀
网页正文、命令错误和工具日志占据主 History,促使压缩过早发生并稀释主线。Subagent 的首要收益是隔离噪声,而不仅是“多调用一个模型”。
[00:02:03–00:02:42] Subagent 的定位
子代理被封装成主代理可调用的工具。它复用 Agent Runner 的思想,但拥有独立 History、系统提示和工具白名单,任务结束即销毁。
[00:02:42–00:03:58] 主代理与子代理的边界
主代理跨多轮生存、面向用户并维护长期记忆;子代理只对一段 Task 负责,失败只返回局部错误。子代理的原始探索不直接并入主上下文。
[00:03:58–00:04:31] 预设角色
读取文件、搜索、写入或网页研究可以封装为不同身份。角色提示应明确目标、可用工具、输出契约和停止条件,而不是只起一个人格化名字。
[00:04:31–00:05:22] 一次完整派遣
主 Agent 拆分任务并调用 dispatch_subagent;子代理在内部运行工具循环;完成后压缩为摘要,通过一条工具结果回填主 History;临时上下文随后销毁。
[00:05:22–00:06:20] 何时并发
相互独立、读多写少、I/O 等待长的任务适合并发。存在前后依赖、共享可写资源或需要逐步确认时应顺序执行。
[00:06:20–00:07:14] 安全边界
子代理白名单不能含派遣工具,避免递归生成;不得修改主计划;每类角色与并发数量要有限制;失败后不能无止境重试。
[00:07:14–00:08:19] 代码结构
公共工具、角色提示、子循环、派遣工具和主提示共同组成实现。共享代码不等于共享状态,构造子 Runner 时必须显式注入隔离的上下文和能力。
[00:08:19–00:09:11] 单个与批量派遣
实现根据任务数量选择单个执行或并发,并按原始顺序收集结果。结果顺序稳定有利于后续合并与测试,但不能消除并发写冲突。
[00:09:11–00:10:26] 三站点新闻演示
主 Agent 先规划,三个子代理并发抓取不同平台,再由主 Agent 整理文档和网页。演示把“探索隔离”与“并发缩短等待”放在同一任务中。
[00:10:26–00:11:17] 产物与最终汇报
模型生成文本简报和 HTML,再汇总跨平台焦点。应区分子代理返回的证据、主代理的综合判断和最终用户产物。
[00:11:17–00:13:17] 教学仓库与 Emperor Agent
视频展示教学 Step、Web UI、模型配置、Token 统计、Skill 管理、工具列表和记忆文件。Subagent 是产品能力之一,但可视化并不能替代运行轨迹与权限审计。
主教学论点
Subagent 是一次性、受限、上下文隔离的 Agent 调用。它把探索噪声留在局部,只把结构化结果送回主线;当任务独立时,还可通过并发降低总等待时间。
完整流程
main plan → dispatch tool → isolated runner → local tool loop → summarize/error → one tool_result → destroy local context
主流程至少要记录:子任务 ID、角色、允许工具、开始/结束时间、状态、成本、结果摘要、证据引用和失败类型。
重要比喻
- “强哥与小弟”帮助理解单向派遣与结果回报。
- 工程上应使用中性角色名,避免比喻掩盖权限边界和责任归属。
术语与纠正
- 自动字幕中的 “SAVINT / 撒贝宁” 均应为 Subagent。
- 固定仓库的本期累计文件是
step09_subagent.py;视频里提到step08是当时录制版本或口误。 - “独多写少”应为“读多写少”。
需要工程限定的说法
- 让模型决定并发只是调度信号,Harness 仍要执行依赖、配额和资源冲突检查。
- 子代理摘要会丢失细节;高风险结论要携带来源或产物引用。
- 子代理失败不一定“影响不大”,主 Agent 必须知道该结果是否为必需依赖。
- 并发降低墙钟时间,但通常增加瞬时请求数、成本和限流压力。
- 临时上下文销毁前仍需要脱敏轨迹用于调试,保存范围由隐私策略决定。
来源映射
- CAE:
step09_subagent.py、doc/step09_subagent.md。 - 《深入理解 AI Agent》:第 4 章协作工具与异步 Agent;第 10 章不共享上下文、管理者模式、并发失败模式。
- 必做实验:
chapter10/parallel-web-research。 - Mini Emperor:当前最小产品尚未实现 Subagent Runner;正文会以
AgentRunner的隔离实例与CapabilityPolicy为扩展点。 - 进入正文:
book/05-Subagent.md。
内容差异与待核对
- PPT 的主线是“主 Agent 膨胀、角色定位、生命周期、派遣拆分、模型路由、安全边界”,均已映射到时间窗口。
- 视频称主代理失败会导致整个“程序崩溃”,更准确地说取决于 Runner 的错误隔离和恢复设计。
- 仓库文本稿对工具名有转写波动,函数与 Schema 应以固定代码为准。