前言¶
在 DeepSeek Harness(DSH)裏編寫插件時,經常要處理運行時契約、參數描述、代碼生成與靜態校驗。dsh-foundry 針對這個過程提供了一個自舉式「一切皆插件」編譯器:它本身是一個 DSH 插件,用來研發插件,並能被其它插件擴展。
這是什麼¶
dsh-foundry 是一個 DSH 插件。它把 DSH 插件運行時契約固化爲藍圖,支持一鍵編譯出可直接 cordis_define 的宿主/瀏覽器代碼,並在定義前做靜態校驗。
GitHub 倉庫:https://github.com/hellosky983/dsh-foundry。許可證爲 MIT。
核心能力¶
- 提供
foundry服務:任意插件可調用ctx.get('foundry'),並通過registerBlueprint(...)續寫配方。 - 提供三個模型工具:
foundry_blueprints、foundry_scaffold、foundry_validate。 - 內置九種藍圖:覆蓋 Host/Client/RPC/事件/服務/定時器/系統提示/Skill/文件工具。
- 在 Settings 提供只讀藍圖畫廊頁。
- 註冊只讀
GET /foundry/state路由,返回藍圖目錄元數據。
安裝與啓用¶
安裝時用手動 link 方式,不使用 dsh plugin --profile web add ./dsh-foundry。
1、編輯 $DSH_HOME/profiles/web/package.json,在 dependencies 中加入:
"dsh-foundry": "link:/絕對路徑/dsh-foundry"
並在 dsh.profile.bundles 數組中加入:
"dsh-foundry"
2、在 profile 目錄安裝依賴:
cd $DSH_HOME/profiles/web && pnpm install
3、安裝後運行配置檢查,確認出現 # == dsh-foundry 層:
dsh --profile web --dump-config
典型用法¶
最小流程如下:
1、調用 foundry_blueprints,返回 9 個藍圖,字段包括 id、name、category、description、params。
2、調用 foundry_scaffold 生成代碼:
foundry_scaffold {
blueprint: 'host-tool',
params: { toolName: 'hello', toolDescription: 'say hi' }
}
這一步返回可粘貼的 code.host。
3、把返回的 code.host 交給 cordis_define 和 cordis_run,使名爲 hello 的模型工具上線。
擴展配方時,在任意插件內獲取 ctx.get('foundry'),並調用 foundry.registerBlueprint(...) 註冊新的配方,例如使用 id: 'my-recipe'。
數據、權限與兼容¶
本插件無配置項、無環境變量、無敏感信息。藍圖參數有內置默認值,例如 host-tool.toolName 默認 my_tool。
dsh-foundry 本體不讀寫任何文件。fs-file-tool 藍圖會生成宿主文件讀寫工具,但那是之後自行部署的插件,不是 dsh-foundry 本體行爲。
網絡方面,僅在 DSH 本地 web 服務註冊 GET /foundry/state 路由(迴環地址),返回藍圖目錄元數據。不訪問、不讀取、不上傳任何憑據或用戶數據。
兼容 DSH 0.1.0-rc.6 與 @deepseek-ai/dsh-tools ^0.1.0-rc.6,最後驗證日期爲 2026-08-15。版本差異較大時需先冒煙測試。
適用場景與注意¶
適合使用 DSH 編寫插件,並需要擴展配方或生成運行時工具的開發者。
安裝前應檢查源碼和許可證。該插件以當前 dsh 進程權限運行,應只在自己信任的 profile 中啓用。
正式 bundle 的 defineTool 參數必須是逐屬性 DSL,不能使用 { type: 'object', properties } 包裝式。
若發現安全問題,請通過私有渠道報告,不要公開披露。
結尾¶
dsh-foundry 的價值在於把 DSH 插件開發中的契約、腳手架和校驗集中到一個服務裏,讓插件擴展更直接。
GitHub 倉庫:https://github.com/hellosky983/dsh-foundry。