dsh-agent-manager:在 DSH 裏按 Agent 管理人格、知識庫與 MCP

前言

DeepSeek Harness(DSH)用 Agent 預設把「選哪個智能體、掛哪些工具、怎麼寫系統提示」綁在一起。官方預設卡片和設置裏,常見做法是圍繞某一個 Eli Mode 式單體做配置:人格、知識庫注入、工具開關都在同一套界面裏完成。當你需要多個角色並行——例如一個偏寫作、一個偏檢索、各自勾選不同的知識庫條目和 MCP 連接——就要反覆改預設目錄或組合文本,既容易誤改 Eli Mode 自帶文件,也不方便在 Web 設置裏「先選 Agent,再改它的參數」。

下面介紹社區插件 dsh-agent-manager(倉庫 let-mi-think/agent-manager)。它在 DSH Web 設置中增加 Agent 管理 分區,並與 dsh-eli-mode 並存,不改動 Eli Mode 的任何文件;知識庫讀寫仍復用 Eli Mode 的 eliKb 服務,可選依賴未安裝時,知識庫相關 UI 爲禁用態,其餘配置照常可用。

這是什麼

dsh-agent-manager 是 DeepSeek Harness 的多 Agent 管理與配置插件,維護者爲 let-mi-think。npm 包名爲 dsh-agent-manager,當前版本 0.1.0,許可證 MIT。

它解決的核心問題是:在不動 Eli Mode 的前提下,爲每個 Agent 預設單獨配置人格 prompt、知識庫注入模板與可勾選條目、四個知識庫工具的開關,以及 按 Agent 收窄可用 MCP 連接;並支持從現有預設複製藍本 新建 Agent,新會話即可在預設選擇器裏看到。

核心功能

設置區與預設卡片

  1. 在 DSH 設置裏新增 Agent 管理 分區:流程是 先選 Agent,再配置它(比 Eli Mode 單體配置多一步「多 Agent 選擇」)。
  2. 在官方「Agent 預設」卡片上疊加 編輯 按鈕,點進該 Agent 的配置(實現方式爲 DOM 注入;官方卡片結構變化時按鈕可能不顯示,獨立分區仍可用)。

每個 Agent 可配項

  • 人格 prompt、知識庫注入 prompt 模板。
  • 可勾選的知識庫條目清單:勾選後把清單注入提示詞,正文由 kb_read 按需讀取;清單每行格式爲 - <條目路徑> — <標題>,與 eli-mode 目錄頁一致。
  • 四個知識庫工具的獨立開關(執行期攔截;禁用後工具仍可能出現在清單裏,調用會被拒絕並返回說明)。
  • 可用哪些 MCP 連接:默認不限制(mcpRestrict 爲 false);開啓後按勾選的 mcpServers 放行,勾選爲空則該 Agent 下 MCP 工具全禁。

新建 Agent

選一個現成預設作藍本,插件複製其目錄並改寫組合文件,在 ~/.dsh/.agent-presets/<id>/ 寫入側車 .agent-manager.json(managedBy / blueprintId / createdAt)。刪除僅允許帶該標記且位於上述目錄下的預設,避免誤刪 eli-mode、wechat 等既有預設。

知識庫導入與索引

複用 ~/.dsh/eli-knowledge 與同一份 wiki,不重複實現存儲層。面板提供 導入知識庫(填絕對路徑 → 掃描預覽 → 批量導入)和 僅重建索引;eli-kb 在直接拷貝文件到 wiki/ 時不會自動重建根索引 index.md,插件補了這一入口。

導入規則要點:只認 .md / .markdown;跳過各級 index.md、隱藏目錄、node_modules 等;默認跳過已存在同名條目(可勾選覆蓋);源文件首行不是 # 標題 時會補一行 # <文件名>,因爲上游 kb.js 讀取時會丟棄首行,否則正文會永久讀不到。

