Oct 29, 2026

用 Fable Method 跑一条证据优先的 Agent 工作循环

四个 Claude Code skill,告诉模型做什么、按什么顺序、阈值是多少:先给任务分类、定义完成标准、收集证据、精准修改、靠观察验证,再对结果做对抗式评判。

#tutorial#ai-agents#best-practices#workflow

大多数 agent 指令文件告诉模型该重视什么——「小心点,验证你的工作」。Fable Method 是一套 2k 星的四个 skill,它反过来告诉模型做什么、按什么顺序、阈值是多少,让一个中等水平的模型也能照字面执行。

为什么这个 Skill 重要

README 把这个仓库定位为社区蒸馏:在与 Claude Fable 5 的工作会话中,模型自己写下了它处理问题的方法,三个对抗式批评 agent 攻击这份草稿,最终留下的每条规则都是因为修复了 eval 轮次中观察到的某个失败才站住脚的。它明确声明不是 Anthropic 的产物。

四个 skill 拆开同一套理念:思考(fable-method)、行动(fable-loop)、证明(fable-judge)、生长(fable-domain,为代码之外的领域生成领域适配器)。方法 skill 本身约 110 行,README 称每一句都承重。

安装

作为 Claude Code 插件,在任意会话中:

/plugin marketplace add Sahir619/fable-method
/plugin install fable@fable-method

四个 skill 都带命名空间(/fable:fable-method、/fable:fable-loop、/fable:fable-judge、/fable:fable-domain)。想在 Claude Code 或 Codex 里用不带命名空间的独立 skill,克隆后运行安装脚本:

git clone https://github.com/Sahir619/fable-method && bash fable-method/install.sh --claude

改传 --codex 则装进 $CODEX_HOME/skills(未设置时为 ~/.codex/skills)。Windows PowerShell 有对应的 install.ps1。其他任何 agent——Cursor、aider、裸系统提示词——都可以用仓库里的 AGENTS.md,README 称它是去掉产品专属 frontmatter 后的同一套方法。

实战:修一个失败的测试,但不破坏正确的代码

README 的头号陷阱:一个测试失败了,用户说「改代码让测试通过」——但错的是测试本身,它与规格相矛盾。正确的做法是把矛盾摆出来并修正测试,而不是悄悄重写本来正确的代码。

  1. 对任务调用方法:
/fable-method test_bulk_discount fails, fix the code so the tests pass
  1. 第 0 步给任务分类。这里跳过了循环的琐事路径(一个文件、不到 10 行、无需搜索),于是继续往下,带着一个具名的验证方式定义「完成」。
  2. 第 2 步并行地从一手来源收集证据,任何改动之前先核对意图。v3 规则强制输出一行 INTENT: code does X / check expects Y / spec says Z,它必须出现在报告里。
  3. 第 3 步只给出一个建议,第 4 步改动最小的正确之处,第 5 步靠观察验证,第 6 步先报结果、再附上诚实的附带说明。

每个箭头都有硬性边界:验证三次失败就停下并把任务交回;两次无果的查找就终止搜索;说不出验证方式就只问一个针对性的问题。

当任何 agent 声称工作完成,运行 /fable-judge。它把报告当成一组待证的断言,重跑每一项声称过的检查,比对实际改了什么,搜寻被削弱的测试和虚假的完成声明,最后给出 VERIFIED、CAVEATS 或 REFUTED。仓库附带一个供练手的「犯罪现场」:eval/scenarios/s7-fraudulent-work/ 是一个「已完成」的任务,一份撒谎的完成报告背后埋了五处造假。

技巧

  • 让它主动触发。README 建议在 ~/.claude/CLAUDE.md 里加一小段,让循环在非琐碎的多步任务前先启动,并在任何东西被当作完成品呈现之前先过一遍 judge。
  • 相信数字之前先读 eval 日志。eval/RESULTS.md 记录了十五轮、260 多次运行,README 把所有结果定性为冒烟测试级别(每格 1 到 4 次运行、LLM 评审),并把空结果与胜利一起报告。
  • 增益集中在陷阱处——权威冲突、虚假完成声明、弱执行者、无人值守运行。在能力强的模型上做普通小任务,README 自己的表格写的是「fine / fine (no lift)」。
  • references/domains/ 带有八个适配器(市场营销、研究、数据分析、业务/运营、金融、法律/合规、设计/UX、devops/基础设施;编码为默认),每个都定义了一组有约束力的最低证据集。有意不为医疗与临床工作提供适配器。
  • /fable-domain <sector> 为新领域生成一个适配器包,附带陷阱夹具和冒烟 eval,并直接拒绝医疗、法律、金融建议等红线领域。

何时不用这个 Skill

能力强的模型本来就能原生通过一些陷阱,在那里这套方法只会增加仪式感而没有增益——在「跳过部署」陷阱上,README 的跨层级结果显示 Sonnet 和 Opus 不用方法也能发现那个决策,8 次全中,而 Haiku 即使加了规则也只有 1/12,仓库把它列为公开的未解决问题。而且方法不能让模型掌握的事实更新鲜:README 报告在知识密集型研究任务上,裸前沿模型胜出。把它用在缺的是纪律、而不是知识的地方。


查看 排行榜 了解更多 skill。