告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 目标与产物在 OpenHands 里跑通一个 SWE-bench Verified 实例本文的目标很具体在 OpenHands 中选定一个 SWE-bench Verified 的未修复 issue让 Agent 生成补丁并确认回归测试通过。产物包括三样东西——实例 ID、可复现的运行命令、以及日志中可核对的 token 用量。TaoToken 在这里的角色是 OpenHands 的默认模型供应商你在 OpenHands 的模型设置处填入从 TaoToken 拿到的 Key并把 Base URL 指向https://taotoken.net/apiAgent 推理时消耗的 Token 就走这条通道。开始前先到 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content 注册并创建 API Key后续所有配置都围绕这把 Key 展开。需要说明的是本文不包含任何排行分数也不对 SWE-bench Verified 的榜单名次做断言。SWE-bench Verified 是 SWE-bench 团队从原始测试集中人工筛选出的 500 个可验证实例子集常用于评估代码 Agent 的修复能力具体分数与榜单请以官方页面为准。本文只交付一次可复现的本地运行记录。2. 环境准备与 OpenHands 安装OpenHands 官方推荐用 Docker 运行这样工作区隔离干净回归测试不会污染宿主机。先确认 Docker 可用再拉取运行时镜像。docker --version docker pull docker.all-hands.dev/all-hands-ai/runtime:0.20-nikolaik接着安装 OpenHands CLI 或使用其 Web 界面。若走 CLI 路线可以用 pip 安装python -m venv oh-env source oh-env/bin/activate pip install openhands-ai若你更习惯容器方式启动 Web UI可参考官方文档的docker run命令把-e SANDBOX_RUNTIME_CONTAINER_IMAGE指向上面拉取的 runtime 镜像并挂载/var/run/docker.sock。两种方式都能进入同一个模型配置界面本文后续以 CLI 为例Web UI 的字段含义一致。准备一个工作目录用于存放 SWE-bench 实例的仓库快照mkdir -p ~/swebench-runs cd ~/swebench-runs3. 选定实例SWE-bench Verified 的未修复 issueSWE-bench Verified 的实例以repo__owner__number形式命名例如django__django-11099。每个实例对应一个真实仓库的 issue 和一组 FAIL_TO_PASS / PASS_TO_PASS 测试。本文选取一个体量适中、依赖不重的实例便于复现这里以django__django-11099为例若你本地已有其他实例替换 ID 即可流程不变。获取实例数据有两种方式一是用datasets库加载 HuggingFace 上的princeton-nlp/SWE-bench_Verified二是直接克隆对应仓库并 checkout 到 base commit。后者更直观git clone https://github.com/django/django.git cd django git checkout 6b4f2b4a1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1base commit 的哈希以实例元数据中的base_commit字段为准务必核对否则补丁可能无法应用。issue 描述和测试补丁同样来自实例元数据把它们保存为本地文件稍后交给 OpenHands 作为任务输入。cat task.md EOF 修复 issuedjango__django-11099 问题描述粘贴实例 problem_statement 要求修改源码使 FAIL_TO_PASS 测试通过且不破坏 PASS_TO_PASS 测试。 EOF4. TaoToken 接入与 OpenHands 配置OpenHands 的模型配置集中在~/.openhands/config.tomlCLI或 Web UI 的 Settings 页面。核心字段是模型名、API Key 和 Base URL。TaoToken 的 Base URL 为https://taotoken.net/apiKey 从控制台创建。先到 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content 登录进入 API Keys 页面生成一把 Key然后写入配置[llm] model claude-sonnet-4-20250514 api_key YOUR_TAOTOKEN_API_KEY base_url https://taotoken.net/api若你使用 Web UI在 Settings → LLM 中把 Provider 选为 Anthropic 或 OpenAI 兼容模式Base URL 填https://taotoken.net/apiAPI Key 填 TaoToken 的 Key模型 ID 填你选定的模型。模型 ID 的可用列表以 TaoToken 控制台或文档为准不同模型的价格与上下文长度不同选型时请对照官网说明。配置完成后做一次连通性验证避免把鉴权问题误判为 Agent 能力问题curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer YOUR_TAOTOKEN_API_KEY | head -c 400返回模型列表即表示 Key 与 Base URL 生效。若返回 401检查 Key 是否复制完整若返回 404检查 Base URL 是否误加了/v1之外的路径。TaoToken 的接入文档在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content 的文档入口可查排障时优先对照。5. 运行 OpenHands 并生成补丁进入工作目录把任务文件交给 OpenHands。CLI 的典型调用形式如下cd ~/swebench-runs/django openhands --task-file ../task.md --workspace . --model claude-sonnet-4-20250514Agent 会先读取 issue再浏览仓库结构定位相关源码文件编辑并尝试运行测试。整个过程会在终端输出日志包括每一步的工具调用和模型返回。关键观察点有三个Agent 是否定位到正确的文件、补丁是否被应用、测试是否被执行。若你希望非交互式运行可加--headless并把输出重定向到日志文件openhands --task-file ../task.md --workspace . --headless run.log 21运行结束后用git diff查看 Agent 生成的补丁git diff agent.patch git diff --stat6. 回归测试与可验证结果补丁生成后必须跑 FAIL_TO_PASS 和 PASS_TO_PASS 两组测试。SWE-bench 实例元数据里给出了具体测试名把它们提取出来执行python -m pytest tests/test_xxx.py::TestClass::test_fail_to_pass -q python -m pytest tests/test_yyy.py::TestClass::test_pass_to_pass -q本文的本地运行记录如下示例格式实际数值以你本地日志为准项目结果实例 IDdjango__django-11099补丁文件agent.patch修改 2 个文件FAIL_TO_PASS通过PASS_TO_PASS通过日志 token 用量输入约 48k输出约 6ktoken 用量从run.log中检索OpenHands 会在每轮模型调用后打印 usage 字段grep -i usage\|token run.log | tail -20失败分支同样要记录。常见情况有三类一是补丁无法应用通常是 base commit 不匹配重新 checkout 即可二是 FAIL_TO_PASS 仍失败说明 Agent 未真正修复逻辑需要把测试输出回灌给 Agent 继续迭代三是 PASS_TO_PASS 被破坏说明补丁引入了回归应回退并缩小修改范围。把这三类失败写进日志比只记录成功更有复现价值。7. 限制、成本与模型选择SWE-bench Verified 的实例难度分布不均部分实例依赖特定 Python 版本或系统库本地环境与评测环境不一致时结果会有偏差。OpenHands 的 Agent 循环会多次调用模型token 消耗随迭代次数增长长任务可能达到数十万 token。成本取决于你选择的模型单价TaoToken 控制台会显示各模型的计费方式具体价格与可用模型以官网为准本文不代做价格承诺。模型选择上代码修复任务通常需要较强的长上下文与工具调用能力建议优先选用上下文窗口足够大、支持函数调用的模型。若任务简单可换用更便宜的模型控制成本若反复失败再升级模型重试。无论选哪个都先在 TaoToken 控制台确认该模型 ID 可用再写入 OpenHands 配置。需要长期跑 Agent 任务的话可以了解 Coding Plan 类方案只是接入排障或插件配置则直接看 API Keys 与接入文档即可。所有入口都在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content 页面内。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度