mcpField
R
Robrain

Robrain

本地服务
robrain.dev记忆与知识811 天前更新

关于 Robrain

RoBrain 是面向团队和 AI Agent 的共享决策记忆服务,将决策及被否决的选项存入 PostgreSQL。它会被动捕获会话,并扫描整体语料中的矛盾与立场漂移,支持自托管和 Rory Plans 云端方案。

主要功能

  1. 01被动捕获决策
  2. 02结构化记录被否决选项
  3. 03共享 PostgreSQL 记忆
  4. 04扫描整体语料中的矛盾与漂移
  5. 05警告曾被否决的方案
  6. 06支持自托管或托管云端

适用场景

  1. 01在编码 Agent 间共享决策
  2. 02提醒 Agent 避免已否决方案
  3. 03检查相互矛盾或漂移的决策
  4. 04将决策记忆保留在本地基础设施

MCP 相关

RoBrain 通过 Sensing MCP 集成向编辑器和 AI Agent 提供记忆能力。已连接的 Agent 可捕获和检索共享决策,并接收考虑否决记录的警告。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"robrain": {
"command": "npx",
"args": [
"-y",
"robrain"
],
"env": {
"PERCEPTION_API_URL": "<PERCEPTION_API_URL>",
"PERCEPTION_API_KEY": "<PERCEPTION_API_KEY>"
}
}
}
}
启动命令npx -y robrain
需要配置的环境变量
PERCEPTION_API_URLPerception API URL. Optional — read from ~/.robrain/config.json after `npx robrain up`.
PERCEPTION_API_KEY密钥Perception API key. Optional — read from ~/.robrain/config.json after `npx robrain up`.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmrobrain2.5.0

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
project_idstring是用于标识项目的仓库名称或路径哈希
session_idstring|null否此会话的唯一 ID。省略、使用 null 或 "" 可由服务器生成(推荐)。否则,请为每次聊天提供一个新的 ID(例如 ISO 时间戳 + 4 位十六进制字符)。

详细介绍

RoBrain

VetoBench

在你的团队和 AI Agent 之间共享记忆——并赋予判断力!

RoBrain 不只是又一个记忆层,它还是帮助你和 Agent 做出更好决策、避免代价高昂的错误的大脑。

在你自己的 Postgres 上自托管。被动捕获、结构化否决、全语料库矛盾扫描——所有数据都不会离开你的设备。支持 Claude Code、Cursor、GitHub Copilot(VS Code)、Codex CLI、Hermes 等。

实测结果:没有决策记忆时,编码 Agent 在多达 10 项任务中的 9 项里会重新提出团队已经否决的方案。使用 RoBrain 的完整流程后:五次归档运行中 50 项任务中为 0 项——VetoBench。

它是什么

RoBrain 会记录你的团队及其 Agent 做出的决定,以及他们否决的替代方案,无需任何人手动添加标签。感知模块会捕获会话轮次;认知模块会将每项决定提取到 Postgres 中,每条记录都可以包含结构化的 rejected[] 字段。

大多数 Agent 记忆工具止步于捕获:它们存储发生过的事情,并希望你之后能查询到。RoBrain 更进一步,赋予记忆判断力。批量综合分析会读取整个语料库,标记矛盾、立场漂移,以及单次会话无法发现的重复实体。

关键在于交接。有人在星期二于 Cursor 中做出明确决定——例如,让 Perception 继续使用 Hono,而不是迁移到 Express。一位新队友在星期三打开 Claude Code,对这个决定毫无记忆,却要求做出完全相同的改动。RoBrain 会在 Agent 沿着你已经否决的方向行动之前,呈现记录的理由——使用同一个 Postgres 存储、同一套否决,并以被动方式捕获。

忘记一次否决的代价并非效率低下,而是你已经修复的授权绕过漏洞、已经回滚的迁移、为了修复 CVE 而移除的依赖——这些都会被一个不记得你为何拒绝的 Agent 重新提议。

