Engramory 长期记忆
用可读的 Markdown 笔记和限长索引,让多个 AI 工具共享精选的长期记忆。
- Star 数
- ★ 199
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- JavaScript
- FA 评分
- 63/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 使用 dsh 的个人用户,希望把跨会话的偏好和纠正存成可读笔记,并通过插件自动载入索引。
- 不适合
- 需要自动摄取和搜索大量资料的团队
- 需要多个 AI 同时写入同一记忆库的团队
- 源码审查
- 63/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Engramory 将记忆保存为普通 Markdown 文件,每条笔记单独成文,并在 MEMORY.md 中用指针列出。会话开始时读取索引,需要细节时再打开对应笔记;索引默认上限为 200 行或 25 KB。它通过规则、脚本和宿主集成来管理读写,不依赖数据库、向量存储或服务器。README 记录了 dsh-engramory 插件,以及 Claude Code、Codex、OpenClaw 和 Kiro 等接入方式。一个工具负责写入时,其他工具可以配置为只读同一记忆库。
Agent 按 user、feedback、project、reference 等类型整理记忆,并将每条记忆写入独立 Markdown 文件;MEMORY.md 保存标题、链接和简短描述。写入前应查重并更新已有笔记,过时内容可删除或归档到 archive/。dsh-engramory 插件会自动带入索引,并在可判定写入会使索引超限时拦截;Claude Code 可安装写前 hook。其他宿主可通过规则、engramory_check.py 和 engramory_doctor.py 管理写入与检查。Codex 可用 engramory_init.py 安装配置,记忆库存放在本地文件系统中。
- 使用 dsh 的个人用户,希望把跨会话的偏好和纠正存成可读笔记,并通过插件自动载入索引。
- Claude Code 用户,希望在写记忆前拦截会使索引超限的操作。
- 使用 Codex 的开发者,希望在项目目录中保留与 Codex 自带 Memories 分开的记忆库。
- 同时使用多个 Agent 工具的个人用户,希望由一个工具写入、其他工具只读共享同一库。
- 希望手工整理少量项目约定和参考信息、并直接用文本编辑器维护的用户。
如何安装或部署这个 Agent?
dsh 可从插件命令行安装;也可在桌面版插件页搜索 dsh-engramory。其他宿主的初始化需要 Python 3.9+,并在仓库目录中运行相应命令。Claude Code 需要添加规则并按需注册 hook;Codex 可用初始化脚本安装规则和 skill。
dsh plugin --profile <名字> add dsh-engramorypython tools/engramory_init.py codex --project-root /path/to/project --install-skill如何使用这个 Agent?
dsh 插件默认将记忆库存放在 ~/.dsh/.engramory-memory/,并在侧栏提供只读的「记忆」页。Codex 默认在项目的 .engramory-memory/ 中建库;已有库可用 --memory-root 指定。按规则新增或更新 Markdown 笔记,并保持 MEMORY.md 的指针索引精简。其他宿主可在更新索引后运行检查脚本;多个工具共享时,指定已有库作为只读来源。
python tools/engramory_init.py codex --project-root /path/to/project --install-skillpython tools/engramory_check.py
python tools/engramory_doctor.py这个 Agent 有哪些优点和局限?
- 记忆由普通 Markdown 文件组成,可直接查看、编辑,并可由不同工具读取。
- 索引只存指针,默认限制为 200 行或 25 KB,细节按需打开。
- dsh 插件和 Claude Code hook 能在写入前拦截可判定的索引超限操作。
- 无需数据库、向量存储或服务器,适合维护规模有限的个人记忆。
- 只有 dsh 和 Claude Code 提供写前超限拒绝;shell、MCP 文件工具和外部编辑器可绕过。
- 记忆整理主要依赖模型遵守规则,不是强制执行。
- 单个库只建议一个写入者;只读约束依靠规则,而非技术强制。
- 没有来源、可信度、过期字段或项目 ID;多项目共用时可能发生名称冲突或内容串用。
这个 Agent 与同类方案有什么区别?
与 Claude Code auto-memory 一样采用索引加详情文件,但 Engramory 明确规定整理方式并提供写入上限。与 basic-memory、mem0、Zep 和 agentmemory 等面向大量记忆的检索或自动捕获系统不同,Engramory 面向人工精选的个人记忆,不负责搜索或自动摄取。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Engramory 长期记忆 当前 | 63 · 存在缺口 | Agent 插件 / 技能免费 | ★ 199 | 2 天前 | JavaScript | Codex · Claude Code |
| CowAgent | 52 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 48k | 1 天前 | Python | OpenAI API · Claude API |
| YouTube Fetcher to Markdown | 83 · 表现良好 | Agent 插件 / 技能免费 | ★ 521 | 29 天前 | Python | Codex · Claude Code |
| OpenContext | 58 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.3k | 4 个月前 | JavaScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
SECURITY.md 明确说明存储为明文、索引上限只是尺寸提示而非安全控制、社交模式非访问控制、记忆可被注入,属于诚实披露;但秘密防护仅为纪律、无扫描,安装器符号链接检查为尽力而为且失败不回滚,dsh 插件新增两条本地 HTTP 路由(虽仅限已登录所有者),故 least_privilege 与 sensitive_data_handling 只得 1-2 分。用户确认方面未见写入前的交互确认机制,仅靠规则与钩子拒绝,故 1 分。数据流透明性较好:README 说明读取者会把回忆内容发送给宿主模型提供商,SECURITY 说明网络面仅限 dsh 路由,得 2 分。外部效应与回滚:卸载只移除安装器所加内容且从不删除记忆库,但安装器中途失败不回滚,得 1 分。来源归属:README 明确区分同名仓库、列出 prior art 与版权方,得 2 分。
CI 在三大平台、Python 3.9/3.13 矩阵运行多套测试,且测试为无依赖纯脚本,自洽性与依赖可用性较好(2 分);但失败信息方面仅见 SECURITY 中“失败开放并可见”的笼统描述,未见具体错误消息设计证据,得 1 分。
README 覆盖 dsh、Claude Code、Codex、OpenClaw、Kiro、Cursor 等多宿主,场景清晰(2 分);能力边界写得非常充分——哪些宿主能在写入前拒绝、哪些绕过、无 MCP、个人规模限制,得 3 分;触发精度方面索引注入与上限拒绝有说明,但依赖模型遵守规则,得 2 分;环境适配有 Python 3.9+ 与 node 要求说明,得 2 分。
信息架构清晰(目录树、索引行示例、笔记 frontmatter 示例),安装说明分宿主给出,命名稳定性有专门章节承诺主版本才破坏兼容,示例充分;已知限制章节异常详尽,得 3 分;LICENSE 为完整 MIT 文本,得 3 分;版本化有 CHANGELOG 引用与语义化承诺,但未见 CHANGELOG 文件本体,得 2 分;维护责任方面发布者为未验证身份,仅有 [email protected] 与无正式 SLA 的说明,得 1 分。
输出为可读可编辑的 markdown 文件与指针索引,可用性好(2 分);相对原生 auto-memory 的边际价值在于策展规则与写入前上限,但 README 自承与原生模式同构,增量有限(2 分);成本低(无数据库、无嵌入、无服务器),但依赖模型纪律,成本收益中等(2 分)。
README 的兼容性声明有 tests/dsh_e2e 的运行时摘要与结果记录机制支撑,claim_traceability 较好(2 分);SECURITY、README、测试脚本对同一威胁模型相互印证(2 分);文档中区分了“已强制”与“仅纪律”的事实与推断,得 2 分。但本次为静态审查,未执行任何测试,故整体置信度低。
- 记忆库为明文且无秘密扫描,切勿写入密钥、令牌或密码;仅记录其存放位置。
- 索引上限与社交模式均非安全边界:shell 工具、MCP 文件工具与外部编辑器可绕过写入前检查。
- 记忆内容可被篡改并构成存储型提示注入,回忆应视为建议性数据而非指令。
- 安装器符号链接检查为尽力而为,中途失败不回滚,可能留下部分完成的改动。
- 发布者身份未经 FollowAgents 企业注册表验证,维护责任与更新路径需自行核实。
- 本次为静态源码审查,未执行任何测试或端到端验证,兼容性声明未经独立复现。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v1.5.0 1.5.0 — dsh: move the global store to another folder
发布说明摘录
The dsh plugin's global store can be moved to another folder, its memory with it. - dsh: move the global store from the memory page. *Change location*, beside the global store, takes an empty folder (or one not there yet) — chosen in dsh's own folder chooser where it opens on this computer (a folder that holds something gets an Engramory folder inside), or typed — and moves the whole store there, notes, index and archive, then clears the old place. The store is copied and checked file by file before the switch; the …在 GitHub 查看 ↗ -
v1.4.0 1.4.0 — dsh: Check for updates on the memory page
发布说明摘录
The dsh plugin's memory page can check for a newer version. Nothing else changes. - dsh: *Check for updates* at the foot of the memory page, beside the plugin's version. Only when clicked, the page asks npm for the package's latest version number (npmmirror, its mirror in China, when npm cannot be reached; 8 seconds each), with no cookie, no referrer and nothing from your memory. A newer version comes with the steps that install it, the version named — [email protected] on the desktop's Plugins page …在 GitHub 查看 ↗ -
v1.3.1 1.3.1 — dsh: fixes from a review of the whole plugin
发布说明摘录
Fixes from a review of the whole dsh plugin. On dsh 0.2 with the defaults, how memory is stored, recalled and guarded does not change. - **dsh, social mode: someone else's conversation can no longer use dsh's session search** (an optional, experimental bundle), which reads any conversation opened in the same directory — the user's own, and the index in it, included. The filter also checks now the files a call lists (files, as dsh's present takes them — it told a stranger whether a file in a store existed) and where a session moves to (cd): any directory but a store's. …在 GitHub 查看 ↗