dsh-dcs-engine
Dynamic Capability Synthesis Engine — DSH protocol stack credit engine
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 24, 2026
- Updated
- Aug 28, 2026
Introduction
dsh-dcs-engine (DCS)
Dynamic Capability Synthesis Engine — 在运行时把零散基础工具合成为可命名、注册、复用、持久化的 DSH Capability。
定位
dsh-dcs-engine(DCS)是 DSH 协议栈的 Host 组合层,同时是五件套的 消费方与演示载体(credit engine):
- 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 正交协同,不替代任何一件——它把既有的五件套"真正用起来",并证明这套协议栈"被用起来"后能产生什么。
版本区间与警告
- DSH 版本区间:
@deepseek-ai/cordis >= 0.1.0、@deepseek-ai/dsh-tools >= 0.1.0 - ⚠️ Developer Preview:M2 阶段
materializer已可生成完整可部署的dsh-cap-<id>插件骨架(含 package.json / tsconfig.json / cordis.patch.yml / .cdp.json / capability.json / README.md / src/index.ts);合成策略默认rule(零 LLM)。 接口在 0.1.x 内可能变动,生产用途请等待 1.0 稳定版。
安装
# 从 GitHub 安装
dsh plugin --profile web add github:helibeiqi/dsh-dcs-engine
# 从 DSH 插件 registry 安装
dsh plugin --profile web add dsh-dcs-engine
# 本地路径安装
dsh plugin --profile web add "file:./dsh-dcs-engine"
配置字段
| 字段 | 说明 | 默认 |
|---|---|---|
sources | 基础件来源,capabilitiesDir 产物/示例目录 | { capabilitiesDir: "./capabilities" } |
synthesizer | 合成策略 strategy(rule/llm/hybrid)、fallbackToLLM、maxCandidates | { strategy: "rule", fallbackToLLM: true, maxCandidates: 20 } |
registry | deduplicate(语义哈希去重)、autoRegisterTools(defineTool 包装) | { deduplicate: true, autoRegisterTools: true } |
materializer | enabled(M2 完整插件骨架)、format(当前仅 plugin-skeleton) | { enabled: false, format: "plugin-skeleton" } |
safety | requireAsp(无 ASP 拒绝)、blockOnFail(不通过拒绝注册) | { requireAsp: true, blockOnFail: true } |
⚠️ 配置仅识别上述五个字段。禁止
servers/pluginDirs/export/router/naming/schema等。
端到端示例
意图:「分析 AAPL 下跌原因并生成中文报告」
- DCS 取基础件池:
dsh-quant-data-mcp::quote+ 外部因果推断mcp::causal_inference+docx_gen::create - 内置 rule 规划
input → transform → output拓扑,生成stock_causal_reportCapabilitySpec - 过
ctx.aspGuard(side_effects: ["write-file"]→verdict: pass) - 注册为
capabilityRegistry并以defineTool暴露 - 调用:
const registry = ctx.get('capabilityRegistry');
const spec = await registry.synthesizeAndRegister('分析 AAPL 下跌原因并生成中文报告');
const report = await registry.invoke(spec.id, { symbol: 'AAPL' });
导出骨架(--persist 触发 materializer):
npx tsx scripts/dcs-synthesize.ts --intent "分析 AAPL 下跌原因并生成中文报告" --persist
# → capabilities/stock_causal_report.capability.json
安全说明
- 合成产物注册前必须过
ctx.aspGuard;verdict=fail且safety.blockOnFail时抛SynthesisRejectedError。 - 无 ASP 且
safety.requireAsp=true时拒绝注册(安全优先,asp_verdict: unknown)。 side_effects在cdp与safety两处对齐,供审查留痕。- 所有文件 IO 经路径白名单(仅
capabilitiesDir/outDir)。
已知局限
- 合成策略默认
rule(零 LLM 开销);hybrid/llm依赖ctx.llm签名(best-effort,不强制)。 materializer生成的src/index.ts使用通用输入映射({ ...userInput, ...predecessorOutputs }),需人工 refine 各步工具的精确参数 schema 与 guard 接线。- 无 CDP 时退化为关键词匹配,语义精度有限。
- 无 ASP 时
safety.asp_verdict = "unknown",requireAsp: true下会拒绝注册。