Code Wiki 代码库理解引擎
每个开发人员都有一个关于“那个”代码库的故事。你知道的,就是那个让你质疑职业选择的代码库。那个有成千上万的文件、一百万个依赖项,却没有任何文档的代码库。
我上周二找到了它。
我被分配了一个关键的错误修复任务,是在一个遗留系统中进行的。原来的开发人员早已离开,留下了一团乱麻般的代码,感觉更像是一个恶作剧而不是一个生产系统。我花了大部分时间试图弄清楚它是如何组合在一起的。这是一次痛苦而令人沮丧的经历,每个开发人员都再熟悉不过了。
然后,正如预期的那样,谷歌宣布了 Code Wiki。
演示非常炫酷。一个AI可以读取整个仓库,理解其架构,并用普通英语回答有关它的问题。它承诺成为像我这样的迷失开发者的终极指南。但众所周知,精心策划的发布会和真实的编码会话之间有着天壤之别。
因此,我决定对其进行测试。我把一个复杂开源项目的链接输入进去,并问了我脑海中一直燃烧的问题:
这是最终拯救我们摆脱遗留代码噩梦的工具吗?
接下来是我诚实、人性化的看法——既有惊叹也有现实。
1、理想:没有代码困惑的世界
坦白说,文档是破损的。我们都知道我们应该写它,但我们很少这样做。而且当我们做的时候,它在下一个拉取请求合并时就已经过时了。这是一个恶性循环,使我们陷入技术债务的山峰和困惑的开发团队中。
“阅读现有代码是软件开发中最大的、最昂贵的瓶颈之一。” —— Google Developers Blog 1
Code Wiki 的解决方案很激进:如果代码本身就是文档呢?如果你能与你的仓库对话,提出问题并得到即时准确的答案呢?这就是梦想,而且是一个宏大的梦想。
Code Wiki 承諾如下:
- 一个活的维基:它在每次更改后扫描你的代码,所以文档永远不会过时。
- 一个AI专家:由Gemini驱动的聊天具有对你的特定代码库的深刻理解。
- 一个交互式地图:每一条信息都超链接到它描述的确切代码行。
- 视觉洞察力:它自动生成架构图,让你看到大局。
这是一个雄心勃勃的愿景,可能会彻底改变我们的工作方式。
2、我对一个开源项目的体验
我开始探索一个名为 “Devika — Agentic AI software engineer” 的开源代码库。
作为一名在整个软件开发生命周期中高度依赖AI的人,我很好奇Code Wiki如何帮助我理解一个完全不熟悉的仓库。
每一个答案都是准确的。
不仅仅是文本准确,而是结构上准确。
最棒的是:
每次合并拉取请求后,Code Wiki都会自动更新自己。不需要重新导入整个仓库。没有延迟。没有过时的文档。
你的代码和你的维基始终保持同步。
这才是真正的力量。
想象一下,在解决生产事故时,你发现问题是出在一个你从未接触过的微服务中。过去,你会花数小时阅读代码或寻找那个“记得它是怎么工作的”人。
有了Code Wiki,你只需提问——就能立即从系统层面理解仓库。
而这里更令人兴奋的是:
谷歌正在推出一个Gemini CLI扩展程序,它可以与私有仓库和企业代码库一起工作。这意义重大。这意味着所有的语义知识——架构、逻辑、依赖关系——都可以放在一个地方,并直接被真正理解你系统的LLM访问。
这感觉像是我们探索和理解代码的新时代的开始。
3、内部揭秘:Code Wiki 如何读取你的代码思维
那么,它实际上是如何工作的呢?这不是魔法,但很接近。根据我所了解的,它是一个三步过程,结合了AI领域一些最激动人心的进展。
3.1 为你的代码建立“大脑”
首先,Code Wiki 不只是将你的代码作为文本来读取;它会从中构建一个知识图谱。把它想象成你整个仓库的思维导图。
- 它使用类似 Tree-sitter 的工具来解析你的代码并理解其结构(类、函数等)。
- 然后,它会识别这些不同部分之间的关系(哪个函数调用了哪个,哪个类继承自哪个等)。
- 最后,它将所有这些放入一个图数据库中,其中代码组件是“节点”,而关系是“边”。
这是秘密武器。通过理解代码的结构,而不仅仅是文字,它可以以一种更强大的方式来推理它。
3.2 “代理RAG”的超级能力
一旦它有了这个大脑,就需要一种与之交流的方式。这就是 Agentic RAG(检索增强生成) 的作用。这是一个时髦的术语,指的是一个非常酷的想法:一个AI代理,可以使用多个工具找到你问题的最佳答案。
在Code Wiki的情况下,代理有两个主要工具:
- 向量搜索:这就像一个超级强大的搜索引擎。它可以找到在概念上与你询问的内容相似的代码,即使单词不完全匹配。
- 图遍历:这允许代理在知识图谱中导航,探索你代码中不同部分之间的关系。
当你提问时,代理会决定哪种工具最适合这项工作。如果你问,“认证是如何工作的?”,它可能使用向量搜索。如果你问,“User模型依赖于什么?”,它会使用图遍历。这种混合方法使其如此智能。
3.3 与你的代码交谈
最后一步是用户界面,它设计得像是自然对话。
- 交互式维基:文档是一个可点击、可探索的代码地图。
- Gemini聊天:你可以用普通英语提问并获得直接链接到代码的答案。
- 可视化图表:你可以一目了然地看到你的架构,使你很容易发现模式和潜在问题。
4、我的评价:未来已经到来,但它仍在加载中
那么,Code Wiki 是我们所有遗留代码祈祷的答案吗?是也不是。
它是一项惊人的技术。第一次我向它提出了一个关于代码库的复杂问题,它给出了完美的答案,并附上了确切代码行的链接,我感到一种真正的敬畏。毫无疑问,这是软件开发的未来。
然而,它并不完美。有时它会感到困惑,或者它生成的图表有点杂乱。这是一个1.0产品,它显示出来了。但潜力巨大。
目前,我会把它当作一个强大的助手,一个帮助我导航不熟悉代码库黑暗角落的指南。它不会替我编写代码,但会使理解代码的过程变得不那么痛苦。
为此,我非常感激。
原文链接:Google’s Code Wiki Just Read My Mind — And My Code.
汇智网翻译整理,转载请标明出处