dsh-agent-prompt:在 DSH GUI 裏編輯 AGENTS.md

前言

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 配置項,也沒有獨立設置頁——磁盤上的文件本身就是狀態。

核心功能

界面與入口

  1. 側邊欄圖標欄新增一行 Agent Prompt,位置在 Schedules 正下方(sidebar.panellist,id: 'agentPrompt',order: 11)。
  2. 點擊後打開 Agent Prompt 主頁面:左側樹列出 GLOBAL(User-global) 與每個已註冊 WORKSPACES 節點,帶工作區過濾;右側爲等寬字體的純文本編輯區(無 Markdown 預覽、無語法高亮)。
  3. 每個節點展示解析後的絕對路徑;文件尚不存在時標記爲 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 加載瀏覽器側。

運維上兩點:

  1. 同一版本號重裝不會替換已解壓內容。 若在同一版本下重新構建了 tarball,需先從 profile 移除該 bundle 再安裝,或提高 package.json 中的版本號。
  2. 首次安裝通常無需重啓;之後若改動涉及宿主側路由等,需重啓 DSH 進程。 瀏覽器 bundle 會隨 revision 熱更新,宿主 ESM 在進程啓動時加載,與 @deepseek-ai/dsh-hmr 文檔描述一致。若條目報 failed to import,可嘗試重啓。

構建環境要求 Node >= 22.17.0(見倉庫 package.json 的 engines)。

典型用法

  1. 啓動已安裝插件的 DSH 桌面應用,在左側圖標欄選擇 Agent Prompt。
  2. 在樹中選擇 User-global(例如 ~/.dsh/AGENTS.md)或某個工作區節點,在右側編輯通用或項目級 agent 指令。
  3. 按 Save 或 Ctrl+S 寫入;狀態欄會反映行數、字符數及是否已保存。
  4. 新開 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 / 幻方無官方從屬關係。

參考鏈接

若你已在 Harness 裏用 AGENTS.md 約束 agent 行爲,把編輯入口收進側邊欄,可以減少在外部編輯器與終端路徑之間來回切換的次數。

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

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

小夜