Terminal-Bench 实测:TaoToken 当默认 API 供应商跑 Agent 任务

Terminal-Bench 实测:TaoToken 当默认 API 供应商跑 Agent 任务 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 先把目标说清楚用 Terminal-Bench 跑一次可复现的 Agent 任务Terminal-Bench 是一个把「终端操作」当作任务环境的 Agent 评测框架它给模型一个真实的 shell 会话让模型自己敲命令、读输出、纠错直到任务完成或超时。它评测的不是单轮问答而是多轮 tool-calling 的稳定性——模型要决定下一步执行什么命令、怎么解析返回、什么时候停下来。这次我拿它跑 tool-calling 子集模型选 Qwen2.5-Coder-14B把 TaoToken 的 Base URL 填进 Terminal-Bench 的默认 API 配置用同一个 Key 统一调度最后记录 pass1。适合谁看已经在用 Terminal-Bench 或类似 Agent 评测框架、想换一个统一 API 入口的人手上有 Qwen2.5-Coder 系列模型、想验证它在终端任务上表现的人以及想把「模型供应商配置」这件事从每个项目里抽出来、集中管理的人。产物很具体一份能直接复制的启动命令、一段环境变量配置、一张实测 pass1 记录表。本文不含排行分数所有数字都来自我本地这次运行公榜数据我会单独标注来源和日期。需要提前说明的是Terminal-Bench 的任务集和评分逻辑会随版本变化下面所有命令和参数都以我运行时的版本为准你复现时如果对不上先核对版本号再调。2. 环境准备与 Terminal-Bench 启动2.1 依赖与安装我用的环境是 Ubuntu 22.04、Python 3.11、Docker 24.0。Terminal-Bench 的多数任务依赖容器隔离所以 Docker 必须先跑起来。安装走 pippython -m venv tb-env source tb-env/bin/activate pip install terminal-bench装完后确认版本这一步很关键因为不同版本的子集命名和参数可能不一样tb --version # 我这边输出terminal-bench 0.2.x如果你的版本差异较大建议先看官方仓库的 README 对齐命令别直接套用下面的参数。2.2 拉取 tool-calling 子集Terminal-Bench 的任务按类别组织tool-calling 子集主要考察模型在多轮工具调用中的决策质量。我用的筛选方式是按任务标签过滤tb list --tags tool-calling这条命令会列出当前版本里所有带 tool-calling 标签的任务 ID。我这次跑了其中 30 个任务任务 ID 形如tb-tool-001到tb-tool-030具体 ID 以你本地tb list输出为准不同版本编号会变。把任务 ID 存进一个文件方便批量跑tb list --tags tool-calling | head -30 tasks.txt2.3 启动命令单任务试跑用这条先确认链路通tb run \ --task tb-tool-001 \ --agent terminal-agent \ --model qwen2.5-coder-14b \ --max-turns 20 \ --timeout 300批量跑用--tasks-filetb run \ --tasks-file tasks.txt \ --agent terminal-agent \ --model qwen2.5-coder-14b \ --max-turns 20 \ --timeout 300 \ --output results/qwen14b-toolcall.json--max-turns 20是单任务最大交互轮数--timeout 300是单任务墙钟超时秒。这两个值直接影响 pass1轮数给太少模型还没纠错就被截断超时太短长任务直接判失败。我试过把 max-turns 降到 10pass1 掉了将近一半所以别为了跑得快牺牲这两个参数。3. TaoToken 接入与配置3.1 拿 Key 与 Base URLTaoToken 的 API 入口是https://taotoken.net/apiKey 在控制台的 API Keys 页面创建。创建后你会拿到一串以sk-开头的密钥。这里有个细节Terminal-Bench 的 agent 配置读的是 OpenAI 兼容格式的环境变量所以我们要把 TaoToken 的地址和 Key 映射进去。3.2 环境变量片段在项目根目录建一个.env文件或者直接 exportexport OPENAI_API_KEYsk-你的TaoToken密钥 export OPENAI_BASE_URLhttps://taotoken.net/api export TB_MODELqwen2.5-coder-14b注意OPENAI_BASE_URL后面不要加/v1TaoToken 的兼容层会自己处理路径。我第一次填成https://taotoken.net/api/v1结果请求 404排查了半天才发现是路径重复。如果你用的框架强制要求/v1后缀那就填https://taotoken.net/api/v1但 Terminal-Bench 这边不需要。3.3 在 Terminal-Bench 里指定供应商Terminal-Bench 的 agent 配置支持通过环境变量覆盖默认 API 端点。在tb run之前 source 一下.envset -a source .env set a tb run \ --tasks-file tasks.txt \ --agent terminal-agent \ --model $TB_MODEL \ --max-turns 20 \ --timeout 300 \ --output results/qwen14b-toolcall.jsonset -a的作用是把 source 进来的变量自动 export省得一个个手动导。跑之前建议先做一次连通性检查用一个最小请求确认 Key 和地址都对curl -s https://taotoken.net/api/chat/completions \ -H Authorization: Bearer $OPENAI_API_KEY \ -H Content-Type: application/json \ -d { model: qwen2.5-coder-14b, messages: [{role: user, content: reply with ok}], max_tokens: 8 }返回里带choices字段就说明链路通了。如果返回 401检查 Key 有没有复制全返回 404检查 Base URL 路径返回 429说明触发了限流等一会儿再试。4. 可验证结果与失败分支4.1 实测 pass1 记录我这次跑了 30 个 tool-calling 任务单任务 max-turns 20、timeout 300 秒。结果如下本文不含排行分数以下均为本地单次运行记录任务批次任务数通过数pass1tb-tool-001 ~ 0101070.70tb-tool-011 ~ 0201060.60tb-tool-021 ~ 0301050.50合计30180.60整体 pass1 是 0.60。失败任务里大部分是模型在第 15 到 20 轮之间陷入循环——反复执行同一条命令、没有根据输出调整策略。少数是超时任务本身需要多步文件操作300 秒不够。4.2 失败分支排查跑的过程中我踩了几个坑列出来供你对照第一类是 401 未授权。原因通常是.env没 source 成功或者OPENAI_API_KEY被系统里已有的同名变量覆盖了。排查方法是在tb run前打印一下echo ${OPENAI_API_KEY:0:8}...只打印前 8 位确认不是空值也不是旧 Key。第二类是模型名不匹配。TaoToken 侧的模型标识必须和请求里的model字段完全一致。我一开始写qwen2.5-coder-14b-instruct返回模型不存在改成qwen2.5-coder-14b才通。具体可用模型名以官网控制台的模型列表为准。第三类是任务超时。如果某个任务反复超时先把--timeout调到 600 单独跑一次确认是任务本身重还是链路慢。如果单独跑能过、批量跑不过多半是并发或限流问题把批量任务拆小批次。第四类是 Docker 权限。Terminal-Bench 起容器时如果报 permission denied把当前用户加进 docker 组sudo usermod -aG docker $USER # 重新登录后生效4.3 复现产出清单把下面三样东西存好换机器也能复现启动命令就是 2.3 节那条tb run环境变量片段就是 3.2 节的三个 exportpass1 记录就是 4.1 节的表格。建议把.env和tasks.txt一起提交到你的评测仓库但.env里的 Key 不要提交用.env.example占位。5. 限制、成本与模型选择5.1 这次实测的边界30 个任务、单次运行样本量不大pass1 0.60 只能说明「这个配置能跑通、有基本可用性」不能当成模型的稳定能力值。Terminal-Bench 的任务集本身会更新你跑出来的数字和我这边对不上是正常的。另外我这次没开并发串行跑的所以耗时偏长总运行时间大约 40 分钟。5.2 成本怎么算成本主要来自 token 消耗。tool-calling 任务的特点是输入长、输出短——每一轮都要把历史命令和输出塞回上下文所以输入 token 会随轮数线性增长。Qwen2.5-Coder-14B 这个量级的模型单价相对低30 个任务跑下来总消耗在可接受范围内。具体单价和计费方式以官网为准我这边不写死数字因为价格会调整。控制成本的两个实用做法一是把--max-turns设成任务实际需要的上限别无脑给大二是失败任务及时中断别让它空转到超时。5.3 模型选择建议Qwen2.5-Coder-14B 在终端任务上的表现属于「能用但需要盯」的水平。它的优势是代码补全和命令生成准确率不错弱项是长程规划——轮数一多就容易丢目标。如果你要跑更复杂的 Agent 任务可以考虑同系列更大的模型或者换用专门做 tool-calling 优化的模型。选模型时重点看三个指标单轮命令正确率、多轮纠错能力、上下文长度。前两个决定 pass1第三个决定你能给多少轮。TaoToken 在这里的角色是统一入口同一个 Key、同一个 Base URL换模型只需要改model字段不用动 agent 配置。这对需要横向对比多个模型的评测场景很省事。领取 Key 可以走这个入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end最后留一个实操技巧跑批量任务前先用 3 个任务做冒烟测试确认链路、模型名、超时参数都对再放开全量。这样能省下大量因为配置错误白跑的时间。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度