Fable 实地指南:发现你的未知(12分钟阅读)
摘要
面向使用 Claude(Fable 5)的开发者的实地指南,帮助在项目实施前和期间主动发现并解决未知问题,从而减少代价高昂的错误。
查看缓存全文
缓存时间: 2026/07/06 22:34
地图与疆域之间的差异在于未知。当Claude遇到未知时,它需要基于最佳猜测做出决策。完成的工作越多,Claude可能遇到的未知就越多。这篇文章讨论如何利用Claude来发现未知。在项目开始前发现你的未知,是一种低成本的方式,让你在问题变得昂贵之前就意识到自己不知道什么。
寓言实地指南:发现你的未知
与Claude Fable 5的合作不断提醒我一个老道理:地图并非疆域。
地图,即待完成工作的呈现,是我的提示词、技能和上下文——我交给Claude的东西。疆域是工作需要实际发生的地方——代码库、现实世界及其实际约束。
地图与疆域之间的差异,我称之为未知。当Claude遇到未知时,它需要基于对我想法的最佳猜测做出决策。完成的工作越多,Claude可能遇到的未知就越多。
Fable是第一个让我觉得工作质量受限于我阐明其未知能力的模型。
重要的是,仅仅提前规划往往不够。你可能会在实现深处发现未知,或者你的未知可能指向一个事实:你应该用完全不同的方式解决问题。
我发现与Fable合作是一个迭代过程:在实现前、实现中和实现后不断发现我的未知。
我在这里做了一些用于发现未知的示例制品,但请务必回来阅读,以建立何时使用它们的直觉。
认识你的未知
你的未知是什么?当我带着一个问题来找Claude时,我通常将其分解为四种方式:
-
已知的已知: 这基本上就是我提示词中的内容。我告诉智能体我想要什么。
-
已知的未知: 我还没弄明白的事情,但我意识到自己没弄明白。
-
未知的已知: 那些明显到我永远不会写下来,但见到就能认出来的事情。
-
未知的未知: 我完全没有考虑过的事情?我不知道自己缺乏哪些知识?我是否知道事情可以做到多好?
最好的代理式编程者擅长使自己拥有的未知相对较少。观察像Boris或Jarred这样的人写提示词时,我明显感觉到他们知道自己想要什么,而且知道得很详细。他们与代码库和模型行为都深度同步。
但他们也假设未知的存在。从很多方面来说,减少并规划好你的未知,正是代理式编程的技能。幸运的是,这是一种可以通过与Claude合作来提升的技能。
帮助Claude帮助你
指导Claude需要微妙的平衡。如果你过于具体,Claude即使在你应该转向时也会遵循你的指令。如果你过于模糊,Claude通常会根据行业最佳实践做出选择和假设,而可能不适合你的任务。
当你没有考虑自己的未知时,你会两样都失败:你不知道路径何时会充满障碍,也不知道路径何时是畅通的,但你仍然希望Claude能够转弯。
Claude可以帮助你更快地发现自己的未知。它能极其快速地搜索你的代码库和互联网,并且对大多数话题的了解远超于你。它还能更快地从失败中迭代。
这个过程最重要的部分是给Claude提供关于你起点的上下文。例如,告诉它你在思考过程中的位置;透露你对该问题和代码库的经验;让它像一个思考伙伴一样与你合作。
我之前写过关于使用HTML与Claude合作的文章,在几乎所有情况下,HTML制品是可视化和呈现它的最佳方式。
在本文中,我将详细介绍一些我用来揭示这些未知的模式。我并非每次都会使用每种技巧,但这组技巧很有用,值得掌握。
实现前
盲点扫描
开始工作时,你能做的最有用的事情之一就是了解自己的盲点。例如,如果你在一个不熟悉的代码库部分编写新功能,或者使用Claude协助你不熟悉的工作(比如迭代设计),你很可能会有很多未知的未知。
你可能不知道要问什么问题,不知道好的标准是什么,不知道历史上有过什么工作,也不知道要避开哪些坑。
为此,你可以请Claude帮你找到你的未知的未知,并向你解释。我喜欢直接用“盲点扫描”和“未知的未知”这些词。提供关于你是谁以及你知道什么的上下文通常很重要。
示例提示词:
-
“我正在添加一个新的身份验证提供商,但我对这个代码库中的身份验证模块一无所知。你能进行一次盲点扫描,帮我找出相关的未知的未知,并帮助我更好地向你提问吗?”
-
“我不知道什么是调色,但我需要给这段视频调色。你能教我有关于调色的未知的未知,以便我能更好地编写提示词吗?”
头脑风暴与原型
当我在一个包含很多未知的已知的领域工作时,这些未知的已知是我只有看到才能定义的标准,我倾向于让Claude与我一起头脑风暴和制作原型。
在原型阶段尽早识别并表述出未知的已知非常有价值,因为在实现过程中发现它们会(相对)昂贵。功能或规范中的小改动可能导致代码实现截然不同,而你的智能体可能更难撤销之前的更改。
例如,你可能只是想看看在框架上添加一个按钮的效果,而不必连接后端路由或在前端维护额外状态。
对我来说,视觉设计很难用语言表达,但我看到就知道想要什么。这种情况下,我会要求几种设计方法制作一个制品。
我几乎每次编程会话都会从探索或头脑风暴阶段开始。这有助于我从意图出发来定义项目范围。Claude常常能找到我本会错过的高价值方法,有时也会只见树木不见森林。头脑风暴防止我将范围设得过窄或过宽。
示例提示词:
-
“我想要一个用于这些数据的仪表板,但我没有视觉品味,也不知道可能实现成什么样。给我做一个包含4种截然不同设计方向的HTML页面,这样我可以给出反应。”
-
“在真正连接之前,先做一个包含假数据的单一HTML文件,模拟新的编辑器工具栏。我想在接触实际应用之前对布局做出反应。”
-
“这是我的粗略问题:用户在入门后流失了。搜索代码库并头脑风暴出10个我们可以干预的地方,从最便宜到最雄心勃勃。我会告诉你哪些方案值得跟进。”
访谈
一旦我做了足够的头脑风暴,很可能仍然存在未知。
在这种情况下,我会让Claude就任何未知或模糊之处对我进行访谈。当让Claude采访你时,尽量给它提供关于你问题的上下文,以引导它的提问。以下是一些例子。
示例提示词:
- “一次问一个问题,针对任何模糊的地方。优先问那些我的答案会改变架构的问题。”
参考
有时你无法详细描述你想要什么。例如,你可能缺乏相应的语言,或者事情太复杂,需要花很长时间描述。
这种情况下,最好的答案是提供一个参考。虽然你可以包含图表、文档或图片,但最好的参考是源代码。
如果你有一个以某种方式实现某个功能的库,或者一个你非常喜欢的设计组件,只需将Fable指向该文件夹,告诉它要查找什么,即使它是用不同语言写的。
这也是Claude Design的工作原理。你不必传递一个文件(尽管你也可以那样做)。你可以指向一个你喜欢网站上的模块,它会读取底层代码,而不仅仅是截图。这样可以提供关于标记、结构以及组件实际构建方式的更丰富细节。
示例提示词:
- “vendor/rate-limiter中的这个Rust crate实现了确切的后退行为。阅读它,并在我们的TypeScript API客户端中重新实现相同的语义。”
实现计划
当我认为自己准备好实现时,我倾向于让Claude制定一个实现计划供我审查,重点关注最可能发生变化的部分,例如审查数据模型、类型接口或用户体验流程。这可以让Claude揭示出我可能实际上需要修改的东西。
示例提示词:
- “用HTML写一份实现计划,但把最可能被我修改的决策放在前面:数据模型更改、新类型接口以及任何面向用户的内容。把机械性的重构部分埋在后面,这部分我信任你。”
实现过程中
实现笔记
一旦我对计划感到满意,我会新建一个会话,并将任何制品传递给提示词。例如,我可能会传入一个规范文件和一个原型,并让智能体去实现。
但事实是,无论你做多少规划,总会有隐藏的未知的未知。智能体在工作的过程中可能会因为发现代码中的一个边缘情况而需要采取不同的策略。
我会让Claude Code维护一个临时的“implementation-notes.md”(或.html)文件,记录它所做的决策,这样我们可以在下次尝试时从中学习。
示例提示词:
- “维护一个implementation-notes.md文件。如果你遇到一个迫使你偏离计划的边缘情况,选择保守方案,将其记录在‘偏差’部分,然后继续。”
实现后
推介与说明
交付某物时,最重要的部分之一是获得支持与批准。在最终文档中构建推介和说明制品有助于:
-
当审查者从和你一样的未知出发时,加速理解
-
当专家想看到你考虑了他们会预期的未知和常见失败点时,加速批准
示例提示词:
- “将原型、规范和实现笔记打包成一个文档,我可以放到Slack里争取支持。以演示GIF开头。”
测验
在长时间工作会话之后,Claude可能完成了比我意识到的更多的事情。阅读代码差异只能让我对发生的事情有浅薄的理解,因为很多行为取决于现有的代码路径。
让Claude在提供大量上下文后,就更改内容对我进行测验,有助于我理解发生了什么。只有当我完美通过测验后,我才会合并。
示例提示词:
- “我想确保自己完全理解这个更改中发生的一切。给我一份关于更改的HTML报告,包含上下文、直觉、做了什么等,并在底部附上一份我必须通过的测验。”
如何整合:发布Fable
Fable的发布视频完全由Claude Code编辑。这对我是个新领域,我绝非专家。
所以我从自己知道的事情开始。我知道Claude可以用代码编辑视频和转录,但我不确定它是否足够精确。然后我让Claude向我解释像Whisper这样的转录是如何工作的,以及我能否用ffmpeg准确剪掉像“嗯”或长时间停顿之类的东西。
我希望Claude创建一个与我说的话同步的UI,但我不确定它能否做到,所以我让Claude用Remotion和转录创建一个视频原型,看看是否可行。
最后,视频本身看起来有点暗淡,我知道这是调色的结果,但我并不真正了解什么是调色。我的第一次尝试是让Claude做几个变体供我选择,但我意识到当涉及到调色时,我不知道“好”的标准是什么。于是,我转而让Claude教我关于调色的知识,以发现我的未知。
你可以在此处观看更深入的说明。
让地图与疆域匹配
模型越好,合适的方法能达成的成就就越多。当一个长视野任务出错时,很可能你需要花更多时间定义你的未知,或者制定一个允许Claude在其间即兴发挥的实现计划。
每一个说明、头脑风暴、访谈、原型和参考,都是一种低成本的方式,让你在问题变得昂贵之前发现你不知道的东西。
所以,开始你的下一个项目时,让Claude帮你找到你的未知。
相似文章
@mattshumer_:以下是我关于充分利用Claude Fable 5的深度指南,让你能构建出像我演示中那样不可思议的作品。
一份关于如何有效提示Claude Fable 5的详细指南,强调给模型提供高层次目标而非逐步指令,设定内规,并明确质量标准。
@trq212: 我发现使用Fable最重要的部分是发现自己的未知,以便更好地提示它,这里……
一位用户分享了在使用AI工具Fable时,通过识别自己的知识盲点来改进提示的方法。
@dzhng: 将这篇文章输入Fable,我们创建了一个探索未知技能。它扫描你的代码库,然后逐个问题采访你……
一个用于构建软件工厂的可组合AI技能的个人库,包括一个探索未知技能,该技能扫描代码库并采访开发者以消除已知和未知的未知。
@FinanceYF5: Thariq的Fable 5使用心法——找到你的"未知数" 1/ 有人问Claude Code的开发者Thariq,为什么他用Fable 5做出来的东西总是更好。 他说秘诀是一个老道理:地图不是领地。
Thariq(Claude Code 开发者)分享使用 Fable 5 的心法:核心是不要将地图当作领地,要找到自己的“未知数”。这是一个 Twitter 线程。
@shadcn:你只有几天时间使用 Claude Fable。以下是如何充分利用它。介绍 /improve:使用你最强的模型……
介绍 /improve,这是一个工具,它利用 Claude 的最强模型来审查你的代码库,识别 bug、性能问题、技术债务、缺失的测试,并编写计划供更便宜的模型执行。