这是什么?适合谁?
Perenna(scarletkc/Perenna,16 Stars,MIT,PyPI: perenna)是一个 Git 背书的 AI Agent 永久记忆层,以 MCP server 形态提供。它要解决的问题是记忆孤岛:Claude Code、Codex、Cursor、ChatGPT 各自把记忆存在自己的角落里——换 Agent 记忆就丢、换机器记忆就留在原地。
Perenna 的回答很工程派:记忆就是你自己 Git 仓库里的普通 Markdown。每条 durable memory 都是可 inspect、可编辑、可版本化、可备份的人类可读文件;所有 Agent(本地 stdio 或自托管 HTTP 接入的 ChatGPT)连同一个 Perenna 服务,共享这一份记忆。没有账号、没有专有记忆云、没有锁定。
设计要点:
- 读写分离的 MCP 工具:read/write/delete 各自独立工具,权限边界清晰
- 两种传输:本地 stdio 与单用户 OAuth 保护的 Streamable HTTP
- 本地检索索引(Vexor):语义检索可用,但永远可以从 Git 重建——索引是缓存不是源
- 跨进程锁:多个本地 Agent 进程并发读写不冲突
- 记忆行为 Skill:
perenna skill install --agent claude-code/codex可选装「如何使用记忆」的行为指引
作者对竞品的批评也值得引用:Mem0 自托管栈重得多,而其托管免费计划条款允许客户内容用于模型训练与产品改进——Perenna 用「你的 Git 仓库、你控制的基础设施」从设计上排除这类问题。
适合人群:
- 同时用多个编码 Agent(Claude Code + Codex + Cursor)的开发者,想要一份跨 Agent 的项目记忆
- 数据主权敏感的用户/团队:记忆必须可审计、可导出、可自托管
- 想给 Agent 做「长期记忆」但不想引入向量数据库全家桶的工程师
不适合:想要开箱即用云端 SaaS 记忆服务的用户;需要多团队共享/复杂权限管理的场景(当前单用户定位)。
使用前提:Python 3.12+、Git、uv;或任一 MCP 客户端。
准备工作
- 运行时:Python 3.12+、Git、uv。
- 安装:
uv tool install perenna。 - (可选)记忆行为 Skill:
perenna skill install --agent claude-code(或 codex,两者都要就重复--agent)。 - Git 仓库:为记忆单独建一个私有仓库(强烈建议 private)。
- 成本:MIT 免费开源;成本仅本地运行与你自己 LLM 的 tokens。
- 时间预算:安装配置 10 分钟。
快速上手(3 步)
第一步:安装
uv tool install perenna
# 可选:给本地客户端装记忆行为 skill
perenna skill install --agent claude-code
第二步:接入 Agent
最省事的方式是把官方引导 prompt 贴给你的 Agent:
Open the following URL, read the complete instructions, and follow them to
install and connect Perenna:
https://raw.githubusercontent.com/scarletkc/Perenna/main/docs/guides/agent-installation.md
Claude Code/Codex/ChatGPT Desktop/Cursor 都能照着自主完成配置。
第三步:跨 Agent 验证记忆共享
(在 Claude Code 里)记住:这个项目用 pnpm,禁止 npm install。
(换到 Codex 里)这个项目用什么包管理器?
预期结果:Codex 从 Perenna 读出「pnpm,禁止 npm install」——记忆跨 Agent 存活。
常见踩坑
踩坑 1:索引与 Git 内容不一致
- 现象:检索结果缺最新记忆。
- 原因:索引未同步(索引只是缓存)。
- 解决:任何时候可删索引从 Git 重建;这也是设计兜底而非 bug。
踩坑 2:并发写冲突
- 现象:多 Agent 同时写记忆时偶发报错。
- 原因:跨进程锁保证不损坏,但业务层去重仍需注意。
- 解决:让不同 Agent 写不同主题前缀;冲突时靠 Git 历史回滚。
踩坑 3:把记忆仓库设成 public
- 现象:记忆内容(可能含代码上下文、个人偏好)公开泄露。
- 原因:新建仓库默认 public(GitHub)。
- 解决:务必 private;这是你唯一的安全边界之一。
踩坑 4:stdio 与 HTTP 模式混淆
- 现象:ChatGPT 连不上本地 stdio 的实例。
- 原因:ChatGPT 需要走自托管 Streamable HTTP(OAuth 保护)。
- 解决:按文档起 HTTP 模式并配置 OAuth,本地 CLI 类 Agent 用 stdio。
踩坑 5:Python 版本不达标
- 现象:安装失败。
- 原因:要求 Python 3.12+。
- 解决:
uv会自动管理 Python 版本;确认uv tool install perenna用的解释器 ≥3.12。
踩坑 6:skill 装了没生效
- 现象:Agent 不主动用记忆。
- 原因:行为 skill 只装在了一个 Agent 的目录。
- 解决:
perenna skill install --agent codex --agent claude-code一条命令装双端。
初级用法
- 项目约定记忆:包管理器、代码风格、禁区——一次写入,所有 Agent 遵守。
- 踩坑日志:让每个 Agent 干完活自动把「本次踩坑+解法」写进 Perenna,形成团队知识库。
- 直接读 Markdown:记忆就是 Git 里的 .md,用编辑器/Git 历史直接查看与修改,不依赖任何工具。
- 定期备份:记忆仓库 push 到远端,备份策略与代码仓库一致。
高级玩法
- 记忆的 code review:记忆仓库开 PR 流程——Agent 写的记忆先出 PR、人审后合并,记忆质量有门禁。
- 跨机器同步:办公机/家用机克隆同一记忆仓库,配合锁机制避免写冲突。
- ChatGPT + 本地 CLI 混编:自托管 HTTP 模式让 ChatGPT 与 Claude Code 共享同一份记忆,云端/本地 Agent 认知对齐。
- 记忆迁移与审计:从 Mem0 等导出记忆转成 Markdown 入库;Git blame 就是记忆审计日志。
小技巧
- 记忆按主题分文件:
conventions.md、pitfalls.md、people.md,比一锅粥好检索好审阅。 - 删记忆也走 Git:delete 工具之外,直接改文件提交同样合法,历史可追溯。
- 重建索引当体检:定期删索引重建,顺便验证 Git 源完整性。
- OAuth 别关:HTTP 模式的 OAuth 保护是单用户场景的最低安全线。
- 给记忆写测试:把「Agent 是否正确读到了约定」做成冒烟测试,防配置漂移。
常见问题 FAQ
Q1:和 Mem0 有什么本质区别?
A:Mem0 是向量库/云服务取向(自托管栈重、托管版有数据训练条款);Perenna 是 Git + Markdown + 可重建索引,数据主权完全在你。来源:README Why Perenna
Q2:语义检索怎么做?索引丢了怎么办?
A:本地 Vexor 检索索引,索引永远可从 Git 重建——Git 是唯一事实源。来源:README
Q3:ChatGPT(非 MCP 客户端)怎么接?
A:通过自托管、OAuth 保护的 Streamable HTTP 端点接入。来源:README
Q4:能多人共用吗?
A:当前设计为单用户;多 Agent 共享是核心场景,多人类协作者不是。
Q5:记忆会很大吗?性能如何?
A:Markdown 文本体积通常远小于向量库;检索走本地索引,规模敏感场景建议分仓。
进阶学习建议
- 读 agent-installation.md 的自安装设计:让 Agent 自己读文档完成安装配置——这种「Agent 自服务 onboarding」模式正在成为 MCP 工具的标配交互,值得在自己产品里复用。
- 对比三种记忆架构:Perenna(Git 源)vs 向量库方案 vs 厂商托管记忆,从「可审计性/可迁移性/运维成本」三列表格做一次自己的选型分析,你会更清楚什么时候 Git 背书是优势、什么时候是负担。
- 记忆治理实践:结合上面的「记忆 PR 门禁」玩法,给你的记忆仓库写一份 CONTRIBUTING——记忆质量决定 Agent 长期表现。
参考链接
免责声明:本文基于官方仓库 README 与 GitHub 公开数据整理,AI 辅助生成,MagicNetWorld 尚未完成独立实测。项目较新(16 Stars),生产采用前请自行评估。
📊 评分与标签
评分说明
总分 7.8/10 · S_入选
📊 可观测社区指标(采集日期:2026-08-24)
- GitHub: scarletkc/Perenna ★16,🔱0
- 协议:MIT;PyPI 发布:perenna
- 活跃度:最近推送 2026-08-23(采集前 1 天),仓库创建 2026-08-21(3 天)
- 工程配置:GitHub Actions validate 工作流、Codecov、CodeRabbit、DeepWiki 集成
⚙️ 功能完整度 1.9/2.5
- 完整的记忆层功能面:read/write/delete 独立 MCP 工具、stdio + OAuth Streamable HTTP 双传输、Vexor 本地可重建检索索引、跨进程锁、可选记忆行为 skill(claude-code/codex 双适配)
- 来源:README
- 缺多用户/权限、记忆分层治理、托管服务;定位单用户自托管
- 竞品对比 1(Mem0):Mem0 有托管云、丰富的检索策略与多租户;Perenna 功能面窄但数据主权完整
- 竞品对比 2(Letta/MemGPT 类):认知型记忆架构(记忆分层、自我编辑)更强;Perenna 是文件系统派,简单透明
✨ 输出质量 2.0/2.5
- 记忆即人类可读 Markdown,可 diff 可审计——输出质量可由人直接校验,这在记忆类产品中少见
- 检索质量依赖 Vexor 本地索引,未见公开基准数据,保守评估
- 竞品对比 1(向量库方案):语义检索上限更高但黑盒;Perenna 检索可解释、可重建
- 竞品对比 2(厂商内置记忆):质量不可见不可控;Perenna 全程可审计
🖐️ 易用性 1.5/1.5
uv tool install perenna一条命令;「把安装文档 URL 贴给 Agent 让它自己装」的自服务 onboarding 是当前最顺滑的接入范式- 竞品对比 1(Mem0 自托管):需数据库/向量栈运维;Perenna 只要 Python+Git+uv
- 竞品对比 2(自建记忆脚本):要自己写锁/索引/传输;Perenna 全部内置
💰 性价比 1.5/1.5
- MIT 完全免费;运行成本仅为本地进程;无订阅无按量计费
- 竞品对比 1(Mem0 托管版):有付费档且免费档条款涉及数据用于训练;Perenna 零成本零条款风险
- 竞品对比 2(商业记忆产品):按席位收费;Perenna 自托管 $0
🔒 稳定性 0.4/1.0
- 仓库 2026-08-21 创建(3 天)、16 stars,生产验证记录几乎没有;但有 CI(validate workflow)、Codecov、CodeRabbit 审查等良好工程习惯,代码质量基线有保障
- 竞品对比 1(Mem0):大量生产用户打磨;Perenna 未经考验
- 竞品对比 2(个人脚本记忆方案):无工程化;Perenna 至少有测试与 CI 兜底
🛡️ 隐私安全 0.5/1.0
- 数据主权设计是最大亮点:记忆在你自己的 Git 仓库、你控制的基础设施,无账号无云端;HTTP 模式带 OAuth 保护
- 但记忆内容含项目敏感上下文,若仓库误设 public 即泄露(属使用风险而非设计缺陷)
- 竞品对比 1(Mem0 托管免费档):条款允许内容用于训练;Perenna 从架构上杜绝
- 竞品对比 2(厂商内置记忆):数据在厂商侧;Perenna 数据不出你的基础设施
评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。
🏷️ 标签说明
- AI开发平台: 定位为 AI Agent 开发的基础设施(记忆层),归 AI 开发平台类。来源:README
- 开源免费: MIT 协议,PyPI 免费安装。来源:GitHub API
- MCP: 以 MCP server 形态提供服务(stdio/Streamable HTTP)。来源:README
- Agent记忆: 核心功能是跨 Agent 共享的永久记忆层。来源:README
- Git: 记忆以 Git 仓库为事实源,可版本化可审计。来源:README
📋 来源核实
- ✅ GitHub API 已验证: scarletkc/Perenna - Stars 16, pushed 2026-08-23, created 2026-08-21, MIT(2026-08-24 采集)
- ✅ README 已读取: 双传输、Vexor 可重建索引、跨进程锁、skill 安装命令、Mem0 对比批评均核对
- ⚠️ 未实测: 未实际安装运行;检索质量、并发锁行为未验证
- ⚠️ 注意: 项目 3 天历史 16 stars,社区验证极少,稳定性维度按最早档给分
⚠️ 局限与未实测声明
- 本文基于 GitHub API 与官方 README 于 2026-08-24 采集
- Vexor 检索质量、OAuth HTTP 模式配置体验未实测
- 对 Mem0 的对比引用自 Perenna README 自述,未独立核实 Mem0 当前条款
同分类推荐
AI开发平台 分类下的其他工具