Grok 4.5 的关键看点:不是跑分,是把 SWE 任务的 token 打下去

2026-07-09 33 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:9 分钟

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、成功率和审查成本一起放进你的评测表。


相关推荐