资讯详情

如何10分钟跑通AI代理终端评测环境:terminal-bench完整指南

📅 2026/10/21 4:45:10 | 华诺云谱 👁 阅读
如何10分钟跑通AI代理终端评测环境:terminal-bench完整指南
如何10分钟跑通AI代理终端评测环境terminal-bench完整指南【免费下载链接】terminal-bench-1A benchmark for LLMs on complicated tasks in the terminal项目地址: https://gitcode.com/GitHub_Trending/tb/terminal-bench-1AI代理说自己能操作终端到底能不能装编译工具、修坏掉的服务、训练出一个模型terminal-bench就是回答这个问题的AI终端评测基准它把一批真实终端任务交给语言模型代理在Docker沙箱里让代理自主执行再用测试脚本自动判分整个过程一条命令启动、结果可复现。先看清楚它能帮你做什么跑评测内置约240个任务original-tasks/覆盖文件操作、系统排障、编译构建、模型训练、逆向分析等每个任务自带沙箱镜像可插拔的代理层terminal_bench/agents/ 内置 terminus、openhands、claude-code、codex、gemini-cli 等十余种代理实现换--agent参数就能对比不同代理框架对接其他基准adapters/ 提供 SWE-bench、USACO、mlebench、swelancer 等数据集的适配让终端评测跑在别家的题目上版本化数据集registry.json 登记了terminal-bench-core的 head / 0.1.0 / 0.1.1 等版本0.1.1 对应公开排行榜10分钟跑起来安装与首次运行前置依赖只有三样Python ≥ 3.12、Docker、以及任一模型厂商的 API key通过环境变量提供。安装用包管理器一条命令即可uv tool install terminal-bench # 或用 pip install terminal-bench装完会注册tb命令行。首次建议只跑单个任务验证链路tb run --agent terminus \ --model anthropic/claude-3-7-latest \ --dataset terminal-bench-core0.1.1 \ --task-id hello-worldharness 会自动为该任务构建Docker容器、把指令交给代理、代理退出后在容器里执行测试脚本最后把汇总表写到输出目录默认runs/。跑通之后全量评测只需加并发参数作用推荐值--agent使用的代理默认oracle直接执行参考解用于自检环境terminus--model模型provider/model_name格式转发给 litellm按你的 API key--task-id指定任务支持 glob 和多次传入调试时给单个--n-concurrent并发试次数默认 42~8--n-attempts每个任务尝试次数默认 11--output-path结果输出目录默认runs按实验命名--agent-kwarg给代理传参如prompt_template./my_prompt.j2或version0.51.0视代理而定--livestream实时直播终端画面演示时开想装源码版做二次开发可 clone 仓库https://gitcode.com/GitHub_Trending/tb/terminal-bench后执行pip install -e .。拆开一个任务目录评测任务怎么写以最小的 original-tasks/hello-world/ 为例一个任务就是五件套original-tasks/hello-world/ ├── task.yaml # 英文指令、难度、超时、测试解析器 ├── Dockerfile # 定义任务沙箱环境 ├── run-tests.sh # 代理结束后准备测试环境并跑 pytest ├── solution.sh # 参考解oracle 代理直接执行它 └── tests/test_outputs.py # 断言最终状态的 pytest 脚本关键约定就三条指令写在task.yaml的instruction字段同时声明max_agent_timeout_sec代理最多跑多久和max_test_timeout_sec测试阶段限时判分靠状态断言而非看过程test_outputs.py检查容器内的最终状态文件是否存在、服务是否可访问等parser_name: pytest表示用 pytest 解析结果测试环境自己准备run-tests.sh在容器内独立安装 uv、pytest 等依赖任务目录可以带task-deps/、protected/等附加资源写新任务时不用从零搭官方在 terminal_bench/cli/template-task/ 放了完整模板复制改名即可。需要交互键入的题目比如操作 nano用solution.yaml描述按键序列替代solution.sh。高频实战从单任务调试到排行榜提交环境自检tb run --agent oracle --task-id hello-world。oracle 代理不走模型直接执行参考解再判分——结果为 PASS 才说明沙箱、测试脚本没问题再换真实代理跑换代理/换模型对比同一任务改--agent与--model即可代理还支持--agent-kwarg prompt_templatexxx.j2注入自定义提示词模板模板内必须含{{ instruction }}变量全量提交去掉--task-id保留--dataset terminal-bench-core0.1.1配合--n-concurrent 8跑完整套题结果对应公开排行榜看结果Streamlit 面板在 dashboard/streamlit run dashboard/dashboard.py启动后可浏览历史运行的终端录像与得分明细扩展评测自定义任务与跨基准接入加自己的任务四步复制terminal_bench/cli/template-task/到original-tasks/下改名 → 改task.yaml指令和Dockerfile环境 → 写tests/test_outputs.py断言 → 用 oracle 代理验证通过。提交前仓库自带一组校验脚本scripts_bash/如validate-task-fields.sh检查任务字段、check-dockerfile-sanity.sh检查镜像规范。如果目标是评测在别的基准上的表现用 adapters/ 下对应适配器如swebench/、usaco/、mlebench/各自封装了run_adapter.py与parity_experiment.json把外部数据集转成终端任务格式后再交给同一套 harness 跑。踩坑与排错速查容器构建失败任务沙箱首次运行要拉镜像、装依赖慢属正常确认 Docker 在运行、网络可达oracle 都跑不过别急着怀疑代理先检查solution.sh是否在正确 WORKDIR 下、run-tests.sh里装依赖是否被源站挡住代理提前超时调大task.yaml里的max_agent_timeout_sec或先用--n-attempts多试几轮观察失败分布想复现某次运行结果与日志都落在--output-path指定目录registry.json中的版本号决定题目快照跨版本对比要固定--dataset的版本号代理行为异常看--log-level调高后的输出--livestream可以肉眼观察代理到底敲了什么下一步建议打开original-tasks/挑几个带task-deps/或加密资源的任务读一遍判分逻辑再参考 terminal_bench/agents/README.md 配置你自己的代理与提示词模板就能开始搭建属于团队的终端评测流水线了。本文基于 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),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