编码是第一个应用领域,因为它的反馈周期很短——回滚、事故和返工让忘记否决所造成的代价可以衡量。同样的架构也适用于 Agent 做出的决定会延续到会话结束之后的任何场景。

工作原理、两大支柱(捕获 + 判断)以及完整演示:docs/concepts.md。

安装

运行 RoBrain 有两种方式——任选其一:

  • 选项 1 · 自托管(免费、开源):所有内容都在你的设备上运行——使用你自己的 Postgres 和 API 密钥,任何内容都不会离开你的笔记本电脑。
  • 选项 2 · Rory Plans 云服务(托管):无需自行托管,也无需密钥——所有付费 Rory Plans 套餐均包含此服务。
选项 1 · 自托管(免费、开源)

无需克隆 — robrain up 会拉取已发布的 Perception 镜像,并将凭据写入 ~/.robrain/stack/.env。

默认路径使用 Anthropic(提取)+ OpenAI(嵌入)。其他配置(仅使用 OpenAI、Gemini、其他嵌入服务、完全本地运行)— 概念 — 想使用其他服务提供方配置?。

export ANTHROPIC_API_KEY=... OPENAI_API_KEY=...   # or add them to ~/.robrain/stack/.env after the first run
npx robrain@latest up                             # start Postgres + Perception from ghcr.io
npx robrain install --self-hosted                 # wire Sensing MCP into your editors
从克隆的仓库开始(用于开发或自行构建镜像)

首次运行 pnpm docker:up 会自动创建 .env,并填入 PERCEPTION_API_KEY / POSTGRES_PASSWORD。Perception 仍需要你的大模型和嵌入密钥才能持续运行。

git clone https://github.com/adelinamart/robrain
cd robrain
pnpm install && pnpm build
pnpm docker:up                 # first run: creates .env; Perception won't start yet
# open .env, add LLM + embedding keys for the provider path you chose (default: ANTHROPIC_API_KEY + OPENAI_API_KEY)
pnpm docker:up                 # second run: Perception now boots
pnpm robrain install --self-hosted --repo-root "$(pwd)"

pnpm robrain 运行的是你刚刚构建的 CLI(node packages/cli/bin/robrain.js)。 在此克隆仓库中,请在所有地方使用它,而不要使用 npx robrain — npx 会解析到已发布的程序包或过时的全局安装,而不是你的工作树。

升级自托管安装

无需克隆的服务栈:重新运行 npx robrain@latest up(拉取新的 Perception 镜像并应用启动时的数据库迁移),然后运行 npx robrain@latest install --self-hosted。从克隆仓库开始:git pull → pnpm install && pnpm build → pnpm docker:up:build → pnpm robrain install --self-hosted --repo-root "$(pwd)" → 完全重启编辑器。完整检查清单:CLI 参考 — 升级。

Claude Code 插件(自托管)

使用自托管服务栈的 Claude Code 用户可以添加基于钩子的捕获功能,以及关于此前已拒绝方案的任务前警告 — 无需 CLAUDE.md 协议:

claude plugin marketplace add adelinamart/robrain
claude plugin install robrain@robrain

详情:plugins/claude-code。robrain init-project 还会通过项目的 .claude/settings.json 向协作者推荐该插件,这样队友就能直接从 Claude Code 收到安装提示(使用 --skip-claude-plugin 可选择退出)。

选项 2 · Rory Plans 云端(托管)

使用任何付费 Rory Plans 计划,RoBrain 都可以在无需托管任何内容的情况下运行:

npx robrain install          # no flags — cloud mode

前往 roryplans.ai 登录,在个人资料页面创建 API 令牌,并在安装程序询问时粘贴即可。全部设置就这么简单:无需 Docker、数据库、大模型或嵌入密钥 — 提取和搜索都在我们的服务端运行。你的编辑器(Claude Code、Cursor、Copilot、Codex CLI)会自动完成配置,Rory Plans 团队中的队友共享同一份记忆。

