Skills与多Agent
渐进加载、路由、委派和协作边界
沿着对象与状态理解本章
并行只有在子任务相对独立、交接损失可控时才有收益。下图同时给出变快和变慢的条件;后文DAG不是越碎越好,共享文件或共享假设可能把任务重新串行化。
下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。
多Agent:可并行的工作,比Agent数量重要
为什么任务拆得更细,有时完成得更慢、更差?
并行能缩短独立子任务的关键路径,却增加委派、重复取证、结果整合和共享状态成本。子Agent拥有独立上下文还会引入交接损失。先找确实能分开的工作,再设计明确交接;简单集中任务往往单Agent更容易做好。
输入与适用条件:固定A6秒、B8秒、集成3秒;第二/三帧仅改变交接成本2→8秒。这是教学算账,不是商业多Agent实测。
1 / 4 · 顺序完成两个独立子任务
窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。
任务A6秒、B8秒、集成3秒,顺序耗时17秒。先假定两项确实独立、都必需。
交接开销=0秒;顺序=17秒默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。
为什么需要
利用真正独立的研究或实现方向,并隔离无关上下文。
怎样实现
按依赖和写入边界分工,交接必要证据,主任务核验整合结果。
可能的代价与误解
重复搜索、同文件覆盖、相关错误和过度委派会提高时间与Token成本。
如何判断是否做对
与单Agent同任务同预算对照,记录集成缺陷和重做次数。
Skills是按需展开的专业工作包
Skills通过名称、描述、正文和资源组织能力。先发现元数据,再加载相关正文,必要时读取脚本或参考材料,是渐进披露思想。它不新增模型参数,也不保证每一步都会像程序一样执行。[S121][S122]
假想路径检查技能可以包含适用场景、路径语义、必要测试与反例。描述负责路由,正文负责方法,资源负责证据,脚本负责确定性操作。正文再专业,未被选中也无法帮助本轮。
扩展层次的职责
Instructions表达持续约束;Skills提供任务方法;Tools执行或取证;Hooks在事件节点运行程序;自定义Agent组织角色与模型工具配置;插件组合分发。各产品支持范围不同。[S072][S080][S079]
原创选择:全局代码风格放指导,迁移专用检查放技能,SQL执行放工具,提交前静态检查放Hook或CI,真正独立任务才需要专门Agent。必须禁止的动作不能仅写进Skill。
路由不是单标签分类
任务可能需要多个技能,也可能不需要。既要召回必要能力,也要避免无用加载。边界样本应包含相邻领域、解释而非实现、显式指定、跨领域和证据不足。
原创例子:“优化缓存”可能指Prompt Cache,也可能是Redis。只看关键词会误路由。先识别对象与目标,必要时少量取证消歧,比一次加载全部候选更合理。路由成本也要纳入评测。
多Agent收益来自任务结构
独立研究、可并行任务和有价值的独立审查可能受益。多个Agent同时改同一函数则容易冲突。Anthropic多Agent研究展示协调与工作者模式;Agentless以简单流程作为反证基线,两者都不支持“越多越好”或“永远不需要Agent”。[S124][S128]
并行收益取决于依赖、上下文复制和整合成本。让两个Agent调查不同平台路径可能有价值,让三个Agent复述同一摘要未必增加独立证据。
有效委派与上下文交接
目标:调查Windows路径对exclude的影响,不改代码。
范围:规范化函数和相关测试。
已知:Linux嵌套路径可复现,配置加载正常。
返回:实际调用链、已运行测试、证据位置、不确定点。
这是原创委派样例。子Agent需要足够已有事实,不需要主Agent全部历史。权限和工具继承应按产品确认,主Agent还要检查回传是否遗漏限制。若需要改代码,应明确工作区与文件所有权。[S071][S125]
Handoff与工具式Agent
Handoff常表示控制权移交;Agent作为工具通常由调用方保持外层控制;多Agent对话是另一种协作方式。具体SDK语义与状态过滤不同。[S126][S127][S129]
客服转专门流程与主Agent请求只读审查,适合不同组织。框架不会自动保证交接信息最小且完整,必须检查传什么、如何取得原证据、错误怎么返回。
消融实验判断价值
原创实验依次比较单Agent、加Skill、加并行调查、加独立审查,每次只改一项。按简单与复杂任务分别统计,避免平均掩盖退化。路由减少漏加载却增加大量误加载时,应按实际损失而非单一命中率判断。
自检:多个Agent同意是否证据独立?不是。并行一定快?不一定,协调和依赖会抵消收益。技能是越长越专业?不是,应看必要知识能否在合适时机被正确使用。
逐项中文讲义
保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。
A10.1 · 渐进式技能加载
对应资料:Equipping Agents with Agent Skills
Agent Skills文章提出通过渐进披露组织专业能力:先展示元数据,相关时展开正文,再按需读取资源。它改变信息供给,不是模型参数训练。
技能入口需要足够清晰以便发现,正文需要可执行的方法,资源需要可信且最新。任何一层失败都可能让技能无效。
只加载相关技能节省什么
输入与条件。有10个技能,各正文1000单位,当前只需测试技能。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1全加载 | 正文共10000 | 大量不相关方法竞争上下文。 |
| 2渐进 | 先看短元数据,再读1个相关正文 | 只需该正文和必要依赖。 |
| 3验证 | 若漏掉真正必要技能 | 省下长度却损害任务,须双向评测。 |
把过程连起来。渐进加载的目标是充分且相关,不是越少越好。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:把一个长检查清单分成默认描述、任务正文与按需参考,说明哪些内容不应每轮加载。
完成标准是减少无关上下文同时保留必要能力,而不是只把文档拆成更多文件。
拓展阅读目录事实依据 [S121] · 练习与工程推导为本书独立编写。
A10.2 · 技能规范与资源组织
对应资料:Agent Skills Open Specification
开放技能规范描述文件、元数据和资源组织约定。遵守格式有助于互操作,但不保证所有客户端实现完全相同的加载、权限或执行行为。
规范有效与技能内容正确是两回事。一个格式合法的技能仍可能范围含糊、步骤过时或引用失效。
Skill正文引用不存在的脚本
输入与条件。SKILL.md要求运行scripts/check.py,但包中未包含该文件。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1格式检查 | 元数据可解析 | 还不足够。 |
| 2资源检查 | 相对路径目标不存在 | 技能执行链断裂。 |
| 3处理 | 修正引用或补齐真实脚本 | 不让模型编造运行成功。 |
把过程连起来。技能规范、资源完整性与执行质量分别验证。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:验证一个玩具SKILL.md的字段和资源路径,再用真实任务检查是否被正确选择。
不要把格式测试当成专业能力评测。加载、遵循与最终工程结果需要分别验证。
拓展阅读目录事实依据 [S122] · 练习与工程推导为本书独立编写。
A10.3 · 技能选择与执行上下文
对应资料:Claude Code Skills
Claude Code技能可以通过产品支持的方式被发现和使用,部分配置影响执行上下文。实际行为需要按版本与文档核对,不能仅从开放规范推断。
技能与子Agent结合时,要检查工具、状态和返回方式。将任务放到独立上下文并不自动保留全部证据。
显式技能仍需检查当前任务约束
输入与条件。用户指定部署技能,但本轮同时说“仅制定方案”。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1技能加载 | 可以读取部署方法 | 不等于授权实际部署。 |
| 2任务解释 | 只输出计划与验证条件 | 保持执行边界。 |
| 3工具层 | 没有批准不发生产写动作 | 技能不能扩大用户授权。 |
把过程连起来。显式选技能和批准副作用是两件事。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:分别在主会话与独立调查中使用同一技能,比较必要输入和结果交接,检查是否产生重复读取。
本条关注使用条件,不主张所有技能都应隔离执行。简单任务直接加载可能更合适。
拓展阅读目录事实依据 [S072] · 练习与工程推导为本书独立编写。
A10.4 · Copilot技能的适用范围
对应资料:Copilot Agent Skills
Copilot技能提供任务相关的专业指导和资源。它与持续性仓库指令不同,不应默认把全部技能正文加入每个任务。
多表面支持差异要求先确认运行环境。安装成功与本轮加载是不同事实,不能用其中一个证明另一个。
一个平台支持Skill不代表所有表面加载规则相同
输入与条件。本地CLI读取技能成功,云任务却没有对应目录。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1比较环境 | 本地未提交文件未在远程 | 不是描述本身错误。 |
| 2同步来源 | 按产品支持方式提供资源 | 确认云环境真实存在。 |
| 3再测试 | 候选发现、加载和执行分别看 | 不直接外推本地结果。 |
把过程连起来。适用表面、版本与文件分发属于事实条件。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:设计需要、无需和边界模糊三组任务,统计技能选择及最终质量,而非只检查文件是否存在。
完成标准是让路由“刚好够用”:必要技能不漏,不相关技能不成为额外负担。
拓展阅读目录事实依据 [S080] · 练习与工程推导为本书独立编写。
B10.5 · Codex技能加载与使用
对应资料:Codex Skills
Codex技能入口与文档可能迁移,当前通用技能说明不能被无条件倒推为所有历史Codex版本的行为。本书保留拓展阅读目录对应关系,但避免假定全部新扩展都向后兼容。
核心机制仍是通过元数据发现、相关时加载和按需获取资源。具体目录、触发和配置应在实际版本中检查。
Codex技能问题沿数据链定位
输入与条件。技能已安装,任务却没使用。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1候选 | 确认本轮元数据是否出现 | 先排发现问题。 |
| 2正文 | 确认是否读取技能内容 | 再看路由选择。 |
| 3工具 | 若正文要求不可用工具 | 报告能力缺口而非再改描述。 |
把过程连起来。把“未使用”拆成具体缺失环节才能有效修复。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:固定安装版本,记录一个技能被发现和读取的证据,再测试显式指定与语义选择的区别。
不要根据最终回答声称“使用了技能”就结束核验;应关注实际输入或可观察行为与结果。
拓展阅读目录事实依据 [S123] · 练习与工程推导为本书独立编写。
B10.6 · 选择正确的扩展层
对应资料:Customization Cheat Sheet
再次使用定制机制对照表时,重点是消除重叠职责。全局规则、专业技能、工具、事件检查和角色编排应各有清晰权威来源。
同一约束在多个文件复制,短期看似保险,长期可能版本冲突。需要明确维护位置与引用关系。
常驻规则与按需专业材料分别放
输入与条件。项目总要求“不泄露凭据”,另有1000字性能调优手册。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1通用约束 | 始终相关且短 | 常驻适合。 |
| 2专业手册 | 只在性能任务需要 | 按需技能或资源更合适。 |
| 3强制机械步骤 | 每次提交格式检查 | 交给确定性流程,不只写在手册里。 |
把过程连起来。先判内容的作用与频率,再选扩展机制。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:将“测试必须运行”分别放在说明、Skill和CI中,解释每层承担的是提醒、方法还是强制验证。
不是所有重复都该删除;必要的执行保障可以保留,但不要用多份文字副本代替真正的检查。
拓展阅读目录事实依据 [S079] · 练习与工程推导为本书独立编写。
A10.7 · 主Agent与并行研究者
对应资料:Multi-Agent Research System
多Agent研究系统使用协调者与工作者处理可分解的研究方向。收益来自并行探索与任务结构,同时存在协调、重复搜索和整合成本。
研究类任务的成功经验不能直接推广到多个Agent同时编辑同一文件。共享状态与写入冲突可能抵消并行收益。
并行研究者要给不同证据范围
输入与条件。两子Agent都搜索完全相同关键词和网站。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1重叠 | 可能得到重复结果 | 付两份成本不等于覆盖更广。 |
| 2分工 | A查官方机制,B查可复现实现与反例 | 更可能获得互补证据。 |
| 3整合 | 去重、核对冲突和版本 | 父Agent不只拼接两份总结。 |
把过程连起来。并行研究收益依赖任务独立性与信息互补。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:把一个调查拆成三个互相独立的问题,再列出一个不能拆开的依赖链。分别计算等待与整合成本。
完成标准是证明任务分解带来新增证据或缩短关键路径,而不是增加角色数量。
拓展阅读目录事实依据 [S124] · 练习与工程推导为本书独立编写。
A10.8 · 工作流、并行与动态编排
对应资料:LangGraph Workflows and Agents
LangGraph区分预设工作流与动态Agent,并提供路由、并行和协调等编排模式。框架表达能力不等于每种模式都应该使用。
显式状态与边界有利于恢复和检查,但过细节点也会增加配置及交接成本。模型需要灵活判断的步骤不宜全部硬编码。
DAG边决定谁可以同时跑
输入与条件。A读模块1,B读模块2,C需要A/B结果,D只需A。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1开始 | A/B并行 | 不相互等待。 |
| 2A先完 | D可以开始 | C仍需等B。 |
| 3B完成 | C启动 | 按依赖而不是固定全阶段屏障调度。 |
把过程连起来。正确依赖可以减少无意义等待,但共享写入还需额外约束。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:把固定校验与未知原因调查放在不同节点,说明哪些边可预设、哪些需依赖观察。
完成标准是流程能解释实际任务,而不是为了展示框架能力构建复杂图。
拓展阅读目录事实依据 [S125] · 练习与工程推导为本书独立编写。
B10.9 · 控制权交接
对应资料:Agents SDK Handoffs
Handoff通常表示把控制移交给另一个Agent,与把子Agent当工具调用并返回不同。具体上下文过滤和控制语义由SDK定义。
交接需要传递目标、已知事实和必要状态,同时避免泄露无关敏感内容。控制权转移不是权限无限继承。
handoff与返回结果的调用不同
输入与条件。主Agent把客户问题转给账单Agent。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1handoff | 控制权移交 | 后续轮由账单角色推进。 |
| 2作为工具 | 主Agent调用账单分析后等结果 | 主Agent继续整体任务。 |
| 3选择 | 是否需要长期接管决定方式 | 不是两个名字随便互换。 |
把过程连起来。交接控制流与普通函数式委派有不同生命周期。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:设计普通接待转专门流程的交接,再设计只读审查返回主Agent的调用,比较谁负责最终回答与错误处理。
完成标准是清楚控制权和状态边界,避免Agent之间反复转交却无人负责完成。
拓展阅读目录事实依据 [S126] · 练习与工程推导为本书独立编写。
B10.10 · Agent配置与作为工具调用
对应资料:Agents SDK Agents
Agents SDK中的Agent定义组织模型、指令与工具等配置,也支持不同协作方式。对象定义本身不保证任务完成,仍需运行器、环境与验收。
把Agent作为工具使用时,调用者通常消费结果并继续外层任务;应明确输入输出,而不是返回无边界长历史。
Agent-as-tool返回仍是待核验结果
输入与条件。分析子Agent返回根因X与证据路径。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1主Agent接收 | 看见一个工具式结果 | 不自动信为终局。 |
| 2抽查关键事实 | 读取当前版本对应行 | 验证X是否支持。 |
| 3继续 | 整合其他子任务并测试 | 父级保留完成责任。 |
把过程连起来。把Agent封装为工具不消除模型错误与交接损失。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:定义一个只返回证据摘要的调查者,主Agent据此决定是否修改。检查调查结果是否包含来源和不确定性。
避免让每个角色都重复完整计划与审查。角色存在应对应真实的独立责任。
拓展阅读目录事实依据 [S127] · 练习与工程推导为本书独立编写。
B10.11 · 简单流程作为强基线
对应资料:Agentless
Agentless以较简单的定位、修复与验证流程作为软件工程任务方案,提醒复杂Agent架构需要与强基线比较。它不证明动态Agent永远没有价值。
简单流程更容易归因和调试,但可能不适合开放探索或高度动态环境。选择取决于任务结构而非名称。
简单强基线先做出来
输入与条件。Bug可通过定位、补丁、测试三步解决。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1基线 | 固定三步流程 | 测实际成功与成本。 |
| 2复杂方案 | 增加计划/多Agent/记忆 | 在同任务上比较。 |
| 3保留条件 | 复杂方案有可重复净收益 | 否则保留简单路径。 |
把过程连起来。Agentless式基线的价值是检验哪些自主机制真正必要。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:对一组局部Bug分别运行固定流程和动态探索,记录成功、工具轮次和返工,分析差异来自哪里。
完成标准是能够保留真正带来收益的复杂性,并删除没有证据支持的编排层。
拓展阅读目录事实依据 [S128] · 练习与工程推导为本书独立编写。
C10.12 · 多Agent对话框架
对应资料:AutoGen
AutoGen通过多Agent对话与配置支持协作。消息交换可以分工,也会引入循环、重复与共享错误前提等风险。
不同角色表达不同意见,不代表证据独立。若都依赖同一错误摘要,一致或辩论都不能自动产生真相。
多Agent对话会循环赞同
输入与条件。A说方案可行,B复述认可,A把认可当新增证据。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1第一轮 | 只有原始猜测 | 没有外部验证。 |
| 2循环 | 赞同在角色间传播 | 证据数量并未增加。 |
| 3打断 | 要求测试或具体反例 | 把对话转为有信息增量的行动。 |
把过程连起来。对话次数不是证据数量。
边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。
依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。
原创练习:给两个角色不同但可核验的材料,再比较共享同一材料的情况。要求结论回到证据,而不是按投票决定。
完成标准是明确发言、控制、停止与验证规则,不把持续对话当成持续进步。
拓展阅读目录事实依据 [S129] · 练习与工程推导为本书独立编写。