dsh-acp-memory:基于 ACP 图的 DSH 本地统一记忆

前言

在 DeepSeek Harness(DSH)里跑智能体,上下文窗口总会被对话、工具结果和压缩策略挤占。把偏好、项目决策和教训写进单独的 Markdown 或笔记,模型往往不会在合适的轮次自动带上;完全依赖会话内历史,又会在 compaction 之后丢失「线性表面」看不到的内容。

社区插件 @snow-the/dsh-acp-memory(仓库 snow-The/dsh-acp-memory)面向同一类问题:在本地维护分层记忆,并走 capture → recall → inject 管线,同时可选读取 ACP 图数据库做跨检查点召回。下面介绍它的定位、能力与在 DSH 中的接入方式。

这是什么

维护者为 snow-The。npm 包名为 @snow-the/dsh-acp-memory,当前版本 0.1.0,许可证 MIT(见仓库 package.json)。

一句话定位(与目录页、包描述一致):Unified local memory for DeepSeek Harness, backed by ACP graph——核心与 DSH 适配分离(src/core 无 DSH 依赖,src/dsh 为薄适配层),通过 Cordis 补丁注册为插件 dsh-acp-memory。

在 SkillHub 上分类为「记忆」;截至撰写时 GitHub 星标为 0。SkillHub 与 DeepSeek / 幻方无官方从属关系,只是社区插件目录;DSH 本身也强调「一切皆插件」,安装来源以目录页与仓库为准。

核心功能

七层记忆模型

记忆按层划分(工具与检索均围绕这些 level):

soul | user | project | fact | lesson | topic | rules

另有 episode 层:表示单轮原始记录,可搜索,不会自动注入,也不会被提升为长期层(见 memory_search 工具说明)。

project 层支持子类:overview、structure、decisions、quotes、ops、todo。

本地存储与 ACP 图

  • 统一记忆库默认路径:~/.dsh/memory/memory.db(可通过环境变量 DSH_HOME 改变根目录,状态工具会打印实际 db 路径)。
  • ACP 图依赖:src/core/acp.ts 读取 ~/.dsh/graph/graph.db。图可用时,acp_recall 与 memory_status 会反映图状态;不可用时会输出状态说明而非静默失败。

capture → recall → inject

  1. Capture(捕获)
    监听 session/event:在 turn/end 时从会话事件自动捕获写入记忆(规则为主;LLM 精炼在默认配置下关闭,可配)。compaction/end 时标记「待重注入」。

  2. Recall(召回)
    memory_search 使用关键词、BM25 与时间衰减打分;acp_recall 在 ACP 图与七层记忆间做跨检查点检索。

  3. Inject(注入)
    在 agent/pre-step 中:首轮用户消息前注入长期记忆与导引;之后每轮按用户文本做 top 命中注入;compaction 结束后执行重注入。注入消息使用 DSH V4 要求的 source.kind: 'plugin:dsh-acp-memory' 形态。

注册的工具

插件 inject 面为 tools,向 DSH 注册包括但不限于:

工具名 作用概要
memory_remember 写入七层记忆,支持去重、关键词合并
memory_invalidate 退役条目(软失效),可选 superseded_by
memory_search 分层/项目/状态/时间过滤检索
memory_read / memory_update 按 id 读、改
memory_project 按项目聚合浏览
memory_find_similar 相似条目,便于去重或冲突检查
memory_status 各层计数与 ACP 图可用性
acp_recall ACP 图 + 本地记忆联合召回

仓库内测试脚本覆盖 capture、FTS、inject 等模块(package.json 的 test / fuzz),说明上述路径在维护者侧有自动化校验;这不等同于你在本机安装后的端到端验证。

安装与启用

重要: 当前抓取到的 SkillHub 目录页与 GitHub 仓库根目录均未提供可引用的 README 或固定 CLI 安装命令;请勿凭插件名自行拼接 dsh plugin add github:...。安装前请打开目录页,按站点当时的「可安装」指引操作,并在 GitHub 核对 package.json、cordis.patch.yml 与源码。

