AI

AI Coding 搞了一年,我才认准真正的护城河是知识库

作者头像 刘宇帅
354 0

AI Coding 时代最大的护城河,不是模型,不是 Agent,也不是工作流。

而是知识库。

这是我折腾了一整年 AI Coding,到最后才慢慢看明白的事。

可一开始,我和大多数人一样,劲儿全使在另一个地方——工作流。

怎么把写 PRD、出方案、写代码、生成测试串成一条链路,让 AI 一步步往下跑。

工作流跑通了,下一个问题马上冒出来——

AI 跑这些命令的时候,到底读什么?

光给它代码,不够。

于是所有人又一窝蜂去搞知识库。研发在搞,产品在搞,业务也在搞。

可搞着搞着我发现一件事:几乎没人能说清,知识库到底该是什么。

先说说,知识库不该是什么

很多人理解的知识库,是"把代码翻译成文字"。

我一开始也差点掉进这个坑。

可你冷静想想——我有上百万行代码,难道要一对一翻译成几十万行的文字描述?

这事既做不动,也没意义。 🤦

翻译出来的文字,本质还是代码的复述。AI 直接读代码就行了,何必脱裤子放屁。

还有一种,是把知识库做成"又一个文档库"。

这个更常见,也死得最惨。

文档写完那一刻就开始过时。

三个月后没人维护,半年后没人敢信,一年后躺在某个角落吃灰。

写文档的人前脚走,文档后脚就死了。

所以我想了很久:如果知识库不是代码的翻译、也不是堆文档,那它到底是什么?

代码本身,到底缺什么

要回答知识库是什么,得先搞清楚——代码本身缺什么。

我后来总结出三个点:

一是只有现状,没有意图。

你读代码,能知道接口长啥样、表结构是什么、调用链怎么走。

但你看不出:这个字段为什么这么设计?这个 if 是哪次线上事故留下的补丁?这条规则到底是正经逻辑还是临时将就?

代码只告诉你"是什么",从不告诉你"为什么"。

二是单个服务看不到全局。

一条业务,往往横跨好几个系统、好几个服务。

你盯着一个 repo 看,只能看见局部。端到端的链路、系统之间的断层,全是盲区。

三是关键知识,根本不在代码里。

它在老员工的脑子里,在某条 commit message 里,在一次拉群对齐的聊天记录里。

老司机一走,这些东西就跟着蒸发了。

想清楚这三个洞,知识库是什么就有答案了——

知识库要装的,恰恰是代码自己补不出来的那部分。

那它到底该装什么?我把知识库定义成四类知识

绕了这么久,我给我们的知识库下了一个定义:

它是一张面向 AI Agent 和人类工程师共同消费的知识网络,同时覆盖代码和业务两个维度。

它的活儿,就是把"代码原文"加工成"AI 和人都能拿来推理的知识"。

而这张网,我把它拆成了四类知识

这四类,是我想了最久、也最得意的一块——因为只有把"知识"按性质切开,AI 才知道哪些能信、哪些只能参考。

第一类,事实(Facts)。

代码扫出来的客观事实:接口签名、表结构、调用关系、MQ 事件,再加上测试平台沉淀的基线用例。

全是机器能验证的硬事实,零脑补。 表里有没有这个字段,一扫便知,不需要 AI 猜。

第二类,知识(Knowledge)。

这是代码看不出来的那部分业务理解:某条业务规则为什么这么定、这个接口有什么坑、历史上做过哪些关键决策。

Facts 回答"是什么",Knowledge 回答"为什么"。 这一类,恰恰是最值钱、也最容易丢的。

第三类,模式(Patterns)。

跨服务、跨技术域的全部规范——团队的组织级共识。

它又分五小类:语言规范(Java/Go/PHP/Python/JS 各自的编码约定)、通用规范(数据库、错误处理、日志、API 兼容性)、中间件规范(Redis、MQ、RPC、分布式锁、定时任务)、测试规范平台规范(前端/移动/桌面的工程化约定)。

有了它,AI 写出来的代码才不会十个人十个样。

第四类,视图(Views)。

它不原创内容,而是把前三类重新聚合,切出不同视角的切片。最主要的是两个维度:

一个是业务域维度——按"寄卖、回收、交易"这些业务域,把散在好几个服务里的相关规则、流程、实体归并到一处,回答"这条业务到底怎么跑"。

