团队里总会出现这样的时刻:有人问"我们当初为什么这么做?",然后整个会议室安静下来。曾经有人知道答案,它藏在某条Slack消息、某条PR评论、或者一份没人读的ADR里。而真正知道的那个人,往往已经离职了。
![]()
这正是Cairn想解决的问题。它由两位开发者在Graph Hacks(WeMakeDevs × FalkorDB)期间搭建,定位是一个"记得为什么"的公司大脑:你提问,它给出理由,并引用每条理由被说出来的那条原始消息。
没有公司,就造一个。要建公司大脑,先得有公司,还得有它的Slack历史。于是他们做了两件事:把Cairn指向FalkorDB自己的GitHub组织,13个真实仓库的PR、issue和review;再生成一家虚构的24人物流公司Orbiton,导出成Slack、Jira CSV、ADR、事后复盘、runbook和一张组织架构图。
他们给这家虚构公司编了一个故事:一位叫Priya的资深工程师力推用自管理Kafka做事件管道,然后离职了。两周后,管道在一次促销活动中崩了,没人知道怎么修。问Cairn这件事,每个数字都是一个可点击的真实来源——那份ADR、团队争论过的Slack线程、比较MSK和Kinesis的Jira工单。没有来源,就没有答案。
最让作者得意的功能是"这还成立吗?"。决策会过期。Priya当初支持Kafka的理由是"我们在生产环境跑过Kafka"和"峰值大约每秒3千事件",两条都不再成立:她走了,而那次故障冲到了每秒1.1万事件。Cairn把故障复盘连回原始决策,并把它标了出来。
在这之上,团队又推了三个日常流程,结果成了最有用的部分:动某个服务之前先出变更影响报告、"这个故障以前发生过吗"、以及有人离职时的交接方案。
为什么是图,而不是搜索
一开始作者把它当成搜索问题,但它不是。"我们为什么做X"有时确实是搜索问题,可"支付相关的事该问谁""改认证服务会崩什么""Priya走了我们丢了什么"都不是。没有任何一段文字包含这些答案,你必须沿着关系走:谁review了谁、哪个服务依赖哪个、谁基于哪条消息做了什么决定。
所以Cairn里的一切都是FalkorDB中的一张图:人、团队、系统、决策、决策背后的理由,以及每条理由被引用的确切来源。图的大部分不靠AI构建——谁提交和review了PR、动了哪些文件、谁回复了谁、哪些仓库依赖哪些包,这些只是数据,不会被幻觉污染。AI只做需要判断的那部分:找出决策和决策的原因。
FalkorDB的图算法也干了实事。Betweenness找出连接团队的"桥梁"人物,标签传播找出谁实际在一起工作,最短路径解释两件事如何相连。每家公司住在同一个FalkorDB实例里各自独立的图中,真实数据和虚构公司永不混淆。
踩过的坑比想象中多
AI一直在编,直到他们不再信任它。解法不是更好的提示词,而是:模型抽出的每条理由都必须附带一句引用,代码逐字比对引用和原文,对不上就丢弃;回答时,模型编造的引用一律剥掉。
"这还成立吗"最初全是误报。一个执行了某决策的PR看起来像在反驳该决策;一份hackathon期间下载的README看起来比所有决策都"新",因为下载文件带的是抓取日期,不是写作日期。他们扔掉八个误报之后才让它变得诚实:现在需要第二个不同的模型也同意,而且只是执行决策的PR不算数。在真实的FalkorDB数据上,最后只剩一条值得人工看一眼的决策。
还有一个功能悄悄空转了很久。"桥梁人物"长时间返回空,且不报任何错。原因是图算法沿边的方向走,而"一起工作"每对只存了一个方向,于是没有任何路径能穿过一个人。双向存储修好了它。这个bug最吓人,因为看起来什么都没坏。
他们还把FalkorDB搞崩过:一个查询返回图从未存过的属性、旁边跟着一个count,会让整个服务器在6.0.x上挂掉;而某个WHERE条件会静默返回空。两者都是已知issue,他们绕过去并写进了README。
免费AI是一团乱麻。Gemini免费层每天给20次请求;Groq很好用,直到撞上每日上限;每个号称"OpenAI兼容"的API都以自己特殊的方式兼容。最终Cairn串起五个免费提供方,对按分钟限流的礼貌等待,如果所有模型都挂了,它仍然直接从图里给出答案。
连托管都在反抗。Railway试用过期,第一个线上链接是通到作者笔记本的隧道,最后落在用免费额度的小型AWS服务器上,前端放在Vercel。
图到底有没有用
作者说这部分他想诚实。第一次对比是Cairn对"关键词搜索+LLM",Cairn碾压。这太容易了,于是他们建了一个正经的向量搜索基线,向量也存进FalkorDB,并写了40个答案取自原始数据的问题,再由第二个模型给每个答案打分。
结果:向量搜索在"为什么"类问题上和Cairn打平(各17题中答对14题)。这说得通,答案通常就在一段话里,好的检索能找到。但在"谁懂这个""什么会崩""什么变了"上,向量搜索拿了零分,Cairn全中。这些问题没有段落可检索,答案只存在于关系里。连Cairn完全不用AI的图路由,整体上也赢了向量搜索。
它并不完美。需要串联多个事实的问题仍会绊倒它(4个里错1个),这是下一步要修的,同时还要做实时Slack和Jira连接器,替代导出文件。
作者也做了完整披露:他用Claude Code作为编码助手,但构建什么、数据和架构由他和队友拍板。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.