先说一个让我后背发凉的场景
前阵子我离开屏幕去倒了杯水,回来发现工程目录里凭空多了一堆文件,test目录里的文件数还在往上涨。我压根没让它做这些。
这不是我一个人的遭遇。社区里有人把Codex的毛病总结得特别准:一个问题你不明确指示它先去查文献、先review本地代码再回答,它一开口就全是瞎编,还特别爱发散,突然脑补出一个新方向。
更要命的是,它的上下文压缩触发得很频繁,一旦压缩完,它居然把刚才脑补出来的东西当成你布置的主线任务,闷头就干。于是就出现了那种“我没要求你做过这个”的反复对话。
说真的,这比普通的幻觉还恐怖。幻觉顶多是答错一句话,这种“把想象当任务”的组合拳,是会在你没盯着的时候实打实往仓库里塞东西的。
大家的第一反应都错了:以为是模型不行
被坑几次之后,很多人的下意识动作是换模型。有人说Codex擅长coding和推理、Claude擅长艺术设计,于是来回切。
但同一个社区里也有人实测下来觉得完全相反,Claude的第一直觉反而更准,第一句话的正确率就很高。
我盯着这些吐槽看了很久,慢慢反应过来一件事:换模型大概率是治标。你看那条吐槽里其实已经把药方写出来了——“必须指示它先做文献搜索或者review本地代码再回答,正确率才高,否则一开口全是瞎编”。
这句话翻译过来就是:模型答得准不准,和它开口前手里有没有事实,强相关。没事实的时候它就靠概率往下接,接着接着就飘了。
有事实垫底的时候,它老实多了。
所以我的判断是,AI编程助手跑偏的根子不是智商不够,而是它被允许在没有证据的情况下就开口。这是个流程缺陷,不是能力缺陷。
这个缺陷,对要交付给用户的小团队是真金白银的代价
如果你只是自己用,瞎编了大不了骂两句重来。但如果你在拿AI做交付,情况完全不一样。
社区里有个做接单的朋友,流程设计得挺漂亮:买家在闲鱼下单后拿到一个专属链接,自己填需求,AI生成网页,买家在同一个入口看进度、预览、下载源码。听着很顺吧?
但他自己也承认,从真实买家付款到最终验收这一段还没跑通,接单这条线的收入还没验证出来。
我特别理解卡在哪。自己用的时候瞎编的代价是你扛,交付给用户之后,瞎编的代价是用户在扛。
用户花了钱,拿到一个看着像那么回事、细节全是编的东西,这单基本就黄了,口碑还得搭进去。
所以对小团队来说,“让AI别瞎编”不是技术洁癖,是直接关系到能不能收到钱、能不能留住人的生意问题。你追更强的模型,追到最后发现强模型也会在没事实的时候飘,钱照样打水漂。
真正该做的:在模型回答前,硬插一步“取证”
我现在的思路很简单,就一句话:别让模型在没有事实的时候开口。
具体就是在它生成答案之前,强制插入一步取证——先去读到真实数据,先跑一遍验证,拿到结果再让它基于结果生成。注意这和“生成完再找个模型来校验拦一道”不是一回事。
后置校验是等它编完了再去挑错,前置取证是从输入侧就不给它瞎编的机会。前者在堵,后者在防。
我更信后者,因为堵永远堵不干净,发散和脑补这种毛病,你拦得住输出拦不住它脑子里的跑偏。
那这一步取证从哪来?得给模型配上它能主动调用的查证工具。
这条路在VicroCode上是能走通的,我拆成三段说。
第一段是搭一个会主动用工具的智能体。你用AI智能体开发把助手配成“先取证、再回答”的工作方式——不是等你每次手动提醒它去查,而是把“回答前必须调查证工具”写进它的行为约定里。
那条吐槽里最累的点,就是每个问题都得手动指示它先查,这步能自动化掉,体验差别巨大。
第二段是把查证逻辑真正写出来并且能跑。查证不是空话,是实打实的代码:去数据库里把这张表的真实字段读出来、把这段接口的真实返回跑一遍、把某个数值真的算一遍。
这些逻辑你可以直接用Python在线运行写好跑通,拿到的是真实结果而不是模型的想象。它想编一个不存在的字段?
对不起,查证脚本一跑就露馅。
第三段是把这步查证固化成模型能随时调用的能力。你把写好的查证逻辑做成一个在线工具,智能体在回答前就去调它,拿回真实数据再往下走。
这样取证就不是你每次临时催出来的动作,而是流程里雷打不动的一环。配合平台的模型中心API、SQLite数据库和文件管理器,你的真实数据就在手边,查证工具读起来很顺。
顺便泼一盆冷水:有些需求别指望在这条路上实现
我得把边界说清楚,免得你抱着错误预期进来。
比如社区里有人把“僵尸拥抱”那种玩法做成了付费小产品,两张照片生成一段二十秒的竖版视频。这类视频生成能力,走的是专门的视频模型和它自己的技术栈,不在VicroCode当前能写入方案的能力范围里。
你在这儿能做的是HTML Web应用的在线运行与托管、Python后端、模型中心API调用这些,视频生成本身得另找地方。
我宁可提前说死,也不想让你照着做到一半发现路堵了。前置取证这套方法治的是“AI在文本和逻辑上瞎编”,不是万能的。
一个今天就能做的小动作
别急着大改架构。你现在就可以挑你最近被AI坑过的那一类问题——比如它总编错数据库字段,或者总假设某个接口的返回长什么样——先用Python把“读出这个字段真实情况”的那一小段查证逻辑写出来,手动跑一次,确认它能稳定吐出真实结果。
就这一步。等你亲眼看到“模型先拿到真实数据再回答”和“模型凭空开口”的差距,你自然会想把这步固化下来、让智能体每次都先走它。
追更强的模型是条看不到头的路,给它补上开口前的那一步,才是你能自己掌控的事。