一个是业务系统维度——按一个完整的业务系统(比如供应链、售后),梳理它由哪些服务组成、系统内的业务怎么串起来,回答"这个系统到底怎么搭"。

一个顺着业务看,一个顺着系统看。两个维度叠在一起,AI 才能一眼看到全局,不用自己满世界拼图。

事实、知识、模式、视图。 这四类合在一起,才是我心里那张完整的知识网络。

这四类知识,分别从哪来?

定义清楚了,更难的问题是:面对一个跑了好几年的老项目,这四类知识怎么生产出来?

我的总原则是:别想着"写一份文档",要想着"修一条知识生产线"。

文档是死的,生产线是活的。下面一类一类说。

事实(Facts):靠扫,不靠写。

我们做了一个专门的「项目扫描」skill,自动扫单个服务的代码,把接口、表结构、调用关系一股脑扒出来。

但这里有个坑:不同语言的代码结构差太远了。 Java 的 Controller、Go 的 handler、前端的路由,长得完全不一样。

所以我为每种语言单独设计了扫描模板——保证不管什么语言,扫出来的事实都落到统一的格式里。

再叠上从测试平台同步过来的基线用例,事实层就齐了。

系统拓扑:靠「系统扫描」把孤岛连成片。

单个服务扫完,还是一座座孤岛。

于是又有一个「系统扫描」命令,专门读 K8S 的部署配置——域名怎么挂、服务怎么暴露、谁依赖谁,把孤立的服务还原成"域名 → 前端 → API → 后端"的完整系统拓扑。

这一步,补的就是"单服务看不到全局"那个点。

知识(Knowledge):靠人补,靠纠错喂。

业务理解,机器扫不出来,只能靠两条人工通路。

一是主动补全:把那些"不成文的规矩"手写进去。

二是纠错反哺:开发过程中 AI 哪里理解错了、哪个字段会错意了,让 AI Agent 在运行过程中随时记录,需求上线后再统一沉淀回知识库。

下次它就不会在同一个坑里栽第二次。

模式(Patterns):靠团队一条条沉淀。

五大类规范,主要是把团队历史的规范和现有项目的使用现状,让 AI 汇总整理而来。未来还需要持续维护与优化。

视图(Views):靠聚合,不靠重写。

它不产生新内容,只是把前三类按业务域、系统重新组织一遍。前三类越扎实,视图就越有用。

你看,四类知识、四种来路:能扫的就扫,扫不动的靠人补,跨域的靠规范,全局的靠聚合。

扫出来的知识,只有八成可信

这里得先说句大实话:机器扫出来的东西,并不是百分百准的。

我自己估了下,扫描产出的知识,置信度大概在 80% 左右。

剩下那两成,可能是 AI 推断错了,可能是它顺着代码瞎猜的,也可能几个来源本身就对不上。

那问题就来了——这些有真有假的知识,混在一起怎么用才不出事?

我的办法是:给每一条知识,都标上可信度。

为什么这一步这么关键?

因为如果你把"确定的事实"和"AI 的猜测"混在一起喂给它,它生成的方案、测试、校验里,就会混进一堆不可验证的脑补。

而你根本分不清哪句是真的,哪句是它编的。 😨

所以每一条知识,我都要求它带着证据来——是哪行代码、哪条 commit、哪个用例支撑的。

回溯不到证据的,就不配进知识库。

然后按可信度分成三档:

  • 确定——直接来自代码,或多个来源交叉验证一致
  • 推断——只有单一来源,或带点猜的成分,必须标上"待确认"
  • 冲突——多个来源对不上

分完档,神奇的事情发生了:不同环节可以按不同规则去吃这些知识。

出技术方案,只吃确定的——绝不让方案建在猜测上。

做测试设计,专挑冲突的——因为多个来源对不上的地方,往往就是系统最脆弱、最该测的地方。

写新 PRD,先看现状边界——免得需求一上来就跟现有能力打架。

冲突信息不但不该被藏起来,反而是最值钱的风险入口。

而且不管是冲突,还是那些拿不准的推断,AI 都不会默默吞掉——

出方案时一旦撞上,它会在技术方案里标一个"待人工确认",或者直接跳出来提示你去纠正,把判断权交回给人。

人拍完板,这条结论又顺着反哺重新沉淀回去,下次就不必再纠结第二遍。

