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 五件套,并严格的安全审查机制保证了合成产物的安全性。

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

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

小夜