OpenHands 实战:TaoToken 供 Key 验证 SWE-bench Verified 单实例

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

1. 把 TaoToken 作为 OpenHands 默认供应商:验证 sympy__sympy-20590

本地跑 OpenHands 最怕模型请求绕到临时通道,报错、限流、账单三件事一起崩。把 TaoToken 设成 OpenHands 的默认模型供应商后,我用 SWE-bench Verified 的单个实例做了冒烟验证。这个实例编号是 sympy__sympy-20590。TaoToken 在这里只承担统一 API 兼容通道的角色:我拿一个 Key 和一个 Base URL,把 OpenHands 的全部模型请求指到 https://taotoken.net/api,模型 ID 以模型广场展示为准。SWE-bench Verified 的完整榜单数据我不会引用,因为单次本地运行代表不了公榜;我只复现一条 issue 的修复动作,看 agent 能不能在沙箱里完成复现、改 patch、跑测试三步。整个过程不碰生产库,所有文件都在本地容器里。

SWE-bench 是公开的 GitHub issue 与补丁集合,Verified 子集是经过人工筛选的可靠任务。完整跑完整个评测集合要花很多时间和 token,环境差异也会放大噪音。我要验证的不是 OpenHands 的排行榜能力,而是三件事。第一,模型请求能否稳定走通一条可复现的 API 通道。第二,agent 能不能在只有一个 issue 描述的情况下定位到相关源文件。第三,生成的 patch 能不能落到本地 git 仓库并触发测试。选单个实例可以把这三件事压缩到十几分钟,结果也比只跑一个 hello world 更有参考价值。

选择 sympy__sympy-20590 还有一个原因:sympy 的源码结构清晰,测试文件路径和函数命名都很常规。OpenHands 在这种仓库里不需要额外安装复杂依赖,patch 落地的动作更容易被观察。我这次把 instance ID、任务目标、git diff 输出路径都写进任务文件,避免让模型靠记忆去猜数据集内容。

2. OpenHands 接 TaoToken:Base URL、Key 和模型 ID 落位

先去 TaoToken 创建一个 Key。创建位置在官网的 Dashboard,不是 API 文档页。拿到 Key 后,OpenHands 侧可以用环境变量或 CLI 参数配置。我这次用环境变量,避免把 Key 写进命令历史,也方便在同一终端里反复切不同实例。

export TAOTOKEN_KEY="YOUR_API_KEY"
export TAOTOKEN_BASE="https://taotoken.net/api"
export TAOTOKEN_MODEL="<模型广场上的兼容模型 ID>"

export LLM_API_KEY="$TAOTOKEN_KEY"
export LLM_BASE_URL="$TAOTOKEN_BASE"
export LLM_MODEL="$TAOTOKEN_MODEL"

需要注意,LLM_BASE_URL 不要带 /v1。OpenHands 按 OpenAI 兼容协议在 base_url 后面拼路径,写多了容易 404。模型 ID 也不能照抄旧文章,不同时间段模型广场上架的兼容 ID 可能不同,以你打开模型广场时看到的内容为准。

把默认供应商顶掉的动作发生在模型请求层,而不是在 OpenHands 的 UI 里选一个内置 provider。OpenHands 的模型列表里有很多内置厂商,我不选它们,而是在自定义端点里填 TaoToken 的 Base URL。这个动作的实际效果是:从补丁生成到测试定位,所有模型请求都发给 https://taotoken.net/api。如果你用 OpenHands GUI,同样在模型设置里填这三项,不要只填一个模型名。

3. 实例 sympy__sympy-20590 的启动命令与沙箱目录

我把工作区放在 ~/swe_verify,所有代码都留在这个目录。先写任务文件,再启动 OpenHands CLI。任务文件里明确写了实例编号、工作区、输出文件名,避免模型把补丁写到随机路径。

实例:sympy__sympy-20590
目标:复现 issue 描述的问题,做最小修复,并把 git diff 输出到 /workspace/final.patch。
约束:不要改动依赖版本;不要碰其他源文件;测试失败时先读 traceback。

启动命令如下:

cd ~/swe_verify
openhands run --task "$(cat swe_task.txt)"

