乐于分享
好东西不私藏

我把一个5年老项目喂给AI,它找到了6个我没发现的定时炸弹

我把一个5年老项目喂给AI,它找到了6个我没发现的定时炸弹

前几个月帮2个工程师部署了MCU 项目知识库构建与证据AI问答系统,整理一个老项目。

前阵子来找我反馈,挺好用的。

比如说他通过这个系统去改老项目代码啥的,很多细节AI都替他考虑到了。

我干了10几年单片机开发,很多痛点你可能经历过,但自己都无法描述是啥,哈哈,而我现在在干的是,就是一步步用AI去解决这些痛点,而不是把AI做为Chatbot的阶段。

比如项目跑了3,4年,代码前后有三四个人改过,注释风格不统一,大多数代码连注释都没有,这种项目没人指导自己闷头研究,不得搞个1-2个月才能上手。。。

这种传统方式,基本无解,如果没人带,接手新项目,真的头皮发麻,原来这么麻烦的事,其实现在AI几分钟搞定。

这个系统也没这么玄乎,其实就是两个skill,玩过claude code或者其他AI Agent应该懂,我也上传到github了:**https://github.com/ogai666/Public

上不了Github的,也可以加我微信,我发你:ogai02

上传前我考虑了很久要不要开源,毕竟这是我目前的新业务,正在跑mvp测试。。。

哪怕是用AI帮我去设计的,都花了半个多月,起码消耗了上亿的token,打磨了起码20个版本以上,最终才调到稍微满意的结果。

这里不得不提一句,现在市面上很多在卖agent的,几千几万十几万都有。

实际上,他们卖了一个看起来很通用、很细、很智能的产品,但是其实对于实际的业务产生不了太多帮助。真正好用的agent是从内部生长出来的,agent里面最核心不是代码和脚本,而设计者对行业的的理解深度。

拿我设计的这个举例。

很多人觉得,做知识库,或者项目代码解答,直接把代码丢给AI就好了,整这么麻烦干嘛?

其实深入用过就知道了,特别是几十个代码文件,一万甚至以上行代码的,虽然可以哐哐一顿给你输出,看起来很专业,很详细,但是很多细节都是错的,比如时钟,时基,细节参数,一些弯绕的问题。。。

这样除了会撑爆上下文以外,AI每次都是从头开始分析代码的,这非常考验AI的能力,像顶级的模型可能可以,但毕竟每次从头看代码,有可能某次就出错了。

嵌入式项目错综复杂,比如不同的项目工具链可能不同,Keil,IAR,Makefile,Eclipse等等。

还有支持多Target/多芯片/多硬件版本的,我到现在都没有打磨出一个可以完美适应100%项目的版本出来,开源这个目前是Keil和IAR项目可以,但是Makefile,多target之类的就会有问题。

我又花了两天时间,升级迭代了一个兼容Makefile,多target的版本。

以VESC这个很经典的FOC开源项目来举例,下面是VESC的源码工程:

我先用脚本提取源码信息:

提取完以后会输出如下文件:

然后我用Codex调用skill去整理,这里用claude code,openclaw等AI Agent都可以,为啥我要设计成skill?因为很通用很灵活。

整理完以后多了几个文件:

下一步,可以用Claude code调用我这个skill,把这个路径投喂进去:

然后就可以开始这个项目任何问题了:

比如说我问:75_100的 HW_NAME、电压范围、电机相电流范围、电池电流范围分别是多少?证据来自哪个 hw.h 或 hw_.c?

下面是AI根据知识库给我的回答:

因为我也没深入研究过VESC这个项目的源码,我就想验证下AI输出的对不对。

我就把回答直接复制给codex,让它帮我验证,因为知识库是由它生成的,它比我清楚:

它给我的回答是:内容正确,证据链合格(也就是每个都能追溯到源码位置,精确到行号)

然后我又问了一个,多款硬件兼容一个工程比较容易答错的问题:

请回答 75_100 是否使用 SD6 作为 UART?

AI的回答75_100 不使用 SD6 ,使用的是SD3。。。

其实我也不知道这个结果对不对,然后同样的配方,直接发给codex。

codex给我的验货判定是:通过!

然后用AI来帮我提取代码所有硬件接口定义也非常舒服。

最后一个问题是:这个项目有哪些潜在的坑?

熟悉的可以在评论区聊聊它回答得对不对。

我熟悉的项目验证过,确实能把一些很细节的坑给我找出来,细节到数组下标索引搞错了就能找到。

对于这种知识库问答,我觉得最重要的就是准确率,我实际测试了7,8个项目,没有给出过完全错误的答案,所以暂定准确率能达到90%以上。

之前我也测试过12年前做的项目,全部功能main函数干到底,真正屎山代码的代表了。

剩下10%是保守预估,如果回答不到位,可以让AI自动把对的答案更新到知识库,这么逐渐提升准确率。

另外,知识库AI问答其实应用场景很多,能解决很多嵌入式团队传统工作流的痛点,后面再慢慢分享。