Skip to content

视频 05 来源笔记:Subagent 与上下文隔离

来源元信息

  • 讲者:小单说AI
  • Bilibili:BV14PdwB9E6w
  • 本地字幕:从零实现自己的agent第五期:子代理实现.ai-zh.srt
  • 字幕覆盖:00:00:00–00:13:17
  • 对照材料:bilibili-transcripts/05-子代理实现.txtppt/第五期-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.pydoc/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 应以固定代码为准。

Markdown 是唯一内容源,HTML 由构建流程生成。