用 dsh-specs 給 DeepSeek Harness 二次開發備一份規格快照

前言

DeepSeek Harness(簡稱 DSH)是 DeepSeek AI 開源的智能體運行框架,核心理念是「一切皆插件」:模型適配器、會話、工具、審批、持久化和網頁界面,都通過 Cordis 插件樹組合起來。官方倉庫目前仍處於 developer preview,文檔寫明會有破壞性變更。在這種節奏下做長期二次開發,常見麻煩不是找不到源碼,而是上下文太大:產品邊界、模塊歸屬、擴展點和質量約束散落在上游 docs/、生成目錄和源碼註釋裏;把整倉丟給 Codex 或 Claude Code,既容易讀偏,也容易把文檔聲明當成已經實現的行爲。

dsh-specs 針對的就是這件事。它不提供新的運行時工具,而是把某一固定上游提交上的產品、架構、運行流程、擴展點與質量約束,整理成適合智能編碼工具按需讀取的規格庫。下面按社區目錄頁、倉庫 README、AGENTS.md、來源鎖文件和上游官方倉庫交叉覈對後說明:它是什麼、覆蓋哪些文檔、怎麼裝、以及落地前必須守住的證據邊界。

這是什麼

dsh-specs 的倉庫標題是「DSH 智能開發規格庫」,由 showjiangnan 維護,採用 MIT 許可證(版權聲明沿用上游 DeepSeek)。社區插件目錄把它歸在「工具與能力」。GitHub 倉庫當前星標爲 8(目錄頁仍顯示 6,以倉庫頁面爲準)。package.json 中的版本號是 0.1.0

它服務兩類工作:

  • 基於 DSH 做長期二次開發
  • 爲 DSH 開發新的插件、能力提供方和集成服務

倉庫明確寫出能力邊界:這裏不包含 DSH 產品源碼,也不能單獨構建或運行 DSH。文檔是從上游源碼倉庫的固定 commit 提取並複覈的規格快照;開始實現前,編碼工具仍須在匹配的源碼 checkout 中核對代碼、測試和配置。

當前來源基線記錄在 source-lock.json 和《來源與同步》中:

項目
上游倉庫 deepseek-ai/deepseek-harness
公開上游基線 47f943859bef60e4160492346772ded9b24f765a
文檔整理提交 e72527180a3ccde6378944b021b9440572ab17e4
提取日期 2026-08-14

需要區分兩件事:DeepSeek Harness 本體由 DeepSeek AI 維護;deepseek-harness-plugin.com 是獨立的社區插件目錄,與 DeepSeek / 幻方沒有官方從屬關係,不能把它當成官方應用商店。

核心功能

給編碼工具準備的最短接管路徑

倉庫把「先讀什麼」寫成固定順序,避免一次灌入全部文檔。建議把規格庫與源碼倉庫放在同一個工作區:

工作區/
├── deepseek-harness/   # DSH 源碼
└── dsh-specs/          # 本規格庫

然後讓工具依次讀取:

  1. AGENTS.md:本倉庫的讀取、證據和維護規則
  2. docs/開發/智能編碼工具接管指南.zh.md:按任務控制上下文範圍
  3. ARCHITECTURE.md:系統級短入口
  4. docs/文檔導航.zh.md:進入產品、前端、後端、質量或具體子系統

Claude Code 會通過根目錄的 CLAUDE.md 讀取同一份代理說明(該文件內容是指向 AGENTS.md);支持 AGENTS.md 的工具可以直接從根目錄建立上下文。

給 Codex 或 Claude Code 的首條指令,倉庫給出的原文是:

先閱讀 dsh-specs/AGENTS.md 和 dsh-specs/docs/開發/智能編碼工具接管指南.zh.md。
本次任務是:<任務>。
以 dsh-specs 作爲導航和約束,以 deepseek-harness 當前源碼與測試作爲實現事實;
區分已驗證事實、文檔聲明和推斷,並引用具體文件與符號。

按區域劃分的文檔地圖

