OpenHands 实战:用 TaoToken 跑通 SWE-bench Verified 实例
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度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 页面内。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度

相关新闻

MMDetection 多目标跟踪推理实战:使用 mot_demo.py 推理视频与图像序列

MMDetection 多目标跟踪推理实战:使用 mot_demo.py 推理视频与图像序列

MMDetection 多目标跟踪推理实战:使用 mot_demo.py 推理视频与图像序列 【免费下载链接】mmdetection OpenMMLab Detection Toolbox and Benchmark 项目地址: https://gitcode.com/gh_mirrors/mm/mmdetection MMDetection 在 demo/mot_demo.py 中提供了面向多…

2026/9/20 1:17:19 阅读更多 →
winget 装好 Claude Code,claude 命令的模型通道改到 TaoToken

winget 装好 Claude Code,claude 命令的模型通道改到 TaoToken

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

2026/9/20 1:17:19 阅读更多 →
solon-ai-harness 的 Agent 每加一个模型就写一份 sk-?TaoToken 这样改 ChatConfig

solon-ai-harness 的 Agent 每加一个模型就写一份 sk-?TaoToken 这样改 ChatConfig

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

2026/9/20 1:17:19 阅读更多 →

最新新闻

2026年AI编程工具版图:从补全代码到数字员工的五大阵营解析

2026年AI编程工具版图:从补全代码到数字员工的五大阵营解析

1. 2026年AI编程工具的版图:从“补全代码”到“数字员工”的演变年初整理自己电脑上装的一堆AI编程插件时,我发现一个很有意思的现象:三年前大家口中所谓的“AI编程工具”,默认指的就是GitHub Copilot那种在你敲代码时自动补全下半…

2026/9/20 3:14:15 阅读更多 →
夸克网盘下载限速怎么破?在线解析与直链提取提速方案详解

夸克网盘下载限速怎么破?在线解析与直链提取提速方案详解

网盘限速这件事,几乎每个重度用户都经历过。明明家里宽带跑满能到几百兆,下载网盘里的文件却只有几百KB,一个几GB的安装包要挂一整晚。夸克网盘因为空间给得大方、资源分享活跃,用的人越来越多,但"下载慢"的…

2026/9/20 3:14:15 阅读更多 →
LibreChat自托管部署实战:多模型AI对话中台配置与问题排查

LibreChat自托管部署实战:多模型AI对话中台配置与问题排查

1. 为什么我最终选择了LibreChat作为AI对话中台第一次接触LibreChat是在一个需要同时对接多个大模型接口的项目里。当时团队内部有做文案的、写代码的、做数据分析的,每个人习惯用的模型不一样,有人偏爱某家的长文本能力,有人觉得另一家的代码…

2026/9/20 3:14:15 阅读更多 →
RapidOCR 完整上手指南:从安装到多语言识别的三步路

RapidOCR 完整上手指南:从安装到多语言识别的三步路

RapidOCR 完整上手指南:从安装到多语言识别的三步路 【免费下载链接】RapidOCR 📄 Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch. 项目地址: https://gitcode.com/…

2026/9/20 3:14:15 阅读更多 →
如何 5 分钟从零搭好你的第一个多智能体系统:Multi-Agent Orchestrator 快速上手指南

如何 5 分钟从零搭好你的第一个多智能体系统:Multi-Agent Orchestrator 快速上手指南

如何 5 分钟从零搭好你的第一个多智能体系统:Multi-Agent Orchestrator 快速上手指南 【免费下载链接】agent-squad Flexible and powerful framework for managing multiple AI agents and handling complex conversations 项目地址: https://gitcode.com/GitHub…

2026/9/20 3:14:15 阅读更多 →
LinkSwift 网盘直链解析指南:安装到拿到直链全流程

LinkSwift 网盘直链解析指南:安装到拿到直链全流程

LinkSwift 网盘直链解析指南:安装到拿到直链全流程 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…

2026/9/20 3:13:15 阅读更多 →

日新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →