GBrain-13年打磨的Agent第二大脑-16KStars开源即爆
2026 年 4 月 10 日,Y Combinator 总裁 Garry Tan 把他运行了 13 年的个人知识系统开源。24 小时 5400 Stars,一个月后破 16K Stars。这不是另一个"笔记工具"——这是一个正在生产环境运转的 Agent 长期记忆系统:45,798 个页面、98K 个数据块、25K 条实体关联、19 个定时任务全天候自动运转,全部装在一个 MIT 开源仓库里。
读完这篇,你能搞明白五件事:为什么向量数据库 + 聊天记录不等于 Agent 记忆、GBrain 的三层架构是怎么让知识自进化的、零 LLM 调用的自布线知识图谱到底怎么做到的、Dream Cycle 夜间记忆巩固和大模型的睡眠有什么关系、以及这东西能不能直接用到你自己的项目里。
1. 问题定义:Agent 为什么没有记忆?
1.1 你有没有遇到过这种情况
你用 LangGraph 搭了个 Agent,它能推理、能调工具、能写代码——但每次对话都像第一次见你。
给它加个向量数据库,它还是记不住"上次你女儿叫什么名字"跟"三个月前你聊过的那笔投资"之间有什么关系。
LLM 的上下文窗口越来越长(128K → 1M → 2M),但上下文长度不等于记忆。把一生的聊天记录全塞进 prompt,既不经济也不可行。
Garry Tan 就遇到了这个问题。他的个人知识库积累到 7,471 个 Markdown 文件、1,222 份人物档案、2.3GB——Git 已经撑不住了。
1.2 为什么它是近期热点
上线 24 小时 5400 Stars,截至 5 月下旬突破 16K+ Stars。Garry Tan 用这套系统驱动自己的 OpenClaw 和 Hermes Agent,12 天内搭建了包含 17,888 页、4,383 位联系人、723 家公司的知识库。
1.3 技术本质:Agent 记忆不是"外挂硬盘"
传统 RAG 只做 4 层:分块 → 嵌入 → 索引 → 查询,检索完就结束了。
GBrain 的核心变化:把记忆从"外挂硬盘"升级成真正的"大脑"——不仅能检索,还能建立关联、巩固记忆、自动进化。
| 维度 | 传统 RAG(向量数据库) | GBrain |
|---|---|---|
| 检索层数 | 4 层 | 8 层(含重排序、知识图谱、梦境循环) |
| 知识模型 | 扁平文档 + 切片 | 编译真相 + 时间线(上下两层结构) |
| 实体关联 | 无(纯语义匹配) | 零 LLM 调用的自布线知识图谱 |
| 记忆进化 | 无(静态索引) | Dream Cycle 夜间巩固机制 |
| 真值源 | 数据库中的向量 | Markdown + Git(人类和 AI 共享) |
| 数据所有权 | 依赖外部向量存储 | 单个 SQLite 文件 |
| 接入方式 | 框架内置或 SDK | MCP 协议(语言无关、工具无关) |
2. 三层架构:Brain Repo → Retrieval Index → Skills
GBrain 分三层。每一层解决一类问题,三层合起来才构成完整的 Agent 记忆系统。
Layer 1:Brain Repo(真值源)——为什么不是数据库,而是 Markdown?
最底层不是数据库,是 Markdown 文件。每个实体——人、公司、概念、会议——对应一个 .md 文件,用 Git 做版本控制。
每个文件有两种内容区,互不混淆:
┌──────────────────────────────┐ │ Compiled Truth(编译真相) │ ← 文件顶部,当前最佳理解摘要 │ 新信息进来后重写 │ 上方是"答案" ├──────────────────────────────┤ │ Timeline(时间线) │ ← 文件底部,只追加不编辑 │ 每一条证据记录永久保留 │ 下方是"证据" └──────────────────────────────┘
一个真实的人物档案长这样:这个人的职位、关系背景、你们见面的结论写在上半段;从 2019 年第一次见面到最近一次电话沟通的每一条记录,追加在下半段。
这个设计直接源自情报分析的方法论——"当前评估"和"历史证据"必须严格区分。大多数笔记工具的模型是扁平笔记 + 链接,没有这种强制性结构分离。
关键设计理念:人类和 AI 共享同一份真值源。你能用 Obsidian 打开看、用 grep 搜索、用 Git 回溯。数据库崩了?从 Git 重建就是。
Layer 2:Retrieval Index(混合检索引擎)——为什么比纯向量搜索好 30%?
这层是 GBrain 真正的技术核心。默认用 PGLite(WASM 里跑的嵌入式 Postgres),初始化两秒,零配置。生产环境切 Supabase Postgres。
完整查询管线,一共 6 步:
用户查询 ↓ ① 查询扩展: Claude Haiku 生成 2 个替代表述 ↓ ② 并行搜索: ├─ HNSW 向量搜索(1536-dim,cosine 相似度) └─ PostgreSQL tsvector 全文搜索 (title A权重 > compiled B权重 > timeline C权重) ↓ ③ RRF 融合: score = Σ(1/(60+rank)) ↓ ④ 四层去重: 每页保留最佳 3 片段,Jaccard > 0.85 阈值 ↓ ⑤ Backlink 加权: 被其他页面链接的页面加分 ↓ ⑥ 返回 Top-K
向量搜索解决"意思相近",关键词搜索解决"精确匹配"。两者融合后用 backlink 加权——一个被反复引用的页面自然比孤立的页面更重要。
实测性能数据(240 页知识库):
| 指标 | 纯向量搜索 | GBrain 混合检索 | 提升 |
|---|---|---|---|
| P@5 | - | 49.1% | - |
| R@5 | - | 97.9% | +31.4pp vs 纯向量 |
引入知识图谱后:
| 指标 | 无图谱 | 有图谱 | 提升 |
|---|---|---|---|
| Recall@5 | 83% | 95% | +12pp |
| Precision@5 | 39% | 45% | +6pp |
| F1(图谱检索) | grep 57.8% | 86.6% | +28.8pp |
Layer 3:34 个 Skills 工作流——"瘦 CLI + 胖技能"
GBrain 的设计哲学叫 "Thin Harness, Fat Skills"——运行时代码很薄,智能全在 34 个 Markdown 技能文件里。这是 Garry Tan 在 GStack(64K+ Stars)中验证过的架构模式。
34 个技能分五类:
| 类别 | 代表技能 | 功能 |
|---|---|---|
| Always-on | signal-detector、brain-ops | 全天候监听信号和调度 |
| 内容摄入 | ingest、meeting-ingestion、media-ingest | 把邮件/会议/推文变成结构化页面 |
| 研究综合 | research-synthesizer | 跨多个页面抽取主题 |
| 脑区运维 | enrich、maintain、citation-fixer | 充实实体信息、去重合并、修正引用链 |
| 身份设置 | soul-audit、setup、briefing | 审视知识盲区、初始化、每日简报 |
每个技能文件就是一个 Markdown,规定了完整的"什么时候触发 → 读什么 → 写什么 → 写到哪 → 质量标准"工作流。Agent 读这些文件就知道怎么做——代码里零硬编码逻辑。
3. 最惊艳的设计:零 LLM 调用的自布线知识图谱
3.1 怎么做到零 LLM 调用?
每次往 Brain Repo 写一个页面,GBrain 自动提取实体和关系——用正则和字符串匹配,零次 LLM 调用。
提取的关系类型:
| 关系 | 含义 | 示例 |
|---|---|---|
| works_at | 任职于 | Bob works_at Acme AI |
| invested_in | 投资了 | Alice invested_in Beta Corp |
| founded | 创立了 | Charlie founded Gamma Inc |
| advises | 顾问关系 | Diana advises Delta Startup |
| met_with | 会面 | Eve met_with Frank (2025-Q3) |
| referenced_in | 文档提及 | 概念 X referenced_in 会议记录 Y |
这意味着你可以问 GBrain "谁投资了跟 Alice 有关的那家数据库公司?"——纯图谱查询就能回答,不需要 LLM 去猜。
3.2 自我进化:Tier 系统
实体不会一创建就"完整"。它有自己的成长路径:
| Tier | 触发条件 | 行为 |
|---|---|---|
| Tier 3(存根) | 实体首次被提及 | 创建存根页,只有名字和基本来源 |
| Tier 2 | 跨 3 个不同来源再次出现 | 升级,自动做 web 搜索和社交充实 |
| Tier 1 | 参加过会议,或跨 8 个来源出现 | 最高级,跑完整充实管线 |
用 Garry Tan 自己的话说:"The brain learns who matters without being told."——大脑自己知道谁重要,不需要你教。
4. Dream Cycle:AI 也需要"睡觉"
4.1 灵感来源:人脑的记忆巩固
GBrain 最让人着迷的功能。灵感直接来自神经科学:人脑在深度睡眠时,海马体会将白天的短期记忆"重放"给皮层,巩固为长期记忆。
GBrain 的 Dream Cycle 是这一机制的 AI 版本:
白天: ① Signal Detector 全天候并行捕获信号(邮件、推文、日程),不阻塞 ② Agent 响应每个信号时,brain-ops 先查脑区:"这事我以前知道些什么?" 晚上: ① Minions 任务队列跑确定性批量任务 ② 拉取标记帖子 → 补充引用 → 去重合并 → 重建索引 ③ 全部零 LLM token 成本(纯 TypeScript 代码执行)
4.2 Minions 为什么比子 Agent 快这么多?
| 方式 | 耗时 | 成本 |
|---|---|---|
| Minions(确定性代码) | 753 毫秒 | $0 |
| 子 Agent fan-out | 网关超时 | - |
Minions 是 Dream Cycle 里最被低估的设计。它把"拉帖子、解析 JSON、写页面、同步索引"这些确定性活从 LLM 手里抢过来,用原生 TypeScript 代码跑。把能确定的事交给代码,不能确定的才给 LLM。
Garry Tan 自己的 brain 跑着 19 个 cron job,全天候自动化运转——你在睡觉,你的 Agent 在整理你的记忆。
4.3 实测局限
至顶 AI 实验室的评估发现:Dream Cycle 的效果高度依赖模型能力。小模型基本跑不动这套读写循环——要么什么都没记住,要么记错了。官方建议配合 Claude Opus 4.6 或 GPT-5.4 级别模型使用。此外,知识更新到可检索之间存在延迟窗口——你不能指望刚发生的事情立刻被系统"记住"。
5. 生产数据:Garry Tan 本人的 45K 页面实例
这不是演示环境,是真实运转的生产系统。
| 指标 | 数据 |
|---|---|
| 总页面数 | 45,798 |
| 数据块 | 98,000 |
| 实体关联 | 25,000 条 |
| 时间线记录 | 79,000 条 |
| 定时任务 | 19 个 cron job |
| 部署方式 | Render 容器 + Supabase Postgres |
| 嵌入模型 | Gwen 8B |
| 查询增强 LLM | Elephant LLM |
多 Agent 协作验证:Garry Tan 的 Paperclip 项目用 GBrain 管理 38 个 Hermes Agent——每个 Agent 有独立的"灵魂"和技能、私人和共享工作区,全部连接到一个中心 GBrain 实例。这证明了 GBrain 不是单 Agent 玩具,而是可以支撑复杂多 Agent 系统的记忆基础设施。
架构全貌:正反馈循环
外部信号(邮件/推文/会议/通话) ↓ Skills 层(34 个 Markdown 工作流) ↓ "要不要记?" Brain Repo(Markdown + Git 真值源) ↓ "记在哪?" Retrieval Index(Postgres 混合搜索) ↓ "怎么找到?" 知识图谱(零 LLM 实体关系提取) ↓ "跟什么有关?" 反哺检索层 → 下一次搜索更准
这是一个正反馈循环。用的时间越长,brain 对你的领域理解越深。
6. 架构决策:为什么是 SQLite + Bun + MCP?
6.1 为什么是 SQLite / PGLite?
| 决策 | 理由 |
|---|---|
| 单文件数据库 | 无服务器、无 Docker、无连接字符串。一个 brain.db 可以 scp、rsync、备份到 S3 |
| 规模适配 | 个人知识库规模(数万页而非每秒百万行)完全在 SQLite 舒适区内 |
| 单写入者模型 | 一个人的大脑,一个写入者,多个读取者——SQLite 最佳场景 |
| PGLite 生产升级 | 本地用 PGLite(WASM-嵌入式),生产切 Supabase,同一套 SQL |
6.2 为什么是 Bun + TypeScript?
与 GStack 保持一致的技术栈。CLI 约 500 行 TypeScript,编译为 Bun 单文件二进制,只做命令分发。所有智能在 SKILL.md 文件中。
6.3 为什么是 MCP 协议?
MCP(模型上下文协议)通过 stdio 传输暴露 14 个工具(brain_search、brain_query、brain_get、brain_put、brain_ingest 等)和 2 个资源(页面内容、索引)。任何 MCP 兼容客户端——Claude Code、Cursor、Windsurf——都可以直接访问,无需定制集成。
配置只需一行 JSON:
{
"mcpServers": {
"gbrain": {
"command": "gbrain",
"args": ["serve"]
}
}
}
GBrain 最重要的架构贡献就是把记忆做成了协议层服务,而不是框架内置模块。
7. 与传统工具的全面对比
7.1 vs 知识管理工具
| 维度 | Obsidian | Notion | GBrain |
|---|---|---|---|
| 本质 | Electron 应用 + 本地文件 | SaaS 云数据库 | 单个 SQLite 文件 |
| 搜索 | 依赖插件 | 云搜索 | FTS5 + 向量 + 结构化查询 |
| 知识模型 | 扁平笔记 + 链接 | 数据库 + 页面 | 编译真相 + 时间线 |
| 数据所有权 | 本地文件 | 云端(Notion 服务器) | 你完全拥有 |
| AI 代理维护 | 否 | 否 | 是(Skills 工作流自动维护) |
| 知识图谱 | 手动链接 | 手动关联 | 零 LLM 自动提取 |
7.2 vs Agent 记忆方案
| 维度 | LangChain Memory | 向量数据库 | GBrain |
|---|---|---|---|
| 记忆类型 | 对话历史缓存 | 语义相似文档检索 | 结构化知识 + 证据时间线 |
| 跨会话持久化 | 取决于实现 | 是 | 是 |
| 实体关系 | 无 | 无 | 自布线知识图谱 |
| 记忆进化 | 无 | 无 | Dream Cycle 夜间巩固 |
| 框架绑定 | LangChain 专属 | 无(独立服务) | MCP 协议(语言无关) |
| 人类可读真值源 | 否 | 否 | Markdown + Git |
8. 局限与边界:"这是图书馆,不是记忆"
一个值得认真对待的区分:GBrain 是图书馆,不是记忆。
-
记忆会编码某件事为什么重要、对谁重要、这种重要性如何随时间演变
-
图书馆是预先整理好的事实和观点集合,供 Agent 快速检索
| GBrain 能做到 | GBrain 做不到 |
|---|---|
| 你明确存入的东西,结构化保存并精准调出 | 自动理解"这件事对你意味着什么" |
| 自动提取实体关联,回答图谱查询 | 无高端模型配合时自主生成新知识关联 |
| 夜间巩固持续优化索引质量 | 开箱即用——有明显冷启动门槛 |
具体限制
| 限制 | 说明 |
|---|---|
| 模型依赖 | 检索质量和 Dream Cycle 高度依赖 Claude Opus 4.6 / GPT-5.4 级别模型 |
| 冷启动 | 记忆效果随使用积累提升,初期数据量少时体验不佳 |
| Dream Cycle 延迟 | 知识更新到可检索之间存在时间窗口 |
| 技术栈锁定 | Bun + TypeScript(98%),Python 只能通过 MCP 桥接 |
| 单操作者设计 | 不适合团队共享知识库 |
| API 不稳定 | 当前约 v0.30,breaking changes 是日常 |
9. 快速上手:5 分钟跑起来
# 1. 安装
npm install -g gbrain
# 2. 初始化一个 brain
gbrain init my-brain
cd my-brain
# 3. 启动 MCP 服务
gbrain serve
# 4. 在 Claude Code 的 MCP 配置里加一行
# ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"gbrain": {
"command": "gbrain",
"args": ["serve"]
}
}
}
# 5. 开始用
# 在 Claude Code 里直接说:
# "把刚才那封关于融资的邮件记到 brain 里"
# "查一下我跟 Alice 上次见面是什么时候"
# "brain 里有哪些我投资过的 AI 公司?"
一个月后的理想状态:你的 Agent 在每次对话开始前,自动查 brain——"关于这个话题,我以前知道些什么?"
10. 12 个月后的展望
Agent 记忆的核心趋势判断:不会走"框架内置"那条路,会走"协议层标准化"的路。
LangChain 当年把 Memory 模块内置进框架,结果任何想换框架的人都得重写一遍记忆逻辑。MCP 的出现改变了这个局面——记忆不再是框架的一个模块,而是协议层的一个服务。
| 方向 | 判断 |
|---|---|
| 多 Agent 协作 | 必然方向——一个 brain 被多个 Agent 共享读写的需求太明显 |
| Python 原生 SDK | 社区需求摆在那 |
| 托管云版本 | 不是所有人都想自己维护 PGLite/Supabase |
| 记忆协议标准化 | MCP 给了锚点,GBrain 的模式可能成为事实标准 |
| LangGraph/CrewAI 官方 Memory Server | 用户发现 Agent 记忆是独立层后,不会再接受"框架自带的那个" |
结论:六个核心认知
-
"编译真相 + 时间线"是正确模型:将情报分析方法论引入 Agent 记忆设计,强制区分当前评估与历史证据
-
自布线知识图谱是工程智慧典范:零 LLM 调用、纯确定性执行的实体关系提取,86.6% F1,秒杀 grep 的 57.8%
-
Dream Cycle 方向正确但执行依赖模型:夜间记忆巩固是必要机制,但小模型跑不动是真实限制
-
MCP 协议让记忆成为独立服务层:GBrain 最重要的架构贡献——记忆不再内嵌于框架
-
Minions(确定性代码)的正确性:把能确定的事交给代码,不能确定的才给 LLM——753ms vs 超时,$0 vs 付费
-
"这是图书馆,不是记忆":理解系统边界,管理预期,比盲目乐观更重要
GBrain 的价值不在它今天的代码,而在它验证了一个模式:Agent 记忆可以是一个独立的、通过标准协议接入的服务。真正会规模化的是这个模式被抽象后的版本。
11. 参考文献
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)