Claude Fable实地指南:发现你的未知
A Field Guide to Claude Fable: Finding Your Unknowns
Claude Fable是第一款要求用户主动澄清未知才能获得高质量工作的模型。与Claude Fable协作是一个在实现前后迭代发现未知的过程。通过将问题分解为已知的已知、已知的未知、未知的已知和未知的未知四类,用户可以借助Claude Fable和Claude Code进行盲点检查、头脑风暴、原型设计、实现笔记记录以及答辩解释,从而高效挖掘并解决深藏于代码库和设计与实现中的潜在问题。
Anthropic 官方分享的 Claude Fable 协作方法论,把「发现未知」拆成盲点扫描、原型、面试等可操作步骤,如果你用 Claude Code 但常觉得代理跑偏,这篇是必读实践指南。
在使用 Claude Code 时,我常常想起地图与疆域之间的区别。
地图是对待完成工作的表征,是我的提示词、技能和上下文,是我交给 Claude 的东西。疆域则是工作真正需要发生的地方——代码库、现实世界、它实际的约束条件。

地图与疆域之间的差异,就是我所说的未知。当 Claude 遇到一个未知时,它需要基于对我意图的最佳猜测来做出决定。正在做的工作越多,Claude 可能遇到的未知就越多。
Claude Fable 是我遇到的第一个模型,让我发现工作质量受限于我澄清其未知的能力。
重要的是,仅仅提前规划并不总是足够的。你可能会在实现深处发现未知,或者你的未知可能会指向一个事实:你其实应该用一种完全不同的方式来解决这个问题。
我发现,与 Fable 协作是一个在实现之前、之中和之后不断发现自身未知的迭代过程。
了解你的未知
你的未知是什么?当我带着一个问题来找 Claude 时,我倾向于从 4 个方面来拆解它:
- 已知的已知:这基本上就是我的提示词里的内容。我告诉智能体我想要什么?
- 已知的未知: 有哪些是我还没弄明白、但我清楚自己尚未弄明白的?
- 未知的已知: 有哪些事情显而易见到我永远不会写下来,但一旦看到就能认出来?
- 未知的未知: 有哪些是我完全没有考虑过的?有哪些知识是我尚未意识到的?我是否知道某件事能做到多好?
最优秀的智能体编程者,其未知相对较少。观察像 Boris 或 Jarred 这样的人写提示词,我能明显看出他们对自己想要什么了如指掌。他们与代码库和模型行为都深度同步。

但他们也会预设未知的存在。从很多方面来说,减少并规划你的未知,正是智能体编程的技能。但幸运的是,这是一项你可以通过与 Claude 协作来提升的技能。
帮 Claude 更好地帮你