所有付费计划均符合条件 — 个人标准计划或年度计划、Teams 和企业计划。个人订阅者拥有私有记忆空间;团队则共享一个空间。自托管仍然免费且得到全面支持(见上文“安装”);对比表展示了各个层级提供的功能。

快速开始

完成任一安装方式(自托管或云端)后:

# Wire capture into an application project (run inside the repo)
cd /path/to/your/project
npx robrain init-project          # writes CLAUDE.md, AGENTS.md, .cursor/rules/robrain.mdc

# Capture and recall are automatic from here:
#   - every session turn is classified, no tagging
#   - prior decisions load at session start via the always-on summary

# Explain any file's decision history
npx robrain explain path/to/file

# Inspect / approve captured rows (both modes)
npx robrain review

# Run corpus judgment — self-hosted only; cloud runs judgment server-side
npx robrain synth                 # drift, contradictions, entity promotion

运行 init-project 后,每个仓库都会获得 CLAUDE.md 和 AGENTS.md(Codex CLI),Cursor 也会获得包含 alwaysApply: true 的 .cursor/rules/robrain.mdc。如果捕获内容未能写入,请运行 npx robrain doctor — 参见故障排除。

调整捕获内容

默认情况下,分类器只存储决策及你拒绝的备选方案,不存储其他内容。如果项目需要更多、更少或不同类型的内容,请用自然语言说明。设置按项目存储在 Perception 上,因此每位队友的会话都会以相同方式进行捕获:

npx robrain capture show
npx robrain capture set --instructions "Skip anything about the marketing site. Treat naming conventions as decisions."
npx robrain capture set --min-confidence 0.75                      # less noise
npx robrain capture set --mode broad                               # every turn reaches the model, not only keyword hits
npx robrain capture set --add-kind "run: The outcome of an agent run: what ran, when, and whether it succeeded."
npx robrain capture test --file sample-turns.jsonl --compare       # dry run before you commit to it

额外类型的记忆与决策并列:每条记录都会指定一个主题,同一主题的新记录会替换旧记录,因此某种类型既可以保存不断变化的状态(例如 Agent 最近一次运行),也可以保存规则。只有决策会附带否决项。标志和格式:CLI 参考。

综合分析

Synthesis 会对完整的 decisions 表进行三轮检查:漂移(立场在没有明确反转的情况下发生变化)、矛盾(不同会话中的决策彼此不兼容)和实体提升(将反复出现的工具/模式归纳到 planning_blocks 中)。它会将标记和关系边写入你的数据库;它不会捕获新决策,而是评判你已有的决策语料。

pnpm synthesis:build && pnpm synthesis:run
# or: npx robrain synth

使用 npx robrain review 查看分析结果。深入了解(三轮检查、cron、环境变量):概念 — 综合分析。

编辑器集成

一套跨工具配置即可让 Claude Code、Cursor、GitHub Copilot (VS Code) 和 Codex CLI 共用同一个 Postgres 存储。分类器大模型由你选择:Anthropic Haiku 或 OpenAI。决策具有生命周期(active / superseded / invalidated)和关系图(conflicts_with / extends / related_to)。

Codex CLI / IDE 也支持基于钩子的捕获和任务前否决警告——与 Claude Code 插件使用相同的生命周期钩子,由 robrain install 自动写入 ~/.codex/config.toml(Codex 首次运行时会要求你信任这些钩子)。文档:plugins/codex。

在运行 Hermes?执行 npx robrain install --hermes,即可将独立的记忆提供程序插件放入 ~/.hermes/plugins/——通过同一个 Perception API 实现被动捕获和了解否决信息的回忆。文档:integrations/hermes。

Git 决策账本(可选启用):

npx robrain export-memory --ledger
# custom path: npx robrain export-memory --ledger docs/decisions.md

常见问题

如何阻止 AI 编码 Agent 再次提出团队已经否决的方案?