文檔文件使用中文語義名;無 .zh 後綴的文件保存英文內容,.zh.md 保存簡體中文,配套 .i18n.yaml 記錄兩種語言最後一次確認一致時的內容哈希。

區域 回答的問題
docs/產品/ DSH 爲誰解決什麼問題,當前承諾和假設是什麼
docs/架構/ 系統如何組合,模塊如何依賴,運行時怎樣流動
docs/前端/ 瀏覽器端如何啓動、管理狀態、擴展和渲染
docs/後端/ Host 如何啓動、處理請求、持久化並隔離執行
docs/開發/ 如何搭建源碼、理解框架並開發插件
docs/參考/ 服務、事件、類型、工具和配置的查閱材料
docs/質量/ 測試、安全、可靠性和變更證據要求
docs/規劃/ 有邊界的進行中計劃與仍有價值的完成記錄

AGENTS.md 還規定:每項事實只有一個歸屬文檔;其他頁面只保留摘要和鏈接。不要把教程、參考目錄、計劃和決策理由混在同一頁面。

規格與源碼的證據邊界

這是這份倉庫最關鍵的約束,也寫進了 AGENTS.md 和《來源與同步》:

  • 規格固定到上述公開上游 commit,提供方向、術語、歸屬和約束,但不替代目標 checkout
  • 源碼、測試、配置、生成器和完整決策歷史仍歸上游倉庫;本倉庫未收錄的內容用固定到該 commit 的 GitHub 鏈接引用
  • 對當前基線:源碼與已檢入配置確定已實現行爲,測試確定已執行的案例,生成目錄提供由源碼推導的清單,當前狀態文檔解釋這些事實如何組合
  • 若實際開發用的是另一個上游 commit,必須把差異列爲待驗證項,不能把本倉庫文檔當作比當前代碼更高的事實來源
  • 構建、測試、類型檢查、生成 freshness(生成結果是否仍與源碼一致)和運行驗證,必須在上游源碼 checkout 中完成;本倉庫的綠色文檔檢查不能替代它們

插件開發時要先定位的三條接縫

接管指南把能力接縫寫成「抽象服務、具體實現和消費代碼」的完整連接。新增插件或能力方時,應先定位三種角色:

  • Service Definition:定義能力接口
  • Service Provider:實現能力
  • Consumer:使用能力

應複用公共服務方法和事件,不要直接導入具體 provider,也不要修改智能體循環。對每個插件,指南要求確定:Cordis 插件入口和經過驗證的配置;它依賴或貢獻的服務與事件;註冊、釋放和失敗行爲;模型/工具 JSON、文件、進程、隊列和遠程調用的信任邊界;模型可見數據是否記錄爲會話事件;以及用來證明組合後行爲的包測試、可運行示例、無密鑰快照和文檔。

ARCHITECTURE.md 對運行時的概括是:CLI 根據 profile(具名運行組合)疊加 bundle(可安裝的配置層),Cordis 再把這些配置加載爲插件樹。新增能力通常應掛接既有服務或事件。

文檔自身的離線校驗

本倉庫的校驗器只使用 Node.js 標準庫,不需要安裝依賴:

npm run docs:check
git diff --check

它檢查中文語義路徑、Markdown 本地鏈接與錨點、雙語配對結構、配對哈希和文本結尾。package.json 裏對應的腳本是 node scripts/校驗文檔.mjs

安裝與啓用

社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行:

dsh plugin add github:showjiangnan/dsh-specs

如需可復現安裝,目錄頁說明可以固定 commit 哈希:

dsh plugin add github:showjiangnan/dsh-specs#commit

#commit 換成實際的 Git 提交哈希即可。

需要同時看到的是:當前倉庫是文檔工程。根目錄能看到 AGENTS.mdARCHITECTURE.mddocs/source-lock.json 和校驗腳本,未見常見的 plugin.json 清單文件;README 描述的用法是把規格庫放到源碼旁邊,供 Codex、Claude Code 等工具讀取,而不是給正在運行的 dsh 進程增加一套新工具。目錄頁仍提供上面的 dsh plugin add 命令,但沒有另作運行時能力說明。若目標是二次開發時的規格導航,更貼近倉庫原文的做法是克隆到工作區,並讓編碼工具從 AGENTS.md 起步。

