关于 Remembra
Remembra 为 AI Agent 提供跨会话记忆与交接记录,也包含可直接使用的记忆 API。它通过 Git 和部分 Agent 的会话记录生成交接简报,并提供多 Agent 协作区域控制。
主要功能
- 01跨会话 Agent 交接
- 02依据 Git 生成交接事实
- 03会话简报与历史轨迹
- 04多 Agent 区域写入协调
- 05语义记忆存储与检索
- 06记忆事实来源追踪
适用场景
- 01在不同机器间延续编码会话
- 02检查交接摘要与 Git 状态差异
- 03追踪项目内 Agent 的会话记录
- 04协同工作时限制区域写入
- 05存储并按含义检索事实
MCP 相关
本地 MCP 服务提供会话简报、交接写入、记忆检索以及诊断和设置工具。任何 MCP Agent 均可调用相关工具;Relay 也可通过会话钩子自动处理交接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx remembra-mcpREMEMBRA_API_KEY密钥Remembra API key (dashboard: Settings > API keys)REMEMBRA_URLRemembra server URL: https://api.remembra.dev, or your self-hosted serverREMEMBRA_AGENT_IDName this agent's handoffs are recorded under, e.g. claude-code, codex, cursor本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
24收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ttl | any | 否 | |
| content | string | 是 | |
| metadata | any | 否 | |
| memory_type | any | 否 |
详细介绍
Remembra Relay
一个 Agent 停下,下一个 Agent 已经知情。
已连接 Agent 的会话结束时,Remembra Relay 会保存交接信息(什么也没做的会话不会留下交接信息)。
它通过会话钩子,根据 git 和 Claude Code、Codex 的会话转录构建交接信息。
通过 MCP 结束会话的 Agent 会报告自己的事实,并将其标记为未经验证。
下一个 Agent,无论在另一台机器上、来自另一家厂商,还是下周开始工作,都能从这些信息开始。
网站 • Relay 指南 • 文档 • 更新日志 • Discord
安装
先在 app.remembra.dev 获取免费密钥,然后运行:
pipx install --force 'remembra[mcp]>=0.16'
remembra-install --all
remembra-relay connect --apply
remembra-install 会通过隐藏提示要求输入密钥(或读取 REMEMBRA_API_KEY),并在写入前显示将要进行的更改。
connect --apply 会写入钩子,并为每个文件保留备份;先单独运行 remembra-relay connect,即可查看所有更改而不进行写入。Codex 只有在你信任钩子后才会运行它们:在 Codex 应用中选择 Settings > Hooks > Trust,或在 Codex CLI 中运行
/hooks。钩子的命令发生变化时,Codex 会跳过它,直到你再次信任它。
自行托管服务?在 remembra-install 后添加 --url <your server>。
remembra-relay 随 remembra 0.16.0 一同发布。
没有收到交接信息? remembra-relay doctor 会根据此机器上的文件和你的记录,指出交接信息丢失的位置,并为每个问题提供一种修复方法;它只读取信息。在 Agent 内部,本地 MCP 服务提供相同的检查,只读工具包括:remembra_doctor、remembra_setup(此机器的安装步骤)和 remembra_help。
参见 Doctor。
下一个 Agent 会看到什么
Claude Code 结束了一个会话,并在摘要中写道工作已完成且已推送。Git 却不这么认为。下一个 Agent 的简报中会包含这一行:
Last session: claude-code (key-verified), 12m ago, on feat/pdf-export@a41f2c9: done: a41f2c9 Add PDF export for invoices; 77c01aa Embed fonts in exported PDFs; tests passing: pytest tests/test_pdf.py (12 passed); changed 3 file(s): invoices/pdf.py, invoices/fonts.py, tests/test_pdf.py / NOT done: 2 commit(s) not pushed to origin/feat/pdf-export / failing: none / next (derived from the recorded facts): push 2 commit(s) to origin/feat/pdf-export (facts reported as collected by remembra-relay from git and the session transcript (not checked)) (the agent's summary contradicts these recorded facts)
通过会话钩子,remembra-relay 会根据 git,以及 Claude Code 和 Codex 的会话测试运行情况,构建已完成、未完成和失败部分,而不是依赖大模型。服务不会检查事实的来源;简报会注明这些信息由 remembra-relay 报告。Agent 自己的摘要是可选的;系统会根据这些事实进行核对,并将摘要标记为未经验证;如本例所示,也可能指出其内容与事实矛盾。通过 close_session MCP 工具写入的交接信息会包含 Agent 自行声明的事实,并标记为“由 Agent 声明(未经核实)”。
工作原理
- 关闭。 会话结束时,
remembra-relay close会从 git 读取分支、提交、已更改和未提交的文件,以及尚未推送的提交;对于 Claude Code 和 Codex,还会读取本地转录中的命令、测试运行和待处理事项(Codex 的转录是其 rollout 文件)。转录本身会保留在你的设备上。符合 Remembra 模式的机密信息会在发送内容中被隐藏。 - 简报。 下一次会话开始时,无论使用相同工具还是其他工具,
remembra-relay brief(由经过验证的会话钩子运行)或session_briefMCP 工具(任何 MCP Agent 都可以调用)都会告诉 Agent 上次由谁处理、已完成的工作、当前失败的问题以及下一步。文本简报上限约为 1,500 个 token(6,000 个字符)。session_brief在compact=true时只返回这段文本;默认情况下,它还会以 JSON 格式返回完整简报,内容更长。其他 Agent 记录的所有内容都会标记为不可信数据。 - 轨迹。 每次交接都会按顺序保留:使用
remembra-relay trail,或查看仪表板中的 Trail 页面。就像你的 Agent 的 git log。
同一仓库无论位于笔记本电脑、服务器还是 worktree 中,都会被视为同一个项目,因为它由 git 远程地址标识。为每个 Agent 分配各自的限定范围密钥,其交接记录就会显示为经过密钥验证。
Agent
| Agent | 会话钩子 | 当前读取和写入交接记录的方式 |
|---|---|---|
| Claude Code | 已验证 | 钩子:开始时生成简报,结束时关闭会话,并附上来自转录的测试结果 |
| Codex | 已验证(codex-cli 0.155.0-alpha.16.4,预发布版) | 钩子:开始时生成简报,结束时关闭会话,并附上来自 rollout 的命令和测试运行记录;在 Codex 中信任这些钩子(Settings > Hooks,或 CLI 中的 /hooks),每次更改后都要重新信任 |
| Gemini CLI | 已验证(Gemini CLI 0.61.0) | 钩子:开始时生成简报(在 /clear 之后,随第一个提示词触发),结束时关闭会话;只会在你信任的文件夹中运行 |
| Qwen Code | 已验证(Qwen Code 0.24.6) | 钩子:开始时生成简报,结束时关闭会话;达到速率限制或停止计费时,以及执行 /compress 之前;qwen -p 不会写入交接记录 |
| Kimi Code | 已验证(Kimi Code 2.1.1) | 钩子:随第一个提示词生成简报,TUI 退出时关闭会话;kimi -p 不会写入交接记录 |
| Cursor | 未验证 | MCP 工具(session_brief、close_session) |
| 任何其他 MCP Agent | 无 | MCP 工具 |
Claude Code 和 Codex 的会话钩子已通过验证(Codex 使用的是预发布版 codex-cli 0.155.0-alpha.16.4;相同测试在稳定版 0.157.1 上也通过了)。Gemini CLI、Qwen Code 和 Kimi Code 的钩子也已通过验证:每个版本都使用表格中所列的真实工具版本进行测试,并以本地模型替代品模拟模型;钩子成功将简报放入模型请求中,并发布了交接记录。其他版本尚未测试。Cursor 钩子尚未验证:Cursor 自带的钩子运行器已运行这些钩子,但尚未在登录后的 Cursor 会话中测试。除非添加 --include-unverified,否则 connect 不会启用这些钩子。在完成测试之前,Cursor 会通过 Remembra 的 MCP 工具读取简报并写入交接记录,其他 MCP Agent 也一样。
Crew 模式
在同一代码库中同时运行多个 Agent,互不覆盖彼此的工作。在默认分支的
.remembra/zones.yml 中列出代码库各区域并提交:
version: 1
zones:
api:
include: ["src/api/**"]
web:
include: ["src/web/**"]
然后在终端中运行(它会显示每项变更,并在写入前征求确认):
remembra-crew connect --apply # Claude Code
remembra-crew connect --agent codex --include-unverified --apply
remembra-crew verify --agent codex # one round trip on your machine; Codex then enforces
某个区域中第一个写入的 Agent 会占有该区域。其他 Agent 尝试在那里写入时,会在写入前被拦截,并获知占有者是谁;它可以通过 crew_say 请求移交,也可以由你在控制面板中移交。
| Agent | 写入已占有的区域 |
|---|---|
| Claude Code | 每次写入前都会被拦截(已验证钩子) |
| Codex | 通过 remembra-crew verify --agent codex 后会被拦截:包括 shell 命令和 apply_patch 指定的每个文件(已在 codex-cli 0.157.1 上实时检查) |
| Gemini CLI、Qwen Code、Kimi Code | 在你的机器上通过 verify 后会被拦截;在此之前只能读取 |
| Cursor 和其他 Agent | 在其自身工作树中只能读取;仅使用 MCP 的 Agent 仅提供建议 |
Git 钩子(connect --git-hooks)也会拦截涉及已占有区域的提交或推送,对所有 Agent 均如此。需要如实说明的一点是:这些本地机制只能阻止协作 Agent 的误操作,无法阻止同一台机器上的恶意 Agent。Crew 模式需要由服务器运行(REMEMBRA_CREW_MODE;Remembra Cloud 已启用)。请参阅指南:Crew 模式。
对比
| Remembra Relay | 厂商记忆功能(Claude Code、Codex、Copilot、Windsurf) | 本地交接工具 | 记忆 API(Mem0、Zep、Letta) | |
|---|---|---|---|---|
| 可跨机器使用 | 可以,通过 git remote | 大多不行 | 不行 | 可以 |
| 可跨厂商使用 | 可以 | 不行,每家厂商各自独立 | 可以 | 通过其 API |
| 从 git 获取交接事实 | 可以,并会核对摘要 | 不行 | 对话记录或差异 | 不行 |
| 会话的持久记录 | 有 | 无 | 无 | 无 |
| 对 Agent 之间的协作进行强制协调 | Crew 模式(Claude Code;Codex 通过验证后也支持) | 仅限 Claude 的 Agent 团队 | 无 | 无 |
关于 claude-mem、agentmemory、本地交接工具和 Claude Code 自身功能的详细信息(含来源和日期):Remembra 与其他交接工具。claude-mem 和 agentmemory 是规模更大的项目,也支持跨会话记忆;对比文档会说明各自更适用的场景。
定价
交接、简报、收件箱、记录轨迹和搜索在所有方案中均免费。Remembra Cloud:免费版、Solo 每月 $12、Pro 每月 $29、Team 每席位每月 $15(定价)。根据 MIT 许可证,可免费自托管。
底层记忆 API
Remembra Relay 基于 Remembra 的记忆层运行,你也可以直接使用它:存储事实、按含义回忆内容,并从中提取人物、项目及其关系。
from remembra import Memory
memory = Memory(user_id="user_123")
memory.store("Had a meeting with Sarah from Acme Corp. She prefers email over Slack.")
result = memory.recall("How should I contact Sarah?")
print(result.context)
# "Sarah from Acme Corp prefers email over Slack."
从 v0.16.0 起,记忆层还会保留事实所依据的原文,并为每条事实指向其来源。默认情况下,与来源不匹配的事实不会被存储:存储响应会在 dropped_facts 下列出这些事实。使用 REMEMBRA_GROUNDING_ACTION=flag 时,这类事实会被存储并标记为未经验证。
自托管服务器
一键安装
curl -sSL https://raw.githubusercontent.com/remembra-ai/remembra/main/quickstart.sh | bash
这会在本地启动 Remembra、Qdrant 和 Ollama,并关闭身份验证、使用本地嵌入模型,因此服务器无需 API 密钥。首次启动时会下载镜像和嵌入模型,耗时取决于你的网络连接。
或直接使用 Docker Compose:
git clone https://github.com/remembra-ai/remembra && cd remembra
docker compose -f docker-compose.quickstart.yml up -d
试试看:
# Store a memory
curl -X POST http://localhost:8787/api/v1/memories \
-H "Content-Type: application/json" \
-d '{"content": "Alice is CEO of Acme Corp", "user_id": "demo"}'
# Recall it
curl -X POST http://localhost:8787/api/v1/memories/recall \
-H "Content-Type: application/json" \
-d '{"query": "Who runs Acme?", "user_id": "demo"}'
连接你的 Agent(自 v0.10.0 起)
配置检测到的 Agent,然后添加会话钩子:
pipx install --force 'remembra[mcp]>=0.16'
REMEMBRA_API_KEY=local remembra-install --all --url http://localhost:8787
remembra-relay connect --apply
remembra-install 需要一个密钥值。快速入门服务关闭了身份验证,并接受任意值,因此 local 只是一个占位符;对于开启身份验证的服务,请不要设置 REMEMBRA_API_KEY=local,而是在隐藏提示处输入真实密钥。它会自动检测并配置 Claude Code、Codex CLI、Cursor 和 Gemini CLI,以及仅限 macOS 的 Claude Desktop(不会检测或写入 Windows 配置)。Windsurf 尚未经验证:remembra-install --agent windsurf 会写入配置,但 --all 不会。remembra-relay connect --apply 会写入用于保存和读取交接内容的会话钩子。
验证设置:
remembra-doctor all
手动配置 MCP(如有需要)
Claude Desktop — 添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"remembra": {
"command": "remembra-mcp",
"env": {
"REMEMBRA_URL": "http://localhost:8787",
"REMEMBRA_USER_ID": "default"
}
}
}
}
Claude Code:
claude mcp add remembra -e REMEMBRA_URL=http://localhost:8787 -- remembra-mcp
Cursor — 添加到 .cursor/mcp.json:
{
"mcpServers": {
"remembra": {
"command": "remembra-mcp",
"env": {
"REMEMBRA_URL": "http://localhost:8787"
}
}
}
}
现在问 Claude:"记住 Alice 是 Acme Corp 的 CEO"——稍后再问:"谁在管理 Acme?"
Python SDK
pip install remembra
from remembra import Memory
memory = Memory(user_id="user_123")
memory.store("Had a meeting with Sarah from Acme Corp. She prefers email over Slack.")
result = memory.recall("How should I contact Sarah?")
print(result.context) # "Sarah from Acme Corp prefers email over Slack."
TypeScript SDK
npm install remembra
import { Remembra } from 'remembra';
const memory = new Remembra({ url: 'http://localhost:8787' });
await memory.store('User prefers dark mode');
const result = await memory.recall('preferences');
记忆功能
🧠 智能提取 — 使用大模型从原始文本中提取事实
👥 实体解析 — 大模型匹配器会合并符合上下文的姓名变体(“Smith 先生”和“John Smith”);将“我丈夫”解析为具名人物仅尽力而为,且未经测试
⏱️ 时间记忆 — TTL、衰减曲线、历史查询
🔍 混合搜索 — 语义搜索 + 关键词搜索,实现准确回忆
🔒 安全性 — PII 检测与编辑、机密信息编辑、审计日志
📊 仪表板 — 可视化记忆浏览器、实体关系图、分析
📊 基准测试
目前尚未发布有效的基准测试结果。2026 年 3 月,我们运行了 10 个 LoCoMo 对话中的 1 个(199 个问题),但该次运行的分数无效:评判器把每个 INCORRECT 判定都算作正确,还对原始召回上下文而非答案进行了评分。这两个错误已在运行器中修复(提交 a19fb29);目前尚未重新运行。
你也可以自行运行:python benchmarks/locomo_runner.py --data /tmp/locomo/data/locomo10.json
📖 文档
| 资源 | 说明 |
|---|---|
| 快速入门 | 几分钟内即可开始使用 |
| Python SDK | 完整的 Python 参考文档 |
| TypeScript SDK | JavaScript/TypeScript 指南 |
| Remembra Relay | 跨 Agent 的交接、简报与轨迹 |
| MCP 服务 | 31 个工具的参考文档与设置指南 |
| REST API | API 参考文档 |
| 自托管 | Docker 部署指南 |
🛠️ MCP 服务
为支持 MCP 的编码 Agent 提供持久记忆。标准 MCP 服务(stdio、SSE、streamable HTTP),并提供适用于 Claude Code、Cursor、VS Code + Copilot、JetBrains、Zed 和 OpenAI Codex 的设置指南。它应该适用于任何兼容 MCP 的客户端。Windsurf 提供了指南,但尚未验证。
pip install remembra[mcp]
claude mcp add remembra -e REMEMBRA_URL=http://localhost:8787 -- remembra-mcp
可用工具(31 个):
| 分组 | 工具 |
|---|---|
| Remembra Relay | session_brief、close_session、resolve_project、store_status、list_status |
| Agent 间收件箱 | send_to_inbox、get_inbox、ack_inbox |
| 记忆 | store_memory、recall_memories、update_memory、forget_memories、list_memories、ingest_conversation |
| 实体与时间 | search_entities、timeline、relationships_at |
| 共享 | share_memory、list_spaces、create_space |
| 连接 | health_check |
| 设置与诊断(只读) | remembra_doctor、remembra_setup、remembra_help |
| Crew 模式(服务运行时可用) | crew_status、crew_claim、crew_guard、crew_task、crew_say、crew_checkpoint、crew_report |
🏗️ 架构
┌─────────────────────────────────────────────────────────────┐
│ Your Application │
├──────────┬──────────────┬───────────────────────────────────┤
│ Python │ TypeScript │ MCP Server (Claude/Cursor) │
│ SDK │ SDK │ remembra-mcp │
├──────────┴──────────────┴───────────────────────────────────┤
│ Remembra REST API │
├──────────────┬──────────────┬───────────────┬───────────────┤
│ Extraction │ Entities │ Retrieval │ Security │
│ (LLM) │ (Graph) │ (Hybrid) │ (PII/Audit) │
├──────────────┴──────────────┴───────────────┴───────────────┤
│ Storage Layer │
│ Qdrant (vectors) + SQLite (metadata/graph) │
└─────────────────────────────────────────────────────────────┘
🤝 参与贡献
欢迎贡献!请参阅 CONTRIBUTING.md 了解相关指南。
# Clone
git clone https://github.com/remembra-ai/remembra
cd remembra
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Start dev server
remembra-server --reload
📄 许可证
MIT License — 随你如何使用。
⭐ Star 历史
如果 Remembra 对你有帮助,请为仓库点 Star!这能帮助更多人发现这个项目。
由 DolphyTech 倾心打造 ❤️
remembra.dev • 文档 • twitter • discord
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。