前言¶
在 DeepSeek Harness(DSH)的长会话场景中,上下文窗口限制是绕不开的问题。压缩摘要虽然能减少 token 占用,但经过多轮压缩后,设计决策的理由、被否决过的方案、关键约束等细节往往会丢失。本插件将记忆工作前置到会话进行过程中,通过后台持续沉淀观察与反思,让长会话在经过多轮压缩后依然保持连贯。
核心功能¶
该插件在后台维护一套记忆流水线,并在 DSH 的压缩机制上做了特殊处理:
- 后台记忆流水线:包含观察器、反思器和清理器。观察器将会话事件蒸馏为带时间戳和相关度的记录;反思器提炼长期事实;清理器修剪已被反思覆盖的观察。整个过程由
turn/end等事件按 token 阈值驱动。 - 压缩即渲染:当 DSH 发起压缩摘要调用时,插件在
llm/stream瀑布中拦截。如果记忆非空,直接返回渲染好的记忆文本,实现零模型调用;记忆为空时回退 DSH 原生摘要。 - 主动压缩:支持
calibrated(固定阈值)和ratio(上下文窗口比例)两种模式。会话空闲且上下文达到阈值时自动触发。 - recall 工具:模型可调用
recall(id)恢复任意观察或反思背后的原始会话证据。 - 记忆选项卡:对话视图环新增「记忆」页,实时展示记忆清单、worker 进度、内容与调试日志。
- 回退按钮:每条用户消息下方新增按钮,支持一键分叉会话并将原文放回输入框。
安装与启用¶
安装前请确保 DSH 版本符合要求。该插件仅支持 DeepSeek Harness 预发布线(0.1.5-rc.2, 0.1.7-rc.1, 0.2.0-rc.1)。
通过 DSH CLI 安装:
dsh plugin --profile web add dsh-observational-memory
安装完成后,重启 DSH Web 服务。在 Web 界面中,进入 设置 → 插件 → 插件配置,找到 Observational Memory 卡片即可进行配置。
配置¶
配置项位于 observational-memory 命名空间下。核心参数如下:
- 阈值控制:
observeAfterTokens: 触发观察器的增量 token 数(默认 10000)。reflectAfterTokens: 触发反思器的增量 token 数(默认 20000)。compactAfterTokensMode: 阈值模式选择(calibrated或ratio)。compactAfterTokensRatio: 比例模式下的阈值(默认 0.68)。
- 模型覆盖:
model: 可选覆盖记忆 worker 使用的模型。设置卡片中支持按提供商、模型 ID、推理强度三级选择。全部留空则跟随会话当前模型。
- 其他设置:
passive: 被动模式开关。设为true时关闭主动后台触发(仅保留手动触发和 recall 功能)。debugLog: 是否记录调试日志。
使用¶
- 查看记忆:在对话视图环中点击「记忆」选项卡,可以查看当前可见记忆、完整记录以及 worker 的运行进度。
- recall 工具:模型在压缩后的记忆中看到记忆 id 后,可调用
recall(id)获取带时间戳的原始会话证据。 - 回退操作:点击用户消息下方的「回退」按钮,会在该消息之前的最近轮次边界处分叉出一个新会话,并将该消息的原文放回输入框,方便修改后重新发送。
适用场景与注意¶
- 版本限制:仅支持 DSH 预发布线(0.1.5-rc.2, 0.1.7-rc.1, 0.2.0-rc.1),正式版暂不支持。
- 子代理:子代理会话不参与记忆与主动压缩。
- Headless 模式:记忆选项卡依赖 Typert Remote 端点,在无 API Gateway 的 Headless 运行中不可用,但其余功能正常。
- 回退按钮限制:在首轮消息、纯附件消息或无文本消息时,回退按钮保持禁用。
- Token 估算:所有 token 计数为估算值(约 4 字符/token)。
结语¶
该插件通过后台流水线和零模型调用的压缩渲染,解决了长会话上下文丢失的问题。你可以通过 GitHub 仓库 epcn-fla/dsh-observational-memory 获取源码与更多细节。