今天早上边喝咖啡边刷VentureBeat,看到这条新闻差点没呛着。不是因为它融了多少钱,而是它瞄准的这个痛点,简直戳到了每个用AI写代码的人的肺管子上。
简单来说,一家叫Theorem的初创公司,刚拿了600万美金种子轮。他们干的事就一件:在AI生成的代码被合并进主分支、甚至被部署上线之前,把它里面的bug给揪出来。 说白了,就是给AI程序员配个“代码审查员”,而且是个专门抓AI特有错误的审查员。
图片来源:VentureBeat
老实说,看到这个新闻我第一反应是:“终于有人正视这个问题了!” 我自己用GitHub Copilot、Cursor、还有各种大模型写代码也快两年了,效率提升是真明显,但埋下的坑也是真不少。
AI写的bug,和人类写的有什么不一样?
你可能觉得,bug就是bug,还分谁写的?还真分。我跟几个在FAANG做基础设施的朋友聊过,他们内部早就开始头疼了。AI生成的bug有几个很“阴险”的特点:
第一,“看起来特别对”。AI生成的代码,语法通常很规范,命名也漂亮,逻辑乍一看挺通顺。它不像新手程序员会犯一些低级语法错误。它的bug往往藏在业务逻辑的细微之处,或者是对某些边界条件的错误假设里。你review的时候一眼扫过去,很容易被它“专业”的外表骗过去。
第二,“有传染性”。比如你让AI写一个工具函数,它里面有个隐蔽的逻辑错误。之后你又让AI基于这个函数去写更上层的功能,它会理所当然地把这个错误的前提继承下去,导致错误被层层放大。最后出问题了,你往回追溯都费劲。
我一个在Meta做Code Review工具的朋友吐槽:“现在最怕看到那种特别工整、但逻辑又有点‘过于完美’的提交。十有八九是AI干的,而且里面很可能藏着一些基于过时文档或者错误示例的假设。审查这种代码,比审查人类写的累多了,因为你得去猜模型当时‘脑子’里在想什么。”
Theorem想怎么解决?
根据报道,Theorem的思路不是简单地运行静态分析或单元测试。他们训练了专门的模型,用来理解“代码的意图”和“实际实现”之间的差距。换句话说,他们试图让AI去检查另一个AI的“思考过程”有没有跑偏。
举个例子,你给AI的提示词是“写一个函数,安全地解析用户上传的JSON”。AI可能给你生成一个用了`json.loads`的代码,看起来没问题。但Theorem的工具可能会标记:“这里没有处理JSON解码异常,也没有对输入大小做限制,不符合‘安全’的完整意图。” 它是在检查代码是否真正满足了开发者(或者说提示词)的深层需求。
这让我想起之前自己踩的一个坑。我让AI帮我写一段连接数据库的代码,它生成得飞快,用了最新的异步驱动,连接池配置得头头是道。结果上线后,在某个特定并发下偶尔会报连接超时。后来才发现,AI参考的某个示例代码里,超时时间设得过于理想化了,没考虑我们生产环境的网络波动。这种bug,传统的lint工具根本抓不到。
为什么这事值得600万美金?
说白了,这钱不是投给Theorem这一家公司的,是投给“AI原生开发时代的基础设施”这个赛道的。现在所有公司都在拼命让工程师用AI提效,但随之而来的技术债和安全风险,正在以指数级速度累积。
大厂可以自己内部搞,但成千上万的中小公司和独立开发者怎么办?他们更需要一个开箱即用的“AI代码保险”。Theorem瞄准的就是这个市场缺口。这不仅仅是抓bug,更是建立一种对AI产出的信任机制。没有这个机制,谁敢把核心业务逻辑交给AI去写?
这件事对咱们普通开发者意味着什么?我觉得,以后“会写提示词”可能只是初级技能,“会审查和纠正AI生成的代码”会成为更核心的能力。 工具会越来越强,但最终的理解、判断和负责的人,还是我们自己。
说真的,我挺期待这类工具能早点成熟可用。至少下次AI再给我生成一段“完美”代码时,我能有个靠谱的帮手一起看看,它是不是又在哪个角落给我埋了雷。你们在用AI写代码时,碰到过最离谱的bug是什么?