Open-Brain
Open Brain
你的个人知识基础设施。从任何地方捕捉想法,按语义进行搜索。
Open Brain 使用 AI 生成的嵌入存储你的想法,因此任何 AI 助手都可以按语义(而非关键词)搜索你的记忆。想法可以通过 Telegram、自动化流水线或任何兼容 MCP 的 AI 客户端(Claude、ChatGPT 等)流入,并可立即搜索。知识图谱会自动链接相关想法、提取实体并追踪共现模式。自动化维护功能保持图谱的健康——包括去重相似内容、追踪主题演变、综合见解以及归档陈旧内容。
一切都存储在你自己的数据库中,因此你拥有自己的数据。
工作原理
flowchart LR
TG[Telegram Message] --> TGBot[telegram-bot\nEdge Function]
MCP[AI Client\nClaude/ChatGPT] --> MCPServer[open-brain-mcp\nEdge Function]
Pipeline[RSS/HF Papers/\nEmergent Mind] --> RunPipeline[run-pipeline\nEdge Function]
TGBot --> OR1[OpenRouter\nEmbedding + Metadata]
MCPServer --> OR2[OpenRouter\nEmbedding + Search]
RunPipeline --> OR3[OpenRouter\nTriage + Embed]
OR1 --> DB[(Postgres\n+ pgvector)]
OR2 --> DB
OR3 --> DB
MCPServer --> DB
TGBot --> TGReply[Telegram Reply\nwith Metadata]捕捉路径
当你向 Telegram 机器人发送消息时,telegram-bot Edge Function 会通过 Webhook 接收它。它会并行将消息发送给 OpenRouter 进行两项处理:生成向量嵌入(语义的数值表示)以及提取元数据,如主题、提及的人员、行动项、主题、质量评分和命名实体。系统会检查该想法是否存在语义重复,将其存储在数据库中并自动链接到相关想法,最后机器人会回复所捕捉内容的摘要。
流水线路径
run-pipeline Edge Function 会自动从 RSS 订阅(AI 通讯)、Hugging Face 每日论文和 Emergent Mind(热门 arXiv 论文)中摄取想法。每项内容都会经过相关性筛选、嵌入、去重和存储。通过 GitHub Actions(Supabase 部署)或内置的 cron 容器(Docker 部署)按计划运行。
检索路径
任何通过 MCP(模型上下文协议)连接的 AI 客户端都可以使用语义搜索按含义搜索你的想法,通过过滤器(类型、主题、人员、时间)进行浏览,获取汇总统计信息,或请求每周主题回顾。open-brain-mcp Edge Function 处理这些请求,并使用你的个人访问密钥进行身份验证。
知识图谱
每个想法都会通过向量相似度自动链接到相关想法。相似度超过 0.80 的连接会被 LLM 分类为类型化关系(扩展、矛盾、作为证据、取代)。命名实体(人员、工具、项目、组织)会被提取并解析到一个共享的实体图中。共现边会追踪哪些想法随时间被一起检索,从而根据实际使用模式加强连接。
存储
一切都存储在带有 pgvector 的 Postgres 中,以实现快速相似度搜索。想法与其嵌入(1536 维向量)、元数据、类型化连接和实体引用一起存储。你可以在 Supabase(托管)上部署,也可以使用 Docker Compose 自托管。
部署选项
选择你运行 Open Brain 的方式:
Supabase (托管) | Docker Compose (自托管) | |
设置 | 关联项目 + 运行脚本 |
|
基础设施 | 由 Supabase 管理 | 在你的机器/服务器上运行 |
调度 | GitHub Actions | 内置 cron 容器 |
成本 | Supabase 免费层 + OpenRouter | 仅 OpenRouter |
指南 |
Supabase 部署
先决条件
Supabase 账户 -- Supabase 是一个托管的 Postgres 数据库,具有内置 API、身份验证和 Edge Functions(无服务器代码)。在 supabase.com 创建一个免费账户。创建一个新项目 -- 你将需要 项目 URL(看起来像
https://abcdef.supabase.co)和 服务角色密钥(在 Settings > API 下找到的长字符串)。Supabase CLI -- 用于管理 Supabase 项目的命令行工具(应用数据库迁移、部署函数、设置密钥)。
npm install -g supabaseOpenRouter 账户 -- OpenRouter 将请求路由到 AI 模型。此处用于生成嵌入(你想法的向量表示)并提取元数据。在 openrouter.ai 创建一个账户并从仪表板生成 API 密钥。
Telegram 机器人(推荐) -- 随时随地捕捉想法的主要方式。通过 Telegram 上的 @BotFather 创建一个机器人并运行设置脚本(见下文)。如果你只需要 MCP 访问权限,可以跳过此步骤。
快速开始
1. 克隆仓库
git clone https://github.com/YOUR_USERNAME/open_brain.git
cd open_brain2. 关联你的 Supabase 项目
cd supabase
supabase link --project-ref YOUR_PROJECT_REF
cd ..提示: 你的项目引用(ref)是 Supabase URL 中的子域名。如果你的 URL 是
https://abcdef.supabase.co,那么你的项目引用就是abcdef。
3. 运行引导程序
./scripts/bootstrap.sh引导程序将引导你完成环境设置。它会提示输入每个密钥(Supabase URL、服务角色密钥、OpenRouter API 密钥、Telegram 令牌等),自动生成加密的 MCP 访问密钥,并将所有内容写入 .env.local。如果你已经有一个 .env.local,它将显示你现有的值并允许你更新特定的值。
4. 运行部署
./scripts/deploy.sh部署会应用数据库架构(创建带有向量搜索索引的 thoughts 表),将你的密钥上传到 Supabase,并部署所有 Edge Functions。它会在每个操作完成后显示分步检查清单。最后,它会打印你的 MCP 连接 URL 和可直接粘贴的 Claude Code 命令。
5. 运行验证
./scripts/validate.sh验证会对你的实时部署运行 8 项检查,以确认一切正常:数据库访问、RPC 函数、Edge Function 可达性、身份验证、想法捕捉、语义搜索和想法列表。它会打印一份包含每项检查通过/失败的清单以及最终摘要。
设置 Telegram 机器人(可选)
通过 Telegram 上的 @BotFather 创建一个机器人,然后运行设置脚本:
./scripts/setup-telegram.sh YOUR_BOT_TOKEN该脚本会验证你的令牌、注册 Webhook、设置命令自动补全,并打印要配置的环境变量和密钥。按照打印的说明完成设置。
连接你的 AI 客户端
部署完成后,连接你的 AI 客户端以开始使用 Open Brain。你需要两个值:
MCP 端点 URL:
https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp(Supabase) 或http://localhost:80/functions/v1/open-brain-mcp(Docker)MCP 访问密钥: 设置期间生成的密钥(存储在
.env.local或 Docker.env中)
提示: 部署脚本(Supabase)或启动脚本(Docker)会打印出填好你数值的精确连接命令。
Claude Code (CLI -- 推荐)
claude mcp add --transport http --header "x-brain-key: YOUR_MCP_KEY" open-brain https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp这将把 Open Brain 注册为 Claude Code 可以在任何对话中使用的 MCP 服务器。将 YOUR_MCP_KEY 和 YOUR_REF 替换为你的实际值。
Claude Code (项目 .mcp.json)
将其添加到项目根目录的 .mcp.json 文件中,以便与团队共享连接:
{
"mcpServers": {
"open-brain": {
"type": "http",
"url": "https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp",
"headers": {
"x-brain-key": "${MCP_ACCESS_KEY}"
}
}
}
}注意:
${MCP_ACCESS_KEY}语法使用环境变量扩展,因此你的密钥不会进入版本控制。在每台使用此配置的机器上设置MCP_ACCESS_KEY环境变量。
Claude Desktop
Claude Desktop 不支持通过配置文件连接远程 MCP 服务器。请改为:
打开 Claude Desktop > Settings > Connectors
点击 Add a new connector
输入 MCP 端点 URL:
https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp使用你的 MCP 访问密钥配置
x-brain-key身份验证头
ChatGPT (Pro/Team/Enterprise/Edu)
进入 Settings > Connectors > Advanced > Developer Mode
添加 MCP 服务器 URL:
https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp使用你的 MCP 访问密钥配置
x-brain-key身份验证头
使用示例
Telegram 捕捉
向你的机器人发送任何消息,Open Brain 会自动处理它:
You: Just had a great meeting with Sarah about the Q3 product roadmap.
She wants to prioritize the mobile app redesign.
Bot: Captured!
Type: meeting_note
Theme: personal
Topics: q3-roadmap, mobile-app-redesign
Quality: 0.7
People: Sarah
Action items: Prioritize mobile app redesign
Why: Records a product strategy decision with clear ownership
Related: "Product planning session notes..." (82% similar)每条消息都会被嵌入为向量,通过提取的元数据进行丰富,检查重复项,自动链接到相关想法,并将实体解析到知识图谱中。
语义搜索
要求任何连接的 AI 客户端搜索你的大脑:
You: Search my brain for anything about product roadmap discussions
Claude: I found 3 relevant thoughts:
1. (0.89 similarity) Meeting with Sarah about Q3 product roadmap...
2. (0.82 similarity) Product planning session notes...
3. (0.76 similarity) Quarterly goals discussion...语义搜索按含义查找想法——即使你使用了不同的词汇。询问“产品规划”会找到关于“路线图讨论”的想法,因为它们的含义相似。
每周回顾
获取 AI 生成的近期思考摘要:
You: Give me a weekly review of my recent thoughts
Claude: Here's your weekly review:
Themes: Product planning, team meetings, technical architecture
Open loops: Mobile redesign decision pending, API migration timeline
Connections: Sarah mentioned in 3 meetings this week, all about mobile每周回顾会分析过去 7 天的想法,并综合主题、开放循环、想法之间的联系以及你思考中的空白。
可用工具
工具 | 描述 |
| 带有可选图谱扩展(1 跳遍历)的语义搜索 |
| 按类型、主题、人员、主题、质量、时间过滤浏览想法 |
| 汇总统计:计数、类型/主题细分、热门主题/人员 |
| 从任何 AI 客户端保存新想法(带自动嵌入) |
| 从一个想法进行图谱遍历(类型化链接:扩展、矛盾等) |
| 按频率浏览提取的实体(人员、工具、项目、组织) |
| AI 生成的主题、开放循环和后续步骤摘要 |
| 图谱分析:中心、密度、来源、共现、主题 |
| 带有相似度区域直方图的重复候选者 |
| 重新计算所有显著性评分 |
| 重写内容(重新嵌入、重新提取元数据) |
| 永久删除(级联连接) |
| 重新浮现被遗忘的高质量想法 |
| 流水线监控:健康状态、运行历史、合并审计 |
| 审查并处理陈旧的想法候选者 |
| 从其他平台导入记忆的说明 |
查看 docs/cookbook.md 获取详细的使用模式、工具组合和非显而易见的行为。
技能 (Claude Code 工作流)
Open Brain 包含 Claude Code 技能——结构化的多阶段工作流,将上述 MCP 工具组合成更高级别的分析。技能会自动从 .claude/skills/ 中发现,并作为斜杠命令调用。
技能 | 功能 |
| 对近期想法进行增量模式发现。基于之前的报告(EVOLVED/NEW/STALE 分类),分派并行研究代理,并与项目优先级相关联。 |
| 流水线和数据健康报告。9 次并行 MCP 调用,基于准则评分(绿/黄/红),跨运行记忆以追踪随时间变化的发现,6 个跨指标模式检测器。 |
| 知识图谱健康报告。12 次并行 MCP 调用,涵盖主题关注度、图谱密度、中心健康、共现对齐、去重压力、综合输出和实体景观。 |
查看 docs/skills/README.md 获取详细描述和用法。
自动化维护
Open Brain 运行后台维护以保持知识图谱的健康。这些作业会自动运行——通过 GitHub Actions(Supabase 部署)或内置的 cron 容器(Docker 部署)。
作业 | 频率 | 目的 |
RSS/HF 论文/Emergent Mind 摄取 | 每日 2 次 | 从配置的来源摄取想法 |
流水线监控 | 每日 2 次 | 健康检查,失败时通过 Telegram 报警 |
梦境去重 | 每日 2 次 | 合并近乎重复的想法(>0.92 相似度自动合并,0.85-0.92 LLM 确认) |
图谱分析缓存 | 每日 | 预计算中心、密度和共现分析 |
梦境主题 | 每周 | 追踪主题速度、生命周期转换(新兴/活跃/衰退)、质心漂移 |
梦境衰减 | 每周 | 通过分层评分 + LLM 确认归档陈旧想法 |
梦境综合 | 每周 | 从想法集群中生成跨领域见解 |
共现衰减 | 每周 | 衰减未使用的共现边 |
GitHub Actions 工作流文件包含在 docs/workflows/ 中,作为自定义计划的参考。
基准测试
Open Brain 包含一个 LongMemEval 基准测试工具,用于衡量 6 个类别中 500 个问题的检索质量。每个问题都有自己独立的“大脑”——对话被摄取为想法,然后问题测试是否可以检索并回答正确的记忆。
基准结果(阈值=0.4,限制=20,开启图谱扩展):
类别 | 分数 | 测试内容 |
single-session-assistant | 69.6% | 从单次对话中回忆助手回复 |
single-session-user | 55.7% | 从单次对话中回忆用户陈述 |
knowledge-update | 52.6% | 呈现更新信息的最新版本 |
temporal-reasoning | 30.8% | 回答关于事情发生时间的问题 |
multi-session | 18.8% | 跨多次对话进行综合 |
single-session-preference | 3.3% | 回忆随意提到的偏好 |
总体 | 37.2% |
向量搜索可以很好地处理直接的事实回忆。多会话综合和时间推理是主要的改进领域——它们需要超越单查询向量相似度的检索策略。
针对你自己的实例运行基准测试:
pip install -r benchmark/requirements.txt
cp benchmark/.env.example benchmark/.env # fill in keys
python -m benchmark longmemeval run --concurrency 5结果位于 benchmark/results/。查看 benchmark/longmemeval/config.py 获取可调参数(阈值、检索限制、模型)。
项目结构
open-brain-server/
supabase/
migrations/ # Database migrations (applied with supabase db push)
functions/
_shared/ # Shared modules (supabase-client, openrouter, types, errors, auto-link, entities, dream-*)
telegram-bot/ # Telegram capture (primary capture path)
open-brain-mcp/ # MCP server (16 tools)
tools/ # Individual tool implementations
run-pipeline/ # Automated RSS/HF Papers/Emergent Mind ingestion
monitor-pipeline/ # Pipeline health monitoring with Telegram alerts
refresh-graph-analysis/ # Graph analysis cache computation
benchmark/ # LongMemEval retrieval quality benchmark
longmemeval/ # Harness: retrieve → reader → judge → score
results/ # Baseline results (summary markdown)
tests/ # 60 tests
docker/ # Docker Compose self-hosting (6 services)
pipeline/ # Python-based local pipeline (Reddit, RSS, briefing)
scripts/ # Setup and deployment automation
tests/ # Integration tests
docs/
cookbook.md # MCP tool usage patterns and compositions
skills/ # Skill documentation
workflows/ # GitHub Actions reference (scheduling)
writing-a-source.md # Guide for adding pipeline sources
.claude/
skills/ # Claude Code skills (auto-discovered)
discover/ # Incremental pattern discovery
pulse/ # Pipeline health report
brain-health/ # Knowledge graph health report许可证
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bobby-cell-commits/open-brain-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server