前言¶
在 DeepSeek Harness(DSH)里编写插件时,经常要处理运行时契约、参数描述、代码生成与静态校验。dsh-foundry 针对这个过程提供了一个自举式「一切皆插件」编译器:它本身是一个 DSH 插件,用来研发插件,并能被其它插件扩展。
这是什么¶
dsh-foundry 是一个 DSH 插件。它把 DSH 插件运行时契约固化为蓝图,支持一键编译出可直接 cordis_define 的宿主/浏览器代码,并在定义前做静态校验。
GitHub 仓库:https://github.com/hellosky983/dsh-foundry。许可证为 MIT。
核心能力¶
- 提供
foundry服务:任意插件可调用ctx.get('foundry'),并通过registerBlueprint(...)续写配方。 - 提供三个模型工具:
foundry_blueprints、foundry_scaffold、foundry_validate。 - 内置九种蓝图:覆盖 Host/Client/RPC/事件/服务/定时器/系统提示/Skill/文件工具。
- 在 Settings 提供只读蓝图画廊页。
- 注册只读
GET /foundry/state路由,返回蓝图目录元数据。
安装与启用¶
安装时用手動 link 方式,不使用 dsh plugin --profile web add ./dsh-foundry。
1、编辑 $DSH_HOME/profiles/web/package.json,在 dependencies 中加入:
"dsh-foundry": "link:/绝对路径/dsh-foundry"
并在 dsh.profile.bundles 数组中加入:
"dsh-foundry"
2、在 profile 目录安装依赖:
cd $DSH_HOME/profiles/web && pnpm install
3、安装后运行配置检查,确认出现 # == dsh-foundry 层:
dsh --profile web --dump-config
典型用法¶
最小流程如下:
1、调用 foundry_blueprints,返回 9 个蓝图,字段包括 id、name、category、description、params。
2、调用 foundry_scaffold 生成代码:
foundry_scaffold {
blueprint: 'host-tool',
params: { toolName: 'hello', toolDescription: 'say hi' }
}
这一步返回可粘贴的 code.host。
3、把返回的 code.host 交给 cordis_define 和 cordis_run,使名为 hello 的模型工具上线。
扩展配方时,在任意插件内获取 ctx.get('foundry'),并调用 foundry.registerBlueprint(...) 注册新的配方,例如使用 id: 'my-recipe'。
数据、权限与兼容¶
本插件无配置项、无环境变量、无敏感信息。蓝图参数有内置默认值,例如 host-tool.toolName 默认 my_tool。
dsh-foundry 本体不读写任何文件。fs-file-tool 蓝图会生成宿主文件读写工具,但那是之后自行部署的插件,不是 dsh-foundry 本体行为。
网络方面,仅在 DSH 本地 web 服务注册 GET /foundry/state 路由(回环地址),返回蓝图目录元数据。不访问、不读取、不上传任何凭据或用户数据。
兼容 DSH 0.1.0-rc.6 与 @deepseek-ai/dsh-tools ^0.1.0-rc.6,最后验证日期为 2026-08-15。版本差异较大时需先冒烟测试。
适用场景与注意¶
适合使用 DSH 编写插件,并需要扩展配方或生成运行时工具的开发者。
安装前应检查源码和许可证。该插件以当前 dsh 进程权限运行,应只在自己信任的 profile 中启用。
正式 bundle 的 defineTool 参数必须是逐属性 DSL,不能使用 { type: 'object', properties } 包装式。
若发现安全问题,请通过私有渠道报告,不要公开披露。
结尾¶
dsh-foundry 的价值在于把 DSH 插件开发中的契约、脚手架和校验集中到一个服务里,让插件扩展更直接。
GitHub 仓库:https://github.com/hellosky983/dsh-foundry。