dsh-plugins: DeepSeek Harness 插件集

前言

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 中反馈。

重要注意事项

  1. 安装方式冲突:不要同时使用「整仓库安装」和「单插件安装」两种方式,这会导致同一个插件被挂载两次,产生重复的服务注册。
  2. Bundle ID 冲突:每个插件向 composition 插入的行都有特定的 ID(如 session-git、memarc)。若同时安装的其他插件占用了相同 ID,会加载冲突,需修改对应的 cordis.patch.yml 中的 id。
  3. 生效方式:
    • Host 半区(核心逻辑)的改动需要重启 DSH 进程。
    • Client 半区(设置页、浮层、输入框控件)的改动在重启后刷新浏览器页面即可生效。
  4. 文件留存:卸载插件不会删除数据。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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