Terminal-Bench完整指南:4步跑通你的第一个AI终端评测【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1你的Agent演示很精彩,可它在终端里真能干成活吗?想验证,却没有现成的评测环境、任务库和评分标准。Terminal-Bench 就是为此准备的:约100个真实终端任务,加上一套把语言模型接进 Docker 沙箱的评测执行器(harness),一条命令就能拿到带准确率的评测结果。⏱ 10分钟完成第一次终端评测最短路径只有一条:装上 CLI,用内置的 oracle 代理跑一个任务。oracle 不需要任何模型 API Key,它直接执行任务的参考解(oracle solution),所以第一次运行既能验证环境是否搭好,又能立刻拿到一份真实的评测结果。uv tool install terminal-bench # 推荐:uv 会把工具装在独立环境里,不污染系统 Python # 也可以:pip install terminal-bench # 想改源码就先 clone 再 editable 安装: # git clone https://gitcode.com/GitHub_Trending/tb/terminal-bench # cd terminal-bench && pip install -e .用 uv 装的理由很简单:它把tb命令隔离在独立虚拟环境中,和你日常开发的依赖互不干扰。安装前确认三件事:Docker 可用(沙箱就是容器)、Python 3.12+、系统为 Linux(Ubuntu 最顺)、磁盘空间留足(每个任务都要构建一个镜像)。装好后跑这条命令:tb run --agent oracle --task-id hello-world --output-path ./first-run--agent oracle指定用参考解跑通流水线,--task-id锁定一个任务避免全量执行,--output-path把结果指到自定义目录。跑完后终端会打印一张汇总表(Resolved / Unresolved / Accuracy),./first-run/<时间戳>/下则落盘了results.json、run.log和每个任务的详细记录。想换成真模型,只需改成tb run --agent terminus --model anthropic/claude-3-7-latest,--model统一是供应商/模型名的格式。🔍 刚结束的评测里到底发生了什么把刚才的流程类比成一场闭卷考试:任务数据集是题库,Docker 沙箱是考场,harness 是监考老师,测试脚本是阅卷程序。每个任务在 original-tasks/ 下都是独立文件夹,四件套缺一不可:task.yaml(英文指令、难度、超时上限等元信息)、Dockerfile(考场环境)、tests/(阅卷脚本,通常由run-tests.sh驱动)、solution.sh(参考解)。比如 hello-world 的指令只有一句"创建/app/hello.txt并写入 Hello, world!",但它的测试脚本会严格校验文件路径和内容。harness(核心代码在 terminal_bench/cli/ 与terminal_bench/harness/)的完整动作是:按任务的 Dockerfile 构建并启动隔离容器 → 把task.yaml里的指令交给 Agent → Agent 在容器终端里自主敲命令干活 → 到点后执行run-tests.sh判定成败 → 汇总所有 trial 的结果。沙箱的意义在于 Agent 的所有操作都被关在容器里,宿主环境不受影响,评测也可随时推倒重来。结果侧,除了前面提到的results.json和日志,项目还带了一个基于 Streamlit 的 dashboard/,可以把多次运行的准确率、pass@k、失败模式、token 消耗可视化对比。🧩 它能评什么:从修权限到解迷宫目前约100个任务(beta 阶段,仍在扩张),按使用场景大致分三类,每类都贴一个具体任务说明。系统管理与运维:覆盖软件包安装配置、服务管理、权限与安全。典型任务是 fix-permissions——容器里有个/app/process_data.sh死活跑不起来,Agent 要自己定位是权限、解释器还是依赖的问题并修好;再比如 openssl-selfsigned-cert 要求生成自签名证书并配好服务。这类任务考的是对 Linux 生态的肌肉记忆。开发环境:Python 环境配置、依赖管理、编译构建。broken-python 是代表作:系统级 Python 的 pip 坏了,Agent 要恢复包安装能力,还得避开"用 apt 直接砸掉"的粗暴方案。同类还有 fix-pandas-version、依赖冲突消解、C/C++ 编译调试等任务。数据处理与脚本:文件操作、格式转换、数据库。csv-to-parquet 要求把/app/data.csv转成同名 Parquet 文件——看着简单,但 Agent 得自己判断用什么库、装没装、读出来的 schema 对不对。此外还有一批交互式任务,比如 interactive-maze-game:Agent 要在容器里和命令行迷宫游戏交互,从 f(1,1) 走到 f(9,9)。📋 tb run 参数速查表与进阶用法参数说明推荐值--agent代理名称;oracle跑参考解,terminus等接真实模型oracle(验环境)/ terminus(正式评测)--model模型名,供应商/模型名格式按你要评测的模型填写--dataset数据集名称==版本,如terminal-bench-core==0.1.1(榜单对应版本)terminal-bench-core==0.1.1--task-id指定任务,可重复出现,支持 glob 通配抽查 3~5 个--n-concurrent并发任务数(每个 trial 一个容器)2~8,按机器资源调--n-attempts每个任务的尝试次数,影响 pass@k 计算1(正式评测可加大)--output-path结果输出目录./runs 或自定义进阶用法一,指定任务 + 多次尝试 + 自定义输出路径,一条命令全搞定:tb run \ --agent terminus --model anthropic/claude-3-7-latest \ --task-id hello-world --task-id broken-python --task-id csv-to-parquet \ --n-attempts 3 --output-path ./eval-spotcheck--task-id写三遍就是跑三个任务——这是 CLI 的设计:可重复选项代替了数组参数。进阶用法二,控制超时:任务自带的max_agent_timeout_sec会被全局参数覆盖,--global-timeout-multiplier按比例缩放,--global-agent-timeout-sec/--global-test-timeout-sec则直接指定秒数,适合跑慢模型时避免误杀。进阶用法三,跑一半断线不用重头来:tb runs status --run-id <id>查看每个任务处于 passed / failed / incomplete / not started 哪一档,再tb runs resume --run-id <id>从断点继续,已完成且有results.json的 trial 会自动跳过。给自己的评测加一道题:自定义任务与适配器加新任务不用手写目录结构:tb tasks create会基于 terminal_bench/cli/template-task/ 模板生成一个任务骨架,里面已经备好Dockerfile(基于官方 ubuntu-24-04 基础镜像)、docker-compose.yaml、run-tests.sh、solution.sh和tests/的空位。你只需填三处:task.yaml里的英文指令、tests/里的判定逻辑、solution.sh里的参考解。开发过程中用tb tasks interact直接进入容器敲命令,边试边调指令的措辞。任务写好后放进 original-tasks/ 目录,tb run --task-id <你的任务>即可验证。想接别的基准或新框架,参考 adapters/ 目录:那里已有 SWE-bench、USACO、algotune、mlebench 等一批适配器,每个都是"数据源 + 模板任务 + run_adapter.py"的固定套路,照着写一个新适配器就能把外部评测集灌进 Terminal-Bench 的流水线。⚠️ 避坑清单Q:容器起不来,日志里一堆 Docker 报错?A:Docker 是硬依赖,不是可选组件。先装好并跑通docker run hello-world,再回来折腾tb。Q:第一次运行慢得离谱?A:正常。每个任务首次都要构建沙箱镜像。跑通后加--no-rebuild复用已有镜像;评测结束用默认的--cleanup(或加--cleanup)删掉镜像,防止磁盘被几百个任务镜像塞满。Q:怎么确认评测结果不是任务本身的 bug?A:用--agent oracle重跑该任务。参考解应当通过,oracle 挂了说明任务或测试有问题,和模型无关。Q:为什么我的结果和榜单对不上?A:数据集没钉死版本。--dataset不指定版本时默认head(最新开发分支),要复现榜单成绩必须显式传--dataset terminal-bench-core==0.1.1。Q:全量 100 个任务 API 成本吃不消?A:先用--task-id抽 5~10 个任务、--n-concurrent 2低并发试跑,看 oracle 和真实模型的差距,再决定是否扩大样本。Terminal-Bench 的定位一句话:一套可复现的"任务集 + 模型接入终端沙箱的执行器",把 AI 代理的终端真实水平量化成准确率。现在就tb run --agent oracle --task-id hello-world跑通第一题,你的评测基线就有了。【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
Terminal-Bench完整指南:4步跑通你的第一个AI终端评测【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1你的Agent演示很精彩,可它在终端里真能干成活吗?想验证,却没有现成的评测环境、任务库和评分标准。Terminal-Bench 就是为此准备的:约100个真实终端任务,加上一套把语言模型接进 Docker 沙箱的评测执行器(harness),一条命令就能拿到带准确率的评测结果。⏱ 10分钟完成第一次终端评测最短路径只有一条:装上 CLI,用内置的 oracle 代理跑一个任务。oracle 不需要任何模型 API Key,它直接执行任务的参考解(oracle solution),所以第一次运行既能验证环境是否搭好,又能立刻拿到一份真实的评测结果。uv tool install terminal-bench # 推荐:uv 会把工具装在独立环境里,不污染系统 Python # 也可以:pip install terminal-bench # 想改源码就先 clone 再 editable 安装: # git clone https://gitcode.com/GitHub_Trending/tb/terminal-bench # cd terminal-bench && pip install -e .用 uv 装的理由很简单:它把tb命令隔离在独立虚拟环境中,和你日常开发的依赖互不干扰。安装前确认三件事:Docker 可用(沙箱就是容器)、Python 3.12+、系统为 Linux(Ubuntu 最顺)、磁盘空间留足(每个任务都要构建一个镜像)。装好后跑这条命令:tb run --agent oracle --task-id hello-world --output-path ./first-run--agent oracle指定用参考解跑通流水线,--task-id锁定一个任务避免全量执行,--output-path把结果指到自定义目录。跑完后终端会打印一张汇总表(Resolved / Unresolved / Accuracy),./first-run/<时间戳>/下则落盘了results.json、run.log和每个任务的详细记录。想换成真模型,只需改成tb run --agent terminus --model anthropic/claude-3-7-latest,--model统一是供应商/模型名的格式。🔍 刚结束的评测里到底发生了什么把刚才的流程类比成一场闭卷考试:任务数据集是题库,Docker 沙箱是考场,harness 是监考老师,测试脚本是阅卷程序。每个任务在 original-tasks/ 下都是独立文件夹,四件套缺一不可:task.yaml(英文指令、难度、超时上限等元信息)、Dockerfile(考场环境)、tests/(阅卷脚本,通常由run-tests.sh驱动)、solution.sh(参考解)。比如 hello-world 的指令只有一句"创建/app/hello.txt并写入 Hello, world!",但它的测试脚本会严格校验文件路径和内容。harness(核心代码在 terminal_bench/cli/ 与terminal_bench/harness/)的完整动作是:按任务的 Dockerfile 构建并启动隔离容器 → 把task.yaml里的指令交给 Agent → Agent 在容器终端里自主敲命令干活 → 到点后执行run-tests.sh判定成败 → 汇总所有 trial 的结果。沙箱的意义在于 Agent 的所有操作都被关在容器里,宿主环境不受影响,评测也可随时推倒重来。结果侧,除了前面提到的results.json和日志,项目还带了一个基于 Streamlit 的 dashboard/,可以把多次运行的准确率、pass@k、失败模式、token 消耗可视化对比。🧩 它能评什么:从修权限到解迷宫目前约100个任务(beta 阶段,仍在扩张),按使用场景大致分三类,每类都贴一个具体任务说明。系统管理与运维:覆盖软件包安装配置、服务管理、权限与安全。典型任务是 fix-permissions——容器里有个/app/process_data.sh死活跑不起来,Agent 要自己定位是权限、解释器还是依赖的问题并修好;再比如 openssl-selfsigned-cert 要求生成自签名证书并配好服务。这类任务考的是对 Linux 生态的肌肉记忆。开发环境:Python 环境配置、依赖管理、编译构建。broken-python 是代表作:系统级 Python 的 pip 坏了,Agent 要恢复包安装能力,还得避开"用 apt 直接砸掉"的粗暴方案。同类还有 fix-pandas-version、依赖冲突消解、C/C++ 编译调试等任务。数据处理与脚本:文件操作、格式转换、数据库。csv-to-parquet 要求把/app/data.csv转成同名 Parquet 文件——看着简单,但 Agent 得自己判断用什么库、装没装、读出来的 schema 对不对。此外还有一批交互式任务,比如 interactive-maze-game:Agent 要在容器里和命令行迷宫游戏交互,从 f(1,1) 走到 f(9,9)。📋 tb run 参数速查表与进阶用法参数说明推荐值--agent代理名称;oracle跑参考解,terminus等接真实模型oracle(验环境)/ terminus(正式评测)--model模型名,供应商/模型名格式按你要评测的模型填写--dataset数据集名称==版本,如terminal-bench-core==0.1.1(榜单对应版本)terminal-bench-core==0.1.1--task-id指定任务,可重复出现,支持 glob 通配抽查 3~5 个--n-concurrent并发任务数(每个 trial 一个容器)2~8,按机器资源调--n-attempts每个任务的尝试次数,影响 pass@k 计算1(正式评测可加大)--output-path结果输出目录./runs 或自定义进阶用法一,指定任务 + 多次尝试 + 自定义输出路径,一条命令全搞定:tb run \ --agent terminus --model anthropic/claude-3-7-latest \ --task-id hello-world --task-id broken-python --task-id csv-to-parquet \ --n-attempts 3 --output-path ./eval-spotcheck--task-id写三遍就是跑三个任务——这是 CLI 的设计:可重复选项代替了数组参数。进阶用法二,控制超时:任务自带的max_agent_timeout_sec会被全局参数覆盖,--global-timeout-multiplier按比例缩放,--global-agent-timeout-sec/--global-test-timeout-sec则直接指定秒数,适合跑慢模型时避免误杀。进阶用法三,跑一半断线不用重头来:tb runs status --run-id <id>查看每个任务处于 passed / failed / incomplete / not started 哪一档,再tb runs resume --run-id <id>从断点继续,已完成且有results.json的 trial 会自动跳过。给自己的评测加一道题:自定义任务与适配器加新任务不用手写目录结构:tb tasks create会基于 terminal_bench/cli/template-task/ 模板生成一个任务骨架,里面已经备好Dockerfile(基于官方 ubuntu-24-04 基础镜像)、docker-compose.yaml、run-tests.sh、solution.sh和tests/的空位。你只需填三处:task.yaml里的英文指令、tests/里的判定逻辑、solution.sh里的参考解。开发过程中用tb tasks interact直接进入容器敲命令,边试边调指令的措辞。任务写好后放进 original-tasks/ 目录,tb run --task-id <你的任务>即可验证。想接别的基准或新框架,参考 adapters/ 目录:那里已有 SWE-bench、USACO、algotune、mlebench 等一批适配器,每个都是"数据源 + 模板任务 + run_adapter.py"的固定套路,照着写一个新适配器就能把外部评测集灌进 Terminal-Bench 的流水线。⚠️ 避坑清单Q:容器起不来,日志里一堆 Docker 报错?A:Docker 是硬依赖,不是可选组件。先装好并跑通docker run hello-world,再回来折腾tb。Q:第一次运行慢得离谱?A:正常。每个任务首次都要构建沙箱镜像。跑通后加--no-rebuild复用已有镜像;评测结束用默认的--cleanup(或加--cleanup)删掉镜像,防止磁盘被几百个任务镜像塞满。Q:怎么确认评测结果不是任务本身的 bug?A:用--agent oracle重跑该任务。参考解应当通过,oracle 挂了说明任务或测试有问题,和模型无关。Q:为什么我的结果和榜单对不上?A:数据集没钉死版本。--dataset不指定版本时默认head(最新开发分支),要复现榜单成绩必须显式传--dataset terminal-bench-core==0.1.1。Q:全量 100 个任务 API 成本吃不消?A:先用--task-id抽 5~10 个任务、--n-concurrent 2低并发试跑,看 oracle 和真实模型的差距,再决定是否扩大样本。Terminal-Bench 的定位一句话:一套可复现的"任务集 + 模型接入终端沙箱的执行器",把 AI 代理的终端真实水平量化成准确率。现在就tb run --agent oracle --task-id hello-world跑通第一题,你的评测基线就有了。【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考