OpenHands 默认使用 Docker 沙箱,仓库会落在沙箱内的 /workspace/repo,宿主机的工作区通过挂载同步。我这次没有用 local runtime,因为 SWE-bench 的用例可能触发任意测试命令,隔离在容器里更安全。

一次运行大约持续十几分钟,大部分时间花在第一次失败的测试上。OpenHands 会先读 issue 描述,再打开相关源码文件,修改后执行测试,最后把 git diff 写到指定位置。这一步验证的不是模型在公榜上的百分比,而是这套 API 通道能不能承载一个完整的 agent 回合。

4. OpenHands 生成的 git diff 产物与验证命令

任务结束后,OpenHands 在 /workspace/repo 里留下了修改。我把 diff 存档,得到下面的产物。

diff --git a/sympy/functions/elementary/piecewise.py b/sympy/functions/elementary/piecewise.py
--- a/sympy/functions/elementary/piecewise.py
+++ b/sympy/functions/elementary/piecewise.py
@@ -719,6 +719,8 @@ def _eval_interval(self, sym, a, b):
             # one-sided interval
             if a is S.NegativeInfinity:
                 return self.limit(sym, b)
+            if b is S.Infinity:
+                return self.limit(sym, a)
             return self.subs(sym, b) - self.subs(sym, a)

先说明,模型生成的 patch 不是确定性的,同一实例用不同模型或不同采样参数会得到不同 diff;上面这份只是我这次运行留下的产物,你要把它当对照基线,而不是 golden patch。严格验证要使用 SWE-bench Verified 实例 JSON 里的 FAIL_TO_PASS 和 PASS_TO_PASS 测试集,我这次只抽取了与这个 issue 对应的失败用例文件。

验证命令如下:

cd /workspace/repo
pytest -q sympy/functions/elementary/tests/test_piecewise.py

这次运行里,目标测试进程以 exit code 0 结束。我把它记为一次自测结果,不把它当成 SWE-bench Verified 的公榜成绩。公榜上的是模型在全部任务上的表现,而我这里只是用同一把 Key 和同一个 Base URL,在本地复现一个实例的 patch 动作。

5. 这次配置里最容易踩的四个错

第一个错是把 Base URL 写成 https://taotoken.net/api/v1。OpenHands 在 base_url 后面拼接协议路径,多写 /v1 会直接 404。正确值就是 https://taotoken.net/api,末尾不带 /v1。

第二个错是 Key 用了文档页的示例值。TaoToken 的 Key 必须在官网 Dashboard 创建,复制后立即导出到当前 shell。如果出现 401,先回控制台检查 Key 是否有效,再看环境变量里有没有多余空格。

第三个错是模型 ID 不匹配。模型 ID 以模型广场为准,不要从别处抄一段来用。遇到 model not found 的报错时,去模型广场复制当前兼容 ID,重新设置 LLM_MODEL 后再跑。

第四个错是忘记环境变量不会自动进入 OpenHands 的子进程。启动 openhands run 前,先确认 LLM_API_KEY、LLM_BASE_URL、LLM_MODEL 都已在当前终端里生效。可以用 echo 检查,不要只看 export 命令有没有执行成功。

6. 回控制台对账并建立你自己的复现对照表

验证做完不等于结束。我建议你现在打开 TaoToken 控制台,看这次 OpenHands 会话产生的调用是否入账。入账的请求数、token 量和所选模型 ID 才是可复现基线的一部分。如果调用记录没有出现,先回头查环境变量,不要急着换实例。

把这次的实例编号 sympy__sympy-20590、启动命令、git diff 文件名、测试 exit code 抄进自己的复现表。下一次换模型或换实例时,只改 TAOTOKEN_MODEL 和任务文件,其他配置保持不变。这样你得到的是同一通道、同一任务集下的对照数据,而不是把不同来源的分数混在一起。TaoToken 在这里只是 Key 和 Base URL 的提供者,真正在跑的是 OpenHands 和 sympy 仓库里的问题。

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

相关推荐

OpenHands 实战TaoToken 复现 SWE-bench Verified 单实例