中文或非 [a-z0-9-] 段名的條目能否被 讀取,取決於 dsh-eli-mode 的 lib/kb.js 是否打了 normalizeId 補丁;未補丁時可能「能列出但讀不到」。使用中文條目時需讓 Eli Mode 使用打了補丁的版本。

MCP 按 Agent 收窄

數據來源是 DSH 工具註冊表(ctx.tools.schemas()),不是 MCP 連接器自己的 status。在預設平面用 ctx.tools.restrict({ deny }) 去掉未勾選連接的工具;訂閱 tools/registered 在連接變化後重算;restrict() 失敗時只記 warn 並保持不限制,避免預設掛載失敗。

安裝與啓用

宿主要求:dsh 0.1.0-rc.7(見包內 dsh.engines.dsh),Node ^22.19.0 || ^24.0.0。客戶端產物 lib/client.js 隨包分發,安裝時無需構建。

在 Web 配置檔下執行:

dsh plugin --profile web add dsh-agent-manager

裝完後 重啓 dsh web,設置裏會出現 Agent 管理 分區。未安裝 dsh-eli-mode 時,知識庫清單 / 導入 / 重建索引相關功能爲禁用態。

典型用法

1. 在 Web 裏配置某個 Agent

重啓 Web 後打開設置 → Agent 管理 → 選擇目標 Agent → 編輯人格、知識庫注入模板、勾選條目與工具開關;若需限制 MCP,開啓收窄並勾選允許的連接。

2. 從預設卡片進入編輯

在 Agent 預設列表卡片上點 編輯(若按鈕未出現,仍可從 Agent 管理分區進入同一配置)。

3. 新建 Agent

在 Agent 管理中選擇「新建」,指定藍本預設與新 id;新 Agent 出現在預設選擇器,新會話 生效。

4. 批量導入知識庫

Agent 管理頭部 導入知識庫 → 填寫源目錄絕對路徑(可選落點前綴,如 tripartite/...)→ 掃描 查看 + 新增 / = 已存在 與跳過原因 → 導入 N 項。導入後會自動調用 eliKb.regenerateAllIndexes()。

5. DSH 未運行時維護索引或預覽注入

在插件包目錄下(資料示例爲 PowerShell 環境,Linux/macOS 用 node 同樣路徑):

node scripts/reindex-kb.mjs
node scripts/preview-injection.mjs [presetId]

已有 wiki 文件首行非標題導致內容丟失時,可在包目錄預覽或修復:

node scripts/fix-title-lines.mjs
node scripts/fix-title-lines.mjs --apply

配置持久化在 ~/.dsh/settings.yaml 的 agent-manager 段,形狀爲 agents: { <presetId>: { ... } },不寫進預設組合文本。

適用場景與注意

適合誰:已在 DSH Web 使用多 Agent 預設、需要 per-Agent 人格與知識庫清單、希望按角色限制 MCP、或要從目錄批量初始化 Eli 知識庫的團隊與個人開發者。

權限與安全:插件以當前 dsh 進程權限 讀寫 ~/.dsh/settings.yaml、~/.dsh/.agent-presets/ 與(在 Eli Mode 可用時)知識庫目錄。安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的部署策略。

生態說明:DSH 社區插件目錄(如 skillhub.cn)由社區維護,與 DeepSeek / 幻方無官方從屬關係;本文安裝命令與行爲以倉庫 README 爲準。

已知限制(摘要):預設卡片編輯按鈕依賴 DOM 選擇器;新建 Agent 直接寫預設目錄並只做按行修改與 YAML 校驗;知識庫導入爲複製而非雙向同步;用 eli-kb remove() 刪條目後可能留下僅含 index.md 的空殼目錄。

結尾

dsh-agent-manager 把「多 Agent 選擇 + 分 Agent 配置」收進 DSH Web 設置,並與 Eli Mode 知識庫、官方 MCP 工具註冊機制對齊,適合在 Harness 里長期維護多套角色而不改 Eli Mode 本體。

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

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

小夜