给 Claude 下指令是一种微妙的平衡。如果你过于具体,Claude 会严格遵循你的指令,即便转向可能更合适。如果你过于模糊,Claude 往往会基于行业最佳实践做出选择和假设,而这些可能并不适合你的任务。
当你没有考虑到自己的未知项时,两种情况下都会失败。你不知道路径何时会布满障碍,也不知道路径何时会畅通无阻,但你仍然希望 Claude 能做出调整。
Claude 可以帮助你更快地发现自己的未知项。它能够极其迅速地搜索你的代码库和互联网,而且对于一般性话题,它知道的远比你多。它还能从失败中更快地迭代。
这个过程中最重要的一点是,向 Claude 提供关于你起点的上下文。例如,告诉它你目前的思路进展到了哪里;说明你对这个问题和代码库的经验水平;让它像思维伙伴一样与你协作。
在本文中,我详细介绍了自己用来揭示这些未知项的一些模式,包括:
实现前:
- 盲区排查
- 头脑风暴与原型
- 访谈
- 参考资料
- 实现计划
实现期间:
- 实现笔记
实施后
- 推介与讲解
- 测验
实施前
盲区扫描
在开始工作时,你能做的最有用的事情之一就是了解自己的盲区。例如,如果你正在代码库中一个全新的部分编写功能,或者使用 Claude 来协助你处理不熟悉的工作,比如迭代一个设计方案,你很可能会遇到大量未知的未知。
你可能不知道该问什么问题、什么才算好、历史上做过哪些工作,或者该避开哪些坑。
在这些情况下,你可以让 Claude 帮你找出你未知的未知,并向你解释。我喜欢直接使用“盲区扫描”和“未知的未知”这两个词。向它提供关于你是谁、你了解什么的背景信息,通常对 Claude 理解与你协作的最佳方式很重要。
示例提示词:
- “我正在添加一个新的认证提供商,但我对这个代码库中的认证模块一无所知。你能做一次盲区扫描,帮我找出相关的未知的未知,并帮我更好地向你提问吗。”
- “我不知道什么是调色,但我需要给这个视频调色。你能教我理解我对调色的未知的未知,让我能写出更好的提示词吗?”
头脑风暴与原型
当我在一个充满未知的已知的领域工作时,涉及那些我只有看到才能定义的标准,我喜欢让 Claude 和我一起头脑风暴和做原型。
在原型阶段尽早识别并说出未知的已知是非常有价值的,因为在实现阶段才发现它们可能(相对)代价高昂。功能或规格中的微小变化可能导致代码实现截然不同,而且你的智能体可能更难回退之前的更改。
例如,你可能只是想看看添加到框架中的按钮长什么样,而不必接好后端路由或在前端维护额外的状态。
另一个例子是视觉设计,对我来说,这是难以言表的东西,但我看到就知道我想要什么。在这些情况下,我会要求针对一个产物给出几种设计方案。
我几乎每次编码会话都会以探索或头脑风暴阶段开始。这帮助我带着明确意图来定义项目范围。Claude 经常能找到我会错过的高价值方法,有时也会见树不见林。头脑风暴能防止我把范围设得太窄或太宽。
示例提示词:
- “我想要一个针对这些数据的仪表盘,但我没有视觉品味,也不知道能做成什么样。给我做一个 HTML 页面,包含 4 个截然不同的设计方向,好让我对它们做出反馈。”
- “在接任何东西之前,先做一个单独的 HTML 文件,用假数据模拟新的编辑器工具栏。我想在你动真正的应用之前先对布局做出反馈。”
- “这是我大致的问题:用户在完成引导流程后流失。搜索代码库,头脑风暴出 10 个我们可以介入的地方,从成本最低到最有野心的排列。我会告诉你哪些让我有共鸣。”
访谈
一旦我完成了充分的头脑风暴,我可能仍然有未知之处。
在这种情况下,我会让 Claude 就任何未知或含糊之处对我进行访谈。当你让 Claude 访谈你时,试着给它提供关于你问题的背景,以引导它的提问。
示例提示词:
- “就任何含糊之处一次一个问题地访谈我,优先问那些我的回答会改变架构的问题。”
参考资料
有时你无法详细描述自己想要什么。比如,你可能找不到合适的语言来表达,或者它太过复杂,描述起来要花上你不少时间。
在这种情况下,最好的办法是提供参考。虽然你可以附上图表、文档或图片,但绝对最好的参考是源代码。
如果你有一个以某种特定方式实现功能的库,或者有一个你非常喜欢的设计组件,只需把 Fable 指向那个文件夹,告诉它要找什么,哪怕它是用另一种语言写的。相比截图之类的方式,这能为 Claude 提供关于标记和结构丰富得多的细节。
示例提示词:
- “vendor/rate-limiter 里的这个 Rust crate 实现了我想要的确切退避行为。读一下它,然后在我们 TypeScript 的 API 客户端里重新实现相同的语义。”
实现计划
当我感觉自己准备好开始实现时,我倾向于让 Claude 整理一份实现计划供我审阅。这份计划聚焦于最可能发生变化的部分,比如数据模型、类型接口或 UX 流程。这让 Claude 能够把我可能真正需要改动的地方呈现出来。
示例提示词:
- “用 HTML 写一份实现计划,但要把我最可能调整的决策放在最前面:数据模型变更、新的类型接口,以及任何面向用户的内容。把机械性的重构埋在底部,那部分我信你。”
实现过程中
实现笔记
一旦我对计划满意,我就会新建一个会话,并把所有产物传入提示词。这样 Claude 就获得了一个全新的上下文窗口,但同时带着它在规划阶段整理出的全部信息。例如,我可能会传入一个规格文件和一个原型,然后让智能体去实现它。
但事实是,无论你做多少规划,总会有未知的未知潜伏其中。智能体可能在工作中发现,由于它在代码里遇到的一个边缘情况,它需要换一种思路。
我会让 Claude Code 维护一个临时的 ‘implementation-notes.md’(或 .html)文件,用来记录它所做的决策,以便我们为下一次尝试积累经验。
示例提示词:
- “维护一个 implementation-notes.md 文件。如果你遇到某个边缘情况,迫使你偏离计划,就选择保守的方案,把它记录在‘Deviations’下,然后继续。”
实现之后
推介与讲解
交付成果最重要的环节之一,就是获得认可与批准。在最终文档中制作推介和说明性材料有助于:
- 当评审者与你当初面对同样的未知时,加速他们的理解
- 当专家希望看到你已经考虑到了他们本会预判的未知因素和常见失败点时,加速审批
示例提示词:
- “把原型、规格说明和实现笔记打包成一份文档,让我可以直接丢进 Slack 争取认可。开头放演示 GIF。”
测验
经过一次长时间的工作会话后,Claude 可能完成的工作比我意识到的要多得多。阅读代码 diff 只能让我对发生的事情有浅显的理解,因为很多行为取决于已有的代码路径。
在给 Claude 提供大量上下文之后,让它就这次改动对我进行测验,有助于我理解发生了什么。只有当我完美通过测验后,我才会合并。
示例提示词:
- “我想确保自己理解这次变更中发生的一切。给我一份关于这些变更的 HTML 报告,让我能够结合上下文、直觉、做了什么等等来阅读和理解,并在底部附上一份我必须通过的关于这些变更的测验。”
这一切如何汇聚在一起:发布 Fable
Fable 的发布视频是端到端使用 Claude Code 剪辑完成的。这对我来说是一个全新的领域,我绝非专家。
所以我从自己确实了解的东西入手。我知道 Claude 可以使用代码来编辑视频并对其进行转录,但我不确定它是否足够准确。于是我让 Claude 向我解释像 Whisper 这样的转录是如何工作的,以及我是否能够用 ffmpeg 准确地剪掉诸如“嗯”或较长的停顿之类的内容。
我希望 Claude 创建一个与我所说的话同步的 UI,但不确定这是否可行,所以我让 Claude 用 Remotion 和一份转录稿制作一个原型视频,看看是否行得通。
最后,视频本身看起来有些暗淡,我知道这是调色的结果,但我其实并不真正了解调色是什么。我的第一次尝试是让 Claude 做几个变体供我挑选,但我意识到,在调色方面我并不知道“好”是什么样子。于是,我转而让 Claude 教我调色的相关知识,以发现自己未知的盲区。
让地图与疆域相匹配
模型越强大,只要方法得当,你能达成的成果就越多。当一项长周期任务的结果不如预期时,很可能你需要花更多时间来明确你的未知项,或者制定一份能让 Claude 和你一起在推进过程中随机应变的实施计划。
每一次讲解、头脑风暴、访谈、原型和参考资料,都是一种低成本的方式,让你在问题变得代价高昂之前,提前发现自己此前不知道的东西。
所以,在启动下一个项目时,不妨先让 Claude 帮你找出你的未知项。
本文由 Anthropic 技术团队成员 Thariq Shihipar 撰写。
来源:Claude:Blog(网页) · claude.com