Vending-Bench 2 跑 GPT-6 Astra,Key 走 TaoToken 能复现 Agent 评测吗?

发布时间:2026/9/17 21:05:37

Vending-Bench 2 跑 GPT-6 Astra,Key 走 TaoToken 能复现 Agent 评测吗? 1. 从 Vending-Bench 2 的第一次 401 说起Key 与 Base URL 怎么切在 TaoToken 官网 创建 Key 之后把客户端 Base URL 设为https://taotoken.net/api再去跑 Vending-Bench 2能少踩很多坑。上周把 Andon Labs 的评测脚本拉到本地第一次 tool call 就返回 401原因不是 Key 无效而是 harness 里写死的 endpoint 没被环境变量覆盖换模型时只改了 model 名base_url 还指着旧地址鉴权自然对不上。社区里关于 GPT-6 Astra 与 Claude Fable 5.1 在两个 Agent 基准上的对照讨论很多但真正卡住复现的是调用层配置和 token 口径能否对齐而不是 benchmark 的 task 定义。要核对原评测结论第一步不是改 prompt而是把所有模型调用收敛到同一套 Key 与 Base URL。这样两个模型走同一计费与日志通道后续比较 prompt tokens、completion tokens 时不会因为供应商字段缺失而出现空值。先在 TaoToken 控制台创建 API Key然后按下面方式注入环境变量。# .env.eval export OPENAI_API_KEYYOUR_API_KEY export OPENAI_BASE_URLhttps://taotoken.net/api export EVAL_MODEL_Agpt-6-astra export EVAL_MODEL_Bclaude-fable-5.1注意两点第一模型 ID 以 TaoToken 控制台或模型列表实际显示为准不要照搬社区截图第二OpenAI 兼容协议与 Anthropic 兼容协议不要混用Claude Code 走ANTHROPIC_*Codex 走config.toml自写 harness 走 OpenAI SDK 时只认OPENAI_BASE_URL与OPENAI_API_KEY。Vending-Bench 2 的 harness 通常是一个长程 agent loop模型收到任务后生成 tool call环境执行后返回 observation循环直到结束或达到步数上限。Drone-Bench 也是类似结构但工具 schema 和状态空间不同。复现时不要只跑一次至少固定temperature0与相同max_tokens每个模型跑 20 次以上再比较平均 token 与得分。2. 把模型调用包一层保证每次请求都记录 usage很多开源 harness 在 tool call 分支里直接调 SDK没有统一记录 usage最后只能看到总分看不到 token 消耗。复现 Agent 评测时token 对照表比总分更重要因为长程任务里 completion tokens 会随步数放大不同模型差距可能来自输出长度而非决策质量。下面这个 wrapper 可以直接放进 Vending-Bench 2 与 Drone-Bench 的调用点。它只做三件事发请求、写 jsonl、返回原始 response。不要改动 harness 的业务逻辑只把client.chat.completions.create替换成call_model。# eval_usage.py import os import json import time from openai import OpenAI client OpenAI( api_keyos.environ[OPENAI_API_KEY], base_urlos.environ[OPENAI_BASE_URL], ) def call_model(model: str, messages: list, toolsNone, tag: str ): start time.time() resp client.chat.completions.create( modelmodel, messagesmessages, toolstools or [], temperature0, max_tokens4096, streamFalse, ) usage resp.usage record { ts: round(time.time(), 3), elapsed: round(time.time() - start, 3), tag: tag, model: model, prompt_tokens: usage.prompt_tokens if usage else None, completion_tokens: usage.completion_tokens if usage else None, total_tokens: usage.total_tokens if usage else None, finish_reason: resp.choices[0].finish_reason, } with open(usage.jsonl, a, encodingutf-8) as f: f.write(json.dumps(record, ensure_asciiFalse) \n) return resp如果 harness 必须用流式记得加stream_options{include_usage: True}否则最后一个 chunk 的 usage 可能为空。非流式最省事也方便对齐原评测的 max_tokens 设置。运行命令可以写成set -a source .env.eval set a python run_vending_bench.py \ --model $EVAL_MODEL_A \ --runs 20 \ --out results/vending/astra python run_vending_bench.py \ --model $EVAL_MODEL_B \ --runs 20 \ --out results/vending/fableDrone-Bench 同理只改--out与 benchmark 入口python run_drone_bench.py \ --model $EVAL_MODEL_A \ --runs 20 \ --out results/drone/astra python run_drone_bench.py \ --model $EVAL_MODEL_B \ --runs 20 \ --out results/drone/fable注意--runs要一致随机种子要固定否则 token 对照表没有意义。3. Claude Code、Codex 与 CC Switch 三件套的配置拆分复现评测之外日常调试 prompt 时很多人会直接用 Claude Code 或 Codex 打开 harness 工程。这两类工具的配置入口完全不同不能把ANTHROPIC_*套到 Codex 上。Claude Code 使用settings.json环境变量以ANTHROPIC_开头{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: claude-fable-5.1 } }如果你的 Claude Code 版本读取的是项目级.claude/settings.json把上面内容放进去如果是全局配置放在用户目录对应位置。改完后重启终端用/status确认 base URL 已生效。Codex 使用config.toml不要写ANTHROPIC_*model gpt-6-astra model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chat对应环境变量export TAOTOKEN_API_KEYYOUR_API_KEYCC Switch 三件套可以理解为三份配置的切换集合Claude Code 的settings.json、Codex 的config.toml、以及你自己 harness 用的.env。在 CC Switch 里维护三份 profile每份只改base_url、env_key和默认模型不要把 Claude Code 的 token 字段复制到 Codex。需要新建 Key 或核对额度时回到 TaoToken 官网 的控制台操作。4. GPT-6 Astra 与 Claude Fable 5.1 的 Token 对照表怎么产出跑完两轮 benchmark 后usage.jsonl里会有每次模型调用的明细。用下面的脚本按模型和 benchmark 聚合生成对照表底稿。注意这里不预设任何分数或倍数只做统计结论留给读者用原始评测口径核对。# aggregate_usage.py import json import argparse from collections import defaultdict def load(path): rows [] with open(path, r, encodingutf-8) as f: for line in f: line line.strip() if line: rows.append(json.loads(line)) return rows def main(): parser argparse.ArgumentParser() parser.add_argument(--file, defaultusage.jsonl) args parser.parse_args() agg defaultdict(lambda: {calls: 0, prompt: 0, completion: 0, total: 0}) for r in load(args.file): key (r[model], r.get(tag, )) agg[key][calls] 1 agg[key][prompt] r.get(prompt_tokens) or 0 agg[key][completion] r.get(completion_tokens) or 0 agg[key][total] r.get(total_tokens) or 0 print(model,benchmark,calls,avg_prompt,avg_completion,avg_total) for (model, tag), v in sorted(agg.items()): calls v[calls] or 1 print( f{model},{tag},{v[calls]}, f{v[prompt]/calls:.1f}, f{v[completion]/calls:.1f}, f{v[total]/calls:.1f} ) if __name__ __main__: main()把两个模型的 jsonl 合并后运行python aggregate_usage.py --file usage.jsonl token_compare.csv得到的 CSV 可以整理成 Markdown 对照表。下面给出模板数值需要你自己跑出来后填入不要抄社区流传的未核实数字模型基准运行次数平均 prompt tokens平均 completion tokens总 tokens平均工具调用步数得分GPT-6 AstraVending-Bench 220填写填写填写填写填写Claude Fable 5.1Vending-Bench 220填写填写填写填写填写GPT-6 AstraDrone-Bench20填写填写填写填写填写Claude Fable 5.1Drone-Bench20填写填写填写填写填写对照时至少检查三件事同一 benchmark 的 max_tokens 是否一致温度与随机种子是否固定harness 版本是否相同。如果某一边 usage 字段大量为空先修 wrapper不要直接比较总分。需要长期跑评测或把 harness 挂到 CI 里可以看 TaoToken 官网 的额度与计划说明避免中途因配额中断导致运行次数不一致。5. 常见报错与排查清单Vending-Bench 2 和 Drone-Bench 的长程特性会放大配置问题下面这些报错在复现时出现频率最高。现象可能原因处理方式401 UnauthorizedKey 未导出、Key 与 base_url 不匹配重新source .env.eval确认OPENAI_API_KEY与https://taotoken.net/api同时生效404 model_not_found模型 ID 写错或该模型未在账号下开放去控制台模型列表核对不要硬编码社区截图里的 ID400 context_length_exceededVending-Bench 2 长程上下文累积在 harness 里加截断或摘要并记录被截断的 token 数usage 为 null流式模式未开 include_usage改用非流式或加stream_options{include_usage: True}429 rate limit并发过高降低并发或分批次跑记录每次运行的开始结束时间结果波动大温度、种子、max_tokens 不一致固定参数统一运行次数先跑通再比较排查顺序建议先确认 base_url 与 Key再确认模型 ID最后才看 context 与并发。不要一上来就怀疑 benchmark 实现。6. 复现结论前必须固定的四个变量原评测给出的对照结论有参考价值但本地复现时要控制变量否则 token 对照表会失真。第一模型版本。GPT-6 Astra 与 Claude Fable 5.1 的具体快照以 TaoToken 控制台为准如果平台侧模型更新旧结果不可直接对比。第二运行次数。Vending-Bench 2 的单次结果方差可能较大建议每个模型至少 20 次取平均后再比较 token 与得分。第三工具调用上限。两个 benchmark 都要设置相同的最大步数否则一个模型因为提前终止而 completion tokens 偏低会被误读为“更省 token”。第四日志口径。prompt tokens 是否包含 tool 返回的 observation、completion tokens 是否包含 tool call 的 JSON这些要在 wrapper 里统一。建议在 jsonl 里额外记录step_index方便按步数聚合。7. 把复现流程固化成一键脚本为了避免每次手动改环境变量可以把配置与运行命令写进 Makefile 或 shell 脚本。下面是一个最小示例Key 仍然用占位符不要提交到 Git。#!/usr/bin/env bash set -euo pipefail export OPENAI_API_KEY${TAOTOKEN_API_KEY:-YOUR_API_KEY} export OPENAI_BASE_URLhttps://taotoken.net/api MODEL_Agpt-6-astra MODEL_Bclaude-fable-5.1 RUNS20 rm -f usage.jsonl python run_vending_bench.py --model $MODEL_A --runs $RUNS --out results/vending/astra python run_vending_bench.py --model $MODEL_B --runs $RUNS --out results/vending/fable python run_drone_bench.py --model $MODEL_A --runs $RUNS --out results/drone/astra python run_drone_bench.py --model $MODEL_B --runs $RUNS --out results/drone/fable python aggregate_usage.py --file usage.jsonl token_compare.csv运行前把YOUR_API_KEY换成真实 Key或者提前export TAOTOKEN_API_KEY。脚本里不要写死 Key也不要输出到日志。usage.jsonl建议按日期分目录保存方便回溯。8. 结论能复现的关键不是模型而是计费口径Vending-Bench 2 与 Drone-Bench 这类 Agent 基准复现难点通常不在任务本身而在调用层是否统一。Key 走 TaoToken、Base URL 统一为https://taotoken.net/api之后两个模型可以共用同一套日志与 token 统计才能把原评测的对照结论拆成可核对的 prompt tokens、completion tokens 与步数。不要直接引用未核实的倍数或排名先把自己的对照表跑出来再与原始结论逐项对齐。9. 继续深入与资源入口想先看模型列表再决定跑哪个基准可以去 模型对话 试一轮要把评测 harness 长期挂在 CI 或日常调试环境里Coding Plan 更适合持续消耗Key 在 API Keys 创建Claude Code 的settings.json细节和ANTHROPIC_*变量说明看 Claude Code 文档。
延伸阅读

