title: "三模型接力实测 | GLM对标Opus" category: 人工智能 tags:


1. 这不是普通跑分,而是工程接力

很多模型对比最大的问题,是看起来在比较模型,其实混进了不同代码库、不同提示词、不同工具权限和不同任务难度。

这次样本有几个比较好的地方:

但它也不是严格head-to-head。三个模型接手的是不同阶段:

模型 主要阶段 Turn数 角色定位
GLM-5.2 主体开发 190 turn 主线实现、长程推进、深度修复
Sonnet 4.6 E4清账 25 turn 快速验证、批量修复、收尾整理
Opus 4.7 medium finding调试 26 turn 深层Bug定位、复杂失败排查

所以这篇不做“谁赢谁输”的榜单,而是回答一个更落地的问题:如果团队通过4SAPI这类大模型API中转站同时接入多种代码模型,该怎么分配任务,才能既稳又省。

2. 先看延迟:GLM没有拖后腿

这组数据里,最容易让人意外的是延迟。

指标 GLM-5.2 Sonnet 4.6 Opus 4.7
平均单turn耗时 16.4秒 17.0秒 17.9秒
最慢单turn 52.4秒 52.4秒 33.7秒
平均文本输出 452字/turn 322字/turn 442字/turn
Prompt cache命中率 约47%-50% 约47%-50% 约47%-50%

GLM-5.2平均单turn最快,Opus 4.7峰值最稳,Sonnet 4.6文本输出最短。这里要注意,最慢turn主要受大文件Read和大块Edit影响,不应该简单归因到模型“思考慢”。

对工程使用者来说,这个结论很重要:如果一个国产模型能力接近顶级闭源模型,但延迟没有明显劣势,那么它就有资格进入主力路由,而不是只做备用选项。

3. 真正拉开差距的是深度调试

Coding Agent最难的不是写出第一版代码,而是在测试反复失败时还能不能自己爬出来。

Opus 4.7在这组样本里的高光,是处理一个DOM结构陷阱。M1测试改完仍然失败,它没有停在表层断言,而是继续向下追,最后定位到querySelector命中的不是原始行,而是overlay里的克隆节点。后续又遇到test-ordering bleed,判断需要在afterEach里按名字清理所有window listener

这类问题不是“补个if”能解决的,它要求模型理解DOM结构、测试隔离、事件监听和失败顺序之间的关系。Opus 4.7在这里表现出的是典型的一线调试能力:不急着改,先把失败链条拆开。

GLM-5.2的高光来自另一种错误恢复场景。它曾被reviewer指出,自己写的is_connected是Playwright Node.js里的API,Python版本根本不存在。关键不在于它犯了错,而在于它怎么收拾这个错:

承认问题
-> 查文档确认API差异
-> 换成 page.wait_for_function
-> 检查 time 模块是否变成 dead import
-> 编译验证
-> 重读 helper 确认接线一致
-> 全量回归

这条链路很像高级工程师排错:不是重新生成一段看起来能跑的代码,而是确认根因、替换方案、查副作用、跑回归。也正是这点,让GLM-5.2在这组样本里可以和Opus 4.7放到同一档讨论。

4. TDD纪律:强模型要会“停手”

一个成熟Coding Agent不只是会写代码,还要知道什么时候不能写。

GLM-5.2在主体阶段的表现,最值得记的是边界感。实现完成后,它没有抢commit,而是停下来等授权;reviewer给finding后,它逐条确认、修改、再用Self-check表格回报。这种行为很适合企业团队,因为生产代码最怕模型“热心过头”。

Opus 4.7则体现了强TDD习惯:先写回归测试确认RED,再进入修复。它不是直接按照直觉改实现,而是先让失败变得可复现。这个动作会多花一点时间,但能显著降低“模型改对了现象、改错了原因”的风险。

两者还有一个共同点:它们会主动解释规则,而不是机械执行规则。比如TDD要求一次一个测试,但如果多个round-trip case走的是同一条attrEsc路径,GLM会判断可以合并成参数化测试,并说明理由。这种“遵守流程但不被流程绑死”的能力,是深度Agent和普通代码补全的分界线。

5. Sonnet 4.6:不是最深,但很适合清账

Sonnet 4.6在这组样本里的角色很明确:接E4段落,reviewer一次性丢来4个carry-forward bug,它在25 turn、约7分钟内全部清完,测试从926跑到935。

它的优势不在长篇推理,而在执行效率:

这类模型在团队里很有价值。不是所有任务都值得上最强模型。很多收尾阶段的问题,关键是快、稳、少废话。Sonnet 4.6正好适合这类“清账型”工作。

