前言¶
DeepSeek Harness(dsh)是 DeepSeek 开源的智能体运行时,核心理念是「一切皆插件」:模型、工具、会话、沙箱和界面都可以替换或叠加。官方仓库在 deepseek-ai/deepseek-harness。社区里也有独立的插件目录站点,用来发现和对比插件,它与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
日常用 dsh 写代码、改项目时,一个很具体的问题是:会话一关,约定、踩坑和待办就散了。下次再开,模型不知道你昨天定过什么架构、偏好怎么写、deadline 卡在哪一天。有人靠手动贴笔记,有人换工具后又要从头积累。dsh-auto-memory 就是冲着这件事做的:面向 DSH Web,把记忆写成本地 Markdown,按层注入,并在每轮对话后尝试自动沉淀。
这是什么¶
dsh-auto-memory 是一款记忆类插件,由 Aik358 维护,面向 DSH Web GUI。目录页的定位是:用户级、项目笔记、每日日志三层记忆自动注入与检索,附每日反思、可视化面板与设置页,并可继承其他 AI 工具的历史记忆。
当前可核对的发布信息如下:
- 目录页分类:记忆;许可证:BSD-3-Clause
- GitHub:Aik358/dsh-auto-memory,主要语言 JavaScript,仓库 star 为 13(目录页仍显示 6,以 GitHub 为准)
- npm 包名:
@a9i5k4/dsh-auto-memory,本文核对到的版本为 0.1.26 package.json里声明dsh.client.platform为web,也就是挂在网页界面上用,不是 headless 专用包
它要解决的问题很直接:让同一套用户规则、项目约定和近期日志,在后续会话里还能被模型读到;常规工作尽量不用你记得去记。
核心功能¶
仓库 README 把能力拆成记忆引擎和界面两部分。下面只写两边都能对上、并且 README / 目录页写明了的内容。
1、三层记忆,外加一层反思
| 层 | 默认位置 | 用途 |
|---|---|---|
| 用户级记忆 | ~/.dsh/memory/MEMORY.md |
跨项目规则和偏好 |
| 项目笔记 | ~/.dsh/memory/workspaces/{工作区}/MEMORY.md |
项目约定、决策、架构要点 |
| 每日日志 | ~/.dsh/memory/workspaces/{工作区}/YYYY-MM-DD.md |
只追加的工作日志 |
| 每日反思 | ~/.dsh/memory/workspaces/{工作区}/reflections/YYYY-MM-DD.md |
成果 / 教训 / 下一步,后台结构化保存 |
工作区记忆集中放在 ~/.dsh/memory/workspaces/ 下,每个工作区一个子目录。README 说明旧版散落在各工作区 .dsh-memory/ 里的文件,升级后首次运行会自动迁移,旧副本保留不删。日历数据在用户级 ~/.dsh/memory/CALENDAR.md,跨工作区共享。
2、精简注入,细节按需读
每次组装系统提示词时,插件在末尾追加 <memory_system> 块,内容包括用户规则、项目笔记、反思精华、最近 1 天日志尾部、外部记忆路径、未完成日历事项和写入纪律。默认注入预算是 injectBudgetChars: 2400,最近日志只取 1 天。完整文件用 memory_read / memory_recall 按需拉取,而不是整份历史塞进 prompt。
README 还写了两点工程约束:静态规则尽量保持字节稳定,方便 DeepSeek 前缀缓存命中;令牌、密钥、凭据这类敏感段落会从注入里过滤,文件本身仍保留。
3、每轮自动沉淀
对话一轮结束后,小型子代理评估本轮内容,值得留下的会写入今日日志,格式类似 - 21:03 [自动沉淀] …。项目决策、架构要点会升格到项目笔记(带 ## YYYY-MM-DD 标题),跨项目规则升格到用户级记忆。寒暄轮按字数门槛跳过,默认 autoConsolidateMinChars 为 240;按 turn 去重;子代理自己的轮次不参与。默认每天最多自动沉淀 8 次,冷却 30 分钟,22:00–08:00 冷却时间翻倍。这些都可以在 ~/.dsh/dsh-auto-memory.json 或设置页「自动化」分组改。
需要主动整理时,模型还可以调用 memory_consolidate,从近期日志里提炼长期决策和偏好,写入 MEMORY.md。
4、面板、检索、日历和跨工具继承
启用后,Web 侧边栏会出现「记忆」入口,浮层面板包含概览、日志、笔记、反思、接续、日历、检索。概览页会按早 / 上午 / 中午 / 下午 / 晚上生成问候,并把当日工作收成三级抽屉;离开超过 1 小时再打开,会走「欢迎回来」并补上期间完成的事项。问候按时段缓存,不是每次打开都重新打模型。
检索页除关键词外还有「智能检索」:把自然语言扩成 3–6 个关键词,扫描三层记忆和反思,再给出带出处的回答。README 给的例子是「上次发布 npm 踩的坑」会扩成「发布 / 踩坑 / GitHub / npm / 推送」这类词。说明里写明:不编造记忆里没有的事实。
日历是四象限月视图,并支持当天 07:00–22:00 时间轴。对话里出现 deadline、约定时,模型可用 calendar_add / calendar_list / calendar_done / calendar_remove 维护;未完成事项会注入后续会话,直到勾掉。
「接续」用来发现并导入其他工具里已经攒下的记忆。README 点名的来源包括 WorkBuddy、CodeBuddy、Claude Code、Codex,以及项目约定文件。导入后按来源查看或移除,内容按需读取,不再整段注入。
安装与启用¶
目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行:
dsh plugin add github:Aik358/dsh-auto-memory
需要可复现安装时,按目录页的写法固定 commit 哈希:
dsh plugin add github:Aik358/dsh-auto-memory#commit
把 commit 换成仓库里实际的提交哈希。插件以当前 dsh 进程的权限运行,安装时可能执行代码,装之前应先看源码仓库和许可证。
仓库 README 另外给了一条面向 Web profile 的 npm 安装路径,前提是已经装好 dsh,并且至少启动过一次 dsh web。在 profile 目录执行:
cd ~/.dsh/profiles/web
pnpm add @a9i5k4/dsh-auto-memory
没有 pnpm 时可以用:
npm install @a9i5k4/dsh-auto-memory
然后编辑该目录的 package.json,在 dsh.profile.bundles 数组里追加:
"@a9i5k4/dsh-auto-memory"
保存后重启 dsh web。侧边栏出现「记忆」入口,说明插件已经挂上。README 还提到:pnpm v11 默认不装发布未满 1 天的包;当天要立刻用新版本,需要在该目录的 pnpm-workspace.yaml 里设 minimumReleaseAge: 0,或写成显式版本,例如 pnpm add @a9i5k4/dsh-auto-memory@0.1.26。
更新可以在同一目录执行 pnpm up @a9i5k4/dsh-auto-memory,或到设置 → 自动记忆里用「检查更新」。改完插件集后都需要重启 dsh 才会生效。
典型用法¶
装好之后,多数日常工作不用先记一套命令。按 README 的设计,常规对话结束就会尝试写今日日志;你在面板里能看到「今日已自动沉淀 N 条要点」。需要人工干预时,模型侧注册了这些工具:
memory_log / memory_note / memory_user / memory_recall / memory_external / memory_maintain / memory_status / memory_reflect / memory_consolidate / calendar_add / calendar_list / calendar_done / calendar_remove
几个和文档一致的用法:
1、让模型按自然语言查记忆。在检索页点「智能检索」,或在对话里直接问「上次发布 npm 踩的坑」。命中后应能看到来源(某日日志 / 项目笔记 / 用户级记忆),而不是一段没有出处的总结。
2、让日历跟着对话走。会话里说到截止日期或会议,模型应调用 calendar_add,并在回复正文里说明已经写入;完成后用 calendar_done。未完成项会进下一轮系统提示词。
3、从其他工具接记忆。打开面板的「接续」,按来源查看、接入或删除。已接入的来源会标 ✓,笔记和用户级可以分别处理。
4、改注入和行为。设置 → 自动记忆可以改存储路径、注入预算、反思风格、界面语言(中文 / English)和字号。也可以直接改 ~/.dsh/dsh-auto-memory.json。仓库给出的默认值如下:
{
"userMemoryDir": "~/.dsh/memory",
"projectMemoryDir": ".dsh-memory",
"injectEnabled": true,
"injectBudgetChars": 2400,
"recentDaysInjected": 1,
"reflectEnabled": true,
"reflectStyle": "auto",
"locale": "zh",
"autoConsolidate": true,
"autoConsolidateMinChars": 240,
"autoConsolidateCooldownMinutes": 30,
"autoConsolidateDailyMax": 8,
"externalInjectionChars": 1400,
"memoryRoot": "~/.dsh/memory/workspaces",
"dayBoundaryMinutes": 450
}
dayBoundaryMinutes 默认 450,也就是早上 7:30 才算新的一天:日界前的工作记入前一天日志,前一天的反思也要过了日界才开始。用户级记忆每天写入预算约 4000 字,项目笔记约 3000 字;超限时先压缩「今天之前」的旧内容再写,压缩失败则归档到 archived-user.md / archive/notes-archived.md,README 写明信息不丢。超过 30 天的日志可用 memory_maintain 蒸馏进项目笔记,原文归档到 archive/。
适用场景与注意事项¶
更适合已经在用 dsh web、需要跨会话记住项目约定和近期进展的人。如果你同时用过 Claude Code、Codex、CodeBuddy 或 WorkBuddy,并且希望把那边攒下的记忆接过来,这个插件的「接续」就是冲着这件事。它不是知识图谱型记忆(目录里同类还有 graph-memory、mnemon 等),而是明文 Markdown 加自动注入。
使用前有几条边界需要看清楚:
- 插件以当前 dsh 进程权限运行,安装可能执行代码。装之前检查 GitHub 仓库 和 BSD-3-Clause 许可证;需要可复现时固定 commit。
- 面向 Web。
package.json声明 platform 为web,不要默认它在 headless 流程里也有同样的面板和注入行为。 - 记忆文件是明文 Markdown。README 写明:除非用户明确要求,否则不把密钥写进记忆;即便写进去,注入阶段也会过滤凭据类段落,但文件仍在磁盘上,要注意目录权限和备份范围。
memory_recall的历史会话检索依赖部署的 session-query 索引;没启用时只做本地检索。- 自动沉淀有次数和冷却限制,寒暄轮会被跳过,不能当成「每一句都会入库」。
- 插件集变更必须重启 dsh。当前版本迭代很快(npm 上 2026-08-14 发布 0.1.0,到 0.1.26 只过了几天),升级后先看 README 的迁移说明。
小结¶
dsh-auto-memory 把用户规则、项目笔记和每日日志做成三层本地记忆,用精简注入控制 token,再用每轮自动沉淀减少「忘了记」这件事。日历、智能检索和跨工具继承是同一套文件之上的界面与工具,不是另一套云端账号体系。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-auto-memory/
GitHub:https://github.com/Aik358/dsh-auto-memory
npm:https://www.npmjs.com/package/@a9i5k4/dsh-auto-memory