DSH入门

第 6 章 工具与技能:Agent 的手和脑

约 4 分钟 · 2,157 字 · 13 个小节

本章你会学会

  • 认识 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 不会一上来把几千行塞进上下文。它通常:

  1. 先只加载名称和描述;
  2. 任务匹配时,加载 SKILL.md;
  3. 需要细节时,再读 references/ 或运行脚本。

这就是为什么 Skill 可以很多,但不会瞬间撑爆上下文。


6.6 怎么用 Skill

通常有两种方式:

  1. 自动匹配:Agent 根据任务描述选择相关 Skill;
  2. 显式点名:你说“用 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 装一堆:只装当前需要的。
  • 不看工具结果:只看总结容易漏错。

马上试试

  1. 让 Agent 为一个任务写 3 步计划;
  2. 让它用 todo 跟踪执行;
  3. 让它只读搜索相关资料,不直接读整个目录;
  4. 让它用 present 交付一个最终文件;
  5. 问它:“你刚才用了哪些工具?哪些是只读的?”

小结

  • 工具分读、写、跑、搜、协作、计划、交付。
  • 先只读、再小步执行;看工具卡片。
  • 子代理/工作流适合拆任务,但不是免费。
  • Skill 是知识,Tool 是动作,Plugin 是运行时扩展。
  • present 是交付声明,不是上传。

第二部分练习

  1. 给你的测试工作区写一个 AGENTS.md,包含三条禁止事项。
  2. 新建一个 Session,让它只读 AGENTS.md 和 PROJECT.md,复述规则。
  3. 让 Agent 用 todo 完成一个三步任务,并在每步后更新。
  4. 问它当前有哪些 Skill 与任务相关,只列名称,不执行。
  5. 用 present 交付一个文件,观察卡片行为。

参考

  1. DeepSeek Harness 插件开发
  2. DeepSeek Harness GitHub 仓库

链接均为公开来源;产品行为可能随版本变化。

↑