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