让它活起来:扫描、消费、反哺三个循环

知识库最怕的,是变成一潭死水。

要让它活,得靠三个循环转起来:

第一个,扫描循环。 代码一变,「项目扫描」「系统扫描」就把事实层刷新一遍。这是上行——代码流向知识。

第二个,消费循环。 AI 跑工作流时,从知识库里取它要的那部分知识,去出方案、写代码、生成用例。

第三个,反哺循环。 这是最关键、也最容易缺的一环——AI 用错了、人纠正了,这些纠错不能停在聊天记录里,得回写进知识库。这是下行——经验流回知识。

扫描是上行,反哺是下行。一上一下,闭环才转得起来。

只有上行没有下行,它就是个会过时的快照仓库——和那些吃灰的文档库,没区别。

每出一次方案、每写一批用例、每完成一个需求,知识库都该比昨天更厚一点、更准一点。

说个真事。

这套东西刚推给团队那会儿,其实没人爱用。

问题一大堆:扫得不准、规则缺失、AI 时不时跑偏,同学们用得直皱眉。

我没惯着,硬逼着大家用,每天站在大家后面问,“用了没?”“用了没?”。

可在逼的过程里,事情悄悄变了——

每用一次,就纠一批错、补一点知识、磨一回命令。

用得越多的模块,知识攒得越厚,AI 跑出来的效果就越好。

效果一好,不用我催,大家自己就用上了。哪个模块顺手,口碑立马传开。

这就是反哺飞轮转起来的样子:不是先做到完美再推广,而是在用的过程里,一点点变好。

它不只是研发的,是产研全流程的"智识库"

聊到这你可能以为,这是个给程序员用的东西。

不是。

我给我们这套知识库的定位,是覆盖整个产研流程的"智识库"——从"知识"到"智识",差的就是它能不能真正参与判断。

它不光用来生成代码。

它还用来检测 PRD——拿系统现状去校验产品需求,提前揪出"需求跟现状打架"的地方。

它还用来设计测试、生成用例——复用历史的回归资产,而不是每次从零写。

它甚至能用来指导 UI 和产品决策

第一消费者是 AI Agent,但人也能直接读。

这是它和传统文档最大的不同:文档是写给人看的,这套东西是 AI 和人一起消费的。

现在它还太单薄,但我更怕它将来太吵

说句实在话,这套知识库,现在还远远不够。

很多服务扫得浅,很多业务规则没补上,纠错也才刚跑起来。

但"不够"这件事,我不太担心。

只要扫描在跑、反哺在转,知识就会一天天多起来——这只是时间问题。

我真正担心的,是另一头:

知识越堆越多,AI 的噪音也会越来越多。

前面我说过,知识库不需要做到百分百准。

这话现在成立。可量变早晚会引起质变。

等库里塞进几万条、几十万条知识,哪怕只有一小撮是过时的、错的、互相打架的,AI 一读到,生成的东西就跟着跑偏。

知识越多,噪音的绝对量越大,早晚有一天会拖垮使用的质量。

到那时候,光靠"往里加"就不够了,得反过来做减法——给知识库去噪。

把过时的清掉,错的纠正,冗余的合并,矛盾的裁决。

我大概能想到未来的样子:

知识不够 → 拼命积累 → 越堆越多 → 噪音变多 → 回头去噪 → 接着再积累……

这是一个会一直转下去的循环。

说不定再往后,我们大半的精力都会耗在这上面——不是怎么把知识喂进去,而是怎么让这一大堆知识,始终保持干净、可信、好用。

这一天还没到。但我知道,它一定会来。

为什么我愿意在这件事上死磕

说实话,建这套东西很累,维护更累。

但我越来越确信它值得。

因为 AI 时代,有几样东西正在飞快地变得不值钱:

模型会同质化——大家都用最强的那几个。

工具会标准化——协议一统一,谁都能接。

工作流会被复制——我搭的命令,别人抄一遍也能用。

那到最后,什么是抄不走的?

是这套深度绑定你自己业务的、活着的知识库。

它装着只属于你们团队的那些"为什么",是你们一砖一瓦、一次次纠错喂出来的。

就像数据是机器学习时代的护城河,知识库就是 AI Coding 时代的护城河。

谁先把它建好、让它活起来、让它自己越长越壮,谁就在这个时代拿到了结构性的优势。

