dsh-hindsight-memory:DeepSeek Harness 管线级长期记忆插件

前言

DeepSeek Harness (DSH) 生态强调插件化。在开发智能体时,对话上下文通常仅限于当前会话,新会话开启后 Agent 需要重新“学习”背景信息。dsh-hindsight-memory 插件将 Hindsight 集成到 DSH 的管线中,提供管线级长期记忆。它通过 DSH 的钩子机制,在模型调用前后自动完成记忆的注入与留存,且不暴露任何 agent 工具。

核心功能

  • 管线级长期记忆:将记忆能力嵌入 DSH 的 agent pre-step 和 post-step 流程。
  • 自动注入与留存:模型调用前自动召回,对话结束后自动留存。
  • 故障隔离:recall 失败不影响本步注入;retain 失败仅记录日志,不中断聊天。
  • 配置分层:支持设置界面编辑与配置分层(默认值、组合层、用户层)。

安装

使用官方命令安装插件,或指定本地路径。

dsh plugin --profile web add dsh-hindsight-memory

安装完成后,重启 DSH Web。在宿主日志中应能看到插件激活信息:

hindsight-memory: active (api=… bank=… enabled=true)

配置

重启后,DSH 设置侧边栏会出现独立的 设置 → Hindsight 记忆插件 分节。主要控件包括:

  • 启用开关:控制注入与留存功能的开启/关闭。
  • API URL:Hindsight API 地址。
  • API KEY:Bearer Token,留空则不认证。
  • BANK ID:记忆库名,多端指向同一 bank 可共享记忆。
  • Recall Budget:召回策略,可选 low / mid / high 三档。

配置分层遵循 DSH 语义:schema 默认值 ← 组合层配置 ← 用户层覆盖。所有字段保存后下一轮即可生效,无需重启。

配置示例(可省略):

- insert:
    - id: hindsight-memory
      name: dsh-hindsight-memory
      config:
        apiUrl: http://127.0.0.1:28888
        apiKey: ""
        bankId: dsh
        autoRecall: true
        autoRetain: true
        recallBudget: low
        recallTypes: [observation]
        maxQueryChars: 800
        recallTimeoutMs: 8000
        maxMemories: 8
        maxBlockChars: 4000
        retainContext: conversation between the DSH agent and the user
        retainTags: [source:dsh]
        includeSubagents: true
        retainEveryNTurns: 1
        verbose: false

工作原理

插件通过两个核心钩子实现功能:

  1. Auto-Recall (agent/pre-step):
    在每轮对话的第一个 LLM 调用(step 1)前触发。系统取最新用户消息(≤800 字符)作为 query 调用 Hindsight 的 recall 接口,并将相关记忆追加到步骤批次中。后续 step 不再重复召回。对齐 Hermes 的语义,寒暄确认(如“好的/嗯/ok/谢谢/继续”)和斜杠命令会被跳过。

  2. Auto-Retain (session/event):
    每次 append 都会投递一次事件。系统按 turn/start → user/message / assistant/message → turn/end 的顺序累积 User 和 Assistant 的文本。在 turn/end 时异步将内容存入 Hindsight。被播种的历史事件不会重新发布,因此不会重复留存旧轮次。

使用验证

  1. 新开一个会话,告诉 agent 一个事实(例如:“我的服务器叫 atlas”),然后正常聊完一轮。
  2. 打开 Hindsight UI(部署机的 29999 端口),进入 bank dsh。此时应能看到刚刚留存的 User: … / Assistant: … 记忆。
  3. 再开一个全新的会话,直接问“我的服务器叫什么”。Agent 的回答应直接带上答案,且全程没有调用任何工具。

注意事项

  • 运行时要求:DeepSeek Harness 版本需为 0.2.0-rc.1。
  • 依赖检查:插件在 package.json 中将相关包声明为 peer,profile 兼容性闸门会在不匹配的 DSH 上直接拒载,而非运行期静默失灵。
  • 消息过滤:只有 source.kind === "user" 的消息被当作“人类输入”;Harness 注入的上下文(时间上下文、技能目录等)既不作为召回 query,也不进入留存正文。
  • 子 Agent:子 agent / fork 会话默认参与记忆流转,可通过 includeSubagents 关闭。
  • 卸载:如需移除,使用 dsh plugin --profile web remove dsh-hindsight-memory。
羽毛球分组比赛记分
小程序二维码

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

小夜