前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在通过模块化扩展提升开发与使用体验。本仓库作为一个聚合单元,将五个高频使用的插件打包在一起。它解决了智能体开发中常见的长期记忆缺失、会话版本管理困难、Goal 中断后无法自动恢复以及模型推理能力控制不精细等问题。
核心功能¶
本仓库包含以下五个插件:
1. 长期记忆与会话归档 (dsh-memarc)¶
- 长期记忆库:以 JSON 格式存储每个工作区的记忆,支持持久化。
- 会话归档管理:提供归档、全文搜索、批量恢复和彻底删除功能,并在设置页提供统一入口。
2. 会话 Git 化 (dsh-session-git)¶
- 将 DSH 会话导出为
<项目>/.dsh-sessions/*.json文件。 - 支持随 Git 提交,团队成员可一键导入这些文件,恢复为可继续的会话。
3. 会话分支树 (dsh-session-branches)¶
- 建立会话的 fork / 子代理关系树。
- 通过侧边栏浮动面板或设置页查看,点击即可打开对应的会话。
4. Goal 自动续跑 (dsh-goal-auto-resume)¶
- 当 Goal 因错误、中断、
max-tokens限制或崩溃异常停止后,插件会自动重新武装并尝试续跑。 - 内置退避机制与安全阀,防止无限重试。
5. 模型推理能力编辑 (dsh-model-reasoning)¶
- 三层设置:提供全局策略、路由概览、模型明细三段式编辑界面。
- 细粒度控制:可编辑思考等级映射(wire 值)、上下文/输出上限、协议兼容开关。
- 灵活声明:对于缺少推理元数据的模型,支持在行内一键声明。
- 会话级滑杆:在输入框模型下拉左侧,提供会话级的推理强度滑杆,优先于路由默认设置。
安装与启用¶
一键安装(推荐)¶
仓库本身声明了 dsh.bundle,可以通过一条命令将所有五个插件安装到 profile 中:
dsh plugin --profile web add github:loongWoong/dsh-plugins
安装后,根目录的 cordis.patch.yml 会自动将这五个插件装配进 DSH 的 composition 中。卸载时执行:
dsh plugin --profile web remove dsh-plugins
安装特定插件¶
若只需安装其中某一个插件(例如 dsh-memarc),使用 pnpm 的路径语法:
dsh plugin --profile web add "github:loongWoong/dsh-plugins#path:packages/dsh-memarc"
本地开发¶
在仓库根目录执行以下命令,使 DSH 直接引用本地源码:
dsh plugin --profile web add .
修改源码后,需重新运行 dsh plugin --profile web install 以使改动生效。
环境要求与依赖¶
- DeepSeek Harness (DSH):要求版本 ≥ 0.1.1-rc.2(实测兼容至 0.1.5-rc.1)。
- 依赖管理:peer 依赖(
@deepseek-ai/cordis、@deepseek-ai/dsh-tools、react)由 DSH 进程加载时提供,本仓库零运行时依赖,支持离线安装。 - 版本兼容:DSH 升级后若出现不兼容,需在仓库 issue 中反馈。
重要注意事项¶
- 安装方式冲突:不要同时使用「整仓库安装」和「单插件安装」两种方式,这会导致同一个插件被挂载两次,产生重复的服务注册。
- Bundle ID 冲突:每个插件向 composition 插入的行都有特定的 ID(如
session-git、memarc)。若同时安装的其他插件占用了相同 ID,会加载冲突,需修改对应的cordis.patch.yml中的 id。 - 生效方式:
- Host 半区(核心逻辑)的改动需要重启 DSH 进程。
- Client 半区(设置页、浮层、输入框控件)的改动在重启后刷新浏览器页面即可生效。
- 文件留存:卸载插件不会删除数据。
dsh-memarc的记忆文件保留在各工作区.dsh-memory/,dsh-session-git导出的会话文件保留在各项目.dsh-sessions/。
测试¶
测试脚本自包含,可直接用系统 Node 运行,无需安装额外依赖:
npm test
# 或逐个运行:
node packages/dsh-memarc/test/behavior.mjs
node packages/dsh-session-git/test/unit.mjs
node packages/dsh-model-reasoning/test/unit.mjs