DeepSeek Harness 内置工具有哪些?DSH plugin 工具目录与工具 schema
DeepSeek Harness 没有一份写死的「内置工具清单」——工具由各插件注册到 ctx.tools,官方工具目录(tool-catalog)列出已发布插件提供的全部面向模型工具及其 name、description 与 JSON Schema parameters(来源)。 这篇讲清工具从哪来、常见的有哪些、以及怎么按 profile 查与加。
DeepSeek Harness 内置工具从哪来:插件与 ctx.tools
工具不是内核写死的函数,而是插件向 ctx.tools 注册的定义;工具流水线在 agent 循环里按这些定义分派调用(来源)。 关键机制:
- 注册与分派 — 一个已注册的工具由
ToolSchema、必需的规范输出声明、execute函数与宿主专用调度元数据组成。预期:模型只看到 schema,执行细节留在宿主侧。 - 模型可见性受允许列表控制 — 注册表的
schemas()通过显式允许列表构建面向模型的ToolSchema[];output、execute、projectContent、timeoutMs、presentCall等绝不会泄漏到模型请求中。预期:工具能做什么与模型看到什么是两回事。 - 名称可以是加载时配置 — 例如
tool-subagent的toolName,因此同一插件在不同部署里可能以不同名称或额外名称提供。预期:对照官方目录时要结合你 profile 的实际配置。
常见内置工具清单(按来源包分组)
官方工具目录覆盖 packages/*/tool-* 下已发布的产品工具,各工具以其默认配置启动列出(来源)。 常见的有这些:
- 文件与搜索 —
read、write、edit、read_image(来自dsh-tool-fs),glob、grep(来自dsh-tool-fs-search)。预期:读写与检索项目文件的主力。 - 命令执行 —
bash(Linux / macOS)、pwsh(Windows),另有持久 shell 版本。预期:跑构建、测试与脚本。 - 精确编辑 —
str_replace_editor。预期:按文本片段替换,改动更可控;注意它在极简 profile 里默认不挂载,见《DeepSeek Harness 怎么用 Python 调用》。 - Web 能力 —
web_search、web_fetch。预期:检索与抓取网页内容。 - 交互与计划 —
ask_user_question、todo_write。预期:向你提问、维护任务清单。 - 目标管理 —
create_goal、get_goal、update_goal。预期:管理长目标的状态。 - 调度 —
schedule_create、schedule_list、schedule_update、schedule_delete。预期:会话内提醒,用法见《DeepSeek Harness 定时任务怎么开》。 - 技能与子代理 —
skill,以及 subagent 的委派与控制工具。预期:加载技能、把工作委派出去,见《DeepSeek Harness 子代理怎么用》。 - 后台任务 —
job_list、job_output、job_kill等。预期:查看与控制长任务,见《DeepSeek Harness 长任务怎么办》。 - MCP 资源与代码智能 —
list_mcp_resources、read_mcp_resource、list_mcp_resource_templates,以及lsp。预期:读取 MCP 服务器资源、做语言服务查询。
怎么查一个 profile 实际暴露了哪些工具、怎么加工具
工具集随 profile 组合变化;官方目录用默认配置启动各工具插件,如果某配置字段是必填项且没有默认值,生成器必须作出选择并在对应包说明里记录(来源)。 查询与扩展:
- 先看官方目录 — 到工具 Schema 目录按包名与工具名查
name、description与parameters。预期:先确认这个工具是否存在、参数是什么。 - 再对照你的 profile — 你实际能用的工具取决于该 profile 加载了哪些插件、以及权限策略。预期:官方目录里有的工具,你的 profile 没装对应插件就用不上。
- 要加工具就装插件 — 让提供该工具的插件进入你的配置树即可。预期:可先在 DSH Plugin Hub 浏览社区插件,再按 profile 安装。
- 验证 — 加完后发一条会触发该工具的任务。预期:能从会话里看到它被调用。
注意事项与常见问题
- 别把它当固定清单:工具随插件与 profile 变化,官方目录也会随版本更新。
- 名称可能被配置改写:部署可给工具起别名,排查问题时以你 profile 的实测为准。
- 能执行 ≠ 模型可见:宿主专用元数据不会进模型请求,别用「模型没看到」推断工具不存在。
- 想知道有哪些插件提供工具:见《DeepSeek Harness 插件能配哪些项》。
- 极简 profile 工具很少:
sdk-minimal默认只有持久 shell,需手动加回文件系统与编辑器。
常见问题
DeepSeek Harness 没有写死的清单:内置工具由各插件注册到 ctx.tools,官方工具目录(tool-catalog)列出已发布插件提供的全部面向模型工具。常见的有文件类的 read、write、edit,搜索类的 glob、grep,命令类的 bash、pwsh,以及 web_search、web_fetch、skill、todo_write 等。
DeepSeek Harness 的工具由插件提供,注册进 ctx.tools 后由工具流水线在循环里分派调用。工具注册表用显式允许列表构建面向模型的 ToolSchema[],output、execute 等仅供宿主使用的元数据不会泄漏到模型请求里。
DeepSeek Harness 的工具目录英文源文件由 scripts/gen-tool-catalog.ts 生成,生成器会在真实上下文里启动每个工具插件并读取 ctx.tools.schemas(),因为工具 schema 无法只靠静态分析确定;完整性守卫会 glob 匹配 packages/*/tool-*,遗漏即失败。
因为在 DeepSeek Harness 里注册的工具名称可以是加载时配置,例如 tool-subagent 的 toolName,所以部署可能以不同名称或额外名称提供某个包;若存在随产品发布的别名,官方会在对应包的说明里记录。
给 DeepSeek Harness 加工具就是装提供该工具的插件:插件把工具注册进 ctx.tools 后即可用。可先在 DSH Plugin Hub 浏览社区插件,再按 profile 安装并验证。
相关术语
- ctx.tools
- ctx.tools 是 DeepSeek Harness 的工具注册表服务,插件把工具定义注册到这里,模型请求里能看到哪些工具由它的 schemas() 通过显式允许列表决定。— DeepSeek Harness 官方文档 - 工具子系统
- ToolSchema
- ToolSchema 是工具面向模型的协议类型,包含 name、description 与 JSON Schema parameters,随模型请求一起声明;它由工具注册表按允许列表构建。— DeepSeek Harness 官方文档 - 工具子系统
- tool-catalog
- tool-catalog 是 DeepSeek Harness 官方生成的工具 Schema 目录,列出已发布插件向 ctx.tools 提供的所有面向模型工具,生成器会实际启动各工具插件读取 schema。— DeepSeek Harness 官方文档 - 工具 Schema 目录
- ToolDefinition
- ToolDefinition 是一个已注册工具的完整定义,含 ToolSchema、规范输出声明、execute 函数、宿主专用调度元数据,以及可选的内容回调与 UI 展示函数。— DeepSeek Harness 官方文档 - 工具子系统
来源
- DeepSeek Harness 官方文档 - 工具 Schema 目录· deepseek-harness
- DeepSeek Harness 官方文档 - 工具子系统· deepseek-harness