Grok 4.5 发布时抛出的信息很直接:在 DeepSWE、SWE Bench Pro、Terminal Bench 等基准上对标 GPT-5.5 和 Opus 4.8。但对工程团队更有冲击力的不是“分数又高了”,而是 SWE Bench Pro 里的 token 消耗:Grok 4.5 平均 15,954 token 完成任务,Opus 4.8 平均 67,020 token,差距约 4.2 倍。
如果你把 LLM 当聊天工具,这只是一个漂亮数字;如果你把它接进代码修复、CI Agent、自动化终端任务,这个数字直接对应成本、延迟、上下文污染和失败重试次数。
token 效率为什么比单次跑分更硬
软件工程类 Agent 不像普通问答。它会读文件、搜索符号、运行测试、解释报错、修改代码,再重复几轮。每一步都在吃 token。
SWE Bench Pro 这样的任务里,平均 token 从 67,020 降到 15,954,工程含义至少有三层:
- 单位任务成本下降:同样修一个 issue,输入输出 token 越少,账单越稳定。
- 上下文压力下降:模型不需要把大量无关日志和文件塞进上下文,越不容易在后半段“迷路”。
- 批量执行更现实:如果一个团队每天跑几十到几百个自动修复任务,4 倍 token 差距会变成预算和吞吐差距。
需要注意的是,摘要只给了平均 token 数据,没有给出价格、成功率细节、任务分布和重试策略。所以不能只用这个数字推导“总成本一定低 4 倍”。但它足以提醒我们:评估代码 Agent 时,不能只看 pass rate,还要把 token 当成一等指标。
对标 GPT-5.5 和 Opus 4.8:该看什么,不该看什么
Grok 4.5 在 DeepSWE、SWE Bench Pro、Terminal Bench 上对标 GPT-5.5 和 Opus 4.8,这说明它的发布重点放在工程任务能力上,而不是泛泛的聊天体验。
对开发者来说,基准有参考价值,但不要把它直接等同于你仓库里的表现。真实仓库有这些变量:
- monorepo 里依赖图复杂,模型是否能少读无关文件;
- 测试耗时长,Agent 是否会选择正确的最小测试集;
- 代码风格严格,修改是否符合现有模式;
- 错误日志很长,模型是否能压缩噪声;
- 任务描述模糊,模型是否会先澄清约束。
所以,Grok 4.5 的 token 效率数据更适合触发一次内部评测:拿你的真实 issue、真实测试、真实价格表,比较“成功修复一个任务需要多少钱、多久、多少次重试”。
可以这样实践:给代码 Agent 加一张 token 账单
下面是一个可直接运行的 Python 小脚本。它不调用任何模型,只用发布摘要里的平均 token 数做预算模拟。你可以把环境变量改成实际供应商价格,估算一批 SWE 任务的 token 成本差异。
运行前按需修改:
TASKS:你计划每天或每月跑多少个代码任务;PRICE_PER_1M_TOKENS:每 100 万 token 的价格,示例默认值只是占位;RETRY_RATE:失败后重跑比例,例如0.2表示平均多 20% token。
#!/usr/bin/env python3
import os
MODELS = {
"Grok 4.5": 15954,
"Opus 4.8": 67020,
}
TASKS = int(os.getenv("TASKS", "100"))
PRICE_PER_1M_TOKENS = float(os.getenv("PRICE_PER_1M_TOKENS", "10"))
RETRY_RATE = float(os.getenv("RETRY_RATE", "0.0"))
print(f"Tasks: {TASKS}")
print(f"Price: ${PRICE_PER_1M_TOKENS:.2f} per 1M tokens")
print(f"Retry overhead: {RETRY_RATE:.0%}\n")
baseline_cost = None
for name, avg_tokens in MODELS.items():
total_tokens = avg_tokens * TASKS * (1 + RETRY_RATE)
cost = total_tokens / 1_000_000 * PRICE_PER_1M_TOKENS
if baseline_cost is None:
baseline_cost = cost
delta = "baseline"
else:
delta = f"{cost / baseline_cost:.2f}x vs baseline"
print(f"{name}")
print(f" avg tokens/task: {avg_tokens:,}")
print(f" total tokens: {total_tokens:,.0f}")
print(f" estimated cost: ${cost:,.2f} ({delta})")
示例运行:
TASKS=500 PRICE_PER_1M_TOKENS=8 RETRY_RATE=0.15 python3 token_budget.py
这个脚本的价值不在于“算出绝对真相”,而是让团队开始用同一张表讨论:同样的成功率下,token 少多少;同样的预算下,能跑多少任务;同样的任务量下,重试率能容忍多少。
更接近真实评测:记录每次 Agent 调用
如果你已经有内部代码 Agent,可以把每次模型调用记录成 JSON Lines,后续按任务聚合。下面是一个最小日志格式,适合接到 CI 或 Agent runner 里。
{"task_id":"issue-1024","model":"grok-4.5","step":"read_files","input_tokens":4200,"output_tokens":380,"success":true}
{"task_id":"issue-1024","model":"grok-4.5","step":"patch","input_tokens":6100,"output_tokens":920,"success":true}
{"task_id":"issue-1024","model":"grok-4.5","step":"test_fix","input_tokens":2800,"output_tokens":410,"success":true}
可以用下面的 Python 聚合:
#!/usr/bin/env python3
import json
import sys
from collections import defaultdict
stats = defaultdict(lambda: {"tokens": 0, "calls": 0, "success": True})
for line in sys.stdin:
event = json.loads(line)
key = (event["model"], event["task_id"])
stats[key]["tokens"] += event.get("input_tokens", 0) + event.get("output_tokens", 0)
stats[key]["calls"] += 1
stats[key]["success"] = stats[key]["success"] and event.get("success", False)
by_model = defaultdict(list)
for (model, task_id), item in stats.items():
by_model[model].append(item)
for model, items in by_model.items():
avg_tokens = sum(i["tokens"] for i in items) / len(items)
success_rate = sum(1 for i in items if i["success"]) / len(items)
avg_calls = sum(i["calls"] for i in items) / len(items)
print(f"{model}: avg_tokens={avg_tokens:.0f}, success_rate={success_rate:.1%}, avg_calls={avg_calls:.1f}")
运行:
python3 aggregate_agent_tokens.py < agent_calls.jsonl
这类内部数据比单看榜单更有用。榜单告诉你模型上限,日志告诉你它在你仓库里的稳定性。
采用建议:别只替换模型名
如果准备试 Grok 4.5,建议把评测拆成小步:
- 选 20 到 50 个历史 issue,包含 bugfix、测试修复、依赖升级、终端任务;
- 对每个模型使用相同提示词、相同工具权限、相同超时设置;
- 同时记录成功率、总 token、 wall time、重试次数、人工审查时间;
- 把超长日志、无关文件读取、重复测试运行单独标记出来;
- 不要只看平均值,P90/P95 token 更能暴露失控任务。
Grok 4.5 这次发布最值得关注的地方,是把“模型更强”这个笼统说法压到了一个工程指标上:完成同类 SWE 任务平均用了多少 token。对于已经把 LLM 放进研发流水线的团队,这比一次漂亮演示更接近真实生产问题。下一步不是盲目迁移,而是把 token、成功率和审查成本一起放进你的评测表。