更多相关文章

2026/9/17 21:05:37

douyin-downloader 实战教程:4 步完成抖音去水印批量下载

douyin-downloader 实战教程:4 步完成抖音去水印批量下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…

2026/9/17 21:05:37

ARM9+Linux嵌入式诊断系统在机车走行部的实时性与抗干扰设计

简介:本资源是一篇发表于《机车电传动》2010年第2期的专业技术论文,面向嵌入式系统开发者、铁路装备研发工程师及自动化专业高年级本科生/研究生,聚焦机车走行部智能故障诊断这一工业安全痛点。论文完整阐述了基于ARM9嵌入式Linux平台的故障诊…

2026/9/17 21:05:37

小智语音音频队列满:丢旧帧、拒新包与延迟伸缩

上周三半夜,我蹲在小智控制台前面盯着滚动的日志,屏幕上每隔几秒就跳出一行audio_queue full, drop_oldest1,音箱那头小智的回应一顿一顿的,像信号不好的收音机。当时我的第一反应是网络又抽风了,抓包看了一圈才发现&a…

2026/9/17 21:50:50

SonarQube代码质量平台落地实践:从部署到CI流水线集成

接手这类“项目简介”性质的分享,其实是最考验功力的。光看“SOF”三个字母,很多人可能会觉得陌生,但你只要在代码质量治理这个圈子混过,立刻就明白了——这就是团队内部的一次静态代码扫描平台落地专项。我当时的项目代号就叫SOF…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/17 0:03:13

WiFi密码安全测试:从原理到实战的字典暴力破解指南

1. 写在前面:我为什么要研究WiFi密码这件事先交代一下背景。我身边有不少朋友,家里的WiFi密码常年是"12345678"或者"88888888",问就是"好记"。直到有一次,隔壁邻居蹭网蹭到我家路由器后台都进不去&…

2026/9/17 0:03:13

redis-py服务控制与监控函数实战:从ping到slowlog的巡检指南

我用 redis-py 写了快五年的业务代码,坦白说,真正让我觉得这个客户端“像一个成熟工具箱”的,不是 get/set 那套基本操作,而是它那批专门做服务控制与状态监控的辅助函数。日常开发里,大家把redis.Redis(host..., deco…

2026/9/17 0:03:13

SpringBoot+Vue3实现中小企业设备管理系统开发实践

1. 项目概述与核心价值中小企业设备管理系统是制造业、服务业等领域的基础信息化工具。传统设备管理往往依赖Excel表格或纸质记录,存在数据孤岛、流程混乱、维护成本高等痛点。这套基于Java SpringBootVue3MyBatis的技术方案,通过前后端分离架构实现了设…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码