工作流是手脚,知识库才是灵魂。

作者头像

刘宇帅

非著名程序员,全栈开发工程师,长期专注系统开发与架构设计。

提示

功能待开通!


暂无评论~

相关文章

从个人提速到团队提效:我们这半年的AI Coding工程化实践

去年开始,团队里每个人都用上 AI 写代码了。 按理说,效率该起飞了。 可折腾了大半年,我才慢慢看清:每个人都明显变强了,但团队的合力却没跟着强起来。 会用 AI 的人,效率飞涨。 用得浅的人,被甩在后面。 几十个开发,几十套打法——各自的 prompt 习惯、各自的提示词、各自摸索出的一套方法。 这本来不是坏事。 坏就坏在,大家的产出开始对不上了。 同一个功能,不同人让 AI 写出来的代码,风格能差出十万八千里。 某个同事摸到一个好用的技巧,群里截图一发,热闹两句,然后就沉底了。 下一个新人进来,还是从零开始踩。 文档呢?散在各个服务的 README 里,或者干脆躺在某个人的电脑里。 遇到跨

AI工作流跑不起来,问题可能出在PRD

前面几篇,聊了团队怎么搭 AI 工作流、怎么建知识库。 今天聊聊 AI 在 PRD 编写和质量保障上,我们做了些什么。 其实这块从一开始就在工作流里。只是在开始的MVP版本里,核心全压在开发环节。 等大家真用起来,一个问题立马浮出水面: PRD 质量一般,工作流出来的技术方案,质量自然也上不去。 道理特别朴素:垃圾进,垃圾出。 源头的 PRD 含糊,后面 AI 再能干,也只是替你把这份含糊"发扬光大"。 所以我决定还是要治理一下这个源头。 第一步:先给 PRD 做个体检 我做的第一件事,是一个 PRD 质量检测 skill。 注意,它不碰业务逻辑,只做"规范层&q

大家都在说工作流,那我们到底是用开源的呢,还是定制自己的呢?

做团队 AI 工作流,第一个把我卡住的问题,不是技术。 而是——到底该用开源的,还是自己造一套? 说实话,我一开始也很犹豫。 毕竟"自己造轮子"这四个字,听着就不太聪明。 所以动手之前,我特意花了不少时间,认真研究了一圈现成的方案:BMAD、OpenSpec、SuperPowers、SpecKit…… 一个个看下来,我的第一感受是:真优雅。 👏 设计思路清晰,工程化也讲究,看得出背后都是高手。 可越往深里看,我越发现:它们再好,也不是为我们这种团队设计的。 所以,最终我还是决定做我们自己的工作流。 三个绕不过去的坎 具体说,是三个坎,每一个都硌得慌。 第一个,它们几乎都是冲

Loop Engineering:每篇文章都在讲,但没人告诉你怎么搭

最近 Loop Engineering 在持续刷屏。 公众号在刷,各种群里在讨论,我也看了好几篇文章。 每篇都有道理——五个组件、目标定义、古德哈特定律,逻辑很清晰,我都信了。 但看完之后有点空。 我的工作流该怎么 Loop 化?从哪起手?搭出来以后长什么样? 没一篇说清楚。 所以想聊聊我自己的理解,以及我们实际在做的事——我们团队搭了个叫 Talos 的系统,算是目前我见过最接近"生产级 Loop Engineering"的垂类实践。 Loop 其实只有两种形态 在我看来,Loop Engineering 这件事,放长了看只有两个终点。 第一个是通用智能 AI。 它足够强

AI Coding 跑顺了,真正的难关才开始

最近这几天,我又开始焦虑了。 原因是,我突然意识到一件事。 已经有一阵子,没人反馈 Zeus 的问题了。 Zeus 是我们团队做的一套 AI Coding 工具体系。 说白了,就是想让 AI 把"写代码"这件事,从头到尾接过去。 用了两个多月,大家从一开始的别扭、吐槽、不信任,慢慢变成了—— 用得挺顺。 顺到,没人抱怨了。 按理说,这是天大的好事。 可那一刻,我心里咯噔一下。 因为"没人提问题",有两种可能:一种是真的没问题了,另一种是,大家已经看不见问题了。 我估计,是后者。 浮在水面上的,是看得见的成绩 这半年,团队是真的变样了。 Zeus、Zeus