上周末 AI 圈炸了一件事:OpenAI 用未发布的 Astra 一口气证明 10 道前沿数学难题,结果 24 小时内就被 Anthropic 研究员 Levent Alpöge 用公开的 Claude Fable 5 复现了 5 道。更早之前,同样是 Fable 5,直接推翻了躺了 87 年的 Jacobian 猜想,给出三维显式反例,陶哲轩等学者确认无误。
这不是新闻速递,是给你看的实操信号:一个普通 API 就能调用的模型,已经能写通过 Lean 内核验证的数学证明。这篇带你 10 分钟跑通 Fable 5 的 API,并演示怎么让它干「数学证明形式化」这种硬活。
Fable 5 是什么,凭什么值得上手
Fable 5 是 Anthropic 2026 年 6 月发布的 Mythos 级旗舰模型(同架构的 Mythos 5 只对受限客户开放,Fable 5 走标准 API,人人都能调)。它的两个硬指标:
- 数学/形式化验证:SWE-Bench Pro 80.3%(Opus 4.8 只有 69.2%);Lean 数学证明能力独一档——Kevin Buzzard 的博士生用 Fable 两周写了 25 万行 Lean 代码,完成模提升定理的形式化
- 长链自主任务:任务链条越长、步骤越多,性能优势越明显,官方定位就是 agentic-first
定价每百万输入 token 10 美元、输出 50 美元(比 Mythos Preview 便宜 60%)。一句话:数学、编码、长任务,现在的最强公开选择。
第一步:环境准备
需要 Anthropic API key(console.anthropic.com 申请),Python 3.10+:
pip install -U anthropic
export ANTHROPIC_API_KEY="sk-ant-..."第二步:最小调用(Python)
import anthropic
client = anthropic.Anthropic() # 自动读取 ANTHROPIC_API_KEY
message = client.messages.create(
model="claude-fable-5", # 模型 ID,写错会 404
max_tokens=4096, # 务必显式设置!不设它可能一口气写 3 万 token
messages=[{
"role": "user",
"content": "证明:对于任意正整数 n,n² + n + 41 在 n<40 时都是素数吗?请给出严格证明或反例。"
}]
)
print(message.content[0].text)
print(f"Usage: {message.usage.input_tokens} in / {message.usage.output_tokens} out")三个注意点:model 必须是精确的 claude-fable-5;max_tokens 是响应预算上限;每次调用记 message.usage,这是抓成本异常的唯一手段。
第三步:让 Fable 5 写 Lean 证明(核心玩法)
数学证明的硬核用法是「自动形式化」:把自然语言定理转成 Lean 4 代码,丢给 Lean 内核机械验证。这也是 Fable 复现 Astra 成果时干的事——证明过不过,编译器说了算,没有讨价还价的空间。
import anthropic
client = anthropic.Anthropic()
# 让模型输出 Lean 4 + Mathlib 风格的形式化证明
response = client.messages.create(
model="claude-fable-5",
max_tokens=8192,
system=[{
"type": "text",
"text": (
"你是一个 Lean 4 形式化专家。用户的每条数学命题,你都要:\n"
"1. 用 Lean 4 语法写出 theorem 声明(依赖 Mathlib)\n"
"2. 用 tactic 给出可通过内核检查的证明\n"
"3. 如果命题为假,给出反例并写成 Lean 代码\n"
"4. 输出必须是完整可编译的 .lean 文件,不要解释性废话"
),
"cache_control": {"type": "ephemeral"} # 缓存 system prompt,省 ~90% 输入成本
}],
messages=[{
"role": "user",
"content": "定理:任意大于 1 的自然数都存在一个素因子。"
}]
)
print(response.content[0].text)拿到输出后,本地验证:
# 装 Lean 4 + Mathlib(首次编译较慢)
curl -fsSL https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh | bash
elan default stable
lake new demo math # 带 Mathlib 的项目模板
# 把模型输出的代码存到 Demo/Test.lean,然后:
lake build # 编译通过 = 证明成立关键心法:让「验证」回归机器,让「思路」交给模型。你负责把定理表述准确,Fable 5 负责生成证明,Lean 内核负责验收——三方各干各的,最后以 lake build 绿了为准。
第四步:长任务必须开流式
Fable 5 复杂任务经常跑 60 秒以上,非流式调用等于盯着黑屏干等:
with client.messages.stream(
model="claude-fable-5",
max_tokens=8192,
messages=[{"role": "user", "content": "把下面这个 200 行的 Python 模块重构为 4 个可测试单元,返回完整 diff:..."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print(f"\nUsage: {final.usage.input_tokens} in / {final.usage.output_tokens} out")踩坑清单(新手必看)
- 404 on claude-fable-5:要么 API tier 还没开放(模型按区域分批上线,等 24-48h),要么 SDK 太老——先
pip install -U anthropic - 响应被截断:看到
stop_reason: "max_tokens"就是输出被预算砍了。加max_tokens,或把截断输出作为 assistant 消息回传,补一句「continue」接着生成 - 安全路由:Fable 5 对网络安全/生物方向的内容会自动路由到 Opus 4.8 并注明,不是 bug
- 数据留存:Mythos 级模型流量强制保留 30 天(仅安全监控,不用于训练)。介意数据隐私的企业要评估这一点
实践建议
- 从简单引理开始:别一上来就丢开放难题。先让它形式化 Mathlib 里已有的小定理,跑通「模型生成 → lake build 验证」闭环,再逐步加难度
- 拆解任务:陶哲轩用 Claude Code 做形式化时吃了教训——一次给大任务容易跑飞,拆成 lemma 1/2/3 逐步验证,成功率显著更高
- prompt caching 是省钱刚需:长 system prompt 或工具定义重复传,用
cache_control缓存块,输入成本降到约 10% - 数学反例玩法:证明写不出来时,让 Fable 5 先找反例——Jacobian 猜想就是被反例推翻的,这是它最擅长的事之一
资源链接
- Anthropic API 文档:docs.anthropic.com
- Python SDK:github.com/anthropics/anthropic-sdk-python
- Lean 4 官方:lean-lang.org
- Lean 社区数学库 Mathlib:github.com/leanprover-community/mathlib4
- Fable 5 复现 Astra 数学成果报道:36氪
