第 6 章 工具与技能:Agent 的手和脑
本章你会学会
- 认识 Agent 常用工具的分类;
- 看懂工具调用卡片和审批;
- 用计划、待办、子代理处理多步任务;
- 理解 Skill 是什么,和 Tool / Plugin 的区别;
- 正确使用
present; - 避免“工具用太多”和“技能装太多”。
6.1 工具的分类
你不需要记住每个工具名,只要知道它们大概分成几类。
| 你想做什么 | 工具类型 | 例子 |
|---|---|---|
| 看文件 | 读 | 读文件、列目录、搜索内容 |
| 改文件 | 写 | 新建、覆盖、局部编辑 |
| 跑程序 | 执行 | 终端命令、测试、构建 |
| 查资料 | 搜索 | 网页搜索、抓取网页 |
| 拆任务 | 协作 | 子代理、工作流 |
| 管理进度 | 计划 | 计划模式、待办清单、目标 |
| 交付 | 交付 | present |
| 问你 | 交互 | 提问、确认 |
一个原则
能只读,就先只读;能小步,就不要大步。
6.2 工具卡片与审批
每次工具调用,界面通常会显示:
- 工具名;
- 参数(例如文件路径、命令);
- 结果(成功/失败/输出);
- 有时会要求你批准。
你要重点看:
- 路径对不对;
- 命令有没有破坏性;
- 输出有没有异常;
- 它有没有跳过你的约束。
拒绝也是一种能力
如果它要做你没允许的事:
停。这一步不要执行。
先解释你为什么需要这个操作,以及有没有只读替代方案。
6.3 计划与待办
复杂任务建议先计划。
计划模式
让 Agent 先给出步骤,不执行:
先进入计划模式。给我一个 5 步以内的计划,说明每步要读/写什么、怎么验证。
我确认后再执行。
待办清单
执行阶段可以让它维护一个 todo:
请把任务拆成 todo,完成一项就更新一项。
不要一次开始所有项。
好处:
- 你能看到进度;
- 它不容易漏步骤;
- 长任务更容易恢复。
6.4 子代理与工作流
子代理(subagent)
子代理是一个独立的 Agent,有自己的上下文。适合:
- 独立的调研;
- 并行的资料整理;
- 让主 Agent 不被大量中间结果淹没。
你可以说:
派一个子代理去调研这三个链接,只返回要点和来源。
主任务继续做本地文件整理。
注意:
- 子代理也要消耗模型调用;
- 它的结果可能不准确;
- 父 Agent 要负责验收。
工作流(workflow)
工作流是用脚本编排多个子代理,适合批量、并行、多阶段任务。
对 0 基础用户,先不用碰。等你熟悉子代理,再考虑。
6.5 Skill 是什么
Skill 是一份“操作手册”,通常是一个文件夹,里面有 SKILL.md。[1]
它告诉 Agent:
- 什么时候用这个技能;
- 步骤是什么;
- 有哪些坑;
- 可以读哪些参考资料;
- 可以运行哪些脚本。
Skill 和 Tool 的区别
| Tool | Skill | |
|---|---|---|
| 本质 | 可执行动作 | 知识与流程 |
| 例子 | 读文件、跑命令 | “如何做一次代码审查” |
| 谁执行 | Harness | Agent 阅读后按步骤做 |
| 上下文 | schema 常驻 | 按需加载 |
Skill 和 Plugin 的区别
- Skill 是知识,通常不直接提供新工具;
- Plugin 是运行时扩展,可以提供新工具、服务、界面;
- 有些 Plugin 会自带 Skill。
渐进披露
好的 Skill 不会一上来把几千行塞进上下文。它通常:
- 先只加载名称和描述;
- 任务匹配时,加载
SKILL.md; - 需要细节时,再读
references/或运行脚本。
这就是为什么 Skill 可以很多,但不会瞬间撑爆上下文。
6.6 怎么用 Skill
通常有两种方式:
- 自动匹配:Agent 根据任务描述选择相关 Skill;
- 显式点名:你说“用
xxx这个 Skill”。
如果你知道有合适的 Skill:
请使用 `code-review` 这个 Skill 来审查这次改动。
先读它的 SKILL.md,再按步骤执行。
如果你不确定:
当前有哪些 Skill 和我的任务相关?先列出来,不要直接执行。
装 Skill 的注意事项
- 只装可信来源;
- 看它有没有脚本、会访问什么;
- 不要把密钥写进 Skill;
- 装太多会占用元数据上下文;
- 版本要跟 CLI/插件对齐。
6.7 present:交付文件
当任务产出是文件时,Agent 可能调用 present。[2]
准确含义:
把已经存在的文件声明为最终交付物,让界面生成卡片,用户可以打开。
它不创建、不上传、不复制内容;只记录路径和说明。
你可以要求:
完成后用 present 交付最终文件,最多 2 个,不要把所有中间文件都 present。
6.8 工具使用的常见误区
- 工具越多越好:不,工具多会增加选择和上下文成本。
- 让 Agent 一次读整个目录:先搜索,再读相关文件。
- 子代理当免费劳动力:也要花 token,也可能错。
- Skill 装一堆:只装当前需要的。
- 不看工具结果:只看总结容易漏错。
马上试试
- 让 Agent 为一个任务写 3 步计划;
- 让它用 todo 跟踪执行;
- 让它只读搜索相关资料,不直接读整个目录;
- 让它用
present交付一个最终文件; - 问它:“你刚才用了哪些工具?哪些是只读的?”
小结
- 工具分读、写、跑、搜、协作、计划、交付。
- 先只读、再小步执行;看工具卡片。
- 子代理/工作流适合拆任务,但不是免费。
- Skill 是知识,Tool 是动作,Plugin 是运行时扩展。
present是交付声明,不是上传。
第二部分练习
- 给你的测试工作区写一个
AGENTS.md,包含三条禁止事项。 - 新建一个 Session,让它只读
AGENTS.md和PROJECT.md,复述规则。 - 让 Agent 用 todo 完成一个三步任务,并在每步后更新。
- 问它当前有哪些 Skill 与任务相关,只列名称,不执行。
- 用
present交付一个文件,观察卡片行为。
参考
链接均为公开来源;产品行为可能随版本变化。