
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 任务定义让 OpenHands 在 flask 仓库补全测试用例本文的目标很具体把 OpenHands 这个开源编码 Agent 接到 flask 仓库上让它在tests/test_basic.py里补全缺失的测试用例最后用pytest跑通。整个过程里TaoToken 出现在两个关键节点——先在官网创建 API Key再把 OpenHands 的模型供应商指向 TaoToken 的 API 端点并切换到 GLM 5.3 Flash 模型。如果你还没注册可以先到 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content创建账号并生成 Key。拿到 Key 之后OpenHands 的配置只需要改一处模型供应商地址和模型 ID剩下的交给 Agent 自己跑。本文不涉及任何排行榜分数也不对模型能力做主观排名。所有可验证的结果都来自本地实际执行OpenHands 运行命令、配置文件片段、pytest 输出。模型和价格信息以 TaoToken 官网当前展示为准本文只写配置方法。2. 环境准备与 OpenHands 运行命令OpenHands 官方推荐用 Docker 运行这样依赖隔离干净不会污染本机 Python 环境。先确认本机已安装 Docker然后拉取 flask 仓库到本地工作目录。# 克隆 flask 仓库 git clone https://github.com/pallets/flask.git cd flask # 确认当前测试文件状态 ls tests/ python -m pytest tests/test_basic.py -q第一次跑pytest时你可能会看到部分用例通过、部分被 skip 或直接报缺失。这正是我们要让 OpenHands 补全的切入点。接下来启动 OpenHands 容器把 flask 目录挂载进去。# 拉取 OpenHands 运行时镜像版本以官方 release 为准 docker pull docker.all-hands.dev/all-hands-ai/runtime:latest # 启动 OpenHands docker run -it --rm \ --pullalways \ -e SANDBOX_RUNTIME_CONTAINER_IMAGEdocker.all-hands.dev/all-hands-ai/runtime:latest \ -e LOG_ALL_EVENTStrue \ -v /var/run/docker.sock:/var/run/docker.sock \ -v ~/.openhands-state:/.openhands-state \ -p 3000:3000 \ --add-host host.docker.internal:host-gateway \ --name openhands-app \ docker.all-hands.dev/all-hands-ai/openhands:latest容器起来后浏览器打开http://localhost:3000进入 OpenHands 的 Web 界面。此时它还不会调用任何模型因为模型供应商还没配置。下一步就是接入 TaoToken。3. TaoToken 接入与 OpenHands 模型配置OpenHands 的模型配置有两种方式一种是在 Web 界面里填另一种是直接改配置文件。为了可复现这里给出配置文件片段。OpenHands 读取的配置目录是~/.openhands-state对应容器内的/.openhands-state。先在 TaoToken 官网创建 API Key。进入控制台后找到 API Keys 页面新建一个 Key 并复制。注意 Key 只在创建时完整显示一次务必先保存。创建 Key 入口TaoToken API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content接入文档参考TaoToken 文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content然后在宿主机上编辑 OpenHands 的配置文件。如果你用的是 Web 界面可以在 Settings 里直接填如果走配置文件内容如下# ~/.openhands-state/config.toml [core] runtime docker [llm] model glm-5.3-flash api_key YOUR_TAOTOKEN_API_KEY base_url https://taotoken.net/api这里有两个关键点base_url指向https://taotoken.net/apimodel填glm-5.3-flash。TaoToken 的 API 端点兼容 OpenAI 风格的请求格式OpenHands 的 LLM 层可以直接识别。如果你更习惯用环境变量也可以这样export LLM_MODELglm-5.3-flash export LLM_API_KEYYOUR_TAOTOKEN_API_KEY export LLM_BASE_URLhttps://taotoken.net/api配置完成后重启 OpenHands 容器让配置生效。回到 Web 界面在模型选择处应该能看到当前模型是glm-5.3-flash供应商地址是 TaoToken。如果界面里还显示旧的模型手动切换一次即可。对于 Claude Code 用户配置方式不同需要在settings.json里设置ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY分别指向 TaoToken 的 API 和你的 Key。Codex 用户则改config.toml。如果你同时用多个工具可以用 CC Switch 三件套统一管理供应商切换避免每次手动改配置。4. 让 OpenHands 补全测试用例并跑通 pytest配置好模型后在 OpenHands 的对话框里输入任务描述。描述要具体包含文件路径、目标和验收标准。例如在 flask 仓库的 tests/test_basic.py 中检查现有测试用例补全缺失的边界用例。 要求 1. 覆盖 app.route 的基本注册与访问 2. 覆盖 404 和 405 的返回 3. 补全后运行 python -m pytest tests/test_basic.py -q确保全部通过 4. 不要修改 flask 源码只改测试文件OpenHands 会先读取tests/test_basic.py分析现有用例然后生成补全代码并写入文件。它会在容器内执行pytest把输出反馈到对话里。如果第一次没跑通它会根据报错继续修改直到通过或达到步数上限。一个典型的成功输出如下$ python -m pytest tests/test_basic.py -q ........ [100%] 8 passed in 0.42s这里的8 passed是补全后的用例总数具体数字取决于你仓库的初始状态和补全范围。关键是pytest退出码为 0没有 failed 或 error。如果 OpenHands 报告某个用例失败先看它给出的 traceback再决定是让它继续修还是手动介入。失败分支也要有预案。常见情况有三种一是模型返回的代码语法错误OpenHands 通常能自己发现并重试二是测试逻辑与 flask 版本不匹配需要你在任务描述里补充版本约束三是 API Key 或 base_url 配错导致模型请求直接 401 或连接超时。第三种情况不会进入代码生成阶段OpenHands 会在日志里报 LLM 请求失败此时回到第 3 步检查配置。5. 限制、成本与模型选择OpenHands 跑通 flask 测试补全这个任务实际消耗的 token 取决于仓库大小、测试文件行数和 Agent 的迭代步数。flask 的tests/test_basic.py不算大通常几轮对话就能完成。成本方面TaoToken 按实际用量计费具体单价和模型列表以官网当前展示为准本文不写固定价格。模型选择上GLM 5.3 Flash 适合这类代码补全和测试生成任务响应速度和上下文长度都能覆盖 flask 仓库的规模。如果你要处理更大的仓库或更复杂的重构可以在 TaoToken 的模型列表里换用上下文更长的模型。切换方式就是改config.toml里的model字段或者用 CC Switch 一键切换。需要提醒的是OpenHands 在容器内执行命令涉及文件写入和进程启动建议在隔离环境里跑不要直接挂载生产代码。另外Agent 生成的测试用例需要人工 review 后再合并不能完全当作最终产物。TaoToken 在这里的角色是提供模型调用通道Agent 的行为和输出质量仍取决于模型本身和你的任务描述。如果你想把这条链路用到长期开发里可以了解 TaoToken 的 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerateutm_content它更适合持续性的 Agent 编码场景。接入或排障过程中遇到问题优先查接入文档再对照 API Keys 页面确认 Key 状态。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度