DSH 的每个会话都是白纸开局。转录落盘是为了审计,模型再也看不到它。这个插件补上那一层:一条常驻的记忆目录 + 5 个记忆工具 + 后台自动提取。
这是什么¶
插件名 alanzhao0128/dsh-memory-lite,维护者是 alanzhao0128。它给 dsh agent 一份跨会话的长期记忆,核心特点是纯 Markdown 文件、零依赖。会话里的偏好、决策、约束会被记下来,重启、升级、换 profile 之后依然在。
核心功能¶
- 显式记忆工具:提供 5 个工具,分别是
read_memory、search_memory、remember、update_memory、forget_memory。update把旧内容归档进## History,forget是软删除(进.trash/)。 - L0 目录注入:每次会话注入常驻记忆目录消息(
_index.md渲染);目录变化、或压缩把它挤出可见面时自动重发。 - 隐式提取:后台把新增对话窗口喂给模型,产出 create / merge / update / skip 决策,带去重检索与解析失败重试。
- 跨 peer 共享:把别的 peer 的记忆以只读方式挂到
shared/<name>/下。 - 头部指示器:标题栏胶囊 + 三色点,每 10 秒轮询一次运行状态。
- peer 隔离:peer 名由会话 cwd 推导(目录名 + 短哈希),无 cwd 的会话落到
defaultPeer。
安装与启用¶
先安装插件,再重启 dsh。安装命令如下:
dsh plugin --profile web add @alanzhao/dsh-memory-lite
重启 dsh 后,宿主插件与浏览器半边都在启动时加载。装好后应该看到:
- 会话标题栏出现
memory-lite胶囊:绿点 = 最近一次提取正常,灰 = 提取关闭,红 = 最近一次提取失败。 - 设置 → memory-lite 出现完整配置页。
- 对模型说「记住:我用 pnpm 作为包管理器」,它会调用
remember,文件落到~/.agent-memory/peers/<peer>/memories/preferences/。
典型用法¶
- 显式调用:对模型说「记住:我用 pnpm 作为包管理器」,它会调用
remember。 - 隐式提取配置:把「推理强度」设为 off 以避免模型将输出预算花在思考上。
- 验证状态:重启 dsh 后在设置中验证 memory-lite 胶囊(绿点=正常,红=失败)。
适用场景与注意¶
适合需要在多个会话间保持上下文、保存决策偏好和约束的开发者。
使用时需注意以下几点:
- 权限与安全:所有文件访问包含边界(只允许相对路径,拒绝绝对路径和 symlink 逃逸);所有写入走串行队列 + 原子替换(tmp + rename)。
- 行为限制:
forget_memory没有审批门控(模型可直接软删除);## Related的自动维护还没做;没有 CLI / MCP 入口。 - 环境依赖:浏览器半边(指示器+设置页)需要 web profile 的 connection 服务,headless profile 下仅工具可用;隐式提取质量取决于模型,小模型易产出需要 repair 的 JSON。
- 兼容性:要求 dsh ≥ 0.1.5,Node ≥ 22。
经过上面的步骤,你就拥有了一个零依赖、基于 Markdown 的长期记忆插件。它通过显式工具和隐式提取两种方式,保证 agent 的决策和偏好不会因为会话重启而丢失。GitHub 链接:https://github.com/alanzhao0128/dsh-memory-lite