AI 写的代码跑不起来,先查这 5 个地方

我见过最浪费时间的一种情况:AI 给的代码报了个错,人立刻开始逐个函数改,改了两小时,报错换了一个,代码也改乱了。AI 写的代码跑不起来先查什么,我的答案是先别改,按顺序查这 5 个地方。

这 5 个地方覆盖了我遇到的绝大多数报错,而且是从「最可能是它的问题」排到「最可能是你的问题」。

AI 写的代码跑不起来先查什么:从依赖和版本开始

排在第一位的永远是环境和依赖,因为这是排查成本最低的一项。

AI 训练时见过的版本,和你项目里实际装的版本,经常不是一回事。它写的 API 在你这个版本里可能压根不存在,或者签名不一样。

具体动作:看报错里第一个提到的包名和函数名,去你本地装的那个版本里搜一下,看这个函数在不在、参数几个。

这一步通常三十秒能出结论,比读代码快得多。

二、查它有没有自己编函数

AI 生成代码时,会调用一些「听起来很合理」的函数,这些函数你项目里根本没有。

它的输出里,调用和定义是两个独立的部分,很容易只给了调用没给定义。编译不过的第一嫌疑,就是它引用了一个不存在的符号。

具体动作:把报错里找不到的那个名字复制出来,全局搜一遍,搜不到就说明是它编的。

三、查引用的路径和配置

前面两关过了还是跑不起来,那问题多半在「代码没错,但接不上」。

配置文件路径、资源目录、环境变量名,这三样是 AI 最爱写错的地方。它不知道你的目录长什么样,只能按常见约定猜。

具体动作:把代码里所有读到外部文件、环境变量的地方列出来,逐个确认文件真实存在、变量真的有值。

四、查它顺手改的「无关」部分

这一条是我吃过亏之后加进去的。

让 AI 补一个功能,它有时会顺手把旁边几行「优化」一下,这几行往往就是跑不起来的原因。报错的位置和它改过的位置,可能隔着很远。

具体动作:先看这次改动到底覆盖了哪些文件,跟你原本要它做的范围对一下,多出来的部分重点看。

改动波及范围这件事我单独写过,在AI 写代码会偷偷改坏别处吗,我吃过一次里。

五、查自己的输入

最后才是怀疑自己。

参数顺序、字段有没有传、初始数据对不对——这类问题在排查时特别容易被忽略,因为你默认「这部分是我写的应该没问题」。

具体动作:把这次调用的参数逐个打出来看实际值,不要凭记忆。这一步跟AI 写的代码没注释,怎么快速读懂里说的思路一样,先看事实不看感觉。

排查时最忌讳的一件事

一边查一边改。 这是让排查彻底失效的做法。

你改了三个地方,报错消失了,但你不知道是哪个改对了,也不知道另外两个改动埋了什么。正确做法是查到原因再改,一次改一处。

顺序也别乱。这 5 步是从便宜到贵排的,跳到第四步去翻改动范围,等于放着三十秒的路不走。

常见问题

Q:AI 写的代码跑不起来先查什么,能不能直接让它自己修?

A:可以,但要把完整报错原文给它,别只给一句「跑不起来」。只给结论它只能猜,给报错它至少有定位线索。修完仍然要自己确认改动范围。

Q:报错信息看不懂怎么办?

A:先看第一行和最后一行。第一行通常是真正的起因,最后一行是你代码里的位置,中间那些调用栈大部分可以直接跳过。这两行看完再决定要不要深挖。

Q:同样的代码昨天能跑今天不能跑了,也是这 5 个地方吗?

A:优先查第一个和第三个。昨天能跑说明代码逻辑本身没问题,变化只可能来自依赖升级、配置改动或者文件被挪走。改逻辑反而会把问题搞复杂。

相关阅读


本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。

完整代码、踩坑清单与最新进展,都在公众号。

📱 关注公众号「西米分享」