典型用法示例

下面幾類任務,接管指南給出了「主要上下文」和「應檢查的源碼證據」。規格庫只負責導航,證據仍在 deepseek-harness 裏。

任務 主要上下文 應檢查的源碼證據
修改 DSH 核心行爲 架構總覽、運行機制、後端流程 所屬核心包、agent loop、會話事件、聚焦測試
新增 provider 或 adapter 能力邊界、後端執行、子系統參考 Service Definition、已有 provider、配置 schema、生命週期測試
新增工具或插件 框架基礎、擴展手冊、工具參考 Consumer 插件、註冊 effect、渲染意圖、可運行示例和快照
擴展 Web 界面 前端架構、會話與渲染、界面擴展 Client 插件入口、遠程方法、共享狀態、渲染測試
修改持久化或協議 狀態與持久化、接口網關、可靠性與安全 版本常量、解析器、遷移、wire 測試、回滾行爲
修改文檔 文檔維護規則、來源與同步 所屬實現、生成器、雙語配對、文檔門禁

一個可復現的起步方式:

  1. 檢出與快照匹配的上游源碼,或至少記錄當前 checkout 的 commit
  2. dsh-specs 放在旁邊
  3. 把上一節的首條指令發給編碼工具,把 <任務> 換成具體目標,例如「爲 DSH 增加一個新的工具插件」
  4. 工具按接管指南進入 docs/開發/ 和相關子系統,再在源碼中核對符號與測試
  5. 實現與驗證只在 deepseek-harness 中進行;dsh-specs 這邊最多跑 npm run docs:check

倉庫還提醒:不要預先加載全部生成目錄。入口文檔說明事實歸屬;只有任務確定了所屬服務、事件、類型、工具或配置字段後,詳細參考才應進入上下文。

適用場景與注意事項

適合使用 dsh-specs 的情況大致是:

  • 要在 DSH 源碼上做持續二次開發,需要一份按模塊切開的規格入口
  • 要寫插件、能力提供方或集成服務,需要先弄清 Service Definition / Provider / Consumer 的接縫
  • 使用 Codex、Claude Code 等編碼工具,希望它們按任務加載最小上下文,而不是整倉掃描

不適合把它當成:

  • 可運行的 DSH 發行版或替代源碼 checkout 的安裝包
  • 會隨上游默認分支自動更新的「最新文檔」
  • 比當前代碼更高的事實來源

使用時還有幾條已經寫進倉庫或目錄頁的約束:

  1. 插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證;需要可復現安裝時,固定 commit 哈希。
  2. 快照不會自動跟隨上游默認分支。上游仍在 developer preview,官方 README 寫明會有兼容性破壞變更。實現時若源碼 commit 與 47f943859bef60e4160492346772ded9b24f765a 不同,先把差異記爲未知項。
  3. 生成頁必須先在匹配的上游 checkout 中運行生成器,再同步到本倉庫;禁止在 dsh-specs 裏手工改生成內容。
  4. 本倉庫不安裝運行時依賴,也不聲稱替代上游的構建、測試、類型檢查、生成 freshness 或 VitePress 門禁。

小結

dsh-specs 把某一固定上游提交上的 DSH 產品、架構、擴展點和質量約束,收成一份給智能編碼工具按需讀取的規格庫。它不包含源碼,也不能單獨跑起 DSH;價值在於把「先讀哪一頁、事實歸誰、證據在源碼的哪裏」寫成可執行的規則。對要在 DSH 上做長期二次開發或寫插件的人,可以把它和 deepseek-harness 放在同一工作區,從 AGENTS.md 和接管指南開始,再以當前源碼與測試爲準做實現。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-specs/

GitHub:https://github.com/showjiangnan/dsh-specs

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