前言¶
在 DSH 插件化架構下,構建一個具備特定業務能力的插件通常需要手動編排多個基礎工具(如數據獲取、因果推斷、文檔生成)。dsh-dcs-engine(Dynamic Capability Synthesis Engine)旨在解決這一問題,它可以在運行時將零散的基礎工具合成爲可命名、註冊、複用且可持久化的 DSH Capability,從而減少重複的樣板代碼,加速能力組合的開發。
定位¶
它是 DSH 協議棧的 Host 組合層,同時是五件套(CDP、意圖網絡、CSP、ASP、universal-adapter)的 消費方與演示載體:
- CDP(
ctx.cdpRegistry):消費語義(cognitive_style / semantic_tags / boundaries)進行候選打分。 - 意圖網絡(
ctx.intentNetwork):複用其plan()方法,或使用內置的rule拓撲規劃。 - CSP(
ctx.cspStore):僅寫入decision_trace。 - ASP(
ctx.aspGuard):合成產物註冊前強制過審side_effects。 - universal-adapter:僅消費其橋接進
ctx.tools的mcp::*工具。
DCS 不替代任何一件,而是將現有的五件套“真正用起來”,並驗證這套協議棧在組合應用下的表現。
核心能力¶
- 合成策略:支持
rule(默認,零 LLM 開銷)、llm和hybrid策略。 - Materializer(M2 階段):已可生成完整的可部署
dsh-cap-<id>插件骨架,包含package.json、tsconfig.json、src/index.ts等文件。 - 註冊與複用:合成後的產物可註冊到
capabilityRegistry並通過defineTool暴露。 - 安全審查:合成產物註冊前必須通過
ctx.aspGuard審查。
安裝與啓用¶
通過 DSH 插件管理器安裝:
dsh plugin --profile web add github:helibeiqi/dsh-dcs-engine
典型用法¶
1. 基礎合成與註冊¶
以“分析 AAPL 下跌原因並生成中文報告”爲例,DCS 會自動選擇基礎件(如 dsh-quant-data-mcp::quote、mcp::causal_inference、docx_gen::create),通過內置規則規劃拓撲,生成 stock_causal_report CapabilitySpec,並在通過 ASP 審查後註冊。
const registry = ctx.get('capabilityRegistry');
const spec = await registry.synthesizeAndRegister('分析 AAPL 下跌原因並生成中文報告');
const report = await registry.invoke(spec.id, { symbol: 'AAPL' });
2. 導出完整插件骨架¶
使用 Materializer 生成完整可部署的插件目錄:
npx tsx scripts/dcs-synthesize.ts --intent "分析 AAPL 下跌原因並生成中文報告" --persist
# 輸出至 capabilities/stock_causal_report.capability.json
配置項¶
插件支持以下配置字段:
| 字段 | 說明 | 默認值 |
|---|---|---|
sources |
基礎件來源(如 capabilitiesDir 產物) |
{ capabilitiesDir: "./capabilities" } |
synthesizer |
合成策略(strategy)、回退至 LLM、候選數上限 | { strategy: "rule", fallbackToLLM: true, maxCandidates: 20 } |
registry |
去重(語義哈希)、自動註冊工具 | { deduplicate: true, autoRegisterTools: true } |
materializer |
M2 階段開關、輸出格式 | { enabled: false, format: "plugin-skeleton" } |
safety |
ASP 審查要求、失敗時阻斷註冊 | { requireAsp: true, blockOnFail: true } |
注意:配置僅識別上述五個字段,其他字段無效。
安全說明¶
- ASP 強制審查:合成產物註冊前必須通過
ctx.aspGuard。當safety.blockOnFail爲true且審查失敗時,會拋出SynthesisRejectedError。 - 未知 ASP 狀態處理:無 ASP 時
safety.asp_verdict = "unknown",若safety.requireAsp=true,插件將拒絕註冊。 - 文件路徑白名單:所有文件 IO 操作僅限於
capabilitiesDir和outDir。
注意事項¶
- 開發者預覽版:M2 階段的 materializer 已可生成完整骨架,但接口在
0.1.x版本內可能變動,生產環境請等待1.0穩定版。 - 依賴要求:運行時依賴
@deepseek-ai/cordis >= 0.1.0和@deepseek-ai/dsh-tools >= 0.1.0。 - 人工微調:Materializer 生成的
src/index.ts使用通用輸入映射,可能需要人工 refine 各步驟工具的精確參數 schema。
總結¶
dsh-dcs-engine 提供了一套機制,讓開發者能夠通過意圖描述快速生成具備複雜能力的 DSH 插件骨架。它通過正交協同的方式利用 DSH 五件套,並嚴格的安全審查機制保證了合成產物的安全性。