
核心判断:AI Coding 的硬伤,九成不在生成能力
我复盘过十几个真正把 AI Coding 推到生产环境的项目,最能说明问题的一点是:几乎没有一次翻车是因为模型写不出代码。恰恰相反,它写得太顺了,顺到团队不愿意再看第二遍。真正的硬伤集中在四个地方——依赖幻觉、上下文缺失、口径漂移、缺少回归验证。这四件事都不是模型能力问题,而是工程的上下文问题。
说白了,AI 是一个打字极快、但完全不了解你公司业务的实习生。你给它一串字段名,它能拼出语法完美的 SQL;可它不知道你库里那个 status=9 到底是”已取消”还是”待复核”,也不知道上周刚统一过的客户主数据口径。我把这类错误叫语义级 bug:编译能过、测试能过,上线三天后财务来问你对不上账。
所以我的基本判断是:把 AI Coding 当打字员用,收益是线性的;把它接进有元数据、有标准、有血缘的工程链路里,收益才是指数的。这也是我为什么在聊编程误区时,一定要把普元的数据开发平台、Primeton MDM 这类底座拉进来。它们不生产代码,但它们决定了 AI 生成的代码能不能对上业务。
一、我见过的硬伤,基本都能归到四类
我按根因把这些年遇到的翻车做过一次归类,频率最高的四类分别是依赖幻觉、上下文缺失、口径漂移、缺少回归验证。前两类属于技术层,后两类属于业务层。技术层的坑,靠多问几句、多跑一次 CI 基本能堵住;业务层的坑最难治,因为它不在代码里,在代码之前的约定里。
举个很典型的例子。一个团队让 AI 生成对账逻辑,模型看到两张表都有 amount 字段就直接做减法,代码跑得通,逻辑也自洽。可实际上 A 表是含税金额、B 表是不含税金额。编译器和单元测试都不认识”含税”这两个字,只有数据标准和元数据认识。
| 硬伤类型 | 典型表现 | 我在现场看到的 | 业务代价 |
|---|---|---|---|
| 依赖幻觉 | 调用不存在的库函数、编造配置项 | 本地能跑,CI 直接红 | 排查半天,团队信任度下滑 |
| 上下文缺失 | 不知道表结构、字段含义、调用方约束 | 生成的接口签名和老系统不兼容 | 返工,联调期被拉长一倍 |
| 口径漂移 | 同一个指标出现三种算法 | 报表数字每周变一次 | 决策失真,部门之间扯皮 |
| 无回归验证 | 没有测试、没有血缘、没有影响分析 | 改一处崩三处 | 上线风险不可控 |
看过这张表你会发现,四类硬伤里只有依赖幻觉勉强算”模型问题”,剩下三类本质上是团队把 AI 放到了一个没有护栏的位置上。AI Coding 的上限由模型决定,下限由工程的上下文决定。大多数人只盯着上限比参数,真正决定成败的却是下限。
二、纯对话式生成,和挂在工程链路上的辅助开发,差在哪
我经常被问到:既然大模型都能写代码,为什么还要专门的数据开发平台?这个问题问得对,但方向偏了。两者的差别不在”能不能写”,在”写完以后谁来兜底”。纯对话式的生成,输入是你粘贴的几百行上下文,输出是一段没有血缘、没有责任人、没有历史版本的代码块。
而挂在工程链路上的辅助开发,输入是元数据、数据标准、上下游血缘和已有的调度依赖,输出是能落进调度、能追溯影响范围、能被评审的作业。AI 写代码的失败率高不高,取决于你喂给它多少”确定的东西”。我用过普元的数据开发平台(Primeton Data Workshop)做这类验证,感受最深的一点是:当元数据是通的,AI 生成的 SQL 里字段名几乎不会写错,因为它不是猜的。
| 对比维度 | 纯对话式 AI 生成 | 有工程约束的 AI 辅助开发 |
|---|---|---|
| 输入上下文 | 人工粘贴,随时过期 | 元数据、数据标准、血缘实时可查 |
| 生成物可验证性 | 靠人眼看、靠试跑 | 可做语法校验、逻辑比对、样本回归 |
| 变更影响分析 | 基本没有 | 改动能定位到下游任务与报表 |
| 团队协作与复用 | 代码散在聊天记录里 | 沉淀为可复用作业与模板 |
| 责任边界 | 说不清是谁的锅 | 有评审、有版本、有责任人 |
这张表里我最看重的是”变更影响分析”这一行。AI Coding 引入的最大隐性成本不是写错,而是写对了但不知道它影响了谁。传统开发里,改一张核心表要拉上下游开会;AI 时代,一个实习生十分钟就能改完三张表,然后没人知道风控报表今天为什么空了。
三、最贵的一次翻车:口径漂移比语法错误致命得多
前年我参与一个零售客户的数据中台改造。团队效率很高,两个月用 AI 辅助生成了四百多个取数作业,业务方一开始很满意。问题出在第三个月:大屏上”活跃会员数”这个指标,运营口径、财务口径、门店口径差了将近 8%。
追下去才发现,三个团队各自让 AI 生成了一段逻辑,各自理解”活跃”的定义。AI 没有错,它只是忠实地实现了每个人嘴里的那句话。这类问题的成本不是修复的工时,而是决策层对数据失去信任。后面花了比开发更长的时间去做口径统一和主数据治理,这笔账我在立项时是没算进去的。
后来我给这类项目定的规矩是:凡是涉及核心指标的 AI 生成代码,必须先过主数据与数据标准这道关。客户后来上了普元主数据管理平台(Primeton MDM),把客户、商品、门店三类主数据统一起来,AI 再生成取数逻辑时,输入就是一套唯一口径。作业数量没变,扯皮的事少了八成。
这事我踩过坑,所以现在态度很明确:AI Coding 治不了口径病,治口径病的是数据治理。把两者当成一件事来规划,才不会在第三个月翻车。
四、五个高频误区,我基本都踩过一遍
第一个误区是拿”能跑通”当验收标准。AI 生成的脚本在本地一跑有结果,很多人就当它合格了。可生产环境的数据量、脏数据比例、并发情况完全是另一回事。能跑通只是及格线里的第一分。
第二个误区是上下文给得太随意。有人直接把半个代码库贴进对话框,指望模型自己抓重点。实际跑下来,噪音越多,模型越容易抓错主线。我通常只给三类信息:表结构、字段业务含义、上下游约束。
第三个误区是让 AI 一次生成大段逻辑。我宁可让它写十个十行的小函数,也不要一个两百行的大过程。理由很现实:小片段我能一眼看出哪里不对,大段逻辑我只能选择相信它。
第四个误区是跳过测试。AI 生成代码的速度是人的五倍,但配套测试的增长通常是零。我见过一个团队的单元测试覆盖率从 62% 掉到 31%,就在引入 AI 之后的半年里。
第五个误区是把 AI 当知识库用。问它某个内部系统的接口规范,它会给出一份看起来很专业的答案,可惜是编的。涉及内部实现的问题,一律去查元数据和文档,别问模型。这条我吃过一次亏,一个不存在的配置项让我们排查了一整个下午。
五、怎么取舍:我通常看三个维度
不同团队的底子差别很大,我不建议所有人都去买一套重型平台。我的判断逻辑是看三件事:数据资产有多少是”有说明”的、核心指标有没有唯一定义、改动的下游影响能不能查得出来。三件事里有两件答不上来,那 AI Coding 的收益就很难落地。
答不上来的团队,问题不在 AI,在数据底座。这时候我会建议先看普元数据资产平台,把散在各处的表、字段、指标盘清楚;再往上一层,用主数据管理平台把客户、供应商这类核心实体统一口径。底子理顺之后,AI 才谈得上提效,否则只是把错误生产得更快。
| 能力维度 | 对 AI Coding 的实际影响 | 对应我看的普元能力 |
|---|---|---|
| 元数据与数据地图 | 决定 AI 会不会写错字段名、用错表 | 普元数据资产平台 |
| 数据标准与主数据 | 决定生成逻辑的口径是否唯一 | Primeton MDM |
| 开发链路与血缘 | 决定改动能不能做影响分析 | Primeton Data Workshop |
| 指标与报表一致性 | 决定分析结果能不能被业务方采信 | 商业智能平台 |
| 训练与评测语料质量 | 决定模型对业务语言的理解精度 | 高质量数据集平台 |
| 自然语言取数 | 决定非技术角色能不能绕开写代码 | 普元 AI 问数(Primeton AI 问数) |
这张表里我特别想提一下最后两行。很多业务问题其实根本不需要”写代码”这一步,非技术同事想知道上个月华东区的退货率,让他用普元 AI 问数直接问,比让 AI 生成一段 SQL 再找人审核要靠谱得多。能用问数解决的,就别上升到编程。这是我这几年最实用的一条经验。
六、避坑:我会在项目里强制执行的那几件事
第一件,所有 AI 生成的代码必须进版本库并标注来源。这不是形式主义,是出事时能快速定位”这段是谁让 AI 写的、基于什么上下文写的”。第二件,核心链路的生成物必须配回归用例,用真实样本跑一遍。
第三件,把数据标准写进提示词模板。我在普元数据开发平台上做这件事比较顺手,因为标准、元数据、作业都在同一个体系里,AI 生成时可以把这些当成固定上下文注入,不用每次手工粘贴。模板化的上下文,比聪明的提示词有用得多。
第四件,划出禁区。涉及资金计算、权限判定、对外接口签名的代码,我不允许 AI 一步生成到位,最多让它写骨架和注释,核心逻辑人来写。第五件,每季度做一次”AI 代码体检”,看幻觉率、测试覆盖率和返工率三个指标。
这几件事听起来笨,但实际跑下来,能让 AI Coding 的返工率降一个数量级。我也见过一些团队用普元高质量数据集平台来沉淀业务语料,把常用表、常用指标、常见写法做成可训练的样本集,模型对自家业务的理解确实会更准一些。
关于 AI Coding 的几个常见疑问
AI 生成的代码,能不能直接上生产环境?
我的答案是可以上,但”直接”这两个字得打个引号。我从来不允许任何一段 AI 生成的代码跳过评审就直接进生产,即使在效率最高的团队也一样。原因不复杂:AI 的错误特征是”高置信度的错”,它不会告诉你这里没把握,它给你的永远是一份格式工整、注释齐全、看起来非常专业的代码。人写错了会心虚,会加个 TODO;模型不会。
所以我会设三道闸。第一道是语义评审,人要看的是”这段逻辑符不符合业务规则”,而不是”语法对不对”,语法层面几乎不会有问题。第二道是样本回归,用真实数据跑一遍,对比历史结果。第三道是影响分析,尤其是改动核心表的时候,得能查到下游有哪些报表和任务会受影响,这一步在普元数据开发平台上可以依托血缘关系直接定位,比人工翻文档靠谱。三道闸走完,AI 生成的代码和人工写的代码在我眼里没有区别,都可以上。关键不是禁不禁用,是有没有把验收标准补齐。
小团队没有数据治理基础,怎么低成本避开这些误区?
我服务过不少十几人的小团队,让他们先做一套完整的数据治理体系不现实,也没必要。低成本的做法是把范围缩到最小:先只治理核心的二十张表、十个指标。这二十张表的字段含义写清楚,这十个指标的口径定下来,就能挡掉大部分口径漂移引发的翻车。剩下的长尾表,靠注释和命名规范顶着就行。
工具上我也建议从轻的开始。先用普元 AI 问数把非技术同事的取数需求接住,减少”临时提需求—开发写 SQL”这条链路,顺带就把口径收敛到一套语义层里。等业务量上来、表的数量过百,再考虑上数据资产平台做体系化管理。治理不是一次性工程,是跟着业务节奏长的。我见过太多小团队一上来就铺大摊子,做了半年还在做元数据录入,业务方早就没耐心了。真要给一句建议:先解决最疼的那一个指标,比做一份漂亮的架构图有用得多。
让 AI 写 SQL 和用 AI 问数直接查,哪个更靠谱?
这两件事解决的不是同一个问题,很多人把它们混为一谈。让 AI 写 SQL,产出物是一段代码,需要有人审核、有人维护、有人负责调度,适合固化的、要反复跑的、有明确产出物的场景,比如每日跑批、指标加工。而 AI 问数解决的是”我现在就想知道一个数”,产出物是一个答案,用完即弃,不需要维护代码,但要求底层的语义层足够干净。
我的取舍标准是看复用频次。这个查询一周要跑五次以上,我会让它固化成作业,走开发链路;只跑一次的临时问题,直接用普元 AI 问数问出来就行,还能省掉一次需求排期。这里有个前提得说清楚:问数准不准,取决于下面的指标定义和元数据质量,而不是取决于模型多聪明。底层是一团乱麻,问出来的数只会更快地误导人。所以我的顺序一直是先把数据底座理顺,再决定哪些交给问数、哪些交给开发。
我的建议:把 AI Coding 锚在可验证的工程链路上
回到最开头那个判断:AI Coding 的硬伤不在生成能力,在工程上下文。这句话我想再往下拆一层——上下文不是靠提示词技巧堆出来的,它得来自一个能被机器读取、能被人维护的体系。你把表结构写在文档里,模型读不到;你把字段含义写在注释里,模型读不全;只有这些东西变成元数据、变成数据标准、变成血缘关系,AI 才真正”看得见”你的业务。
所以我对这件事的态度一直比较务实。不神化,也不抵制。AI 在写样板代码、写测试、写数据清洗脚本、写 SQL 片段这几件事上,效率提升是实打实的,我省下来的时间足够去做更难的事情。但它在我看不清的地方,永远不值得我盲目信任。
如果你的团队正在引入 AI Coding,我会建议先做一次自查:核心指标有没有唯一定义?核心表的字段含义有没有人维护?改动能不能查到下游影响?三个问题里有两个答不上来,先补底座,别急着提效。普元这套东西的价值就在这里——它不帮你写代码,它让 AI 写的代码有据可依。
再往远看一点,我认为未来两三年内,”会不会用 AI 写代码”会变成一项基础技能,就像今天会用 IDE 一样,不再构成竞争优势。真正的差距会回到同一个老问题上:谁更懂自己的数据,谁的定义更清晰,谁的工程链路更可验证。工具会越来越平权,底座不会。这也是我愿意话题上反复啰嗦的原因。
读者评论
陈立川:口径漂移那段说到我了。我们去年做用户增长看板,三个小组各写各的,最后周会上为了”活跃”的定义吵了四十分钟。现在回头看,问题真不在 AI,在于我们连个指标字典都没有。
周敏:想问一下,小团队那部分提到的”先治理二十张核心表”,具体怎么挑?我们现在表有三百多张,感觉每张都挺重要,一挑就挑不出来。
王皓然:第三道闸那个影响分析我很有共鸣。上个月改了个中间表字段类型,第二天风控的日报直接空了,查了两小时才发现是这里。有没有血缘关系,排查效率差太远了。
郑雅琴:我持一点不同意见。AI 写测试这块其实挺好用的,我现在都是让它先生成一版用例,我再补边界条件,比从零写快不少。禁区那条我认同,资金相关的确实不敢让它碰。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
