Kimi K3 和 Claude Fable 5 实测:4 道难题跑完,谁更稳、谁更快?
Kimi K3 和 Claude Fable 5 实测:4 道难题跑完,谁更稳、谁更快?

本文基于 Crazyrouter OpenAI-compatible API 的真实请求与本地 Python 验证。站内原文:https://crazyrouter.com/zh/blog/kimi-k3-vs-claude-fable-5-hard-reasoning-benchmark-2026?utm_source=csdn&utm_medium=article&utm_campaign=kimi_k3_fable5_benchmark_20260718&utm_content=csdn_kimi-k3-vs-claude-fable-5-hard-reasoning-benchmark-2026__canonical&utm_term=kimi-k3%20claude-fable-5
如果只问一句“哪个模型更强”,通常得不到有用答案。
真正落到 API 使用时,开发者更关心的是:复杂数学推导会不会在中间算错、物理题能不能正确拆阶段、长代码会不会被截断、响应到底要等多久。
这次我把 kimi-k3 和 claude-fable-5 放到同一组测试里,用完全相同的接口和题目,分别测试:
- 数学:带模式重叠的偏置硬币停止时间;
- 物理:完全非弹性碰撞、摩擦和弹簧压缩;
- 编程:生产日志去重、时间窗口和多级排序;
- 文本推理:五个人、六条条件的唯一排班。
先说最值得注意的结果:
- Fable 5 本轮平均响应约
37.1 秒,Kimi K3 约108.0 秒,前者接近快了 3 倍; - Kimi K3 的数学推导更稳,Fable 5 虽然最终答案正确,但中间回代出现了算术错误;
- 编程题第一轮两个模型都在
4000 tokens上限处被截断; - 把代码题上限提高到
7000 tokens后,两份 Python 代码都通过了同一组 8 个断言。
这轮没有出现“一个模型四项全胜”的情况。更准确的结论是:Fable 5 快,Kimi K3 在复杂数学自检上更稳,而长代码是否可用,首先受输出预算影响。
一、测试环境:同一接口、同一题目、同一参数
测试时间为 2026 年 7 月 17 日。开始前先请求 /v1/models,确认模型列表中确实存在:
kimi-k3
claude-fable-5
正式请求统一走:
Base URL: https://cn.crazyrouter.com/v1
Endpoint: POST /v1/chat/completions
temperature: 0.2
第一轮 max_tokens: 4000
编程复测 max_tokens: 7000
第一轮每个模型跑 4 道题,共 8 个请求。代码题发生截断后,再用压缩版提示词各复测一次。
评价标准不只是 HTTP 200,还包括:
最终数值是否正确
中间推导能否回代
是否正确处理题目边界
finish_reason 是 stop 还是 length
代码能否在 Python 3.11 直接运行
同一组断言是否全部通过
API 返回的 token 和总耗时
二、总结果:Fable 5 更快,Kimi K3 的数学过程更稳
| 测试任务 | Kimi K3 | Claude Fable 5 | 本轮判断 |
|---|---|---|---|
偏置硬币直到出现 HHTH |
最终值和中间状态均正确,107.6s |
最终值正确,但中间回代有误,37.6s |
Kimi K3 更稳 |
| 非弹性碰撞后压缩弹簧 | 正确,115.6s |
正确,36.4s |
两者通过 |
| Python 日志聚合,4000 tokens | finish_reason=length |
finish_reason=length |
两者都被截断 |
| 五人排班约束推理 | 唯一解正确,96.7s |
唯一解正确,26.9s |
两者通过 |
| Python 日志聚合,7000 tokens | 8 个断言通过,145.2s |
8 个断言通过,46.6s |
两者通过,Fable 更快 |
第一轮四题的平均耗时:
Kimi K3: 108.0 秒
Claude Fable 5: 37.1 秒
需要强调,这只是本轮 API 请求的观测值。渠道负载、缓存和并发都会影响延迟,不能把单轮结果直接当成固定 SLA。
三、数学题:最终答案正确,不代表每一步都正确
数学题的设定是:
P(H) = 3/5
P(T) = 2/5
不断投掷,直到第一次出现 HHTH
模式允许重叠
求期望投掷次数
这道题不能简单用 1 / P(HHTH),因为 HHTH 存在单字符 H 的前后缀重叠。需要建立前缀自动机:
S0 = 空前缀
S1 = H
S2 = HH
S3 = HHT
S4 = HHTH,吸收态
状态方程为:
E0 = 1 + pE1 + qE0
E1 = 1 + pE2 + qE0
E2 = 1 + pE2 + qE3
E3 = 1 + qE0
正确结果:
E0 = 715/54
≈ 13.2407407407
Kimi K3 的表现
Kimi K3 不仅给出 715/54,还正确回代出:
E1 = 625/54
E2 = 475/54
E3 = 170/27
它又用模式 border 公式做了一次独立验证:
E = 1 / P(HHTH) + 1 / P(H)
= 1 / (p³q) + 1 / p
= 715/54
再把硬币改成公平硬币,结果回到经典值 18。状态方程、边界公式和特例三者一致。
Fable 5 的表现
Fable 5 的最终答案也是 715/54,主要状态转移也写对了,但它在回代时把:
E3 写成 421/135
E2 写成 1517/270
这两个中间值与原方程不一致。也就是说,它属于“最终答案正确,但局部验证算错”。
这类问题在实际工作中很隐蔽。如果只检查最后一行,会判定通过;如果下游程序还要继续使用中间值,就可能把错误放大。
所以数学题这一轮,我会把 Kimi K3 判为更稳,而不是简单判成平局。
四、物理题:先碰撞,再压弹簧,能量不能混着算
题目参数:
m1 = 2.0 kg,v1 = 6.0 m/s
m2 = 3.0 kg,初始静止
完全非弹性碰撞
动摩擦因数 μ = 0.20
弹簧劲度系数 k = 500 N/m
g = 9.8 m/s²
第一阶段是完全非弹性碰撞,只能用动量守恒:
V = m1v1 / (m1 + m2)
= 2×6 / 5
= 2.4 m/s
碰撞前后动能:
碰撞前:36.0 J
碰撞后:14.4 J
碰撞损失:21.6 J
第二阶段才是组合体压缩弹簧。最大压缩时速度为 0:
14.4 = 1/2·500·x² + 0.20·5·9.8·x
250x² + 9.8x - 14.4 = 0
x ≈ 0.2212 m
≈ 22.12 cm
两个模型都算对了共同速度、能量损失和最大压缩量,也都指出:如果错误地把碰撞当成弹性碰撞,会得到约 0.360 m 的虚高结果。
Fable 5 进一步写出了弹性碰撞后两车会分离;Kimi K3 则检查了 60% 的动能损失比例。物理题可以判定两者都通过。
五、编程题:4000 tokens 下,两者都没交出完整答案
编程题要求实现:
aggregate(records, start, end)
输入是模型调用日志,需要处理:
- 同一个
request_id的多次重试; - 只保留时间上的最后一条记录;
- 只统计半开区间
[start, end); - 汇总成功率、平均延迟和 input/output/cache tokens;
- 按失败数、平均延迟和请求 ID 做多级排序;
- 兼容
Z时区、缺失 cache 字段和空输入。
第一轮统一给 max_tokens=4000,结果非常有代表性:
Kimi K3: finish_reason = length
Fable 5: finish_reason = length
Kimi K3 的大量输出预算消耗在 reasoning,最终没有形成完整的可见代码;Fable 5 已经输出了主要代码,但尾部说明被截断。
所以第一轮不能直接说“谁不会写代码”。更准确的说法是:两者都没有在给定输出预算内交付完整结果。
提高到 7000 tokens 后再测
第二轮把提示词压缩为“只输出代码和不超过 10 行说明”,同时提高输出上限:
| 模型 | 耗时 | completion tokens | finish_reason | Python 验证 |
|---|---|---|---|---|
kimi-k3 |
145.2s |
5,199 |
stop |
8/8 断言通过 |
claude-fable-5 |
46.6s |
3,710 |
stop |
8/8 断言通过 |
两份代码都能在 Python 3.11 直接执行,覆盖了:
重试记录覆盖旧结果
半开区间右边界不计入
缺失 cache_read_tokens 按 0
空输入不除零
失败数降序
平均延迟降序
request_id 字典序
相同时间戳的稳定选择
Kimi K3 的版本更防御性,会把时间统一转成 UTC,并额外返回 attempts;Fable 5 的版本更短,结构也更直接。
代码能力这一轮可以判平,但 Fable 5 的交付速度明显更快。
六、文本推理题:两者都找到唯一排班
五位工程师需要安排在周一至周五,条件包括:
Ada 不在周一或周五
Bo 早于 Deng,且不相邻
Cici 恰好在 Ada 的下一天
Eli 不在周二
Deng 不在周四
周三不是 Cici
关键排除过程:
- Ada 只能在周二、周三、周四;
- Ada 如果在周二,Cici 就会在周三,直接冲突;
- Ada 如果在周四,剩余 Bo、Deng、Eli 的安排会把 Eli 推到周二;
- 因此 Ada 只能在周三,Cici 在周四;
- 最后由 Bo 早于 Deng 且不相邻,得到 Bo 在周二、Deng 在周五、Eli 在周一。
唯一解:
| 周一 | 周二 | 周三 | 周四 | 周五 |
|---|---|---|---|---|
| Eli | Bo | Ada | Cici | Deng |
两者答案一致,也都给出了可以人工复核的排除过程。这一题没有明显质量差距,主要差别还是响应时间。
七、为什么 Kimi K3 会慢这么多?
第一轮 usage 汇总:
Kimi K3 completion tokens: 13,975
其中 reasoning tokens: 约 12,500
Fable 5 completion tokens: 10,187
本轮响应没有报告 reasoning tokens
Kimi K3 的大量预算用于内部推理,这与数学题更完整的自检相吻合,但也带来两个工程后果:
- 响应明显更慢;
- 长代码任务更容易在有限 token 预算内没有留下足够的最终可见输出。
因此,不能只看模型“会不会做”,还要看预算如何分配。如果业务需要直接交付长代码,应同时监控:
finish_reason
completion_tokens
reasoning_tokens
可见 content 长度
代码测试结果
八、实际选型建议
更适合优先选择 Kimi K3 的情况
- 数学、算法证明或多阶段推导需要更多自检;
- 可以接受更高延迟;
- 请求允许较大的输出预算;
- 最终结果会经过二次验证,而不是追求最快返回。
更适合优先选择 Claude Fable 5 的情况
- 更重视交互速度和短时间交付;
- 任务结构明确,输出不需要超长推理;
- 批量调用对延迟比较敏感;
- 可以通过程序校验中间数值和代码结果。
编程任务的共同建议
无论用哪个模型,都不要只看 HTTP 200。至少检查:
assert response.choices[0].finish_reason == "stop"
assert response.choices[0].message.content
生成代码后还应执行统一测试。否则一个被截断的代码块,也可能被日志系统记录成“请求成功”。
九、如何复现这组测试
可以使用 OpenAI Python SDK 调用 Crazyrouter:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://cn.crazyrouter.com/v1",
)
def run(model: str, prompt: str, max_tokens: int = 4000):
response = client.chat.completions.create(
model=model,
temperature=0.2,
max_tokens=max_tokens,
messages=[
{
"role": "system",
"content": "严格基准测试,只给可验证结论。",
},
{"role": "user", "content": prompt},
],
)
print("model:", response.model)
print("finish_reason:", response.choices[0].finish_reason)
print("usage:", response.usage)
print(response.choices[0].message.content)
return response
run("kimi-k3", "YOUR_TEST_PROMPT")
run("claude-fable-5", "YOUR_TEST_PROMPT")
API endpoint 不需要也不应该添加 UTM 参数。两个模型必须使用完全相同的 prompt、temperature、输出上限和验收程序,结果才具有可比性。
十、这轮测试能说明什么,不能说明什么
它能说明:
两个模型当前都能通过 API 调用
Kimi K3 的数学中间过程在本轮更可靠
Fable 5 在本轮明显更快
两个模型的长代码都可能受输出上限影响
提高预算后,两份 Python 代码都通过了相同断言
它不能证明:
Kimi K3 在所有数学题中都更准确
Fable 5 永远比 Kimi K3 快 3 倍
四道题足以代表所有业务负载
单次延迟能够代表长期 P95 或 P99
更严谨的生产测试应该把每类任务重复 20 至 50 次,统计成功率、P50/P95 延迟、截断率和单位通过任务的成本。
十一、FAQ
1. Kimi K3 是否一定比 Claude Fable 5 更准确?
不能这样概括。本轮数学题 Kimi K3 的中间校验更准确,但物理、代码和文本推理的最终结果都没有拉开明显差距。
2. 为什么代码题第一轮两个模型都失败了?
不是 API 失败,而是 max_tokens=4000 不够,finish_reason 都是 length。提高到 7000 后,两份代码均完整返回并通过测试。
3. 为什么 Kimi K3 返回更慢?
本轮接口报告 Kimi K3 使用了大量 reasoning tokens。更长的推理过程通常意味着更高延迟,也会压缩最终可见内容的预算。
4. Fable 5 数学题最终答案还能用吗?
最终值 715/54 是正确的,但它给出的两个中间状态值错误。如果业务只需要最终答案可以通过;如果要复用推导过程,应重新计算或程序回代。
5. 哪个模型更适合写代码?
本轮提高预算后,两者代码都通过 8 个断言。Fable 5 更快、更短;Kimi K3 的输入处理更防御性。应根据真实代码库继续测试,而不是只看这一题。
6. 这次延迟可以当作线上性能承诺吗?
不可以。上游负载、渠道、缓存和并发都会改变延迟。生产决策应使用多轮采样的 P50、P95 和 P99。
十二、最终结论
这轮 kimi-k3 和 claude-fable-5 对比,最有价值的不是给两个模型排一个绝对名次,而是暴露了三个真实的工程问题:
- 最终答案正确,不代表中间过程没有错误;
- HTTP 200 不代表长代码完整返回;
- 模型的 reasoning 预算会直接影响延迟和最终可见输出。
如果任务偏数学推导、允许较长等待,Kimi K3 本轮表现更稳;如果任务更在意交互速度,Fable 5 更有优势。对于代码生成,两者都应该配合足够的输出预算和自动化测试。
复现入口:
- Crazyrouter 注册:https://crazyrouter.com/register?utm_source=csdn&utm_medium=article&utm_campaign=kimi_k3_fable5_benchmark_20260718&utm_content=csdn_kimi-k3-vs-claude-fable-5-hard-reasoning-benchmark-2026__body_cta&utm_term=kimi-k3%20claude-fable-5
- API Base URL:
https://cn.crazyrouter.com/v1 - 建议记录字段:
requested_model、returned_model、finish_reason、completion_tokens、reasoning_tokens、总耗时和本地测试结果。
CSDN 图片与原文
本文图片使用 Crazyrouter 稳定公网图床,已验证返回 HTTP 200;文中没有使用 GitHub Raw、本地路径或需要鉴权的图片地址。
完整站内原文与后续更新:
https://crazyrouter.com/zh/blog/kimi-k3-vs-claude-fable-5-hard-reasoning-benchmark-2026?utm_source=csdn&utm_medium=article&utm_campaign=kimi_k3_fable5_benchmark_20260718&utm_content=csdn_kimi-k3-vs-claude-fable-5-hard-reasoning-benchmark-2026__canonical&utm_term=kimi-k3%20claude-fable-5
建议标签:Kimi K3、Claude Fable 5、大模型测试、AI API、Python
更多推荐




所有评论(0)