尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OpenHands 实战:TaoToken 跑通 SWE-bench Verified 的一个实例

OpenHands 实战:TaoToken 跑通 SWE-bench Verified 的一个实例 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 目标与产物用 OpenHands 在本地跑通一个 SWE-bench Verified 实例本文的目标很具体在一台普通开发机上用 OpenHands 的 fix 模式跑通 SWE-bench Verified 中的一个可本地运行的实例观察 Agent 能否完成「读 issue → 定位代码 → 生成补丁 → 运行测试」这条链路。TaoToken 在这里作为默认模型供应商模型通道使用 GLM 5.3 Flash。产物包括三样一份可复用的 OpenHands 启动命令、一次实例尝试的完整轨迹日志、以及一份失败原因检查点清单。需要先说明边界SWE-bench Verified 是人工筛选过的子集但单个实例能否跑通取决于仓库依赖、Python 版本、测试命令和模型能力不是「配好 Key 就一定过」。本文不含排行分数也不对 GLM 5.3 Flash 在榜单上的名次做任何断言——所有模型与价格信息以 TaoToken 官网为准。开始前先在 TaoToken 官网创建 API Keyhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。拿到 Key 后Base URL 统一写https://taotoken.net/api注意 API 地址不带 UTM 参数。2. 环境准备与 OpenHands 启动命令OpenHands 官方推荐用 Docker 运行因为它需要在一个隔离容器里执行 shell、编辑文件和跑测试。下面按「先装 CLI再起 runtime最后跑实例」的顺序来。2.1 安装与基础依赖# Python 3.11 建议 python -m venv .venv source .venv/bin/activate # 安装 OpenHands以官方发布为准版本号请对照官网 pip install openhands-ai # 确认 Docker 可用 docker ps如果你的机器没有 DockerOpenHands 也支持本地 runtime但 SWE-bench 类实例往往需要特定依赖容器方式更省心。2.2 写入 LLM 配置OpenHands 的模型配置通过环境变量或config.toml注入。这里用环境变量方式便于在命令行里切换export LLM_MODELopenai/glm-5.3-flash export LLM_API_KEYYOUR_TAOTOKEN_API_KEY export LLM_BASE_URLhttps://taotoken.net/api注意LLM_MODEL的前缀openai/表示走 OpenAI 兼容协议TaoToken 的 API 网关兼容该协议因此 OpenHands 能直接识别。模型 ID 请以 TaoToken 官网模型列表为准不要照抄本文示例。2.3 启动命令openhands \ --task Fix the issue described in the repository and make the failing test pass \ --mode fix \ --workspace ./swe_instance \ --max-iterations 40--mode fix是本文关注的重点它让 Agent 以「修 bug」为目标而不是自由探索。--max-iterations控制 Agent 的最大步数SWE-bench 实例通常需要 20–50 步设太小会中途截断。3. TaoToken 接入与配置要点TaoToken 在 OpenHands 里扮演的是「模型通道」角色接入本身不复杂但有几个容易踩的点。第一Base URL 必须写https://taotoken.net/api不要带尾部斜杠也不要误加 UTM 参数。OpenHands 会在其后拼接/v1/chat/completions之类的路径。第二Key 的权限。在 TaoToken 控制台创建 Key 时建议单独建一个用于 Agent 的 Key方便按项目统计用量。控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。第三如果你同时用 Claude Code 或 Codex配置方式不同Claude Code 走settings.json里的ANTHROPIC_*变量Codex 走config.toml而 CC Switch 则是三件套供应商、Key、模型切换。OpenHands 属于 OpenAI 兼容通道和上面几类不共用同一份配置。第四超时与重试。Agent 任务动辄几十步建议在 OpenHands 侧把请求超时调大并在 TaoToken 侧确认所选模型通道的并发限制。具体限额以官网文档为准https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。4. 一次实例尝试的轨迹与失败检查点下面是一次真实尝试的轨迹摘要已脱敏实例名以repo__issue-xxxx代称。为便于阅读按 Agent 阶段归纳。阶段Agent 动作观察结果读题解析 issue 描述提取关键词与文件线索正确识别目标模块定位grep 打开 2 个候选文件命中 1 个另 1 个为误判修改生成补丁编辑 1 个函数语法正确逻辑方向对测试运行指定测试命令首次失败依赖缺失重试安装依赖后重跑二次失败断言仍不通过收尾输出 diff 与总结未通过但 diff 可读失败原因检查点按优先级排列依赖缺失SWE-bench 实例常要求特定版本的库。Agent 第一次跑测试时报ModuleNotFoundError说明环境未预装。检查点在启动容器前确认requirements.txt或environment.yml已安装。测试命令不对不同仓库的测试入口不同pytest / unittest / tox。检查点从实例元数据里读取test_cmd不要凭猜测。断言与预期不符补丁改了逻辑但没覆盖边界条件。检查点让 Agent 先读测试文件再改源码而不是反过来。步数耗尽--max-iterations太小Agent 在重试中被截断。检查点观察日志末尾是否为「达到最大迭代」。模型通道问题如果请求返回 401/404先核对 Base URL 与 Key再确认模型 ID 是否在 TaoToken 当前可用列表内。需要强调本文不含排行分数上述轨迹只代表单次尝试不构成对模型能力的评测结论。5. 限制、成本与模型选择先说限制。OpenHands 跑 SWE-bench 实例本质是「让 Agent 在真实仓库里试错」它受三件事约束仓库环境是否可复现、测试命令是否明确、模型是否能在有限步数内收敛。任何一环出问题实例就跑不通这与供应商无关。再说成本。Agent 任务的 token 消耗远高于单轮对话因为每一步都要带上历史上下文。GLM 5.3 Flash 属于偏快的通道适合这种多步场景但具体单价、计费方式和可用模型请以 TaoToken 官网为准本文不列价格数字。控制成本的实用做法限制--max-iterations、在 prompt 里要求 Agent 先读测试再改代码、以及为 Agent 单独建 Key 以便统计。模型选择上如果你只是验证接入链路用 Flash 类通道足够如果要做长期、多实例的批量跑建议走 Coding Plan 通道入口https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。若你更关心模型对话本身的对比可以看模型对话页https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。最后给一个可复现的最小闭环先用一个「测试已存在且明确」的小实例跑通确认 OpenHands TaoToken GLM 5.3 Flash 三者链路正常再逐步换更难的实例。API Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。把这两页存好排障时比翻聊天记录快得多。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度
返回列表