Terminal-Bench 评测全解析:一个用于评测大模型在终端环境使用工具能力的评测基准以及Terminal 1.0与 2.0 的完整对比
过去两年,大模型在各种编程评测上一路刷榜:HumanEval、LiveCodeBench、SWE-Bench……成绩越来越好,看起来已经“会写代码”了。但很多团队在真实落地时有一个共同感受:模型在评测里很强,一旦扔进一个干净的 Linux 终端,让它自己从零把环境配好、服务搭起来、脚本跑通,成功率并没有想象中那么理想。
原因并不复杂。传统评测大多停留在“给定输入、生成一段代码、离线跑单元测试”这个层面,很少真正考察模型在真实系统环境里的“执行能力”:会不会用包管理器安装依赖、遇到报错能不能正确读日志和修复、路径错了会不会自己发现、服务没起来能不能一步步排查。这些琐碎但关键的能力,恰恰构成了工程师日常工作的很大一部分。
Terminal-Bench 就是在这样的背景下诞生的。它不是问你“会不会写这个函数”,而是把模型当成一个可以打字的工程师,塞进一个隔离的终端环境里,给出一份任务说明:从零开始,把需求完成。能不能完成、完成得怎么样,用一个标准化的流程来评估。
本文介绍 Terminal-Bench 的设计理念,深入讲解 core、Terminal-Bench Hard 与最新 Terminal-Bench 2.0 的区别,帮助开发者选择合适的 AI 终端评测基准。
Terminal-Bench 实际在做什么?
要理解后面不同版本的差异,先得看清楚这个评测的基本玩法。
在一轮 Terminal-Bench 任务中,系统会先启动一个全新的 Linux 容器,里面只有最基础的系统环境,不会提前帮你装好各种依赖。然后,它把任务描述发给模型:比如要实现一个命令行工具、要搭一个 HTTP 服务、要写一段脚本处理文件、要完成一段数据处理工作等等。模型不会直接“交一个答案”,而是通过一层 Agent 框架和真实终端交互——它会看到当前目录下有哪些文件,输入命令,收到 stdout 和 stderr,再根据结果决定下一步干什么。
