前言¶
DeepSeek Harness(DSH)在每個會話開始時,會把與 AGENTS.md 兼容的指令文件注入給 agent:一份用戶全局文件,加上按工作區解析出的項目鏈。平時改這些內容,往往要開外部編輯器或進終端,一次只對一個路徑動手,切換工作區時也容易漏改。
Agent Prompt(icrefin/dsh-agent-prompt)把同一套「Harness 實際會讀的文件」收進 GUI 左側邊欄的一個面板:左側是全局與各工作區的文件樹,右側是純文本編輯器,保存後寫下的字節就是下個會話 agent 會讀到的內容。維護者爲 icrefin,在 SkillHub 目錄中歸類爲客戶端插件;當前發佈版本爲 v0.1.0,面向 dsh 0.2.0-rc.2 生態。
這是什麼¶
一句話:在 DeepSeek Harness 圖形界面裏,集中編輯用戶全局與各工作區對應的 AGENTS.md,路徑解析規則與官方包 @deepseek-ai/dsh-agent-instructions 一致。
插件不提供 Loader 配置項,也沒有獨立設置頁——磁盤上的文件本身就是狀態。
核心功能¶
界面與入口¶
- 側邊欄圖標欄新增一行 Agent Prompt,位置在 Schedules 正下方(
sidebar.panellist,id: 'agentPrompt',order: 11)。 - 點擊後打開 Agent Prompt 主頁面:左側樹列出 GLOBAL(User-global) 與每個已註冊 WORKSPACES 節點,帶工作區過濾;右側爲等寬字體的純文本編輯區(無 Markdown 預覽、無語法高亮)。
- 每個節點展示解析後的絕對路徑;文件尚不存在時標記爲
not created,保存時會創建文件及缺失的父目錄。
編輯哪些文件¶
| 作用域 | 解析規則 |
|---|---|
| 用戶全局 | $DSH_HOME/AGENTS.md,未設置時回退到 ~/.dsh/AGENTS.md(空字符串的 $DSH_HOME 視爲未設置) |
| 某個工作區 | 從已註冊工作區目錄向上查找,直到第一個含 .git 的祖先目錄;目標文件爲 <該目錄>/AGENTS.md。若一路無標記,則止於工作區目錄本身 |
Monorepo 中若工作區目錄與 Git 倉庫根不一致,樹節點顯示的是倉庫根,而不是包目錄。
範圍說明: 面板只提供 AGENTS.md。加載器在項目鏈各層還支持 CLAUDE.md、AGENTS.local.md、CLAUDE.local.md,本插件刻意不編輯這些文件。
編輯器操作¶
| 操作 | 快捷鍵 / 說明 |
|---|---|
| Save | Ctrl+S(macOS 爲 ⌘S),全頁有效;草稿與磁盤一致前按鈕禁用 |
| Reload | 丟棄草稿並重新讀盤;有未保存修改時會確認 |
| Undo / Redo | 系統原生撤銷;本地歷史,連續輸入摺疊爲一步 |
| Wrap | 軟換行開關,偏好保存在 localStorage |
切換文件或關閉頁面前,若有未保存修改會提示。剪貼板依賴系統快捷鍵(Ctrl+C / Ctrl+V 等),面板不提供重複按鈕。
宿主 HTTP API(供集成或排查)¶
路由註冊在 ctx.webServer,並帶僅限迴環訪問限制;寫操作會改寫 agent 讀取的指令文件,不宜在暴露於局域網的 dsh web 部署中開放。請求體上限爲 4 MiB。
GET /api/agent-prompt/tree
GET /api/agent-prompt/file?key=global|ws:<workspaceId>
POST /api/agent-prompt/file { key, content }
key 爲 global 或 ws:<workspaceId>,工作區 id 必須已在 DSH 註冊;未知 id 返回 404。
安裝與啓用¶
桌面 profile 由 Electron 應用管理,不能用 dsh plugin add 安裝(該命令會拒絕此 profile)。應通過 Settings → Plugins(或插件管理器)添加本地打包產物。
從源碼構建並打包:
pnpm install
pnpm build # tsc -> lib/, tsdown -> lib/client.js
npm pack --pack-destination dist # dist/dsh-agent-prompt-0.1.0.tgz
在 Plugins 頁面添加 dist/dsh-agent-prompt-0.1.0.tgz。bundle 會寫入 profile 的 dsh.profile.bundles;cordis.patch.yml 掛載宿主側,dsh.client manifest 加載瀏覽器側。
運維上兩點:
- 同一版本號重裝不會替換已解壓內容。 若在同一版本下重新構建了 tarball,需先從 profile 移除該 bundle 再安裝,或提高
package.json中的版本號。 - 首次安裝通常無需重啓;之後若改動涉及宿主側路由等,需重啓 DSH 進程。 瀏覽器 bundle 會隨 revision 熱更新,宿主 ESM 在進程啓動時加載,與
@deepseek-ai/dsh-hmr文檔描述一致。若條目報failed to import,可嘗試重啓。
構建環境要求 Node >= 22.17.0(見倉庫 package.json 的 engines)。
典型用法¶
- 啓動已安裝插件的 DSH 桌面應用,在左側圖標欄選擇 Agent Prompt。
- 在樹中選擇 User-global(例如
~/.dsh/AGENTS.md)或某個工作區節點,在右側編輯通用或項目級 agent 指令。 - 按 Save 或
Ctrl+S寫入;狀態欄會反映行數、字符數及是否已保存。 - 新開 agent 會話時,Harness 按
@deepseek-ai/dsh-agent-instructions規則加載剛寫入的內容。
若需放棄本地修改,使用 Reload;若在外部編輯器改過同一文件,應 Reload 後再編輯,否則 Save 會直接覆蓋(面板不做 mtime 合併)。
適用場景與注意¶
適合誰: 經常在多個 DSH 工作區之間切換、需要維護全局與各倉庫 AGENTS.md 的開發者;希望在不離開 Harness 窗口的情況下覈對「agent 下次會話實際讀到的路徑與內容」的用戶。
權限與安全: 插件以當前 dsh 進程權限運行。寫路由可創建或覆蓋本機上的 AGENTS.md;README 指出這些 API 對迴環地址可達,且不受 SPA ?token= 啓動令牌保護(具名路由先於需認證的 SPA 回退匹配)。安裝前應閱讀 GitHub 倉庫 源碼與 MIT LICENSE。
其他限制:
- 頁面打開期間不會自動感知外部對同一文件的修改;保存即覆蓋。
- 未註冊
workspaceRegistry時,全局文件仍可用,按工作區的目標可能返回 503。 - 若在
agent-instructions配置中固定了與$DSH_HOME || ~/.dsh不同的dshHome,面板顯示路徑可能與加載器不一致(默認組合僅設置maxBytes,一般無此問題)。
DSH 社區奉行「一切皆插件」;SkillHub 目錄 是獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。
參考鏈接¶
- 目錄頁:https://www.skillhub.cn/plugins/icrefin/dsh-agent-prompt
- 源碼與文檔:https://github.com/icrefin/dsh-agent-prompt
- 中文 README:https://github.com/icrefin/dsh-agent-prompt/blob/main/README.zh-CN.md
若你已在 Harness 裏用 AGENTS.md 約束 agent 行爲,把編輯入口收進側邊欄,可以減少在外部編輯器與終端路徑之間來回切換的次數。