AI万址

OpenRouter 教程:用 Responses API 构建可在 Linux 沙箱验证 bug 的 AI 代码审查脚本

AI 资讯助手·2026-11-01 03:50:57·0 次浏览

OpenRouter 于 2026-11-01 发布教程,演示用约 233 行纯标准库 Python 脚本调用 Responses API,在托管 Linux 沙箱中运行代码复现并确认 bug,返回可一键应用的补丁。基准测试显示单次审查耗时 1–4 分钟、成本 0.015–0.045 美元。

OpenRouter 于 2026 年 11 月 1 日发布了一篇实操教程《Build an AI Code Reviewer with OpenRouter (Python)》,演示如何用 OpenRouter 的 Responses API 搭建一个能在 Linux 沙箱里实际运行代码、验证 bug 的 AI 代码审查脚本。教程给出的核心产物是一个约 233 行、仅依赖 Python 标准库的脚本 review.py,可在本地命令行、Git pre-push 钩子或 GitHub Actions 中运行。

脚本如何工作

传统只看 diff 的审查器需要猜测改动文件其余部分长什么样、某个疑似 bug 是否在运行时真的会触发,且给出的修复往往只是需要手工粘贴的文本。教程中的脚本改用 OpenRouter Responses API,把改动后的文件、测试等上下文文件与 Git diff 一起上传到托管的 Linux 沙箱,让模型真正运行代码复现 bug,并以可一键应用的补丁形式返回修复。

脚本在 Responses API 上组合了三个服务端工具与一个函数工具:Files API(beta)负责上传完整文件与 diff,单次请求最多接受 20 个文件 ID(19 个改动/上下文文件加 1 个 diff);Shell 工具 openrouter:shell(beta)会把上传文件复制进托管 Linux 容器的家目录,使模型能直接跑 Python、SQLite;Apply Patch 工具 openrouter:apply_patch(beta)让模型以 V4A 格式(create_file / update_file / delete_file)提议改动;submit_review 函数工具则用一个严格 JSON Schema 收口,要求模型给出每条发现的文件、行号、严重度、是否被运行验证(confirmed / unconfirmed)及证据。

一次审查的流程

脚本先从 Git 取得 diff 与改动文件名,附加 --context 指定的文件后上传;随后发起 /api/v1/responses 调用。模型读取文件、在沙箱中编写并短跑检查以确认疑似 bug,同时提出补丁。模型发来的补丁会被先应用到本地临时副本、再回告模型是否应用成功——补丁本身并不在沙箱中落地,因此模型的检查针对的是原始代码,应用后用 --apply 跑测试才能确认修复有效。模型调用 submit_review 后,脚本删除上传文件、将完整报告写入 .git/ai-review.json 并退出:退出码 0 表示通过或无需审查,1 表示出现达到严重度阈值(默认 --block-at high)的阻断性发现,2 表示未在 8 轮内完成或改动超过 19 个文件。

上手与实测结果

前置条件为 Python 3.11 及以上、Git 与 OpenRouter API Key;Files API、Shell、Apply Patch 工具仅在全局端点 https://openrouter.ai/api/v1 提供,区域端点会返回 403。教程用一个「orders」示例仓库演示:在原有测试仍通过的代码上注入 5 个 bug,再运行 python3 review.py --context tests/test_orders.py。一次 anthropic/claude-haiku-5.5 运行输出了 5 条发现(其中 3 条 HIGH、4 条经运行确认,另 1 条因无法复现而标为 unconfirmed),耗时 184 秒、成本 0.0210 美元,并因 HIGH 发现退出 1。

在五 bug 变更上的基准测试中,单次审查耗时约 1 至 4 分钟,成本介于 0.015 至 0.045 美元之间。

不同模型的表现

教程对四个模型各跑了三轮(默认设置并附带测试文件作上下文),对比「找到的 bug 数」「经运行代码确认数」与「补丁修复全部五个 bug 的比例」:

  • Claude Haiku 5.5:完成 3/3,找到 14/15,确认 12,补丁全修 1/3,均价 0.0153 美元,均值 125 秒;
  • Claude Sonnet 5.5:完成 3/3,找到 15/15,确认 12,补丁全修 3/3,均价 0.0447 美元,均值 60 秒;
  • DeepSeek V4.1 Flash:完成 2/3,找到 10/10,确认 10,补丁全修 2/2,均价 0.0307 美元,均值 206 秒;
  • GPT-6 Luna:完成 3/3,找到 12/15,确认 12,补丁全修 1/3,均价 0.0167 美元,均值 156 秒。

所有模型在每次完成的审查中都确认了 SQL 注入、分页差一错误、is not 误用比较以及被吞掉的异常重试这四类 bug;而对「移除 conn.close()」是否构成泄漏则判断不一。教程建议:追求最低单价用 claude-haiku-5.5,追求更快且修复更稳用 claude-sonnet-5.5,并提醒「应用补丁前务必人工阅读」。

成本、限制与 CI 集成

每次审查的账单包含模型 token 与容器沙箱时间,沙箱按 0.0001 美元/秒计费(从首个 shell 命令到响应完成,模型思考时间也计入)。作为对比,纯 diff 的 Chat Completions 审查在 Haiku 5.5 上约 0.001 美元/次——跑沙箱贵 10 至 40 倍,但换来了可复现的证据与经过测试的修复。

需要注意的限制包括:改动与上下文文件会上传到 OpenRouter workspace 并发给模型提供方,只应审查你被允许共享、且不含密钥的代码;沙箱默认无外网、单个命令默认 2 分钟超时(最多 5 次),pip install 会失败,可用 network_policy 放行 pypi.org 等主机;上述工具均为 beta、行为可能变化,模型仍可能漏报、夸大严重度或写出坏补丁。

在 CI 侧,教程给出 .github/workflows/ai-review.yml,使用 actions/checkout@v7 与 actions/setup-python@v7(Python 3.11),并通过 git show "$BASE:review.py" 取基础分支上的脚本副本、以 python -I 运行,防止 PR 篡改审查器本身。

参考来源

  • ▸OpenRouter 官方博客教程(首要信源):Build an AI Code Reviewer with OpenRouter (Python),https://openrouter.ai/blog/tutorials/ai-code-review/,发布于 2026-11-01
  • ▸OpenRouter 文档:Shell tool guide、Apply Patch tool guide、Files API guide、Containers guide(openrouter.ai 文档站)
  • ▸模型评测工具 Ori Eval 文档(openrouter.ai 文档站)