只需记录一次否决——RoBrain 会从发生否决的会话中被动捕获该信息——之后,每个已连接的 Agent 在再次沿着该路径行动前,都会收到否决警告:包括该决策、被否决的选项和原始理由。参见编辑器集成和 Claude Code 插件。

如何在 Claude Code、Cursor、Copilot 和 Codex 之间共享记忆?

只需运行一次 npx robrain install --self-hosted,即可将检测到的所有编辑器连接到同一个 Postgres 存储;运行 npx robrain init-project 即可注册一次代码仓库。周二在 Cursor 中作出的决策,周三就能让队友的 Claude Code 获取。

数据存储在文件还是数据库中?数据会离开我的机器吗?

所有数据都存储在 PostgreSQL 中(使用 pgvector 存储嵌入向量)——以结构化行的形式保存,而非平面文件。使用可自托管版本时,数据库通过 Docker 在你的机器上运行;除调用你配置的大模型/嵌入提供程序外,数据不会离开你的机器(也可以使用本地模型)。使用 Rory Plans 云服务时,只存储提取出的决策对象;原始对话文本在提取后不会保留。

RoBrain 与向量数据库或 RAG 有何不同?

向量存储会检索相似内容;RoBrain 还知道哪些内容被否决。否决是一级结构化数据(rejected[]),会在 Agent 行动前作为警告呈现——同时还会主动评判决策语料:扫描矛盾、检测漂移,并根据 Git 结果反馈,将现实中已被推翻的决策降级。VetoBench 可衡量这种差异。

什么时候应该选择 Rory Plans 云服务,而不是自行托管?

如果你希望所有内容都运行在自己的基础设施上,并且免费使用,请选择自行托管。如果你不想托管任何内容,也不想管理 API 密钥,请选择 Rory Plans 云服务——所有付费 Rory Plans 套餐均包含此服务,并可在团队组织内共享记忆。

RoBrain 与 Rory Plans 有什么关系?

Rory Plans 是面向人类和 AI Agent 的云端办公室,可用于设计工作流并协调人类与 Agent 协同工作。RoBrain 是其开源记忆层:永远可独立运行并支持自行托管,也可作为 Rory Plans 的一部分由团队托管。

与其他工具相比

与 Mem0、Cloudflare Agent Memory 和 Claude Code Auto-Memory 相比:只有 RoBrain 会将被否决的备选方案存储为结构化字段,并扫描整个语料库以查找矛盾(手动扫描或通过 cron 扫描)。我们还测量了这一差异带来的影响:VetoBench 发现,在相同输入下,Mem0 的摄取流程只在 38% 的检索上下文中保留了已记录的否决信息。完整对比 →

可自托管版与 Rory Plans 云端版
功能免费版 / 可自托管版Rory Plans 云端版
被动捕获会话✓✓
将 rejected[] 字段作为结构化数据✓✓
决策生命周期(有效 / 已取代 / 已失效)✓✓
跨工具 MCP — Claude Code、Cursor、Copilot、Codex CLI、Hermes✓✓
分类器大模型选择 — Anthropic Haiku 或 OpenAI✓✓
会话开始时始终提供摘要✓✓
npx robrain review / inject / explain / export-memory✓✓
综合分析 — 漂移、矛盾、实体提升✓✓
综合分析提示词评估标准 — 按项目覆盖(.robrain/rubrics/)✓✓
决策图(conflicts_with / extends / related_to)✓✓
每条记忆均包含溯源信息 — 源会话、轮次、摘录;编译后的内容块包含源决策 ID✓✓
记忆质量反馈 — 使用 / 忽略计数器、自动降级✓✓ 更丰富:每次注入均记录有用 / 不赞同反馈
关联结果 — Git 回退会反馈到记忆排名✓✓
捕获和摄取时对机密信息进行脱敏✓✓
记忆交换导出(robrain-memory/v1 JSONL)✓✓
开放式检索评估 + CI 中的 VetoBench 门禁✓相同评分器
在自己的基础设施上自托管✓—
数据保留在本地✓远程处理
完全本地模式 — 在 Ollama/LM Studio/vLLM 上运行大模型 + 嵌入模型✓—
经校准的提取提示词(减少误报)—✓
经校准的四类矛盾分类法—✓
在任务边界自动注入—✓
确定性否决扫描(POST /veto-scan)✓—
任务开始前警告 rejected[]Claude Code(插件)+ Codex(钩子)+ Hermes(提供方)✓ 全平台
脱离协议(⚠ 确认)—✓
提交前冲突判定(/dry-run 结构化检查)—✓
五信号相关性评分器✓ 检索时使用(GET /decisions?query=)✓ 针对每项任务自动应用
冲突自动解决(带防护措施)+ 仪表板可视化—✓
否决信息在决策被取代后仍会保留 — 否决历史会沿用到最新决策✓✓ 合并完整历史
写入时检测决策取代 — “我们从 X 切换到 Y”不会被去重丢弃—✓
决策沿袭时间线(API + 仪表板)—✓
团队记忆 — 组织、API 密钥、角色、隔离范围—✓
Web 仪表板—✓

