我把23万行代码喂给GPT-5.6,它比我更懂自己的项目
我把整个代码仓库扔给了GPT-5.6,它反手找到了我三年前的bug
周三凌晨1:47,第47次CI失败。
我看着屏幕上那个红色的❌,突然想到一件事——GPT-5.6的128K上下文窗口,可能比我对自己代码的记忆还完整。这个想法让我有点慌。
真的。我那个维护了四年的微服务项目,23万行代码,我自己早忘了三年前为啥在支付回调里塞了个time.Sleep(300 * time.Millisecond)。commit message写的是"临时方案,后续优化",然后就...没有后续了。
GPT-5.6吞下整个仓库之后,不但找到了这行代码,还告诉我原因——某第三方支付网关在2022年有个并发锁的bug,高并发下回调顺序会乱。这事连我们当时的架构文档都没记。这玩意儿比我更懂我的代码,有点伤人。
整个项目喂进去,然后呢?
先说结论:GPT-5.6的长上下文代码理解,在2025年4月这个节点,已经跨过了"玩具"和"工具"之间的那条线。
我做了个暴力测试。把公司一个电商后端项目dump进去——大概18万行Go,加上12万行TypeScript前端。然后问了一堆从简单到变态的问题。
案例1:跨服务追踪业务逻辑
我问它:"用户优惠券在什么情况下会被静默标记为已使用,但不发通知?"
这个问题刁钻在,它横跨了优惠券服务、订单服务、消息队列消费者,还有个叫legacy_promo_adapter.go的文件——光看这名字你就知道是那种没人敢碰的shit code。
GPT-5.6大概分析了40秒,给我列出一条调用链:
OrderService.CreateOrder()
→ PromoAdapter.ValidateCoupon()
→ CouponService.MarkUsed(couponID, silent=true)
→ 跳过 NotificationQueue.Push()然后它指出,第三步那个silent参数在某个边缘情况下默认值是true。这个bug在生产环境藏了至少8个月,因为只有在优惠券快过期且用户同时发起两次请求时才会触发。
我当时的心情...怎么形容呢。就像你发现你家猫其实一直在观察你,还做了笔记。
等等,这里我要更正一下——它列出的调用链其实有个小错误。实际代码里ValidateCoupon()和MarkUsed()之间还有个CheckExpiry(),但GPT-5.6跳过了这一步。不过不影响最终的bug定位,因为CheckExpiry()里没有副作用。
踩坑:128K不是银弹
别误会,不是全程高能。我也踩了不少坑。
第一个坑:中间部分会"失焦"
当上下文塞到接近128K token时,GPT-5.6对中间部分(大概40%-60%位置)的信息提取准确率明显下降。我故意在项目中间插了个假文件,写了个明显的SQL注入漏洞,然后让它做安全审计。
结果?开头97%的检出率,中间掉到了71%。
这就很尴尬。
所以我的实操建议:别无脑dump整个项目。先用tree命令和依赖图做预处理,把核心逻辑放在上下文前半部分。我现在写了个Python脚本自动排序,大概50行,效果提升挺明显的。据我了解,有些团队在用类似repomix这种工具做预处理,不过我还没试过。
案例2:隐式依赖——它开始"编"了
我们的项目里有个通过反射动态调用的插件系统。依赖关系在编译期根本不可见。我把代码扔给GPT-5.6,期待它能像老工程师一样推测出运行时的调用链。
它确实尝试了。分析对了六成。
但它也自信满满地"编造"了两个不存在的调用路径。它说PaymentPlugin会调用RiskControl.CheckFraud()——但实际上这俩模块通过gRPC异步通信,根本不直接调用。它甚至还给这个不存在的调用链编了个行号。
我差点就按它的建议去改代码了。幸亏提交前多看了一眼。
嗯...这个其实比较复杂。长上下文让幻觉更危险了,因为模型能引用具体的文件名和行号来增强说服力。看起来逻辑自洽,实际是假的。你需要比用短上下文时保持更高的警惕。
调试能力:从"Stack Overflow搬运工"到"真·侦探"
这部分是最让我震惊的。
案例3:找到那个没人能复现的竞态条件
我们有个持续了一年多的随机bug:用户在某些极端情况下会被重复扣款。没人能在测试环境复现,每次都是半夜三点用户投诉。
我把相关的五个微服务代码、Docker Compose配置、甚至K8s的部署清单一起给了GPT-5.6。大概6万行代码。
它分析完全部代码后,指出了问题:两个服务里的goroutine在特定时序下,会同时读到未更新的余额缓存。Redis的WATCH命令被错误地用在了非事务上下文里。
更离谱的是,它还找到了根本原因——2023年3月有个实习生(现在早离职了)为了"提升性能",把原本串行的余额检查改成了并行。但没理解Redis事务语义。那段代码在code review时所有人都觉得"看起来没问题"。
我花了一整天验证,发现它全说对了。
但你猜怎么着?GPT-5.6提出的修复方案是错的。 它建议加分布式锁。在这个高并发场景下会直接拖垮QPS,大概从8000掉到300左右。正确的做法是改成乐观锁+重试机制——这个方案是我和架构师讨论了两小时才定下来的,不是AI的功劳。
谁该害怕?
GPT-5.6的代码理解能力,大概相当于一个3-5年经验、对代码库比较熟悉的开发。它不会累,半夜也能爬起来帮你找bug。
但它不会替代高级工程师。
原因很简单:
- **它看不懂业务意图**。能告诉你代码"做什么",不知道"为什么这么做"
- **修复建议经常在工程层面不可行**。性能、可维护性、运维成本,它考虑不周全
- **长上下文里的幻觉更隐蔽**。看起来有理有据,实际是编的
真正该害怕的,是那些只做"代码翻译"的人——需求文档翻译成API,PRD翻译成数据库Schema。这些工作在未来一年内会被严重冲击。我记得2024年底Cursor出来的时候大家还在嘴硬,现在真没几个嘴硬的了。
而知道"为什么要构建这个系统"和"什么不该构建"的人,反而会因为工具变强而更具价值。AI放大了判断力的价值,不是编码速度。
实操建议(不废话)
如果你准备用GPT-5.6做大项目级别的代码分析:
1. 预处理上下文:按依赖关系排序文件,核心逻辑放前面,工具类放后面
2. 分阶段提问:先让模型理解架构,再问具体问题。别一步到位
3. 强制溯源:要求它回答时带上文件路径和行号,方便验证
4. 交叉验证:重要结论用不同提问方式确认两次
5. 别信修复方案:信它的诊断,修复方案自己设计
说实话,写完这篇评测我心情有点复杂。
四年前我还在手写正则表达式解析AST,现在直接把代码扔给API就能得到比我自己分析还全面的结果。时代的车轮碾过来的时候,真的连声招呼都不打。
你们试过用长上下文模型分析自己的项目吗?有没有遇到什么离谱的幻觉或者惊喜的发现?评论区聊聊,我想看看是不是只有我的代码里有那么多陈年bug没人管。
#GPT-5.6 #代码调试 #AI编程 #长上下文 #技术评测
读者评论 2