前言¶
DeepSeek Harness(DSH)會把工作區裏的指令文件注入智能體會話:用戶全局的 ~/.dsh/AGENTS.md,以及沿項目根到工作目錄鏈路上的 AGENTS.md、CLAUDE.md 與對應的 .local.md 覆蓋層。日常改這些文件通常要切到編輯器或終端,和 Web 設置、字節預算、加載器發現規則也對不上號。下面介紹社區插件 dsh-agent-instructions-editor(維護者 MaRi23333),它在 DSH Web GUI 的設置裏增加「個性化指令」頁,對標 Codex 式「個性化」設置,用同一套發現規則集中查看與保存。
這是什麼¶
dsh-agent-instructions-editor 是 DSH 客戶端類插件(npm 包名 dsh-agent-instructions-editor,當前 README 標明版本 0.2.3,面向 DSH 0.2,適配基線 0.2.0-rc.2)。它在 Settings 側欄貢獻 「個性化指令」 入口,由全局編輯器、項目鏈瀏覽器和覆蓋層編輯組成,並顯示字節預算與「新會話生效」提示。桌面客戶端沿用同一 Web 插件界面,無需單獨桌面包。
項目地址:GitHub — MaRi23333/dsh-agent-instructions-editor;目錄頁:skillhub.cn/plugins/MaRi23333/dsh-agent-instructions-editor。本插件爲獨立社區項目,與 DeepSeek 無隸屬或背書關係;DSH 生態以「一切皆插件」爲方向,skillhub 等目錄爲社區站點,並非官方應用商店。
核心功能¶
全局指令¶
設置頁提供常駐編輯器,讀寫 ~/.dsh/AGENTS.md,並顯示字節預算(默認 65,536 字節)。
項目指令鏈¶
項目指令區默認摺疊。先通過項目選擇器選定目標:自動發現來自工作區註冊表與最近會話目錄,也可手動粘貼路徑。選定後按「項目根 → 工作目錄」逐層展示,每一層有四個候選槽位:
AGENTS.mdCLAUDE.mdAGENTS.local.mdCLAUDE.local.md
已存在的文件可點擊進入編輯;不存在時可新建。發現邏輯與 @deepseek-ai/dsh-agent-instructions 加載器一致:marker 上溯、祖先鏈、候選探測、按目錄內容 sha1(trim) 去重(重複項在 UI 中帶 ⧉ 徽標),字節合計與預算條同樣遵循加載器規則。
保存與安全寫入¶
寫入側做了約束,避免誤寫路徑與靜默覆蓋:
- 文件名白名單(上述四個候選)。
- 目錄
realpath必須落在已註冊項目的「項目根 → 工作目錄」祖先鏈內。 - mtime 衝突檢測:若磁盤上的修改時間早於保存請求所帶基準,返回 409,可選擇重新加載或覆蓋。
- 臨時文件 + 原子
rename替換;同一dsh web進程內對同一文件的寫入在內存隊列中串行化。
保存成功後,界面會提示建議新建會話:編輯器不會直接替換已有會話裏已加載的指令;已有會話何時重新讀取由宿主加載器決定。
宿主 HTTP 與界面¶
Host 半區提供路由 /agent-instructions/api/{projects,chain,file};手動註冊的項目列表存在本插件 profile 條目中,經 DSH 0.2 的 SettingsForms 讀寫,並帶 revision 衝突檢測。Client 半區向 settings.section 貢獻設置頁,編輯器爲純 textarea(無額外 UI 依賴)。README 說明當前界面文案以硬編碼中文爲主(locale 字典已註冊,供後續接入 t())。
安裝與啓用¶
桌面客戶端與 Web 實例的插件安裝、啓用狀態相互獨立,請按實際運行環境操作。環境要求:DSH 0.2、Node.js 22+、與宿主版本匹配的 DSH CLI;npm 包與 GitHub 發佈均含 lib/ 構建產物,一般無需本地構建。
仍使用 DSH 0.1 的用戶應保留插件 0.1.2(npm 指定 dsh-agent-instructions-editor@0.1.2),不要直接升級到 0.2.x 系列。
桌面客戶端(推薦)¶
- 打開左側 「插件 / Plugins」,點擊 「添加插件 / Add plugin」。
- 輸入 npm 包名
dsh-agent-instructions-editor@latest並確認安裝。 - 安裝完成後點擊 「立即啓用 / Enable now」(若關閉完成彈窗,插件會留在已安裝列表但未啓用)。
- 僅在界面提示需要重啓時,通過菜單 Quit 完整退出後重新打開(Windows / macOS 上關窗口可能僅隱藏到後臺)。
- 打開 Settings,確認側欄出現 「個性化指令」。
備選:在桌面配套 CLI 已註冊且客戶端已 Quit 的前提下:
dsh plugin --profile desktop add dsh-agent-instructions-editor@latest
dsh plugin --profile desktop list
然後重新啓動桌面客戶端。外部 npm 安裝的普通 dsh CLI 不能管理 desktop profile。
Web 實例¶
優先使用與啓動該 Web 實例相同版本的 dsh CLI:
dsh plugin --profile web add dsh-agent-instructions-editor@latest
停止當前進程後重新運行 dsh web,並刷新瀏覽器頁面。
npm 不可用時,可按 README 從 GitHub 固定 tag 安裝:
dsh plugin --profile web add github:MaRi23333/dsh-agent-instructions-editor#v0.2.3
若用 npx 執行安裝,版本應與 Web 宿主一致(例如 npx @deepseek-ai/dsh@0.2.0-rc.2 ...)。從 GitHub 或本地目錄切回 npm 時,請帶上 @latest,避免已有安裝被判定爲已滿足而跳過更新。
典型用法¶
- 安裝並啓用插件,重啓宿主(按界面提示或 README 要求)。
- 進入 Settings → 個性化指令。
- 在 全局指令 區域編輯
~/.dsh/AGENTS.md,留意預算條是否接近默認 65,536 字節上限。 - 展開 項目指令,從選擇器選中目標項目(或粘貼項目根路徑並完成註冊)。
- 在項目鏈每一層點擊已有文件編輯,或對空槽位新建四個白名單文件名之一。
- 保存後若收到 409,說明文件在外部被修改:先 重新加載 合併內容,或確認後 覆蓋。
- 新建會話 後再驗證智能體是否按新指令行爲;不要假設當前會話會熱更新。
適用場景與注意¶
適合誰:需要在 DSH 內統一管理全局與多項目指令鏈、且希望 UI 與官方加載器發現規則一致的用戶;習慣 Codex 式「個性化」集中編輯場景的開發者也可對照使用。
運行與信任:插件以當前 DSH 進程權限運行,可讀寫本機 loopback 上的 API 與所允許路徑下的指令文件。安裝前建議閱讀 源碼倉庫 與 MIT 許可證,理解 Host 校驗(loopback Host 頭、POST 的 JSON 與同源 Origin)及寫入邊界。
已知限制(摘自 README):
- 跨進程無文件鎖;外部編輯器與本插件同時保存同一文件時,理論上存在極小競態,可能與常規編輯器一樣丟失一次外部更新。
- 若修改了
dsh-base的 agent-instructions 配置(自定義 markers、候選或預算),編輯器展示會隨加載器默認值漂移。 - 指令文件爲 symlink 時,讀取跟隨目標;寫入通過 rename 替換 symlink 本身,不會寫穿目標。
結尾¶
dsh-agent-instructions-editor 把 DSH 指令文件體系搬進設置頁:全局 AGENTS.md、項目鏈四件套與字節預算一屏可見,保存帶路徑白名單與 mtime 衝突提示。按需從目錄頁或 GitHub 安裝對應 profile 的包,啓用後在 個性化指令 中編輯,並通過新建會話確認生效。