可自托管版支持捕获、批量判断任务、结果反馈和会话开始时的记忆召回;需要时,可通过 inject 提取聚焦的上下文。云端版增加 Planning + Control,使否决和冲突能在任务边界自动显现 — 使用相同的 CLI 接口,并与 Sensing 捕获保持协议兼容。详情:概念 — 免费版 / 可自托管版与 Rory Plans 云端版。

VetoBench

记忆基准测试通常会问“正确的条目是否被找回了?”VetoBench 则会追问它们忽略了什么:当任务诱使 Agent 采用团队已否决的方案时,Agent 会不会再次提出该方案?

记忆条件再次提出已否决方案能否引用此前的否决
无记忆10 个任务中有 8–9 个0–10%
约定文件(仅记录选择——如今大多数团队采用的方式)10 个任务中有 1–2 个80–90%,但都是推断:文件里没有记录原因
Mem0 — 完整管线,存档 5 次运行每次运行 10 个任务中有 0–2 个50–90%
RoBrain — 完整管线,存档 5 次运行每次运行都是 10 个任务中 0 个100%

(claude-haiku-4-5,2026-07-07/08;每种条件均以存档的 5 次运行序列进行测量,因运行结果有所不同,故以范围表示。Mem0 和 RoBrain 接收了逐字节完全相同的转录记录,并分别通过各自真实的生产环境提取器进行处理。)

表格背后有两项发现。Mem0 的摄取流程丢弃了38% 的检索上下文中记录的否决信息,而违规恰恰集中在这些上下文中——否决信息缺失时为 26%,存在时为 3%:Agent 在全部 5 次运行中都避开了 Express,却始终说不出原因;在 axios 否决信息丢失的情况下,它有 3 次直接再次提出了 axios。RoBrain 的生产环境提取器处理相同输入时,保留了100/100 条否决信息——保留否决信息是提取提示词的职责,并非事实摘要的副作用。

