Claude Opus 5 与 Claude Fable 5:7 个实际 API 测试及生产路由建议
Claude Opus 5 与 Claude Fable 5:7 项实际 API 测试及生产路由建议
Claude Opus 5 还是 Claude Fable 5?如果只看单次成功回复,两个模型都能写出漂亮的数学解答。但真正影响生产体验的,往往是三个不同的问题:任务能否稳定交付、延迟是否适合交互、出错后能否自动恢复。2026 年 7 月 25 日,我们用同一套 OpenAI 兼容 API、相同提示词和参数,在 7 类任务上对两个模型做了测试。结果并非简单的“大模型一定更好”:在两者都能完成的任务上,claude-fable-5 更快、输出更精简;claude-opus-5 最终覆盖了全部 7 类任务;Fable 5 在代码审查和故障 JSON 提示上连续触发内容过滤器(content_filter);而在物理题上,Opus 5 前两次返回 HTTP 200 却只回复了一句无关问候,第三次才正常完成。这说明,为生产选择模型时,不应只有一个模型 ID。更安全的做法是:先按任务类型选定主模型,再通过内容校验、重试和模型降级来兜住异常。
用同一 API 测试 Opus 5 与 Fable 5
快速结论
| 问题 | 本次测试结果 |
|---|---|
| 哪个模型覆盖的任务更多? | Opus 5:主要测试 6/7,重试后 7/7 |
| 哪个模型更快? | 在两者都成功的任务上,Fable 5 P50 总延迟约低 24% |
| 哪个模型输出更简洁? | Fable 5,可见输出 token 平均少约 43% |
| 哪个模型更适合严格的代码审查和 JSON? | 本轮 Opus 5 更稳定;Fable 5 在两题上连续被过滤 3 次 |
| 只看 HTTP 200 可以吗? | 不行;两个模型都曾返回 200 但未完成任务 |
| 应该如何做路由? | 先按任务类型选择主模型,再配合内容校验、重试和降级机制 |
对于经过验证的任务,优先选择 Fable 5;当请求被过滤或返回空响应体时,回退到 Opus 5;若 Opus 返回异常问候语,则自动重试。如果你的输入模式难以预测,或者需要最大限度避免正常业务提示被误过滤,优先考虑 Opus 5。如果任务结构固定、已通过回归测试,且交互速度与输出长度更重要,那么 Fable 5 更适合作为首步调用。
我们的测试方法
测试前,我们调用模型列表端点,确认两个模型 ID 均正确显示:
GET https://cn.crazyrouter.com/v1/models
Claude Opus 5 vs Claude Fable 5: 7个实际API测试与生产路由建议
claude-opus-5
claude-fable-5 所有正式请求都走同一个端点:POST https://cn.crazyrouter.com/v1/chat/completions
通用条件如下:
- 相同的 system prompt
- 相同的 user prompt
- temperature = 1
- 每次测试用相同的 max_tokens
- stream = true
Claude Opus 5 与 Claude Fable 5:7 项实际 API 测试及生产路由建议
不开启工具,不访问网络。系统提示统一只要求准确回答并严格遵循输出格式,不加入任何偏向某一模型的角色设定:"Answer the user's task accurately. Follow every requested output format and length constraint exactly. Do not use external tools." 我们不仅记录最终的文本输出,还记录了以下信息:HTTP 状态码和 finish_reason;响应 ID 和返回的模型;首个可见 token 的到达时间和总延迟;completion tokens 与 reasoning tokens;显示的回答是否达到任务验收标准;异常请求能否通过相同参数重试恢复。这是一套通过 Crazyrouter 网关进行的端到端测试,并非锁定单一上游通道的实验。因此,结果同时反映了模型行为、上游过滤器、网关路由以及当时的通道状态。这套测试适合回答"用户实际通过此 API 会遇到什么情况",但不适合包装成纯离线能力榜单来比较 Claude 系列模型。如果想要了解为什么模型测试必须记录 finish_reason 和 output budget,可以继续阅读 Claude Fable 5 与 GPT-5.5 之间的 max_tokens 重测环节。
7 项任务结果汇总表
| 测试维度 | Claude Opus 5 | Claude Fable 5 | 生产影响 |
|---|---|---|---|
| 精确数学:马尔可夫链 | 通过 | 通过 | 两者均给出正确的一阶矩、二阶矩和方差 |
| 数值物理:耦合振子 | 前两次只返回问候语,第三次通过 | 首次即通过 | Opus 需要在内容层面验收并重试 |
| 约束搜索 | 通过 | 通过 | 两者均找到唯一解 |
| 统计错误修正 | 通过 | 通过 | 两者均驳斥错误前提并给出正确上界 |
| Python 代码审查 | 通过 | 连续 3 次 content_filter | 目前 Fable 不适合处理未经回归测试的代码审查流量 |
| 严格 JSON 事故摘要 | 通过 | 连续 3 次 content_filter | 目前 Fable 不适合处理此类生产事故文本 |
| 实验设计 | 通过 | 通过 | 两者均识别出不配对样本及难度带来的噪声 |
本次主测试中单次任务通过率:Claude Opus 5 为 6/7 = 85.7%。
结果速览
Claude Fable 5:5/7 = 71.4%
添加重试后:Claude Opus 5:7/7
Claude Fable 5:5/7
这里需要特别说明:所谓“任务交付”,不单指请求成功返回 HTTP 200,而是指业务层面拿到了符合题目要求的回答。即便 HTTP 状态码正常、模型名称和 token 用量信息都存在,但如果返回的 body 是空的、被过滤掉了,或者只回了句“你好”,该任务仍算失败。
数学题、约束题与统计题:两个模型都靠谱
马尔可夫链问题: 题目要求用三状态马尔可夫链,计算从状态 1 出发首次到达状态 3 的等待时间:
E₁[τ]、E₁[τ²]、Var₁(τ)
两个模型给出的结果一致:
- E₁[τ] = 5
- E₁[τ²] = 43
- Var₁(τ) = 18
它们也都正确地写出了临时矩阵 Q 以及一阶、二阶矩方程。这道题没有出现“最终数字对但推导过程不一致”的情况。
约束求解问题: 需要将 A、B、C、D、E 五段发言分配到五个时间槽,同时满足相邻、先后顺序、间距以及不相邻等条件。两个模型都找到了唯一排列:A, C, E, B, D
统计纠错题: 题目故意给了一个错误结论:“均值=10,方差=4,所以 P(X≥14)=0.5”。两个模型都指出:仅靠前两阶矩无法唯一确定尾部概率,并用单侧 Chebyshev/Cantelli 不等式得出:
P(X ≥ 14) ≤ 0.2
这三组任务表明,Fable 5 的速度优势并非以牺牲基础推理准确性为代价。对于题意明确、逻辑清晰、可验证的短任务,它完全可以充当更轻量的前置调用角色。
此前对 Claude Fable 5 vs Claude Sonnet 5 以及 GLM-5.2 vs Fable 5 的 output budget 测试也印证了同样结论:评估一个模型是否适合生产环境,必须同时看它的准确率、output budget 和任务交形态。
物理题:Fable 首轮完成,Opus 到第三轮才恢复
这道物理题需要处理一个两自由度阻尼振动系统(含对地阻尼和耦合阻尼),要求计算两个无阻尼固有频率,以及当 ω=8 rad/s 时两个质量块的复数频率响应。参考值:
- ω₁ = 10.0204 rad/s
- ω₂ = 16.2149 rad/s
- |X₁| = 0.14929 m,相位 = -12.15°