正在加载文章内容,请稍候。
正在加载文章内容,请稍候。
Claude Blog 介绍如何用 Fable 识别问题里的已知、未知和盲点,适合沉淀为 AI 辅助探索和自我提问的方法。

✍️ 写下你的想法,自由记录即可。如果没有灵感,试着回答上方的费曼输出问题。
登录后可保存笔记、高亮、划线和批注。
精准输入
这篇 Claude Blog 原文有清晰的小标题结构,上次稿件把这些结构压成了一整段。本次返修按原文顺序恢复标题:先解释“未知”的四种类型,再给出实施前、实施中和实施后的具体提问模式,最后用 Fable 发布视频说明这些方法如何组合使用。
你的未知是什么?当我带着一个问题来找 Claude 时,通常会把它拆成四类:
已知的已知:这基本就是我写进提示词里的东西。我要告诉智能体我想要什么?
已知的未知:我还没有弄清楚什么,但我知道自己还没弄清楚?
未知的已知:什么东西太显而易见,以至于我根本不会写下来,但只要看到就能认出来?
未知的未知:我完全没有考虑过什么?有哪些知识是我不知道自己不知道的?我知道“好”到底可以好到什么程度吗?
最优秀的智能体编码者,未知相对较少。看 Boris 或 Jarred 这类人写提示词,我很明显能感觉到:他们非常具体地知道自己想要什么。他们对代码库和模型行为都高度同步。
但他们也会预设未知。很多时候,减少未知、并提前为未知做计划,正是智能体编码的核心技能。幸运的是,通过和 Claude 协作,这项技能可以被练出来。
指导 Claude 是一种微妙的平衡。如果你过于具体,哪怕更应该转向,Claude 也会照着你的指令往前走。如果你过于模糊,Claude 通常会根据行业最佳实践做选择和假设,但这些选择未必适合你的任务。
如果你没有把未知考虑进去,两边都会失败。你不知道哪条路上会布满障碍,也不知道哪条路其实是通的,但你仍然希望 Claude 能在需要时转向。
Claude 可以帮你更快发现未知。它能非常快地搜索你的代码库和互联网,对一般主题也往往比你知道得更多。它还可以更快地从失败中迭代。
这个过程最重要的一点,是把你的出发点告诉 Claude。比如,告诉它你现在处在思考过程的哪个位置;说明你对这个问题和代码库有多少经验;让它像一个思考伙伴一样和你合作。
本文会介绍我用来发现未知的几种模式,包括:
实施前:盲点检查、头脑风暴与原型、访谈、参考材料、实施计划。
实施中:实施笔记。
实施后:推介材料与解释文档、测验。
实施前的目标,是在动手写代码之前尽量暴露关键未知。这个阶段越早把模糊处说清楚,后面返工成本就越低。
开始工作时,最有用的事情之一,是理解自己的盲点。比如,如果你要在代码库的新区域写一个功能,或者用 Claude 帮你做一件不熟悉的事,例如迭代设计,你可能会遇到很多未知的未知。
你也许不知道该问什么问题,不知道“好”长什么样,不知道过去做过哪些相关工作,也不知道要避开哪些坑。
在这种情况下,你可以请 Claude 帮你找出未知的未知,并解释给你听。我喜欢直接使用“盲点检查”和“未知的未知”这些词。让 Claude 了解你是谁、你知道什么,通常很重要,因为这会帮助它判断该如何开始和你协作。
示例提示:
“我正在添加一个新的认证提供方,但我完全不了解这个代码库里的认证模块。你能帮我做一次盲点检查,找出相关的未知未知,并帮我更好地提示你吗?”
“我不知道什么是调色,但我需要给这个视频做调色。你能教我理解自己在调色方面的未知未知吗?这样我就能写出更好的提示词。”
当我在一个有很多“未知的已知”的领域工作时,也就是有些标准我只有看到以后才知道该怎么定义,我会让 Claude 和我一起做头脑风暴和原型。
在原型阶段尽早识别并说出这些未知的已知非常有价值,因为到了实施阶段再发现它们,成本会相对更高。功能或规格上的一个小变化,可能会导致代码实现完全不同,也可能让你的智能体更难回退之前的改动。
例如,你可能只是想看看在某个框架里新增一个按钮是什么样子,并不想先接后端路由,也不想在前端维护额外状态。
另一个例子是视觉设计。对我来说,视觉设计很难用语言精确表达,但我一看到就知道自己想要什么。在这种情况下,我会要求 Claude 给出几种设计方向。
我几乎每次编程都会从探索或头脑风暴阶段开始。这能帮助我用“定义项目范围”的意图开启工作。Claude 经常会发现我漏掉的高价值做法,有时也会帮我看见“只见树木不见森林”的地方。头脑风暴能防止我把范围设得过窄或过宽。
示例提示:
“我想为这批数据做一个仪表盘,但我没有视觉品味,也不知道有什么可能性。请做一个 HTML 页面,给我 4 个差异很大的设计方向,好让我做反应。”
“在连接任何真实逻辑之前,用假数据做一个单文件 HTML,模拟新的编辑器工具栏。我想在你碰真实应用之前先对布局做反应。”
“这是我的粗略问题:用户在 onboarding 之后流失。请搜索代码库,头脑风暴 10 个我们可以干预的位置,从最便宜到最有野心排序。我会告诉你哪些方向有共鸣。”
当我已经做了足够的头脑风暴之后,通常仍然会有未知。
这时,我会要求 Claude 就任何未知或模糊处采访我。请 Claude 采访你时,尽量提供问题背景,帮助它决定该问什么。
示例提示:
“一次问我一个关于模糊点的问题,优先问那些会改变架构的问题。”
有时,你没法详细描述自己想要什么。也许你没有相应语言,也许事情本身太复杂,完整解释会花很长时间。
这时,最好的办法是给参考。你可以提供图表、文档或图片,但最好的参考通常是源代码。
如果某个库用某种方式实现了你想要的行为,或者你很喜欢某个设计组件,就直接把 Fable 指向对应文件夹,并告诉它要看什么。即使那个参考用的是另一种语言也没关系。与截图相比,源代码能给 Claude 更丰富的标记、结构和语义细节。
示例提示:
“vendor/rate-limiter 里的这个 Rust crate 实现了我想要的确切退避行为。读它,然后在我们的 TypeScript API 客户端里重新实现同样的语义。”
当我认为自己已经准备好实施时,我通常会请 Claude 写一份实施计划供我审阅。这份计划会优先关注最可能发生变化的部分,比如数据模型、类型接口或用户体验流程。这样 Claude 就能暴露出我可能真正需要调整的地方。
示例提示:
“用 HTML 写一份实施计划,但先写我最可能调整的决策:数据模型变化、新类型接口,以及任何面向用户的决策。把机械性的重构放到底部,那部分我信任你。”
实施阶段的关键,是不要假装计划已经消除了所有未知。真正开始做的时候,代码库里的边缘情况、旧逻辑和现实约束仍然会出现。
当我对计划满意后,我会开启一个新会话,并把相关制品传入提示词。这样 Claude 会得到一个全新的上下文窗口,但里面带着它从计划中整理出来的所有信息。比如,我可能会传入一个规格文件和一个原型,请智能体实现它。
但事实是,无论你做了多少计划,总会有未知的未知潜伏着。智能体在工作时可能会发现,因为代码里的边缘情况,它必须采用不同策略。
我会要求 Claude Code 保留一个临时的 implementation-notes.md 或 .html 文件,用来记录它做出的决策,这样我们下次尝试时就能从中学习。
示例提示:
“保留一个 implementation-notes.md 文件。如果你遇到迫使你偏离计划的边缘情况,请选择保守方案,把它记录在 ‘Deviations’ 下,然后继续。”
实施之后,重点不只是“代码改完了”,还包括让别人理解、批准,并确认你自己真正理解了变化。
交付中最重要的部分之一,是获得认同和批准。在最终文档里构建推介材料和解释材料,会带来几方面帮助:
当审阅者和你一开始面对同样的未知时,它能加速理解。
当专家想确认你已经考虑到他们会预期的未知和常见失败点时,它能加快审批。
示例提示:
“把原型、规格和实施说明打包成一个我可以丢进 Slack 争取支持的单一文档。开头先放演示 GIF。”
长时间工作之后,Claude 可能完成了比我意识到的更多的事情。只读代码 diff,通常只能让我对发生了什么有一个浅层理解,因为很多行为取决于既有代码路径。
让 Claude 在给我大量背景之后,反过来测验我对这次变更的理解,可以帮助我真正知道发生了什么。只有当我完美通过测验后,我才会合并。
示例提示:
“我想确保自己理解这次变更中发生的一切。请给我一份 HTML 报告,让我从背景、直觉、具体改动等方面阅读和理解,并在底部放一个我必须通过的测验。”
Fable 的发布视频,是用 Claude Code 端到端剪辑出来的。这对我来说是一个新领域,我绝不是专家。
所以我从自己知道的事情开始。我知道 Claude 可以用代码剪辑视频、转录视频,但不确定它是否足够准确。于是,我请 Claude 向我解释 Whisper 这类转录工具是如何工作的,以及我是否能用 ffmpeg 准确剪掉“嗯”、长停顿等内容。
我想让 Claude 创建一个和我说话内容同步的用户界面,但不确定这是否可能,于是我请它用 Remotion 和转录文本做一个原型视频,看看这条路是否可行。
最后,视频本身看起来有点“软”。我知道这和调色有关,但我并不真正知道调色是什么。我最开始尝试让 Claude 做几个变体供我选择,但我意识到,在调色这件事上,我其实不知道“好”是什么样子。于是我让 Claude 教我调色,以便发现自己的未知。
模型越能匹配你的地图和真实领地,你能用正确方法完成的事情就越多。长期任务出问题时,你可能需要花更多时间定义未知,或者制定实施计划,让你和 Claude 都能适应这些未知。
每一份解释文档、每一次头脑风暴、每一次访谈、每一个原型和每一个参考材料,都是一种低成本方式:在修复代价变高之前,发现你不知道的东西。
所以,下一次开始项目时,请 Claude 帮你发现未知。
文章先用“已知的已知、已知的未知、未知的已知、未知的未知”建立问题框架,说明智能体编码的关键不是写更长提示词,而是减少未知并提前规划未知。随后按工作阶段展开:实施前用盲点检查、头脑风暴、访谈、参考和实施计划暴露模糊处;实施中用 implementation-notes.md 记录偏离计划的原因;实施后用推介材料、解释文档和测验完成理解与交付。最后的 Fable 发布视频案例,把视频转录、Remotion 原型、ffmpeg 剪辑和调色学习串起来,说明 Claude 可以帮助用户把“我不知道自己不知道什么”逐步转化为可操作的提示、原型和验证。
费曼输出