news 2026/10/21 10:58:20

terminal-bench:可自动执行与判分 100+ 真实任务的 LLM 代理终端评测基准

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
terminal-bench:可自动执行与判分 100+ 真实任务的 LLM 代理终端评测基准

terminal-bench:可自动执行与判分 100+ 真实任务的 LLM 代理终端评测基准

【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1

terminal-bench 是面向 LLM 代理的终端任务评测框架。它将 100 多个真实终端任务整理成版本化数据集,在隔离容器中自动执行任务并跑测试判分,省去为每次模型评测手工搭环境、写用例的重复工作。

问题场景:手工测终端能力为什么不可靠

评估一个代理的终端能力时,手工测试有三个坑:用例随手写、环境各机器不同、结果不可复现。同一个模型可能这次完成任务、下次失败,你分不清是模型问题还是环境问题。terminal-bench 的任务集针对的就是这件事:每个任务都有明确描述、测试脚本和参考方案,执行全部发生在 Docker 沙箱里,同一条命令任何时候跑都可比。

🚀 如何运行第一次 terminal-bench 评测

前提条件:宿装有 Docker,并配置好对应模型的 API key。安装用uv tool install terminal-bench(也提供 pip 包,按常规方式安装即可),装好后会得到一个tb命令。随后即可发起第一次评测:

tb run --agent terminus --model anthropic/claude-3-7-latest

terminus 代理负责把模型接到终端上,默认使用仓库内置任务目录。耗时取决于任务数量与并发,结束后控制台输出汇总表,细节写入输出目录。

🔄 terminal-bench 评测流程内部如何运作

数据流分三个阶段:任务下发 → 代理执行 → 测试验证。

任务下发:执行引擎 terminal_bench/harness/harness.py 读取任务目录里 task.yaml 的英文描述,按任务的 Dockerfile 与 docker-compose.yaml 为每个任务拉起独立容器,并应用任务声明的代理超时与测试超时。

代理执行:代理拿到任务描述后循环做"观察终端输出、决定下一条命令、写入容器"。内置代理实现集中在 terminal_bench/agents/,其中包括直接执行参考方案 solution.sh 的 OracleAgent,常用于先验证整条流水线是否跑得通。

测试验证:代理停止或超时后,框架在容器内执行 run-tests.sh,用任务声明的解析器(如 pytest)解析测试输出,把每条用例的通过情况写入 results.json。

📊 terminal-bench 结果日志怎么看

结果默认写入 runs/ 目录(可用 --output-path 改)。每个任务一个子目录,内容分五类:results.json 记录各用例通过与总体判定;commands.txt 是代理发出的完整命令历史;panes/ 下是代理执行前、执行后、测试后的三张终端画面快照,用来判断"卡在哪一步";sessions/ 是 asciinema 录像,可逐帧回放;agent-logs/ 是代理自身日志。

运行结束时控制台输出汇总表:Resolved Trials(解决数)、Unresolved Trials、Accuracy 与 Pass@k。想要可视化,项目自带一个 Streamlit 仪表盘(dashboard/ 目录),可按运行回放过程并查看各任务得分。

tb run 常用参数表

参数作用
--task-id指定任务 ID 或 glob 模式,可重复传入
--n-tasks只运行前 N 个任务
--exclude-task-id排除指定任务
--n-concurrent并发试次数,默认 4
--n-attempts每个任务尝试次数,配合计算 pass@k
--dataset数据集名与版本,如 terminal-bench-core==0.1.1(对应官方榜单题集)
--agent-kwarg以 key=value 形式给代理传额外参数
--global-timeout-multiplier全局超时倍数,默认 1.0
--no-rebuild跳过重建容器镜像

如何自定义任务:最小三件套

新增任务只需三个文件:task.yaml(英文指令与超时等运行参数)、run-tests.sh 加 tests/(测试验证脚本)、solution.sh(参考方案)。把它们和 Dockerfile 一起放进以任务命名的目录,harness 即可识别。仓库在 terminal_bench/cli/template-task/ 提供了模板可直接照抄。任务也不限于纯 shell 操作,例如 original-tasks/ 下的 interactive-maze-game 要求代理在 9x9 迷宫里找出路:

🛠 常见问题排查:4 条 Q&A

Q:评测中途报错或卡住,怎么定位? 先看 run.log 与该任务输出目录;镜像构建失败、内存不足通常体现在构建阶段。可临时把并发降到 1 再复现,排除资源争抢。

Q:代理超时了,但任务显然做得到? task.yaml 里的 max_agent_timeout_sec 控制代理时限,可用 --global-timeout-multiplier 放大,或用 --global-agent-timeout-sec 全局覆盖。

Q:结果和榜单对不上? 确认 --dataset 传的版本与榜单一致(terminal-bench-core==0.1.1)。不指定版本时默认取 head,终端会有提示,且未必对应榜单口径。

Q:想复盘代理到底做了什么? 看该任务输出目录的 commands.txt 与 panes/ 快照即可;sessions/ 里的录像支持完整回放。

对正在做代理开发、模型选型评测,或需要可复现终端任务分数的团队,terminal-bench 提供的是一套现成的"任务集 + 沙箱 + 判分"基础设施。

【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 10:50:04

GitHub Pages 五分钟发布静态网站:从零到上线的完整指南

GitHub Pages 五分钟发布静态网站:从零到上线的完整指南 【免费下载链接】github-pages Create a site or blog from your GitHub repositories with GitHub Pages. 项目地址: https://gitcode.com/GitHub_Trending/gi/github-pages GitHub Pages 是 GitHub …

作者头像 李华
网站建设 2026/10/21 10:43:21

D4202 单芯片 LNB 偏置与电源管管理芯片

产品简介D4202 是一款单芯片 LNB(低噪声块)偏置与电源管理解决方案。该芯片高度集成,能够为 LNB 提供所需的 FET(场效应晶体管)和混频器偏置、控制信号检测、解码、本振切换以及稳定的中频放大器电源等功能。D4202 采用…

作者头像 李华
网站建设 2026/10/21 10:39:39

Unity游戏包体瘦身全解析:资源占比超90%

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华