dsh-dcs-engine: 動態能力合成引擎

前言

在 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 不替代任何一件,而是將現有的五件套“真正用起來”,並驗證這套協議棧在組合應用下的表現。

核心能力

  1. 合成策略:支持 rule(默認,零 LLM 開銷)、llm 和 hybrid 策略。
  2. Materializer(M2 階段):已可生成完整的可部署 dsh-cap-<id> 插件骨架,包含 package.json、tsconfig.json、src/index.ts 等文件。
  3. 註冊與複用:合成後的產物可註冊到 capabilityRegistry 並通過 defineTool 暴露。
  4. 安全審查:合成產物註冊前必須通過 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 }

注意:配置僅識別上述五個字段,其他字段無效。

安全說明

  1. ASP 強制審查:合成產物註冊前必須通過 ctx.aspGuard。當 safety.blockOnFail 爲 true 且審查失敗時,會拋出 SynthesisRejectedError。
  2. 未知 ASP 狀態處理:無 ASP 時 safety.asp_verdict = "unknown",若 safety.requireAsp=true,插件將拒絕註冊。
  3. 文件路徑白名單:所有文件 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 五件套,並嚴格的安全審查機制保證了合成產物的安全性。

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

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

小夜