dsh-point: DeepSeek Harness 的分点检查点与继承式会话延续

DeepSeek Harness (DSH) 提供了一个通用的智能体运行环境。在处理长对话或复杂任务时,将所有历史记录一次性加载到上下文中往往效率低下,且容易引入无关噪声。dsh-point 插件通过引入“Point”概念,将历史记录离散化,为 DSH 提供了基于检查点的会话管理与继承机制。

插件简介

dsh-point 是由 guix4ever 维护的 DSH 插件。它不将整个会话历史作为单一上下文,而是将其划分为不可变的“Point”单元。开发者可以保存当前的中间状态,并在需要时从特定的 Point 恢复或继续,模型可以通过 API 按需读取祖先 Point 的原始事件,而无需重新处理所有历史。

核心功能

  1. 分点保存 (/point-stash)
    通过 /point-stash [title] 命令,插件会保存自上一个 Point 以来所有参与者可见的事件。保存边界会等待代理空闲、刷新 DSH 持久化,并在成功后推进游标。

  2. Web 工作区视图
    插件为 DSH Web 用户提供了一个工作区视图,用于渲染 Point 的父 DAG(有向无环图)、节点详情,并提供显式的 Continue from this Point 操作。

  3. 确定性会话继承
    点击“Continue”会创建或复用一个确定性的 DSH Session,并携带 Point 的继承链。该机制不会将历史事件复制到新的上下文中,而是通过继承关系引用。

  4. 按需读取祖先数据 (point_read)
    模型可以通过 point_read(point_id) 接口读取祖先 Point 中的原始事件。该接口会拒绝无关的 Point ID,确保权限与继承链的匹配。

  5. 崩溃恢复与游标同步
    插件通过将本地游标与不可变的 Point 元数据进行协调来实现崩溃恢复,避免因意外中断导致创建重复的 Point。

  6. 数据完整性保留
    插件在处理过程中排除了压缩记录,但完整保留了可见的转录内容、内容块、源元数据以及配对的工具调用与结果。

安装与启用

在安装此插件前,请确保满足以下前置条件:
* Node.js 22.19 或更新版本
* DeepSeek Harness 版本 0.1.0-rc.6
* point CLI 工具已安装并在 PATH 环境变量中可用(可通过 python3 -m pip install "git+https://github.com/guix4ever/point.git" 安装)

使用以下命令将插件添加到 DSH Web 配置文件中:

dsh plugin --profile web add dsh-point

安装完成后,需要重启 DSH 才能使插件生效。

典型用法

1. 保存当前工作
在对话中输入命令以保存当前进度:

/point-stash explain the change briefly

2. 查看与继续会话
在 DSH 的对话视图中打开 Points 选项卡,可以查看当前工作区的 DAG 结构。选择某个节点进行查看是只读操作。若要继续该节点的状态,点击 Continue from this Point 按钮。

3. 模型读取特定历史
会话继续后,仅继承选中的 Point 的祖先链。如果模型需要更详细的历史信息,可以在代码中调用:

point_read(point_id)

只有当前会话继承链中的 Point ID 会被接受。

注意事项与场景

  • 失败策略:投影操作在遇到非连续事件、开放回合、不完整的助手数据块、重复或缺失的工具身份、悬空调用以及空可见 Point 时会触发失败关闭策略。
  • 浏览器限制:浏览器环境无法自主选择文件系统路径、Point 二进制文件或 Shell 参数。工作区路径和代理预设由 Host 根据被寻址的 DSH Session 推导。
  • 适用场景:适用于需要频繁中断和恢复的长链路任务,以及需要严格控制上下文大小与历史引用关系的智能体开发。

总结

dsh-point 通过引入不可变的 Point 单元和继承式会话机制,优化了 DSH 在长对话场景下的资源使用。它让开发者能够更精细地控制历史上下文的加载时机与范围,同时利用 Web 界面提供直观的检查点管理能力。

GitHub 仓库 | 技能云目录

羽毛球分组比赛记分
小程序二维码

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

小夜