3 步跑通 terminal-benchAI 终端评测的完整实战指南【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1terminal-bench 是一个面向 AI 终端评测的基准框架它把语言模型接入一个隔离的 Docker 终端环境让 AI 代理自主完成写代码、修环境、起服务这类真实任务再用测试脚本自动判定结果。本文从安装到第一次跑通评测再到内部数据流、并发调优与自定义任务开发把一条完整的评测链路讲清楚。先看一个真实的评测场景以最基础的任务hello-world为例代理在容器里只拿到一句英文指令创建一个/app/hello.txt内容写入Hello, world!。代理自行决定执行什么命令任务结束后评测器在容器内运行tests/test_outputs.py用 pytest 断言文件存在且内容精确匹配。通过即记一次成功。这就是整个基准的判定逻辑指令、测试脚本、参考解三件套齐全结果不靠人眼看日志。仓库目前在 original-tasks/ 目录下内置了 200 多个原始任务覆盖文件操作、Git 修复、编译 C/Rust 程序、训练模型、搭建 Web 服务等场景每个任务一个独立目录任务注册表 负责版本化管理。terminal-bench 是什么解决谁的问题一句话定位terminal-bench 是给构建 LLM 代理、评测框架或系统级推理能力的团队提供的可复现 AI 终端评测工具——任务数据集 执行 harness 两部分组成通过tbCLI 驱动。任务数据集每个任务 英文指令task.yaml Docker 环境 测试脚本run-tests.sh 参考解solution.sh或solution.yaml。执行 harness位于 terminal_bench/harness/负责把模型连到沙箱终端、并发调度、记录与判定。代理层terminal_bench/agents/ 内置 terminus、oracle 等实现也支持 OpenHands、ClaudeCode、Aider、Goose 等安装型代理和 MCP 代理。安装并跑通第一次评测环境要求Python 3.12、Docker沙箱必须、uv包管理器。安装 CLIuv tool install terminal-bench也可以pip install terminal-bench装完用tb --version验证。用 oracle 代理验证管线tb run --agent oracle --task-id hello-world。oracle 不接模型直接执行任务的参考解并跑测试。这一步能确认你的 Docker 环境和测试链路没问题是排查配置问题的最快方式。接入真实模型tb run --agent terminus --model anthropic/claude-3-7-latest代理会在容器内自主执行任务结果写入输出目录。运行结束后默认输出落在runs/目录下按run_id默认时间戳YYYY-MM-DD__HH-MM-SS组织每个任务一个 trial 目录包含run.log运行日志和 asciinema 录制的完整终端录像。用tb tasks list可以浏览当前数据集里所有可用任务。一次评测的完整数据流顺着一次tb run的执行过程看系统内部是这样运转的解析数据集harness 读取 registry.json确定任务集合本地original-tasks/或指定版本的terminal-bench-core数据集应用--task-id、--n-tasks、--exclude-task-id做筛选。构建沙箱按任务的Dockerfile基于基础镜像构建容器--no-rebuild可跳过。代理接管终端通过 tmux 会话把指令注入容器终端代理如 terminus循环执行「读输出 → 调 LLM → 发命令」AsciinemaHandler 同步录制全过程。超时与判定任务到达max_agent_timeout_sec或代理主动结束harness 在容器内执行run-tests.sh由 pytest 产出结构化结果。汇总产出每个 trial 生成TrialResults含成功与否、失败模式整轮汇总为BenchmarkResults写入输出目录加--upload-results可上传到远端。并发在这一层生效--n-concurrent默认 4控制同时运行的容器数--n-attempts控制每任务重复次数。熟练之后调并发、筛任务、写新任务常用参数速查参数默认值作用--task-id全部任务指定任务 ID 或 glob可多次传入--n-tasks全部任务限制任务数量--exclude-task-id无排除指定任务--n-concurrent4并发 trial 数--n-attempts1每任务尝试次数--dataset-name/--dataset-version本地任务指定数据集版本如terminal-bench-core0.1.1当前排行榜版本--no-rebuild关跳过镜像重建重复调试省时--agent-kwarg无透传代理参数如version0.51.0、prompt_template./my_prompt.j2写一个自定义任务新建目录放入四样东西——task.yaml指令、parser_name、超时配置、Dockerfile环境、run-tests.shtests/test_outputs.py判定、solution.sh参考解。写好先用tb run --agent oracle --task-id 你的任务名验证参考解能通过测试再换真实模型评测。任务可以引用数据文件甚至图片比如 code-from-image 任务 直接给模型一张代码截图要求它复现程序对接其他基准adapters/ 目录提供了 SWE-bench、MLE-bench、AppWorld 等外部基准的适配层可以把它们的任务转成 terminal-bench 格式统一评测。排错与常见问题评测结果异常先看runs/run_id/下的run.log再回放 asciinema 录像定位代理卡在哪一步日志级别用--log-level调高可看到更多细节。镜像构建慢调试阶段加--no-rebuild复用已有镜像跑完用默认的--cleanup行为清理 Docker 镜像避免磁盘占满。机器资源不够把--n-concurrent降到 1~2同时控制--n-attempts先小规模验证再全量跑。小结与下一步terminal-bench 的价值在于把「AI 代理能不能在终端干活」变成可复现、可对比、可自动判定的指标。建议的行动路径先tb run --agent oracle --task-id hello-world打通管线再用--n-tasks 5跑一个小样本对比两个模型最后用--dataset-name terminal-bench-core --dataset-version 0.1.1对齐排行榜口径做正式评测。【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考