为什么需要
AI Agent 在单次会话里很强,但关掉终端或 compact 后,前面积累的决策、用户偏好、项目上下文全部丢失。开发者只能不断复制粘贴历史会话,或者靠 LLM 自己的 memory tool——后者通常存在云端、不可移植、也不便检索。
agent-memory 把 Agent 的记忆搬回本地文件系统:用 Markdown 当唯一数据源,SQLite 做可重建的索引,记忆之间用 frontmatter 里的 links 互相关联。任何 Agent 只要能跑 shell 命令就能用——Claude Code、Codex CLI,甚至你自己写的小脚本。
怎么用
git clone https://github.com/tigerless-labs/agent-memory.git
cd agent-memory && uv sync --all-packages
export PATH="$PWD/.venv/bin:$PATH"
mem init
mem setup --host claude-code # 或 --host codex
之后 Agent 会在 SessionStart 自动注入 MEMORY.md,在 Stop / SessionEnd 自动蒸馏写入。检索按 path 返回,不会把整段文本塞进上下文:
mem recall "为什么用文件而不是数据库"
mem read <name> --level outline # headings only
mem context "上次为什么拒绝那个 PR"
长时间不用的记忆会在 sleep-time 自动归档,归档规则通过 config.toml 调整,删除前会先生成 proposal 等你确认。
使用案例
跨会话保持项目上下文:在 Claude Code 上周决定用 SQLite 而不是 Postgres,今天开新会话,Agent 一查就能拿到决策原因,不用重复讨论。
跨工具共享记忆:Claude Code 写下的决策,Codex CLI 同样能 recall 到。三个 host 共享同一份 store,9 组 writer/reader 配对全部通过一致性测试。
多 Agent 协同:Astra / Hermes 等不同 Agent 框架都通过 mem CLI 接入,记忆存储统一,避免每个 Agent 自己造一套。
注意事项
- 需要 Python 3.12+ 和 uv,目前未发布 PyPI 版本,必须从 checkout 安装
- 需要把
.venv/bin加到PATH,否则 hook 装上后 Agent 找不到mem-hook - 存储位置默认
~/agent-memory-store,可在环境变量里换,但所有 Agent 进程必须一致 - T1 级别(删除/合并)操作只生成 proposal,不会自动执行