前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在此基礎上,構建能夠“自組裝”的工具鏈是下一步方向。dsh-plugin-dynamic-assembler 插件允許代理在運行時根據自然語言需求發現並加載插件,同時通過靜態審計和用戶確認機制管控風險。
下面介紹該插件的核心能力、安裝配置及典型用法。
核心能力¶
該插件提供了一套完整的動態組裝工具鏈,主要包含以下特性:
- 運行時發現:通過
ctx.registry在運行時掃描已加載的插件,不依賴硬編碼列表。 - 官方優先策略:優先匹配
@deepseek-ai/*官方插件;僅在官方插件無法滿足需求時,才考慮第三方插件。 - 第三方管控策略:通過配置
unofficialPolicy(默認爲ask)來決定第三方插件的處理方式,支持ask(詢問)、allow(允許)或deny(拒絕)。 - 內置靜態安全審計:在插件加載前進行靜態掃描,生成評分和等級(綠色/黃色/紅色),爲安全決策提供依據。
安裝與啓用¶
安裝插件後,需要在配置文件中啓用。
- 安裝:
npm i dsh-plugin-dynamic-assembler
- 配置:
在 profile 的cordis.patch.yml中添加以下配置。新條目需用- insert:包裹:
- insert:
- id: dynamic-assembler
name: dsh-plugin-dynamic-assembler
config:
denyList: [] # 不允許組裝的能力名稱關鍵詞
unofficialPolicy: ask # ask | allow | deny
pluginSources: [] # 第三方插件源(npm 名稱或本地路徑)
如果需要使用本地未在 npm 上的插件,需在 `pluginSources` 中列出其路徑或 npm 包名。
工具與用法¶
該插件提供了 8 個核心工具,用於發現、規劃、執行和卸載插件。
1. assemble_inspect(審計)¶
對插件進行靜態安全審計。會掃描危險模式(如 eval、child_process)並檢查元數據(許可證、倉庫等)。
* 參數:plugin(插件名稱或包名)、github_repo(可選,用於 GitHub Releases 審計)。
2. assemble_plan(規劃)¶
分析自然語言需求,在 ctx.registry 中發現匹配的插件能力,生成組裝計劃(不實際加載)。
* 參數:requirement(自然語言需求描述)。
3. assemble_execute(執行)¶
根據規劃加載插件。如果涉及敏感操作或第三方插件,會要求用戶確認。
* 參數:names(插件名稱列表)、confirm(是否確認)、allow_unofficial(是否允許第三方)、force(強制加載紅色審計插件)。
4. assemble_unload(卸載)¶
卸載所有由該插件動態加載的插件,用於回滾或清理。
典型對話流程¶
- 需求規劃:
模型調用assemble_plan,傳入需求。系統在已加載插件中匹配能力,返回組裝方案。 - 用戶確認:
模型調用assemble_execute,傳入確定的插件名稱列表、確認標誌和允許第三方插件標誌。 - 回滾:
需要中斷當前流程時,調用assemble_unload即可釋放所有動態加載的資源。
適用場景與注意¶
該插件適合需要構建“自進化”智能體的開發者。使用時需注意以下幾點:
- 權限風險:靜態審計是風險信號,而非安全保證。插件一旦加載,即擁有完整的 Node 進程權限,惡意代碼可能規避掃描。請務必安裝可信來源的插件。
- 環境要求:需要 Node.js 版本 >= 22。
- 敏感操作:涉及網絡、文件系統、Shell、子代理、MCP、代碼執行或憑證的操作,必須顯式調用
confirm_sensitive參數進行確認。
總結¶
dsh-plugin-dynamic-assembler 爲 DeepSeek Harness 提供了從自然語言到動態插件加載的閉環能力。通過官方優先策略和可配置的第三方管控機制,它在實現智能體自組裝的同時,保留了必要的安全管控手段。