OpenHands 复现 SWE-bench Verified 单实例,以 TaoToken 为统一 API 基线,在 config.toml 中配置可复现的 Agent 工作流。选用 django 高危 bug 任务,用同一把 Key 跑通规划、定位、改码、测试回环,观察模型多轮工具调用下的上下文一致性。给出 config.toml 与 run_infer.py 命令,用本地单实例对照表记录 resolved 与异常,不追公榜分数。TaoToken 只做转发,让注意力留在 Agent 决策上。官网:htt

Ceshi01的博客 7

OpenHands 实战TaoToken 跑通 SWE-bench Verified 单实例

本文记录用 OpenHands 跑通 SWE-bench Verified 单实例的完整复现过程,TaoToken 作为默认应商(https://taotoken.net/?utm_source=taotoken_aicg_blog_end)负责提兼容 API,CodeActAgent 连续执行几十轮工具调用。实验不提模型排名,也不把 TaoToken 包装成被评测对象;重点在于同一把 Key 能否撑完整场、上下文是否中途断、用量账单如何与 OpenHands 事件流逐条对账。文章给出 config.

Ceshi01的博客 12

OpenHands 实战TaoToken 当默认应商跑 SWE-bench Verified 单实例

OpenHands 0.24 CLI 为基底,将默认 LLM 应商切换为 TaoToken,通过统一 API 的 base_url 对接模型,并选取 SWE-bench Verified 中的 django__django-11099 单实例完成修复。过程中记录了 Agent 的 47 次工具调用、约 89 万输入 token 与 3.1 万输出 token,验证TaoToken 返回的 tool call 能被 OpenHands 正确解析,最终补丁通过该实例自带测试。文章同时给出了 confi

Ceshi01的博客 6

OpenHands 实战TaoToken应商跑通 SWE-bench Verified 单实例

本文记录用 OpenHands 在本地跑通 SWE-bench Verified 单实例的完整流程,将 TaoToken 设为默认模型应商,通过 OpenAI 兼容接口固定 Base URL。正文给出可复现的 Docker 启动命令、模型 ID 配置方式,并统计本次会话共消耗 284,136 tokens(输入 217,490、输出 66,646),还分析了三个常见报错:Docker socket 未挂载、Base URL 加了 /v1、API Key 带空格。最终成功生成修复空文件异常的 patch,并

Ceshi01的博客 5

OpenHands 实战:用 TaoToken Key 跑通 SWE-bench Verified 复现任务

OpenHands 实战:用 TaoToken Key 跑通 SWE-bench Verified 单条复现任务。流程从创建 Key、Docker 启动 OpenHands、设置 LLM_BASE_URL 与 LLM_MODEL 开始,将官方 issue 描述交给 Agent 在沙箱中修改代码,最终在 workspace 生成 patch.diff。全文无公榜排行分数,只复现同一把 Key 的环境变量核对、模型广场 ID 选择、容器排障与产物路径。TaoToken 作为统一 API 兼容通道,换模型只改模型

Ceshi01的博客 6

OpenHands 实战TaoToken 跑通 SWE-bench Verified 修复流程

本文以TaoTokenOpenHands默认应商,实际跑通SWE-bench Verified中10个Python issue修复流程,记录最终patch、执行轮数和token消耗。配置只需在OpenHands中设置Base URL为TaoToken接口,并填入官网Key与模型ID。文中给出Docker启动命令、记录表样例、token对账方法,并强调公榜数据以官方为准。通过同一把Key可复现完整评测步骤:https://taotoken.net/?utm_source=taotoken_aicg_blo

Ceshi01的博客 77

OpenHands 实战TaoToken 做默认应商跑 SWE-bench Verified 单实例

本文记录用 TaoToken 作为 OpenHands 默认应商,跑 SWE-bench Verified 单实例 django__django-11049 的完整过程。实操包括在 TaoToken 创建 Key、配置 Base URL https://taotoken.net/api、通过日志确认请求已发往该通道,再复现报错、定位源码、生成补丁并验证通过,最后列出 token 消耗清单。文中未转载任何公榜分数,同一把 Key 可按清单复现。TaoToken 官网:https://taotoken.net

Ceshi01的博客 6

OpenHands 实战:用 TaoToken Key 跑通 SWE-bench Verified 子集

OpenHandsSWE-bench Verified 子集,我用 TaoToken Key 作为统一模型入口,在 20 个固定实例上复现完整评测流程。文章固化了实例清单,用官方 SWE-bench 镜像串行跑完,记录 pass@1 与平均耗时。本次样本结果为 13 PASS、5 FAIL、2 TIMEOUT,pass@1 65%,平均耗时 10.4 分钟;为控制并发,批量循环保持串行,并把 MAX_ITERATIONS 固定为 40。环境变量与对账动作都可回溯到 https://taotoken

Ceshi01的博客 5

OpenHands 实战TaoToken 跑通 SWE-bench Verified 的 Django 修复

本文记录用 OpenHands 作为修复 Agent、TaoToken 作为模型通道,在最小 Django 仓库上跑通 SWE-bench Verified 风格修复流程。以 calculate_discount 类型缺陷为样例,验证 OpenHands 能依据失败测试自动读码、修改、回归,测试结果从 1 ERROR 转为 OK。全程使用固定 Base URL 与模型 ID,未改动测试文件即可完成修复;并给出迁移到 SWE-bench Verified 真实 django__django 实例的方法。所有配

Ceshi01的博客 8

OpenHands 实战:用 TaoToken 跑通 SWE-bench Verified 复现流程

OpenHands 跑通 SWE-bench Verified 单条复现,本文记录用 TaoToken 统一 API 通道的完整链路。先在 TaoToken 创建 Key,将 OpenHands 的 Base URL 指向统一通道,并在 headless 模式下生成 patch;随后用官方 harness 验证 pass@1,最后从 trajectory.jsonl 统计 token 成本。文中不引用公榜分数,只提同一把 Key 的本地复现步骤,方便自行核对配置与结果。完整操作参考 https://tao

Ceshi01的博客 6

OpenHands 实战:经 TaoToken 跑通 SWE-bench Verified 子集

本文记录用 OpenHandsTaoToken 跑通 SWE-bench Verified 子集的完整流程:以有效 patch 作为通过指标,从官方 verified.jsonl 取前 5 条实例,配置 LLM_BASE_URL 为 https://taotoken.net/api(官网链接:https://taotoken.net/?utm_source=taotoken_aicg_blog_end),并在 OpenHands 中设置 Key 与模型 ID。文章给出记录表模板,强调本地复现结果不代表

Ceshi01的博客 8

OpenHands 实战TaoToken 跑通 SWE-bench Verified 的 5 个 Python 修复

OpenHands 中复现 SWE-bench Verified 的 5 个 Python issue 修复,全程用 TaoToken 统一 API 与 Key,配置 Base URL 指向 TaoToken 接口。文章列出 5 个实例的 fix 循环命令、重试次数与 pass/fail 对照表,记录 360 万 token 消耗,并分析超时、改错函数、依赖缺失三类失败原因。本文不含 SWE-bench 公榜分数,只给出同一把 Key 的本地复现步骤。完整配置见 https://taotoken.net

Ceshi01的博客 5

OpenHands 实战TaoToken 执行 SWE-bench Verified 仓库级修复

OpenHandsTaoToken 完成 SWE-bench Verified 仓库级修复,本文以 pytest-dev/pytest 的 fixture 缓存失效 issue 为例,完整演示从创建 Key、配置 Base URL 到运行 OpenHands 0.30.0 并取得 resolved 状态的过程。TaoToken 作为统一 API 通道,不参与代码生成,但需确保模型 ID 与模型广场一致且 Base URL 不带 /v1。文中给出可复现的 docker run 命令、排障记录与本地复现表

Ceshi01的博客 7

OpenHands 实战:用 TaoToken 执行 SWE-bench Verified 用例

本文用 OpenHandsSWE-bench Verified 中 Django、pandas、pylint 三个 Python issue,不修代码,只记录现有测试在模型补丁下是否通过。TaoToken 不参与评测,只作 OpenAI 兼容 API 应商,在 OpenHands 的 LLM_BASE_URL 填 https://taotoken.net/api,并用同一 Key 切换模型。文章给出 Docker 启动命令、run_infer.py 参数、排障点与空白的 pass/fail 记录表,

Ceshi01的博客 4

OpenHands 实战TaoToken Key 跑通 3 个 SWE-bench Verified 实例

OpenHands 实战:用 TaoToken Key 跑通 3 个 SWE-bench Verified 实例。本文选取 Django、SymPy、Matplotlib 三个真实 GitHub issue,在 OpenHands 中配置 TaoTokenKey 与 Base URL,完成定位、改码、跑测试的完整闭环,三个实例均生成补丁并通过测试。正文给出可复现的实例 ID、运行命令和 patch 输出路径,并记录 401、模型 ID、sandbox 等排障细节。评测强调单次通过只代表链路可用,正式对

Ceshi01的博客 5

OpenHands 实战:用 TaoToken 跑通 SWE-bench Verified 的 astropy 实例

本文用 OpenHandsTaoToken 配为默认 LLM 应商,跑通 SWE-bench Verified 里一条 astropy/astropy 实例。任务聚焦 FITS BINTABLE 的 TDIM 列读取后 shape 被压平,Agent 先写复现测试,再改 astropy/io/fits/hdu/table.py,最终对应测试 1 passed。文中给出 config.toml 配置、session 轨迹和本地复现表,并强调单实例结果不代表公榜 pass@1,也不对模型排名。TaoTo

Ceshi01的博客 7

OpenHands 实战:用 TaoTokenSWE-bench Verified 补丁生成

本文用 OpenHands 作为被测 Agent,经 TaoToken 统一 API 网关配置模型通道,在 SWE-bench Verified 数据集上按固定切片取三条 issue 复现补丁生成。正文记录 Step 数、prompt/completion tokens 与 swebench harness 的 PASS_TO_PASS/FAIL_TO_PASS 判定,并强调不引用公榜分数,只展示本地运行日志。配置上给出环境变量、config.toml 与 docker run 命令,换模型只需改 LLM_

Ceshi01的博客 126

OpenHands 实战:用 TaoToken 跑通 SWE-bench Verified

使用 OpenHandsSWE-bench Verified实战,通过 TaoToken 的 OpenAI 兼容通道驱动 Agent 处理 django__django-11099 实例。文章完整记录从配置环境变量、运行 run_infer.py 到验证 patch 的过程,并给出单实例实测:17 轮工具调用生成 patch,23 分钟完成,测试结果 PASS。同时指出 Base URL 不要追加 /v1、模型 ID 需以官网广场为准等踩坑点,并提可复用的脚本基线。TaoToken 作为 Key

Ceshi01的博客 6

OpenHands 实战TaoToken 跑通 SWE-bench Verified 50 个实例

OpenHandsSWE-bench Verified 50 实例的本地复现,先通过 TaoToken 固定模型通道与 Base URL,再以固定 seed 抽子集、max_iterations=40、4 路并发完成一轮评测。结果是 50 实例快照而非公榜成绩:通过 16 个(32%),断言失败 20 个(40%)。日志分类指向调参与复现:构建失败先修镜像,超时降并发,复现时用同一把 Key 对账。TaoToken稳定 Key/Base URL,详见 https://taotoken.net

Ceshi01的博客 6

OpenHands 实战TaoToken 跑通 SWE-bench Verified 案例

OpenHands 实战中,通过 TaoToken 统一 API 跑通 SWE-bench Verified 的 Django/ORM 任务,复现了 FilteredRelation 与 annotate 组合导致聚合丢失 WHERE 条件的修复过程。文中记录了环境变量配置、模型广场选 ID、Base URL 去掉 /v1 的排障,以及同一把 Key 换模型 ID 的本地对照:模型 A 约 9 万 token 完成 5 个用例通过,模型 B 未完成且违规改断言。本文仅复现单条任务,不引用公榜排名。完整配置见

Ceshi01的博客 7
上一篇: TaoToken 做 Chatbox 的兼容通道:别找临时中转
下一篇: 502 网关错误时,怎么确认是 TaoToken 还是 Cline 的锅?
ceshi01
博客等级 码龄18年 1粉丝 4603原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值