6. 三个模型的推荐分工

基于这次样本,可以把三者分成三种角色。

任务类型 推荐模型 原因
主体实现 GLM-5.2 / Opus 4.7 长程推进、TDD纪律、复杂上下文处理
深度调试 GLM-5.2 / Opus 4.7 能处理DOM陷阱、API误用、测试隔离等深层问题
收尾清账 Sonnet 4.6 速度快、输出短、适合批量确认finding
Review后修复 GLM-5.2 对finding响应完整,能做Self-check
失败测试定位 Opus 4.7 逐层诊断能力强,峰值延迟更稳
批量小修 Sonnet 4.6 性价比更好,不必动用最强模型

一个务实的接法是:

主体开发:GLM-5.2
复杂失败:GLM-5.2 或 Opus 4.7
最后清账:Sonnet 4.6
关键提交前Review:Opus 4.7 或 GLM-5.2

如果你的团队通过4SAPI做统一接入,可以把这套分工写进模型路由规则里。不是让业务代码“自动迷信某个模型”,而是根据任务阶段选择更合适的模型。

7. 怎么把它落到4SAPI路由里

在大模型API中转站里,最实用的不是手动切模型,而是把模型角色固化成配置。

可以先给Key和模型做这样的命名:

coding-main-glm
coding-debug-opus
coding-clean-sonnet
coding-review-glm

再按任务阶段选择:

def choose_coding_model(stage, finding_count=0, failed_rounds=0):
    if stage == "main_implementation":
        return "glm-5.2"
    if stage == "deep_debug" or failed_rounds >= 2:
        return "opus-4.7"
    if stage == "cleanup" and finding_count <= 5:
        return "sonnet-4.6"
    if stage == "review_fix":
        return "glm-5.2"
    return "sonnet-4.6"

真实生产里,模型名要替换成4SAPI模型广场中的完整名称。更重要的是记录每次切换的原因,别让“切模型”变成玄学。

建议日志加上这些字段:

task_id
stage
model
turn_count
avg_turn_seconds
max_turn_seconds
test_before
test_after
tsc_exit_code
finding_count
human_override
switch_reason

有了这些日志,团队才能回答:到底是GLM更适合主体,还是Opus更适合深层失败,Sonnet清账是否真的省时间。

8. 一套可复用的多模型接力流程

如果你也想做类似测试,可以按下面流程跑:

1. 固定同一份代码基线
2. 固定同一个harness和测试命令
3. 先让主力模型完成主体实现
4. reviewer提出finding,不允许模型自行扩大范围
5. 用执行型模型清理明确bug
6. 用深度模型处理反复失败的测试
7. 最后跑完整测试和类型检查
8. 记录turn数、耗时、输出长度、测试结果

这套流程比直接问“哪个模型更强”更有用,因为它模拟了真实团队的工作方式:不是一个模型从头到尾单打独斗,而是不同模型在不同阶段接力。

9. 这次结果怎么解读

最终结果是:938/938测试全绿,tsc退出码为0,零回归。

这说明三件事:

更关键的是,GLM-5.2在这组样本里没有表现出“国产模型常见的慢半拍”。平均turn耗时16.4秒,输出密度和Opus接近,深度调试链路也完整。这个信号比单次跑分更值得重视。

10. 局限与风险

这组数据不能被夸大。

第一,它不是严格三方head-to-head。三个模型处理的是不同阶段,任务难度不可直接相等。

第二,样本量有限。主体阶段GLM turn更多,Sonnet和Opus是阶段性接力,不能直接推出所有项目都一样。

第三,harness会影响结果。Prompt cache命中率在47%-50%之间,说明很多效率来自工具链和上下文复用,而不只是模型本身。

第四,价格没有纳入完整计算。模型选型最终还要看单次成本、重试成本、人工接管成本和团队可接受预算。

所以更稳的结论是:在这次同代码基线、同TDD工作流的样本里,GLM-5.2已经展现出和Opus 4.7同档的深度调试能力;Sonnet 4.6则是更适合明确任务的效率型执行者。

11. 总结

如果把Coding Agent当成一个团队,而不是一个单模型入口,GLM-5.2、Opus 4.7、Sonnet 4.6的定位会非常清楚:

对使用4SAPI这类大模型API中转站的团队来说,真正值得做的不是争论“只用谁”,而是把模型路由按阶段设计好:主体谁来跑,失败谁来查,清账谁来收,Review谁来兜。多模型接力跑通以后,成本、速度和质量才有机会同时优化。

参考资料: