zhangfengcdt/memoir

GitHub: zhangfengcdt/memoir

为 AI agent 提供类 Git 版本控制的分层语义记忆系统,解决传统记忆方案中不可审计、不可回滚、上下文易污染的核心痛点。

Stars: 570 | Forks: 39

# Memoir
Memoir Logo **AI 记忆的 Git** *具有类 Git 版本控制的分层记忆系统*
[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org) [![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://github.com/zhangfengcdt/memoir/blob/main/LICENSE) [![Status](https://img.shields.io/badge/Status-Alpha-orange.svg)]() [![Website](https://img.shields.io/badge/Website-memoir--ai.dev-purple.svg)](https://www.memoir-ai.dev/) [![Docs](https://img.shields.io/badge/Docs-zhangfengcdt.github.io%2Fmemoir-blue.svg)](https://zhangfengcdt.github.io/memoir/)

Memoir demo

Memoir 是一个为 AI agent 打造的高性能语义记忆系统,它将类 Git 的版本控制引入了 AI 记忆管理。它通过分层语义路径,用透明、版本化且具备密码学安全性的记忆存储取代了不透明的向量数据库。 ## 为什么 agent 需要版本化记忆 **你的 agent 不会尊重你的 git 状态。** 每次执行 `git checkout` 都会发生上下文污染。如果没有具备分支感知能力的记忆,你的 agent 就会尝试将实验性的重构模式应用于稳定的生产环境热修复。 **你在为扁平文件支付 "token 租金"。** 将 `CLAUDE.md` 或 `MEMORY.md` 用作全局存储简直是缓存杀手。每一次微小的记忆更新都会使你的整个前缀缓存失效,迫使你支付全价以重新处理整个对话。 **你的 agent 记忆就像是没有版本控制的代码。** 如今的 AI 记忆——`CLAUDE.md`、向量存储、临时记事本——都被当作只能追加的单一数据块来处理。一次糟糕的会话就会毒害未来的每一次检索。如果没有 `memoir blame` 或 `memoir checkout`,就无法审计是谁教会了 agent 某条规则,也无法在不清除整个存储的情况下撤销一次幻觉。 ## 核心功能 - **类 Git 版本控制** — 对记忆进行分支、提交、合并和回滚,并具备密码学完整性。 - **语义路径** — 用有意义的路径(如 `profile.professional.skills.python`)取代 UUID 键。 - **O(log n) 查找** — 快速的分层搜索,取代昂贵的向量操作。 - **记忆聚合** — 在语义位置自动整合相关记忆。 - **整洁架构** — 存储、分类和搜索层实现了恰当的分离。 - **多种搜索引擎** — 在基于关键字的快速搜索或智能的 LLM 驱动搜索之间自由选择。 ## 多 agent 会话

Multiple agent sessions working with Memoir
Multiple agent sessions working with Memoir.

## 从 PyPI 安装 ``` pip install memoir-ai ``` ## 为 Claude Code 安装 在 Claude Code 会话中,运行: ``` /plugin marketplace add zhangfengcdt/memoir /plugin install memoir@memoir ``` **如果你的 `PATH` 中有 `uv`,则无需手动执行 `pip install`** — 当未安装裸 `memoir` 二进制文件时,插件会自动解析为 `uvx --from memoir-ai memoir`。还没有 `uv`?使用标准单行命令安装一次即可: ``` curl -LsSf https://astral.sh/uv/install.sh | sh ``` 这就足够了——插件会处理剩下的事情。它会为会话启动、user-prompt-submit 和停止注册钩子,因此你的项目将获得自动的上下文注入和自动捕获的记忆。请参阅 [Claude Code 插件指南](https://zhangfengcdt.github.io/memoir/claude_code/) 以获取完整的斜杠命令和钩子参考。 ## 为 Codex 安装 Memoir 的 Codex 插件从此仓库的 Codex 市场分发。在 Codex 中,运行 `/plugins`,从 `zhangfengcdt/memoir` 添加 `memoir` 市场,如果出现提示请重启 Codex,然后选择 **Memoir Plugins** 并安装 `memoir`。 你也可以从 CLI 注册市场: ``` codex plugin marketplace add zhangfengcdt/memoir ``` 在从本地检出的代码进行开发时,请改用 `codex plugin marketplace add /absolute/path/to/memoir`。仓库市场位于 `.agents/plugins/marketplace.json`,它会将 Codex 指向相对于仓库根目录的 `./plugins/codex`。 **如果你的 `PATH` 中有 `uv`,则无需手动执行 `pip install`** — Codex 插件解析 Memoir CLI 的方式与 Claude Code 插件相同:首先是 `PATH` 上的 `memoir`,然后是 `uvx --from memoir-ai== memoir`,最后是 `uv tool run --from memoir-ai== memoir`。 在 `~/.codex/config.toml` 中设置 `[features].hooks = true` 或在冒烟测试时传递 `--enable hooks` 来启用 Codex 钩子。Codex 插件附带生命周期钩子;`memory-recall`、`memoir-onboard`、`memoir-remember`、`memoir-status` 和 `memoir-ui` 技能;特定于 Codex 的转录解析;以及本地市场元数据。请参阅 [Codex 插件指南](https://zhangfengcdt.github.io/memoir/codex/) 以了解设置、限制以及真实的 Codex 冒烟测试流程。 ## 快速体验 自 v0.1.6 起,Memoir 的 CLI 默认使用 Anthropic **`claude-haiku-4-5`** — 请先设置你的密钥: ``` export ANTHROPIC_API_KEY="sk-..." ``` 然后创建一个存储并往返一条记忆: ``` # 1. 创建 memoir store memoir new my-memoir-store cd my-memoir-store # 2. 带有显式路径的 Store (离线,无 LLM 调用) memoir remember "Sarah prefers tabs and 2-space indents" -p preferences.coding.style # 3. 带有自动分类的 Store (LLM 选取路径;需要 API key) memoir remember "I work in Pacific time" # 4. 按路径读回 (离线) memoir get preferences.coding.style # 5. 语义搜索 (LLM-backed) memoir recall "what does Sarah prefer?" # 6. 打开可视化浏览器 (自动在你的 browser 中打开) memoir ui ``` 想用其他模型?`memoir recall "..." --model gpt-4o-mini`(需要 `OPENAI_API_KEY`),或者在 shell 中设置 `MEMOIR_LLM_MODEL`。解析顺序:`--model` 标志 → `MEMOIR_LLM_MODEL` → `claude-haiku-4-5`。 请参阅完整的 [快速入门](https://zhangfengcdt.github.io/memoir/quickstart/) 以了解 Python API 和版本控制工作流。 ## 文档 完整文档位于 **[zhangfengcdt.github.io/memoir](https://zhangfengcdt.github.io/memoir/)**: - [快速入门](https://zhangfengcdt.github.io/memoir/quickstart/) — 五分钟了解核心循环。 - [CLI 参考](https://zhangfengcdt.github.io/memoir/cli/) — 每个命令、标志和退出代码。 - [UI](https://zhangfengcdt.github.io/memoir/ui/) — 可视化浏览器(树状图 / 图谱 / 时间线 / 地点 + `/stats`)。 - [Claude Code](https://zhangfengcdt.github.io/memoir/claude_code/) — 插件安装、斜杠命令、钩子、生命周期。 - [Codex](https://zhangfengcdt.github.io/memoir/codex/) — 插件安装、钩子、技能、转录解析、冒烟测试证据。 - [架构](https://zhangfengcdt.github.io/memoir/architecture/) — 分类法、分类器、存储、搜索。 - [API 参考](https://zhangfengcdt.github.io/memoir/api/memoir/) — Python SDK。 - [示例](https://zhangfengcdt.github.io/memoir/examples/) — 上下文分支、记忆调试、可重现测试。 ## 贡献 Memoir 目前处于 alpha 阶段,非常欢迎大家贡献——尤其是来自构建编码 agent 的人士,因为那正是我们优化所面向的受众。推荐的起步方式: - 从 [问题追踪器](https://github.com/zhangfengcdt/memoir/issues) 中挑选一个 issue,或者开一个新 issue 来描述某个不足之处。 - Fork 该仓库,从 `main` 分支拉出新分支,在开 PR 之前运行 `make ci`(lint、测试、文档构建必须全部通过)。 - 我们特别欢迎带有最小可复现示例的 Bug 报告,以及针对编码 agent 用例的基准测试 / 分类法提案。 ## 许可证 Apache License 2.0 — 详见 [LICENSE](https://github.com/zhangfengcdt/memoir/blob/main/LICENSE)。
标签:AI基础设施, AI智能体, AI记忆系统, DLL 劫持, Git, LLM, Petitpotam, Python, RAG, Token优化, Unmanaged PE, 上下文污染, 上下文管理, 代码辅助, 内存管理, 分层存储, 加密安全, 向量数据库替代, 大语言模型, 安全可观测性, 开源, 无后门, 版本控制, 知识管理, 缓存优化, 语义记忆, 路径存储, 逆向工具