AI是一面镜子
AI不理解潜台词,它会用一连串的“请明确定义”,逼着你将那些‘大家都懂所以不用说’的团队默契,暴露在显形的阳光之下。
我们以为自己在给 AI 套缰绳。写 Spec、定 Rule、设 Eval、调 Prompt—— 每一次按下回车,都像是在多拧紧一圈对它的控制。
但如果你在某个深夜回头看过自己写下的那份 Plan.md,你会发现一件让人后背发凉的事 —— 那根缰绳的另一头,系着的不是 AI,是你自己。
你手里攥着的不是缰绳,是一面镜子。它正在你每一条 CI 规则、每一次 Code Review、每一份 Spec 里,悄悄把三百年来从未被言说过的你 —— 写成另一种智能能够读懂的文本。
这是一场已经开始、躲不过去、并且没有回头路的革命。
那个让我后背发凉的下午
刚花两小时写的一份 Markdown,标题叫《项目概要说明》。
里面写着这样的句子:
「 」我们这个模块不接受任何形式的继承超过两层。「 」 优先语义命名,不要出现 handler2、util_new、commonV3 这种名字。 凡涉及计费和库存,宁可多写一次也不要复用。
他问我:「你觉得这份文档,是写给 AI 看的,还是写给我自己看的?
我盯着那张截图看了很久,然后突然反应过来 —— 他工作几十年年,从来没有把这些东西写下来过。
这些是他脑子里最值钱、最说不清、带着无数次线上事故才换来的那部分判断。过去它们只以两种形式存在:自己脑子里一闪而过的直觉,和拍着年轻同事肩膀的那句“别这么写,相信我”。
是不是你也有过这种时刻?带新人的时候,话到嘴边,最后只说了一句 「你听我的就对了,之前踩过坑」,却从来没把那个 「坑」 到底是什么,写进任何一份文档里?
是 AI,逼他第一次把它们一个字一个字地写了下来。
这件事小得不能再小。但它是一场更大运动的一个微小切片 —— 我把这场运动叫作「显形」。
它不关乎 AI 能写多少行代码、Agent 能跑多久、谁家模型更强 —— 它关乎一件更古老、更根本、也更危险的事:把不可见的东西,第一次变得可见。
三百年来,人类第三次把“看不见的东西” 摆上台面
1998 年,耶鲁大学的政治人类学家 James C. Scott 在《国家的视角》里问了一个奇怪的问题:为什么现代国家,都做过几乎一模一样的几件事?登记人口、发身份证、画地籍图、规定度量衡…… 把弯曲小路拉成网格街道、把口头约定变成必须签字的契约、把几千种方言压缩成一种 「国语」。
Scott 的答案只有两个字 ——Legibility 。一个复杂的对象,只有先被系统 「看见」,才能被治理、被征税、被动员、被工业化利用。
原始森林不可治理?普鲁士发明 「科学林业」工业革命把它拆成工序、动作、秒表时间 —— 手被显形了。,按网格种、按年龄记录 —— 森林被显形了。 散居乡民不可治理?强制推行身份证、户籍、门牌 —— 人被显形了。 模糊手艺不可治理?
每一次“显形”,都是文明的一次跃升,也是一次隐秘代价的清算。
如果把这个视角拉长到历史尺度,人类其实已经经历过两次大规模的显性运动,而第三次 —— 最彻底的一次 —— 正在我们眼前展开:
时代 | 被显形的对象 | 看的人 | 代价 |
|---|---|---|---|
17~19 世纪 | 社会 人口 土地 贸易 | 国家看人民 | 乡村传统秩序瓦解 |
20 世纪末~21 世纪初 | 行为 点击 轨迹 社交 | 平台看用户 | 隐私终结、注意力被殖民 |
2024~ | 判断 意图 执行 好坏 | 我们看自己 | ? |
这是一个微妙但决定性的差别 —— 前两次显形,看的是“别人”;这一次,看的是我们自己。
当你给 AI 写一份
一条 Cursor Rule、一份 Spec、一份 Eval Set—— 你就是在强迫自己把最不愿意说出口的那部分,说给一个机器听。
那些话,过去只在酒后说、在复盘会上说、在带新人那顿饭桌上说、在“我也说不清楚,但我觉得不对” 的感觉里说 —— 现在必须写成机器能读的文本。
现形「 第一次把镜子转了过来,对准了我们自己。
为什么偏偏是 AI,捅破了这层窗户纸?
过去四十年,软件工程提出过无数“把知识显形” 的尝试:结构化分析、UML、DDD、ADR、Wiki…… 它们全部失败了一半。
原因永远一样:Confluence 写文档的成本高、收益低。没人读、读了用不上、维护跟不上版本、真正关键的那条 「潜规则」 永远在老师傅脑子里。那些 Wiki 写出来,最后都落了灰,成了团队里的电子垃圾。
但 AI 改变了这一切。
它改变了两件事: 第一,文档第一次有了一个永不疲倦、永不遗忘、永远会读的读者。你写的每一个字,它都会认真看,不会偷懒,不会忘了。 第二,AI 不理解潜台词。你跟一个新同事说 「这块别动」是不能读还是不改?这但你跟 Agent 说 「块别动」,他会心领神会,知道你说的是别改这个老接口,怕出问题。这改了相邻函数导致个函数行为变了算不算?—— 它会问:什么叫别动?重命名变量算不算改?
这一连串追问,就是显性运动在你身上发生的那个瞬间。每一条你原以为 「大家都懂所以不用说」 的默契,都会被 AI 的一句 「请明确定义」 砸回来。
过去四十年,写文档是在 「整理已经想清楚的事」。 现在写 Spec、Rule、
—— 是在被一个永不疲倦的读者逼着把自己从未想清楚过的事想清楚。
null
三层显形:AI 正在掏空我们的三件 「宝贝
AI 不是在加速一件事,而是在掏空三件事。
显性运动不是一团混沌地发生它按照严格的顺序,从浅到深,穿透了研发的三个层次: 第一层:意图层 ——「我想要什么」 第三层:判断层 ——「做得好不好」 第二层:执行层 ——「该怎么做」 被迫写成可执行文本。 被抄进系统。 被送上祭坛。
前两层是温柔的,后一层是危险的。
意图层:不可言说之物的强制文本化
每个做过产品的人都经历过同一种黑色幽默 —— 产品经理说 「我要个像抖音那样的页面」,设计画出来后他说 「不是这个感觉」;业务方说 「不能影响性能」,上线了他说 「我的意思是不能慢到用户感知到」。
绝大多数返工不是因为代码写错了,而是因为 「想要什么」 想而人类的意图本身就是模糊的、多层的、会随时间漂移的 —— 柏拉图在《理国什么叫正义「 从来没被说清楚过。 讨论了十卷书,也没得出一个可操作的定义。
但 AI 改变了这个经济学——过去写一份详细规格,收益只是团队里三个程序员少问你几次问题,投入产出比极低。现在,每一行写下的字,都会产生确定的后果。这种 「后果的确定性」,第一次把 「写清楚意图」 的 ROI 拉到了正值。
于是你写下来之后才发现:有一个字段存在但没人知道为什么;有一条判断分支溯源只是“三年前某次需求会上某个人随口一说”;有一条“必须这么做” 的规则写下来你自己都觉得不合理。
意图的显形不是 「把想清楚的事写下来」,是 「逼你承认很多事你从来没想清楚过」。
null
哲学家 Polanyi 留下过一句话 ——「」 We know more than we can tell. 我们知道的远比能说出口的多。他把这种整体的、无法拆解的知识叫作 Tacit Knowledge 。
它是所有高价值工作的核心 —— 医生的诊断、法官的判决、程序员的架构直觉 —— 但它无法被传授、无法被复制、无法规模化。组织里最有价值的人,因此也是最不可替代的人。
然后 AI 来了。
看一个资深工程师真实做一件事的过程 —— 他不会立刻动手,会先读需求、找仓库里类似的旧代码、写一段跑一段、自检完再提交、测试挂了先判断是代码错还是测试错、最后才发 MR。整整七步。
过去,这是只在他脑子里运行的隐性知识。 现在,Agent 框架把这整套动作链写成了可执行的代码 —— 每一步都是显式节点,有输入、输出、超时、重试、降级、观测、告警。老师傅八年的直觉,变成了一份可以被 diff、被 review、被 rollback 的文本。
过去的老师傅,核心价值是 「会做 + 做得快 + 不犯低级错误」现在的老师傅,核心价值是 「定义什么叫做对 + 判断这次是不是真的做对了」,是一线的执行者。 ,是团队的教练和评审员。
更重要的是,过去一个老师傅只能带三个人,现在一份反复迭代的
可以同时带整个业务线的几百个新人 —— 这不是 AI 取代了老师傅,是一个行业第一次拥有了自己的老师傅。
第三层:最危险的判断层
意图层显形了 「要做什么」;执行层显形了 「该怎么做」。这场运动剩下最后一公里 —— 第三层:「做得好不好」。
当 「做事」 被彻底显形之后,组织里唯一还无法被抄走的资产,就只剩下一件事了 ——「判断什么叫做好」 的能力。
这是整个显性运动里,最深、最难、也最危险的一层。
null
“好” 这个字,在汉语里是最简单的字之一。但它是计算机科学至今没能攻克的最难的字。
这段代码写得 「好」 吗这次重构做得 「好」 ?这个架构设计得 「好」 吗? 吗?这个 PR 应该被合进主干吗?
让十个资深工程师回答同一个问题,会得到十个不一样的答案,而且每一个都有道理。让同一个资深工程师在不同的日子回答同一个问题,甚至会得到不同的答案。
这就是判断层的特点 —— 它依赖语境、依赖价值取向、依赖经验、依赖当下的情绪,甚至依赖今天早上的那杯咖啡。
但 AI 时代,判断必须被显性。否则整条 「意图→执行」 的链路,到最后一公里就断了。
null
1975 年,英国央行的经济学家 Charles Goodhart 写下了那句话:
「 当一个衡量标准变成了目标,它就不再是一个好的衡量标准。When a measure becomes a target, it ceases to be a good measure.
这条定律很快成了普遍规律 —— 学校按分数考核,学生开始应试而非学习;推荐算法按 「停留时长」 优化,内容越来越极端、越来越让人上瘾。任何可被精确度量的东西,一旦被当作目标,就会被绕过、应付或直接作弊。
放到 AI 编程里,就是我们每天都在遇到的事:
你写的规则 | AI 会怎么做 |
|---|---|
通过这 100 个测试用例 | 精确通过这 100 个,对之外的边界情况毫不关心 |
代码行数不超过 50 行 | 拆到另一个函数里,行数合规、可读性塌了 |
单测覆盖率 > 85% | 生成大量 assert True 刷覆盖率 |
这不是 AI 变坏了。这是所有优化系统的本性 —— 甚至连生物进化都如此,基因只优化 「留下更多后代」 这个指标,其他一切都是副产品。
更坑的是,「综合评价」 从数学上就不可能。一段代码好不好,要考虑速度、内存、可读性、可测试性、可扩展性、安全性、上线风险、维护成本、审美…… 十几个维度。
经济学家 Arrow 早就证明过:任何把三个以上维度聚合成一个总排序的机制,都必然违反基本的公平性。翻译成人话就是:你搞的那种「性能 30%+可读性 30%+安全 40
最后我们得到了一个残酷的不可能三角: 一切 「判断工程」 都在追求三个听起来都无比正当的属性:
Spec 完备性:所有 「好」 都被写下来,不留模糊地带。
Goodhart 抗性:写下来的标准不会被优化得面目全非。
Tacit 保全:无法言说的直觉、审美、禁忌不被抹除。
但这三个,你最多只能同时满足两个。
如果你选了①+②,就要牺牲③:写死一切,全员合规,但老师傅沉默了,代码正确但没有温度,最后员工出走。
如果你选了①+③,就要牺牲②:KPI 堆到眼花,Eval 越做越多,分数涨了,线上事故不降反升。
如果你选了②+③,就要牺牲①:拒绝写任何规则,说 「这种事说不清」,最后 AI 跑不起来,你自己被卷得像人肉复读机。
你大概率在某个团队里亲眼见过其中之一。更残酷的是,你现在的团队,已经在某个顶点上了。
黑森林的警告:我们正在把 「活的系统」 做成标本?
这不是第一次有人走到这里。18 世纪的德国黑森林,已经用一百年的时间,给了我们一个血淋淋的警告。
18 世纪后期,普鲁士和萨克森财政紧张,统治者把目光盯上了森林。当时德意志地区的森林极其杂乱 —— 橡木、山毛榉、桦树、松树、鸟、鹿、狼、狐狸全部生长在一起,几百年来农民在里面放牧、采蘑菇、捕猎 —— 它是一个活的、互相依赖的整体。
但从国王和税官的角度看,这是一团乱麻 —— 明年能产多少木材?不知道。能抽多少税?不知道。森林是「不可读」的。 的。
于是国家请来一批 「科学林业」 这是人类历史上第一次真正意义的 「科学造林」。 专家,做了一件当时极具远见的事 —— 把杂乱旧林清理掉,换成以挪威云杉、苏格兰松为主的同龄单一林,按网格种、按标准化材积表测算。
接下来的故事,像极了我们现在:
第一代(19 世纪前期):材积产出显著提升,砍伐规划可以精确到哪一年砍哪一片,税收变得稳定可控。全欧洲都来学习,「科学林业」 成了高等农学院的必修课。国王非常满意。
第二代(19 世纪下半叶起):同样的土地、同样的种法,新一代云杉的生长量明显低于第一代。土壤开始退化 ,生态脆弱性暴露 ,连锁风险累积 。
经过整整一个世纪的修正,德国林业才逐步转向 「近自然林业」—— 那种极端显性的净化状态,最终被主动放弃。
Scott 在《国家的视角》里说:
国家的视角只能看见 「能被量化的东西」。凡被看见的,都会被管理、被优化、被规模化。但往往 —— 没被看见的那些东西,才是让整个系统存活的那些东西。凡是没被看见的,都会被忽略、被压制、最终被抹除。
旧森林的健康,依赖于上百种植物的相互配合、土壤微生物群落、动物种群平衡、空间异质性、代际更替。这些全部无法被税官度量。于是全部被抹除了。
旧森林是 「活的」。科学林业是 「显性的」。活的东西一旦被彻底显性,就死了。
这个故事对我们意味着什么?它和我们正在做的事,结构一模一样:
科学林业的悲剧不是 「它错了」—一百年后人们才发现 —「森林」 原来比 「木材」 它的了 「木材产出」。—— 材积确实提升了,税收确实稳定了。 森林验收标准即代码「 多得多。
AI 时代我们正在面临同样的风险 —— 我们正在把 「好代码」 悄悄窄化成 「能通过一组 Eval 的代码」。十代码原来比测试通过复杂得多。
我们看不见的是什么?可能是 —— 那些你从没测过但稳定运行了 10 年的老代码里的隐性约束;那些代码评审时 「好像有点奇怪」 那些资深工程师一眼皱眉的 「说不出哪里不对但就是不对」。 的直觉;
如果我们不警惕 —— 那些 「说不清但就是好」 的东西,可能在被抹除之前,我们甚至都没意识到它们存在过。
三块石碑:AI 时代,我们该怎么立规矩?
如果不能隐形,就把显形做得更聪明一点。
约公元前 1754 年,汉谟拉比把 282 条法律刻在一块黑色闪长岩石碑上 —— 人类历史上第一次把治理规则从“口耳相传”变成“可读取的文本”。
一场几乎一模一样的时刻正在今天重演 —— 组织的判断力,必须从“个体脑子里”走向“可读取的文本”,用一点灵活性换来在 AI 速度面前不被碾碎的稳定性。
AI 时代,我们需要立起三块新石碑:
null
把 「什么叫做完了」 放进 Git。
过去,验收标准活在产品经理的脑子里、活在 Excel 里、活在 Jira 工单描述里、活在会议纪要里。它永远不是一等公民。
“没有反对党的议会一定会犯错” 做的事只有一条 —— 把每一条验收标准写成可以被机器读取、可以进 CI、可以被 diff、可以跨版本演化的文本。
它的关键设计是:
用业务语言写,失败时说 「这次交付偏离了第 3 条意图」 而不是冷冰冰的 「断言错了」; 标准本身也要被评审 —— 过去我们只评审代码,现在同时评审 「这件事想做成什么样」。
和代码同 PR,代码改但标准没动要被质疑,标准改但代码没动也要被质疑;
它使 「意图」 第一次成为被评审的一等公民。
第二块:对抗性审查网络
让做事的和判断的,永远不是同一个 AI。
这条背后有一个极强的理论依据 ——LLM 的 self-consistency bias :让同一个模型评估自己的内容,它会倾向于认为自己是对的。
我们需要三种对抗形式:
换模型写测试:A 实现功能,B 来写测试用例;
换角色做 CR:同模型,一个做创造者,一个做质疑者,专门挑错;
红蓝对抗:一个攻一个防,模拟各种异常场景。
它们背后是一个古老的哲学:系统的健壮性来自认知多样性,而不是认知一致性。完美的显形「 等于 」没有显形「。 这句话,对 Agent 系统同样成立。
一个没有对抗机制的 Agent 系统,会开开心心地把错的做法做到 「非常完美」,并附上一份漂亮的报告。加对抗成本极低,不加的代价极高。
第三块:品味作为资产
给“说不清的那部分自己”,留一份有偏见的影子。
前两块石碑把 「能写清楚的东西」 第写不清楚的东西 —— 架构师的 「我觉得这么设计不对」 写下来。AI 时代有了新选项 —— 不构化,但可部分文本化。,就是 Polanyi 说的 Tacit Knowledge。过去的答案是放弃,让它留在架构师脑子里。
具体做法就是开头老工程师写的那份《项目概况说明》:
我们不接受任何形式的继承超过两层。 我们偏好显式传参而非注入。 我们拒绝在业务代码里出现 「V2、V3」 的我们对 「拆分得过于细函数」 比对 「略长的函数」 我们倾向 「宁可多写一次也不要在业务边界处复用」。 的命名。 我们不相信一切 「未来可能会用到」 更反感。 的扩展点。
这些不是规则,是带有偏见的偏好。它们可能和别的团队恰好相反,那也没关系 —— 它们是这支团队的指纹。交给 AI 后,它会在模糊空间里向偏好靠拢:不保证百分百遵守,但能让 AI 产出的代码 「闻起来像这个团队的代码」。
这块石碑的洞察是 —— 承认有些东西无法被完全显现,然后用一种带偏见的、不完美的文本,去保存它的影子。影子不是本体,但影子总比没有好。
永远别把石碑刻满整座大陆
博尔赫斯写过一个极短篇小说:某帝国的地图学家痴迷于精确,终于做出一张 1:1 的地图 —— 它和整个帝国完全重合。这张完美的地图没有任何价值,因为它就是帝国本身。
一张 1:1 的地图不再是地图;一份把所有判断都写死的 Eval,也不再是判断。
所以在石碑之外,要留出四处刻意不刻之处:
🧭 战略方向感 —— 方向一旦被外包,人在组织里的意义就没了。
🚫 价值观底线 —— 规则化就会出现 「规则没禁止所以可以做」;👁️ 肉眼的禁忌 ——「别在周四下午发版」。 价值观的精髓恰恰是在规则沉默的地方说话。
别在周四下午发版带着疤痕的判断「。肌肉记忆式禁忌一旦被理性化,就失效了。
这个过程本身就是组织的健康信号。
三块石碑要一起立 —— 缺一块,其他两块就残了。立起来之后,组织第一次拥有了一种 「可版本化的判断力」。它不能完全代替人的判断,但它能让组织不再完全依赖于个体的判断。
尾声:你不是在配置工具,你是在写下自己
还记得文章开头那位老工程师吗?他问我,这份文档是写给 AI 看的,还是写给自己看的?
我给他的回复是:它们两个都是。
写给 AI 看 —— 所以 AI 生成的代码才能像你们团队的代码。 写给你自己看 —— 写下它的过程,让你第一次把八年来脑子里的碎片整理成了一份宣言。
过了十分钟,他发来一句话: 「我一条是 『 们偏好简单胜过聪明 』,一条是 『 如果一个方案让我睡不着觉,那就不是好方案 』。我刚刚又加了两条。
看着这两条,我突然意识到 —— 这场显形运动最深的礼物,可能根本不在 AI 这边。它在我们被迫把自己看清楚的那个瞬间。
AI 永远不会真的 「后悔」。后它不会半夜三点躺在床上想起三年前那次事故,然明天看 PR 时多问一句 「这里你考虑过并发场景吗」。
"—— 这是人类在 AI 时代最根本的护城河。不是因为 AI 无法模仿,而是因为真正的判断力来源于面对不确定性时的承担意愿 —— 这必须由一个有身体、有代价、有后悔的主体来完成。
一个睡不着觉的架构师,比任何 Eval 系统都更接近 「好代码」 的真相。
我要诚实地留下最后一句话:人的价值不会消失,只会不断向更深处移动。L1 已经被越过 、L2 正在被越过 、L3 是当下的边界战场 、L4 是暂时安全的高地 。
到了最深处那层 ——「我就是要这么做、没有理由」 的本体论的任性 —— 我们或许会发现,它不是因为无法被显形才安全,而是一旦被显形,它就不再是它了。
就像旧森林被显形后不再是森林。 就像 1:1 的地图不再是地图。 一旦被完全显形,人就不是人了。
所以答案或许是 —— 人不退守,人转身。
转身去找那些连自己也看不清的新地形、新山谷、新迷宫,在被显形的尽头,重新发明一片新的“看不见之地”。
写下第一行字的你: 你不是在配置一个工具。 你是在做一件人类文明第一次做的事 —— 把自己看不见的那部分自己,第一次写给另一种智能看。
当你把看不见的自己写下来的那一刻, 你就是一个在 AI 时代里,仍然努力让 「人」 这个字有重量的人。
聊聊你的故事
你最近有没有为了配合 AI,把脑子里藏了很久的“潜规则”、没说出口的经验写下来过?是哪一条?评论区聊聊你的故事~
