前言¶
DSH 生态强调“一切皆插件”。开发者在实际做插件时,通常要同时处理文档、源码符号、Service、事件、工具、Config、实验配置和正式插件包。如果这些工作都发生在日常 ~/.dsh 里,容易把开发状态、Profile 配置和正式插件混在一起。
DSH Forge 针对这个问题:它建立独立的 ~/.dsh-forge Home、forge Profile 和开发者 Agent Preset,把源码索引、运行时检查、实验记录、验证和 Promotion scaffold 放进一个可复现环境。它默认不会写入普通 ~/.dsh,也保留与主线 DSH 同时运行的空间。
下面介绍 DSH Forge 的能力、安装步骤和常用命令。
这是什么¶
DSH Forge 是一个可复现、运行时感知的 DeepSeek Harness 插件开发 Profile。
它由 zhn1100 维护,GitHub 仓库地址为 https://github.com/zhn1100/dsh-forge,许可证为 MIT。当前资料版本针对 @deepseek-ai/dsh@0.1.0-rc.6,参考源码固定到提交 47f943859bef60e4160492346772ded9b24f765a。本项目不是 DeepSeek 官方项目。
核心功能¶
独立 Home 与开发者 Preset¶
- 建立独立的
~/.dsh-forgeHome。 - 提供
forgeProfile 和开发者 Agent Preset。 - 默认监听
127.0.0.1:3188,与主线 DSH 的3080错开;需要其他端口时可用--port覆盖。
本地索引¶
- 本地索引 Harness 文档、源码符号、Service、事件、工具、Config 和示例。
- 可用于在本地检索符号或接口,例如
Service.init。
实验、验证与 Promotion scaffold¶
- 管理可恢复的插件实验。
- 保留验证状态。
- 提供
quick、package、full受限验证流程。 - 提供 Promotion scaffold,用于承接正式化流程。
同步与镜像¶
- 每次启动安全同步普通
~/.dsh中的用户配置,同时保护 Forge 本地修改。 - 同步的是用户态数据,不同步当前工作文件夹源码。
- 镜像普通
~/.dsh各 Profile 通过cordis.patch.yml的insert声明的 out-of-tree 插件。 forge/、profiles/、.agent-presets/和cordis.patch.yml不参与 Home 同步;例外是主线 Profile 通过insert声明的 out-of-tree 插件会被镜像。- Forge 侧已修改或删除的文件不会被覆盖;源端删除也不会传播。
安装与依赖边界¶
- 使用 SHA-256 内容寻址 tarball 安装自身,避免复用旧包缓存。
- 将 Cordis、System Prompt 和 Tools 保持为宿主提供的可选 peer。
- 升级时先由 DSH 正常移除旧 Forge 依赖,再安装新工件。
安装与启用¶
先确认环境:Node.js ^22.19.0 或 >=24,以及 pnpm。
先克隆仓库、安装依赖、运行验证,再执行安装命令。安装程序默认目标为 ~/.dsh-forge,不会写入普通 ~/.dsh。
git clone https://github.com/zhn1100/dsh-forge.git
cd dsh-forge
pnpm install
pnpm run verify
node lib/cli.js install
经过上面的步骤后,可以在需要开发插件的工作区启动 Forge Profile:
DSH_HOME="$HOME/.dsh-forge" npx @deepseek-ai/dsh@0.1.0-rc.6 --profile forge
启动后打开 Web UI,选择 DSH Forge 开发者 Preset。默认监听 127.0.0.1:3188;需要调整时可用 --port <端口> 覆盖。
典型用法¶
环境检查¶
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js doctor
重建指定 Harness revision 的知识索引¶
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js sync --revision <commit>
搜索本地索引¶
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js search "Service.init"
验证当前插件项目¶
node lib/cli.js verify --root . --level full
适用场景与注意¶
适合以下场景:
- 长期开发 DSH 插件,希望隔离 Home、Profile 和开发者 Preset。
- 需要固定 Harness revision,并基于文档、源码符号、Service、事件、工具、Config 做本地索引。
- 希望保留可恢复实验、验证状态和 Promotion scaffold。
- 需要同时运行主线 DSH 与 Forge Profile。
使用前注意:
- 本项目不是 DeepSeek 官方项目。DSH 社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系。
- 插件会在当前 DSH 进程权限下运行。安装前先检查源码、依赖和 MIT 许可证。
- 动态 Cordis Package 属于显式信任边界。Forge 提供隔离和恢复能力,但不是强安全沙箱。
- 同步不会复制工作区源码;从工作区 A 切换到工作区 B,不会复制 A 的代码到 B。
forge/、profiles/、.agent-presets/和cordis.patch.yml不参与 Home 同步;主线 Profile 通过insert声明的 out-of-tree 插件是例外。
结尾¶
DSH Forge 把 DSH 插件开发拆成独立 Home、本地索引、实验记录、受限验证和 Promotion scaffold。它适合需要可复现、可恢复、可与主线 DSH 并行运行的插件开发流程。
GitHub 仓库:https://github.com/zhn1100/dsh-forge。社区目录为独立站点,具体目录页入口以站点实际展示为准。