@bozhou_ai: https://x.com/bozhou_ai/status/2074030629956780417
摘要
本文作者基于Anthropic员工Thariq的《A Field Guide to Fable》文章,重新思考了AI编程工作流中的未知项管理,提出了从盲区扫描、多版原型、AI采访到实现笔记和测验等方法,强调在编码前发现未知因素以减少返工。
查看缓存全文
缓存时间: 2026/07/06 14:14
从盲区扫描到测验合并,我重写了 AI Coding 工作流
同一个需求,我重写了三遍 prompt。
第一遍,AI 把不该动的旧逻辑改了;第二遍,我把“不要动 XX“全列上去,它倒是没乱动了,但做出来的东西完全不是我想要的感觉;第三遍,我把要求写得事无巨细,结果它死板地照做,明明代码库里有现成的更好方案,它看都不看。
我一直以为,是我 prompt 写得还不够细。
直到看完 Anthropic 员工 Thariq 的《A Field Guide to Fable: Finding Your Unknowns》,我才发现这个循环是个死路。
**写得太细,AI 该变通时不敢变通;写得太粗,AI 就用“业界最佳实践“猜你想要什么。你在“细“和“粗“之间反复横跳,永远找不到那个平衡点。因为有一堆你没说出来、甚至你自己都不知道的信息,AI 每次都在替你猜——prompt 改得再好,也覆盖不到这些。
看完这篇文章,我把自己整个 AI coding 的流程推翻重来了。这篇不做翻译搬运,我带你把我理解这套方法的过程走一遍——包括我理解错的地方。我踩的坑,你大概率也会踩。
一、AI 做偏的时候,它在猜
先从一个你一定遇到过的场景说起。
你跟 AI 说:“帮我给登录系统加一个微信登录。”
半小时后它交活了,你一看:UI 风格跟原来的登录页完全不搭,用户表里新建了一堆字段,原来的手机号登录逻辑还被它顺手“优化“了。
你的第一反应可能是:这模型不行。
Thariq 给了另一个解释,他借用了一句老话:地图不是领土(The map is not the territory)。
-
地图,是你给 AI 的信息:提示词、规则、计划、验收标准。
-
领土,是 AI 干活的地方:真实的代码库、历史包袱、你的审美、那些“我们项目从来不这么干“的隐规则。
地图和领土之间的差距,就是未知项(unknowns)。
AI 遇到未知项时,不会停下来发呆,它会接着往下猜——按“业界最佳实践“猜,按“一般人应该想要这样“猜。任务越复杂,未知项越多,猜的次数越多,偏差就一点点累积。最后你看到的,就是那个“能跑,但完全不是我想要的“的结果。
Thariq 有句话让我停下来想了很久,大意是:Fable 是第一个让他感觉到,工作质量卡在他澄清未知项的能力上,而没有卡在模型上。
模型越强,这句话越成立。
二、四类未知项:我在这里踩了第一个坑
Thariq 把未知项拆成四类。这个分类直接决定你该用什么方法对付它,值得逐个看。
我用大白话说:
-
我知道我知道的 —— 你已经写进提示词的信息。“加微信登录,别动手机号登录,UI 沿用现有组件。”
-
我知道我不知道的 —— 你意识到了但还没答案的问题。“新用户要不要强制绑手机号?我还没想清楚。”
-
我知道,但没说出来的 —— 你脑子里有标准,但觉得“这还用说吗“。比如你讨厌花里胡哨的 UI,比如你们项目从来不用弹窗。
-
我根本没意识到自己不知道的 —— 你连这是个问题都不知道。比如你没做过微信登录,根本不知道 unionid 需要绑开放平台才有。
第 3 类最坑人。AI 又不会读心,你没说,它就按通用经验来——结果一出来你说“不是这个感觉“。它每一步都照做了,只是你心里那条标准从没说出口。
第 4 类最危险。第 3 类的问题你看到结果还能反应过来,第 4 类你连问的意识都没有,它就静静躺在那里,等上线之后爆炸。
**我第一次读到这里,就理解错了。我当时想:那“盲区扫描“这招,应该就是用来找第 3 类的吧——把我知道但没说的标准扫出来。
错了。盲区扫描对付的是第 4 类。
后来我想明白了:你知道但没说的标准,扫描是扫不出来的,因为它在你脑子里,AI 在任务里翻不到。这类未知只能靠“给你看东西、让你反应“逼出来——原型、参考案例、AI 反过来采访你。盲区扫描对付的是你连问题存在都不知道的坑:webhook 会重放、可能重复扣款、测试环境配不了回调域名……这些你不可能主动问,只能让 AI 替你排雷。
**不同的未知,要用不同的武器。用错了武器,你会觉得“这方法没用“,但你只是打错了靶子。
三、动手前:先找坑,再实现
理解了四类未知,整个“动手前“的流程就顺了。我现在开工前会按情况做这几件事。
1. 盲区扫描 —— 对付“我不知道自己不知道“
进入不熟悉的领域,第一句话从“帮我实现“换成:
先不要实现。帮我做一次盲区扫描:这个任务里,我可能根本没意识到的坑、边界情况和需要提前定的决策有哪些?按“会不会导致返工/影响架构/影响数据安全“排序。
最后那句排序很重要,不然 AI 会给你列 30 条,把最致命的埋在中间。
2. 多版原型 —— 对付“我知道但说不出来“
审美这种标准,我说不清,但我看了就知道。所以:
先别接真实逻辑。用假数据做 4 个方向完全不同的原型,我看完告诉你我喜欢哪个、讨厌哪个。
原型一定要便宜:假数据、单文件、不碰真实业务。它就干一件事——在改起来还便宜的时候,把你脑子里那些“这还用说吗“的标准逼出来。
3. 让 AI 采访你 —— 对付“我知道我不知道“
采访我,一次只问一个问题,优先问那些答案会改变架构、数据模型或用户流程的问题。
一次一个问题,这个细节很重要。AI 一口气甩 20 个问题,你会麻,挑软柿子答。
4. 实现计划 —— 开工前最后一道闸
让它先出计划,而且明确要求:把最可能变的部分放最前面——数据模型、接口、用户流程。机械性的重构放最后,那部分我信它。
四、动手中:我踩的第二个坑
规划做足也挡不住实现途中冒出来的未知项,Thariq 在文章里专门强调了这一点。AI 钻进代码库以后,才会撞上真实约束——某个组件跟计划里的名字不一样、某个测试写死了登录方式只有两种。
我在这里踩了第二个坑。
想一个场景:AI 实现时发现,计划里说用 LoginButton,但代码库里统一用的是功能一样的 AuthButton。它该怎么办?
我原来的直觉是:停下来问我。
又错了。合理的做法是:复用现成的 AuthButton,把这个偏离记下来,继续干活。
我当时的逻辑是“有不确定就该问我啊“。但你想想,如果 AI 每碰到一个命名差异都停下来问你,你等于雇了个每五分钟敲一次你门的实习生——那还自动化个什么劲。
分界线是风险,跟“有没有偏离计划“没关系:
-
小的代码库适配(组件命名、测试文件位置、代码风格):选保守方案,记一笔,继续走。
-
高风险决策(动用户数据、合并账号、删字段、改权限、难以回滚的操作):必须停下来问,不许猜。
那“记一笔“记在哪?Thariq 的做法是让 AI 维护一个临时的 implementation-notes.md,记录四类信息:它做了什么假设、为什么选这个方案、哪里偏离了原计划、发现了什么边缘情况。
这个文件干的事,是把 AI 原本会悄悄完成的猜测,变成你可以检查和纠正的记录。AI 做复杂任务时,改错一行代码你还能查出来;它替你做了一堆判断而你根本不知道,你连查的入口都没有。
五、做完后:测验全对,才许合并
这个环节我以前完全没有,也是这篇文章对我流程改动最大的地方。
以前 AI 干完活,测试绿了,我扫一眼 diff,合并。感觉效率很高。
但 Thariq 点破了一个问题:diff 只告诉你“文件变了“,没告诉你“行为变了什么“。你处在一种很危险的状态里——
代码是 AI 写的,能跑,但我不知道它为什么这么写,也不知道哪里会坏。
他管这叫失去对系统的“理解权“。解法是两步。
第一步,要一份解释报告。“已完成✅“那种总结没用,要的是:解决了什么问题、关键决策是什么、和原计划比哪里变了、有哪些边缘情况、还剩什么风险。
第二步,让 AI 反过来考你。
给我出一套关于这次改动的测验,覆盖动机、业务逻辑和边缘情况。我答错时别直接给答案,先追问我的理解。
Thariq 的规矩是:测验不全对,不合并。
我第一次看觉得有点行为艺术,试了一次就服了。AI 问我“如果微信没返回 unionid,现在的流程会怎么走“,我卡住了——那一刻我才承认,我对这次改动的理解只停留在“它大概加了个登录方式“。
答不上来的那道题,就是你的下一个未知项。
六、重塑之后的流程长什么样
学完这一整套,我把自己的 AI coding 流程重写了。对比一下:
**以前:想需求 → 写个尽量详细的 prompt → AI 实现 → 看结果不对 → 加需求重来 → 循环到能用为止。
现在:
-
动手前:不熟的领域先盲区扫描;说不清的标准用多版原型逼出来;想不清的决策让 AI 采访我;最后出实现计划,重点看会变的部分。
-
动手中:AI 维护实现笔记;小适配记录后继续,碰数据、账号、架构的必须停下来问我。
-
做完后:解释报告 + 测验,全对才合并。
以前我在优化 prompt,现在我在管理未知项。
以前那个循环慢在哪?每次“结果不对“,都是某个未知项拖到实现完成之后才暴露——代码已经写完、方向已经固化,返工要推翻的东西最多。新流程里的每个动作,盲区扫描、原型、采访、测验,干的都是同一件事:趁改起来还便宜,把未知项提前挖出来。
模型只会越来越强。往后你和高手的差距,不会体现在谁的 prompt 写得长,而是同样让 AI 干一天活,有人拿到的是能直接合并的代码,有人拿到的是一堆看着能跑、但不知道哪里会坏的东西。
差别就在:谁知道自己还有哪些不知道。
最后,我把这一套流程总结成了一个 CLAUDE.md 文件——动手前的盲区扫描、原型、采访、实现计划,动手中的实现笔记和停下来问的规则,做完后的解释报告和测验,都写成了 Claude Code 能直接执行的约定。
项目地址:https://github.com/bozhouDev/finding-unknowns-skills
拿去直接用,放进你的项目根目录就行。
相似文章
@ba_niu80557: https://x.com/ba_niu80557/status/2071277244287426980
文章深入分析了Anthropic因AI代码生成变得极其高效而面临的内部变化:瓶颈从“写作”转移到“验证”,传统管理、长期规划和努力衡量失效,注意力成为新的稀缺资源,工程师甚至感到孤独。这些现象预示了其他公司未来可能面临的挑战。
@yibie: 推荐这篇文章,Anthropic 的 Eugene Yan(前 Amazon/Alibaba ML 团队负责人)把他个人 AI 工作流写成了一份实操指南。不是抽象理念,是具体到你明天就能复制的方法:怎么组织目录让模型更容易检索、怎么写 C…
这是一篇推荐Eugene Yan的AI工作流指南的推文,详细介绍了如何通过组织上下文、配置CLAUDE.md、创建skills等方式高效与AI协作并实现工作复利。
@sodawhite_dev: https://x.com/sodawhite_dev/status/2067413032544940062
文章分析了Anthropic关于Claude Code的40万会话报告,指出AI编程工具正在改变人与AI的分工,领域知识比代码能力更重要,专家用户能让AI执行更复杂的任务,而验证和任务拆解能力成为核心竞争力。
@Khazix0918: https://x.com/Khazix0918/status/2062731170337763796
Anthropic发布深度文章《When AI builds itself》,展示AI系统正在加速自身开发,包括代码生成、基准测试饱和以及内部数据表明工程师生产力提升8倍。文章探讨递归自我改进的趋势与潜在影响。
@ai_laotie: https://x.com/ai_laotie/status/2068215413050347654
介绍了2026年赚钱的3个AI工作流:外网案例逆向拆解、长文转X爆款线程、不露脸AI短视频矩阵,强调系统化工作流和Prompt迭代比追新工具更重要。