DeepSeek Harness 工具清单:内置工具与执行流水线
2026-08-16 14:36:11阅读 4
工具是 agent 的手——没有工具它只能聊天,有了工具它能读文件、跑命令、搜网页、写代码。这一篇讲两件事:DSH 出厂自带哪些工具,以及每次工具调用背后经过的五道关卡。
内置工具一览
| 类别 | 工具 | 能干什么 |
|---|---|---|
| 文件 | read / write / edit / glob / grep | 读、写、改、找文件 |
| 命令 | bash / pwsh | 执行 shell 命令(Linux/macOS 用 bash,Windows 用 pwsh) |
| 网络 | web_search / web_fetch | 搜索信息、抓取网页 |
| 协作 | ask-user / todo / jobs | 向你提问、列任务清单、管理后台任务 |
| 智能体 | skill / subagent / workflow / goal / ralph | 加载技能、委派子代理、跑工作流、建目标 |
| 其他 | str-replace-editor / cordis | 文本编辑、DSH 自身插件操作 |
这些工具按需挂载——不同的 Agent Preset 挂不同的子集。这也是"一切皆插件":每个工具本身就是一个插件行,不想要哪个,配置里禁用即可(改法见 配置层与 patch:叠加规则详解)。
一次工具调用,五道关卡
agent 说"我要跑个命令",不是直接执行,而是先过流水线:
pre-execute → 允许/拒绝门禁(权限策略在这里把关)
guard → 单调守卫(只能拒绝不能放行)
execute → 真正执行(超时/重试/计量在此包装)
post-execute → 检查/替换结果、附加上下文
finalize → 最终面向模型的输出定稿
这套流水线的实际意义:
- 安全:pre-execute 和 guard 就是"拦路关卡",审批机制在这里生效——你在界面上看到的"是否允许执行"弹窗,来自这一层
- 可控:超时策略、结果大小限制都在流水线里执行,agent 等不到结果会得到明确报错而非无限挂起
- 可观测:每一步进出都有记录,会话日志里能看到完整轨迹
Code Mode:另一种工具形态
默认模式下,工具以"函数调用"形式呈现。DSH 还支持 Code Mode:把工具调用打包成代码执行(run_code 传输),agent 用写代码的方式批量操作。
适合的场景:大量重复操作、需要程序化逻辑的任务。切换方式由配置的 tools.mode 决定(native / code / both)。日常使用默认 native 即可,Code Mode 是给深度用户的高效模式。
实用认知:工具的边界就是 agent 的边界
- agent 只能做它有工具的事:没有浏览器工具,它就没法"打开网页"(只能抓取 HTML)
- 工具可以被限制作用域:比如某个会话只给文件工具不给命令工具(安全向配置)
- 第三方插件可以加新工具:这是 插件开发:从零编写第一个插件 的核心价值
常见问题
| 问题 | 解答 |
|---|---|
| 为什么 agent 说"没有这个工具"? | 当前预设没挂载它,或已被配置禁用 |
| 工具调用超时了? | 每个工具有超时预算,超时会报错而不是挂死 |
| 想限制 agent 只读文件不跑命令? | 用自定义预设只挂文件工具(见创建 Agent Preset:如何组合能力) |
接下来读什么
- 把知识打包成技能给 agent → Skill 技能:SKILL.md 格式与使用
- 工具执行的权限边界 → 沙箱与安全:三种权限模式
- 自己写一个新工具 → 插件开发:从零编写第一个插件
← 上一篇:3.4 AGENTS.md:项目指令文件怎么写 | 下一篇:3.6 Skill 技能:SKILL.md 格式与使用 →
↑ 返回 教程总目录




