dsh-memory-observer:长会话在后台沉淀观察式记忆

前言

在 DeepSeek Harness(DSH)里跑长会话时,上下文一旦被压缩,对话线索往往会变成「摘要的摘要」:决策依据、约束和未完成事项容易被抹平。常见做法是手动触发「记住这段」或依赖压缩后的短摘要,既慢又容易丢细节。

dsh-memory-observer 把记忆工作放在后台:在你正常对话的同时,按阈值把近期对话提炼成 observations(观察)和 reflections(反思),再注入 system prompt,而不是往会话事件里塞额外消息。下面介绍它是什么、怎么装、怎么用,以及使用时要注意什么。

这是什么

  • 名称:npm 包 dsh-memory-observer,GitHub 仓库 AntonyLang/dsh-memory-observer。
  • 维护者:AntonyLang。
  • 分类:DSH 社区目录中的「记忆」类插件;目录页见 skillhub.cn/plugins/AntonyLang/dsh-memory-observer(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
  • 版本与许可:当前 package 版本为 0.1.0,MIT 许可证;要求 DSH 引擎 ^0.2.1-rc.2。
  • 定位:README 概括为 Background observational memory for DeepSeek Harness——长会话通过观察与反思自我浓缩,保留决策、约束与理由。实现思路参考 elpapi42/pi-observational-memory,但围绕 DSH 的扩展点:每 agent 的 system-prompt 段落、host storage、同源 settings API、以及与 compaction 的衔接。

工作原理(概要)

每轮 turn/end 之后,若自上次观察以来 surface tokens 达到阈值,后台会走 observer → observations → reflector → reflections 链路;活跃记忆渲染进 system prompt,条目带 12 字符 id,可通过 memory_recall 拉回对应源事件。

turn/end
   │  (source tokens since the last observation reach the threshold)
   ▼
observer ──▶ observations ──▶ reflector ──▶ reflections
                  │                              │
                  └──── active memory rendered into the system prompt
                  │
            memory_recall (id ──▶ exact source events)

核心功能

以下均来自官方 README,未在资料中出现的功能不写。

  1. Observations:每轮结束后静默记录决策及理由、约束、偏好、已验证结果、未完成工作、精确标识符等。
  2. Reflections:从观察中蒸馏出跨多次压缩仍能 orient 会话的 durable facts。
  3. 不污染对话:不向 session 追加事件;记忆通过 system-prompt 段落进入模型,fork、resume、replay、compaction 仍可按 DSH 原有语义工作。
  4. 带来源的 recall:每条记忆有 12 字符 id;memory_recall 工具返回该 id 背后的精确源事件。
  5. 设置页:Settings →「观察式记忆 / Observational Memory」可调节奏、预算、worker 模型与行为,并查看 live status、一键 reset;覆盖项存在 observational_memory_settings 存储域,立即生效。
  6. 快速压缩:当 dsh-compaction-basic 请求摘要时,可用已准备好的 memory 渲染结果,避免再打一局长模型 summarization(需 fastCompaction 与 compaction 后端配合)。
  7. 持久化:记忆与设置在 DSH storage domain;插件 reload 或应用重启后可恢复。

Bundle 安装时会插入一行 observational-memory 并启用自带的 compaction-basic 引擎;若 profile 必须保持无 compaction,需从 cordis.patch.yml 去掉最后一条 compaction-basic,记忆层与 memory_recall 仍可工作。

安装与启用

推荐从 npm 安装:

dsh plugin add dsh-memory-observer

在 DSH 会话内用 bundle manager:

plugin_manager install_bundle { target: "dsh-memory-observer" }

本地目录安装(路径按你的环境替换):

plugin_manager install_bundle { target: "E:\\path\\to\\dsh-memory-observer" }

首次完成 client-half 安装后,刷新 Web 页面一次,以便 Settings 里注册观察式记忆面板。

配置与设置

除 UI 外,插件 row 的 config 支持如下键(默认值见 README 配置表)。改动 enabled 需 reload;passive: true 时停止 proactive 后台任务,已准备的 memory 与 recall 仍可用。

Key Default 含义(摘要)
enabled true 是否挂载插件
passive false 关闭 proactive 后台工作
observeAfterTokens 8000 两次 observer 之间的 surface tokens
reflectAfterTokens 12000 两次 reflection 之间的 surface tokens
injectAfterTokens 0 超过该压力才注入 memory;0 表示有 memory 即注入
maxObservations 80 活跃 observation 上限
maxReflections 20 渲染层 reflection 上限
observationPoolTokens 2400 注入 prompt 的 observation token 预算
maxSourceChars 36000 单次 observer 使用的 transcript 字符(较新片段优先)
agentMaxTokens 2500 单次 memory-worker 输出上限
debounceMs 1200 turn 结束后开始后台工作的 quiet 延迟
fastCompaction true 压缩摘要是否来自 prepared memory
includeSubagents false 是否分别跟踪 subagent 会话
debugLog false 每次 observer/reflector 打一行 host log
model session model 可选 worker 路由 { provider, model, reasoningEffort }

Settings 里「Reset to row config」会清掉 UI 覆盖,回到插件 row 的 config。

典型用法与验证

  1. 正常进行长会话,等待 turn 结束且 token 达到阈值后,后台会自动观察与反思。
  2. 在会话中调用已注册的 per-agent 工具 memory_recall,用条目 id 查看源事件。
  3. 用 slash 命令自检(外观未覆盖自动化测试,以实际界面为准):
    - /om-status:计数与 source-token 时钟;
    - /om-view:打印当前渲染的 memory 块。
  4. 确认当前 system/message 含 ## Observational memory 段落。
  5. 桌面端可在 ~/.dsh/storages/*.json 中查看 observational_memory 与 observational_memory_settings 持久化数据。

适用场景与注意

适合:需要在 DSH 里长时间 coding / agent 任务、又不想频繁手动「记住这段」、又希望压缩后仍能保留决策与约束的开发者。

限制(README Limits):

  • Worker 默认用 session 模型,除非 model 覆盖;池 pruning 按最旧优先,非模型驱动。
  • Fast compaction 仅在加载 compaction 后端且以 purpose: "compaction" 调用 session 模型时生效。
  • Memory 是派生状态;会话 log 仍是 source of truth。
  • 使用 reasoning 很重的 worker 可能占满输出 cap 而吐不出 JSON,文档建议 disable 或 minimize reasoning。

安全与信任:插件以当前 DSH 进程权限运行,会读写 host storage 并可能调用你配置的 worker 模型处理 transcript。安装前请阅读仓库源码与 MIT 许可证,确认符合你的环境策略;不要安装未审阅来源的 bundle。

结尾

dsh-memory-observer 把观察式记忆做成 DSH 后台能力:会话边跑边 condensed,压缩时还能借 prepared memory 减负。需要细节时查 README 配置表与 Settings 页即可。

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

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

小夜