已知与 DSH 集成相关的事实如下。

Cordis 补丁(cordis.patch.yml)会向配置插入插件条目:

- insert:
  - id: dsh-acp-memory
    name: "@snow-the/dsh-acp-memory"

版本与 peer 要求(来自提供的 package.json):

"peerDependencies": {
  "@deepseek-ai/dsh": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-llm": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-tools": ">=0.2.0-rc.1"
},
"engines": {
  "dsh": ">=0.2.1-rc.2 <0.3.0-0"
},
"dsh": {
  "compatibility": {
    "dshReleases": ["0.2.0-rc.1", "0.2.0-rc.2", "0.2.1-rc.2"],
    "verifiedAgainst": "0.2.1-rc.2"
  }
}

说明:dsh.compatibility 字段供人与 CI 阅读;宿主是否禁用插件以 peerDependencies 与运行时 @deepseek-ai/dsh-app-boot 版本为准(详见仓库 docs/compatibility.md)。该文档在生成时曾针对较早宿主版本记录 PASS,不保证在你当前 DSH 版本上功能完整可用。

安装插件后,需保证 DSH 配置已应用上述 Cordis patch,并重启或按你使用的 profile 流程加载插件。

典型用法

仓库暂无 README 示例;下列用法对应工具在源码中的参数约定,可在智能体具备 memory_* / acp_recall 工具时由模型调用,或在支持工具调用的会话中等价发起。

写入一条项目决策(fact 层,带项目名):

智能体调用 memory_remember,例如:

  • content:一句不超过 60 字的结论(fact/lesson 的约定)
  • level:fact
  • project:你的项目标识
  • keywords:可选,省略时会自动抽取

检索与跨会话对照:

  • 当前会话内查本地库:memory_search,query 填中文或英文关键词,可按 level、project、days 过滤。
  • 用户提到「上次会话里的决定」时:acp_recall,query 填主题;默认 includeLocal: true 会同时搜七层记忆。

查看存储概况:

调用 memory_status(无参数),确认 memory.db 路径、各层条数及 acp graph 是否可用。

压缩之后:
无需手工操作;compaction/end 会触发重注入逻辑,下一轮 agent/pre-step 尝试把仍相关的记忆塞回上下文(具体文本由 buildReinjection 生成)。

适用场景与注意

适合谁

  • 长期在 DSH 同一 profile 下做项目开发,希望偏好、教训、项目结构沉淀到本地库并在每轮自动注入。
  • 已使用或计划使用 ACP 图(~/.dsh/graph/graph.db),需要把「被压缩掉的历史」与结构化记忆一起召回。

注意事项

  1. 权限与数据落盘:插件以当前 dsh 进程权限运行,会读写 ~/.dsh/memory/memory.db 及可能读取 ~/.dsh/graph/graph.db。安装前请阅读源码与 MIT 许可证,确认可接受本地明文记忆存储。
  2. 无官方安装命令摘录:正文未编造 CLI;以 SkillHub 目录页 与 GitHub 为准。
  3. 兼容性:engines.dsh 要求 >=0.2.1-rc.2 且 <0.3.0-0;升级 DSH 主版本前需重新核对 peer 与注入消息格式(V4 plugin:dsh-acp-memory)。
  4. 捕获依赖会话事件:若 turn/end 时读不到可解析的 session 事件,自动捕获会跳过并在日志中告警(见 index.ts 中注释)。

结尾

dsh-acp-memory 把七层本地记忆、ACP 图召回和 DSH 侧的自动捕获/注入收在一个插件里,适合不想只靠单次会话上下文、又希望数据留在本机的 DSH 用户。文档与安装指引以社区目录与仓库为准:

  • 目录页:https://www.skillhub.cn/plugins/snow-The/dsh-acp-memory
  • 源码:https://github.com/snow-The/dsh-acp-memory
羽毛球分组比赛记分
小程序二维码

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

Xiaoye