Meta Muse Spark 1.1(2026-07-14,存档 5 次运行)。 Meta 新近推出的 Agentic 旗舰模型,通过 Vercel AI Gateway 接入。无记忆时,它每次运行都会在 9 个任务中有 4–6 个再次提出已否决的方案——Redux、Prisma、Jest 和 GraphQL 在全部 5 次运行中都出现了。有了 RoBrain 决策记忆后:45 个单元格中违规数均为 0,且每次都点明了此前的否决——在展开说明时,会逐字引用记录的原因和日期。最明显的一个单元格:面对减少移动端过度获取数据的任务,无记忆运行在 5 次中有 5 次都提议全面迁移到 GraphQL(团队已否决的方案);而在上下文中加入 RoBrain 后,它改为提出 REST 稀疏字段集,并引用了记录的否决内容。坦诚说明:这不是 Muse Spark 的问题——在相同的 9 个场景中,我们作为基线测试的每个前沿模型在没有记忆时都会违规(claude-opus-4.8:3–4 次,gpt-5.5:5 次,gemini-3-pro-preview:6–7 次,Haiku:7–8 次;Prisma 和 Jest 在每次运行中都会被所有模型提出;加入 RoBrain 上下文后,同样这 3 个模型在 54/54 个单元格中均无违规,四家厂商的模型合计为 99/99 — 测试记录);对于这一模型和当前语料规模,单纯的约定文件也能避免违规(RoBrain 的优势在于逐字引用而非推断、自动捕获,以及大规模检索);另有一个场景因 Meta 的内容过滤器会确定性地拦截无害的会话缓存提示词而被排除(n=9)。测试记录和注意事项:results/muse-spark-1.1-series/ · 说明文章:docs/blog/2026-07-14-muse-spark-forgets-your-vetoes.md。

每条检索上下文、Agent 回复和判定结果都已提交至 packages/vetobench/results/——引用前请先核查。检索层可离线运行,无需 API 密钥,并会作为 CI 门禁(pnpm --filter @robrain/vetobench bench);判定结果是确定性的——不使用大模型判定器。任何记忆系统都可以通过一个适配器接口接入;欢迎提交 PR,包括那些会让我们表现不佳的 PR。方法说明、诚实性注意事项和测试夹具:packages/vetobench/README.md。

安全性

记忆语料库受 PERCEPTION_API_KEY 保护——它是仓库根目录 .env 中的随机密钥,每个客户端(Sensing MCP、CLI、Synthesis)都会将其作为 Bearer 令牌发送,Perception 会在每次请求时验证该令牌,/health 除外。该密钥并非由任何服务签发:首次运行 pnpm docker:up 时会自动生成一个,也可以自行设置(例如 openssl rand -hex 32)。安装时(从克隆仓库运行 pnpm robrain install --self-hosted,否则运行 npx robrain install --self-hosted),同一密钥会被复制到编辑器配置中,以便客户端进行身份验证。

如果密钥为空,Perception 将拒绝启动——要在未进行身份验证的情况下运行,必须明确选择启用。**从无需密钥即可运行的版本升级:**在 .env 中添加密钥(或重新运行 pnpm docker:up 自动填充),然后重新运行安装命令(从克隆仓库运行 pnpm robrain install --self-hosted,否则运行 npx robrain install --self-hosted),以便编辑器读取该密钥。详情和启用选项见 .env.example。

默认还启用了密钥信息脱敏(API 密钥、令牌、私钥和连接字符串密码会在捕获时以及写入时再次清除,且均在嵌入或存储前进行),并提供完全本地模式:提取和嵌入在兼容 OpenAI 的本地服务(Ollama / LM Studio / vLLM)上运行——参见 CLI — 完全本地的大模型 和 .env.example。

接下来

robrain outcomes 会将 git 回滚反馈到两个层级的记忆质量中;下一步是将其扩展到事故和周期时间,让 RoBrain 能够指出团队何时在自己的代码库中优化了错误的目标。

要求

  • Docker + Docker Compose(在本地运行 Postgres 和 Perception)
  • Node.js 和 pnpm(用于构建和 CLI)
  • 分类器所需的大模型密钥——Anthropic Haiku 或 OpenAI——或者兼容 OpenAI 的本地服务(参见完全本地的大模型)
  • 嵌入密钥(例如 OpenAI)——也可以使用同一本地服务进行嵌入
  • 在可自托管模式下,数据不会离开你的设备

文档

参与贡献

采用 Apache 2.0 许可证。欢迎提交有关提取准确性、新编辑器集成和嵌入提供程序的 PR。权衡和架构请参见概念 — 参考。

License

Apache 2.0 — see LICENSE

Built by Rory Plans

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。