前言¶
DeepSeek Harness (DSH) 采取插件化架构。为了在智能体开发中提供受控的编程能力,同时避免对核心环境造成破坏,需要引入具备边界约束的专用工具。dsh-coding-tools 是一个 DeepSeek Harness 主机插件,由 leonardoxr 维护。它在不修改 DSH 核心代码的前提下,通过插件机制添加了受限的编码工具集。
核心功能¶
该插件提供以下四个核心能力,均运行在受控的安全沙箱中:
- code_read:提供 UTF-8 代码窗口,并附带精确的字节版本令牌(version tokens),确保读取的原子性。
- edit_ranges:支持原子化的“观察范围”编辑,并允许操作员配置审批流程。
- ast_grep:基于 AST(抽象语法树)的静态分析工具,通过文件快照运行,支持分页和只读进程隔离。
- lsp:提供持久的只读语言服务器查询,并使用受限的 JSON-RPC 协议通信。
安装与启用¶
在安装前,请确保环境满足以下要求:
* Node.js 22.19+ 或 24+
* DeepSeek Harness 0.1.1-rc.2 或兼容的公共服务契约
* 使用的 DSH Profile(如 Web Profile)需提供 tools、fs、sandboxPolicy、sandbox、approval、spillStore、subprocess 和 settings 组件
执行以下命令完成安装与注册:
pnpm install
pnpm check
dsh plugin --profile web add "C:\absolute\path\to\dsh-coding-tools"
安装后,DSH 会通过 cordis.patch.yml 将 dsh-coding-tools 插件行插入配置。安装主机插件后,需要重启 Web Profile 才能使更改生效。仅使用原始源码补丁无法完成包注册。
典型用法¶
代码读取与编辑¶
这是最核心的工作流,确保了编辑操作基于精确的版本快照:
- 调用
code_read,传入文件路径,以及可选的 1 索引偏移量 (offset) 和限制 (limit)。 - 保留返回的
version。 - 调用
edit_ranges,必须传入完全相同的文件、版本,且操作必须是非重叠的。 - 在只读会话中,如果编辑被拒绝,可重试一次,需在
justification中提供理由,并设置sandbox_permissions: workspace-write。沙箱提升需要单独的审批。
结构化搜索¶
调用 ast_grep 时,需提供以下参数:
* pattern:搜索模式
* paths:必须包含一个常规工作区文件
* language:必需的语言标识
* strictness:可选的严格性配置
* pageLimit:页码限制
* cursor:所有者作用域的光标
适用场景与注意¶
- 功能范围:在当前的安全首发版本中,
ast_edit和 DAP(调试器协议)调试功能有意未注册。 - 浏览器限制:浏览器打包版本仅限于“Coding tools”设置卡片中使用。
- Windows 兼容性:提供原生 Windows 兼容性开关(
allowWindowsPartialReadOnlyProcessConfinement)。启用该选项会降低进程隔离级别(使用受限令牌强制),但非 Linux 完全隔离的等价实现。在此模式下,FAT 类文件系统、可被所有人写入的 ACL 和 NTFS 硬链接可能削弱写隔离,且后端不隔离读取、网络访问或进程可见性。仅在对仓库和可执行文件完全信任的环境中使用。 - 配置要求:配置中的可执行路径必须是绝对路径。
- Profile 依赖:插件需要 Profile 提供完整的工具链和沙箱策略支持。
短结尾¶
dsh-coding-tools 为 DeepSeek Harness 提供了一套安全、受控的编码工具集。通过严格的版本令牌管理和沙箱限制,它能够在智能体开发中提供必要的代码操作能力,同时保持环境的安全边界。更多详情可查阅 GitHub 仓库或社区插件目录。
- GitHub: https://github.com/leonardoxr/dsh-coding-tools
- Catalog: https://www.skillhub.cn/plugins/leonardoxr/dsh-coding-tools