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

发布时间:2026/11/5 17:57:36

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/11/4 18:22:35

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/10/26 11:56:33

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

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

2026/10/24 10:43:31

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

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

2026/11/5 16:51:33

EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析

1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒,这些活儿但凡干过几次的人都知道,真正决定效率的往往不是你手速多快,而是手边那套PE环境靠不靠谱。EasyU(圈内习惯叫优启通)就是在这个场景下被…

2026/11/5 16:26:13

Rust原来很简单二:所有权系统

Part 2 核心篇 —— 所有权系统 本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理 6…

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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