返回首页

密歇根大学公开 Subagents 讲义:从长对话劣化到 Fresh/Forked 取舍

  • 课程背景:密歇根大学 Applied Agentic Software Engineering 课程第 14 讲「Subagents」讲义公开,围绕「为什么需要 subagents、机制是什么、关键取舍、与相邻概念的区别」四部分展开,属于把编码 Agent 架构作为正式工程课内容讲授的案例。
  • 为何需要:讲义将长对话的必然劣化归为四点——上下文有限且内容只进不出;被否决的想法仍留在场(history bleed),模型会把它们捡回来;每次请求重发全部历史,caching 省钱不省窗口;单对话串行,读代码时无法并行比较方案。解法是主对话只保留请求与计划,各部分阅读留在各自的 subagent 中,只回流结果。
  • 机制细节:Agent 工具对模型而言就是普通工具,prompt(即 brief)是 subagent 信息的唯一来源;harness 立即返回 launched 并默认后台执行,新对话使用更短的系统提示、更少的工具(Explore 物理上只读,无 Edit/Write/Agent)、同样的 CLAUDE.md,但不带主对话历史;结束必须调用 SubagentHandback,否则内容不送达;报告回流时标记为模型输出而非用户、整体缩进以守住对话边界。brief 是模型写给模型的提示词,位置、验收标准与报告形状都需写清。
  • 最大取舍:Fresh 起点仅为 brief,适合第二意见与独立审查,成本更高;Forked 携带全部历史加 brief,适合需要全部积累的侧任务,因复用 prompt cache 而更便宜。讲义强调 Fresh 不是廉价选项而是独立选项——依赖 fork 的 subagent 会用记忆填补文档缺口,然后回报文档没有问题。
  • 概念辨析:用三个问题区分所有形态——几个对话、谁和谁说话、谁决定下一步。Subagent 每段新对话只与父对话通信、父对话掌权;Team 是多对话互发消息加共享任务列表(带文件锁);Handoff 是一段对话换 agent 接管且不回头,与 subagent 恰好相反;Swarm 是机制乘以规模,讲义引用 Kimi K2.5 的 100 并发与 OpenAI Navier–Stokes 的约 10000 agents、1300 亿 token 作为量级参照。并行编辑靠 worktree 隔离,每个 subagent 独立 checkout 与分支。 🔗 课程讲义 | 原帖汇总
Tweet Image