📌 项目地址:garrytan/gbrain | ⭐ 19,673 颗星 | 🔧 TypeScript | 📜 MIT
Y Combinator CEO Garry Tan 把自己AI agent的生产数据写成了一行一行数字:146,646页内容,24,585个人,5,339家公司,66个cron作业每晚自动运行。代码开源在 GitHub,项目叫 gbrain,TypeScript 写的,19673个star。
这不是又一个给PDF加聊天框的工具。它解决的是你真正遇到过的问题:AI agent 记不住上下文,问完张三问李四,它已经把张三忘干净了。
合成回答里的“我不知道”
普通 RAG 的工作方式是:你问“Acme AI 融了多少钱”,向量库翻出10段相关原文,然后你得自己拼答案。Gbrain 的输出是一段完整合成文本——“Acme AI 在2023年完成A轮500万美元,2024年B轮2000万美元,投资人清单如下”,末尾附引用。
有意思的是另一头。如果数据库里缺C轮数据,它写一句“当前没有找到Acme AI的C轮融资信息”。Garry叫这个 gap analysis——系统主动暴露自己的知识边界,而不是假装什么都知道。
我试了几个测试问题。每次回复都有一段明确的“未知信息”部分。问某个创始人的教育背景,系统给出已知的工作履历后,会写“当前知识库中没有该创始人的学历信息”。
这个设计改变了使用方式。你不在查资料,你在和一个知道“自己知道什么、不知道什么”的系统对话。对AI agent来说,知道自己的知识边界比强行输出一个错误答案重要十倍。
零LLM调用的知识图谱
每写入一页内容,gbrain自动抽取出实体和关系边。Garry解释了为什么不用LLM做这件事:LLM会乱造边,规则提取零成本、零幻觉。支持的关系边类型只有五个:attended、works_at、invested_in、founded、advises。
评测数据在 gbrain-evals 仓库里,240页Opus生成的文本语料。结果:
| 配置 | P@5 | R@5 |
|---|---|---|
| 图开启 | 49.1% | 97.9% |
| 图关闭 | 17.7% | – |
图开启时P@5高31.4个百分点。在14万页的生产环境里,向量搜索容易被无关片段淹没。图检索沿着works_at边找人,走一条边就能命中;向量搜索要在14万页里找“works”或“employee”,效果差距明显。
我试了下问“谁在Acme AI工作?”纯向量很难回答这种关系查询,图检索直接命中。这条能力对商业情报、投融资关系梳理、团队组织图查询来说很实用。
隔离不是post-filter,是设计起点
Gbrain支持团队部署。每个人登录只能看到自己被授权的数据。README里写得很硬:“never another person‘s notes, never another team’s data”。
Garry的团队用所有可能的读取路径做了模糊测试——搜索、列表、查找、多源读取——零泄露。
YC最近把“公司大脑”写进了 Request for Startups。Gbrain正好能接这活儿,教程在docs/tutorials/company-brain.md。许多系统的权限是事后加的filter,Gbrain在设计之初就把隔离嵌进了所有读取路径。
自己跑,自己监控
Garry的真实生产环境数据:
- 146,646页已处理的内容(含会议、邮件、推文、语音通话、原始想法)
- 24,585个人
- 5,339家公司
- 66个cron作业每晚自动运行
这些cron作业具体做什么:修复引用中断、合并重复记忆、更新人/公司的富化信息。系统隔夜后重新整合知识库,自检引文自洽。
一条命令就能把gbrain作为超级检索层接入Claude Code或Codex。它跑在自己的硬件和数据库里,没有外部云依赖。如果你的AI agent有语境丢失的问题,或者需要离线运行、对数据隐私有硬性要求,这个架构很实用。
它不适合谁
Gbrain不是给你的文档库加一个聊天框。它是为持续运行的AI agent设计的持久记忆层。合成+图遍历+缺口分析三合一,这个组合确实很少见。
但如果你只是问一个PDF的内容,它可能太重了。它适合知识库规模上万页、需要关系查询、有多用户权限管理的场景。
文档偏少,依赖PostgreSQL和全文检索。部署需要懂一点运维。不过Garry本人就在用,代码质量可信。如果你想建一个YC RFS里说的“公司大脑”,Gbrain是目前最现成的起点。可以直接克隆测试,教程在docs/tutorials/company-brain.md。