前言¶
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