如何用 OpenRouter 接入任意编码代理或 AI 工具
How to Use OpenRouter With Any Coding Agent or AI Tool
OpenRouter 提供统一 API 键(sk-or- 开头),兼容 OpenAI Chat API,可接入 300+ 模型和 60+ 供应商。用户只需将 base URL 改为 `https://openrouter.ai/api/v1`,设置 API 键,并指定模型 slug(如 `openai/gpt-4o` 或 `anthropic/claude-sonnet-4`)即可。同一键可直接用于 Claude Code、Codex CLI、Cursor、Cline 等编码代理与工具。其路由机制在供应商故障时自动切换,代理无需感知失败即可继续多步骤任务。OpenRouter 也提供 Python 和 TypeScript 原生 SDK。

- 三个通用设置技巧
- 哪些编程智能体和 AI 工具支持 OpenRouter
- 路由如何让你的智能体保持在线
- 使用 SDK 构建你自己的智能体
- 费用与速率限制
- 常见问题解答
OpenRouter 位于你的编程工具与其所调用的模型提供商之间。你的工具仍然负责发送请求。OpenRouter 则负责处理提供商关系、模型目录、使用情况可见性、计费和路由,所有这些都通过一个 API 密钥完成。
当你开始使用多个工具、模型或提供商时,这一点就变得至关重要。如果没有 OpenRouter,你需要为 OpenAI、Anthropic、Google 以及其他所有提供商分别管理各自的密钥、各自的计费面板和各自的配置路径。有了它,所有受支持的工具都使用同一个 sk-or-... 密钥、同一种模型 slug 格式和同一个 base URL。
只需连接一次工具,你就可以通过编辑一个字符串来切换模型,在一个地方查看所有支出,并且在某个提供商宕机时让智能体继续运行。下面是设置模式以及已经支持这种模式的工具。
三个通用设置技巧
任何支持 OpenAI Chat Completions API 的工具都能与 OpenRouter 配合使用,因为 OpenRouter 暴露的是同一套 API。你只需修改两个值——base URL 和密钥,然后选择一个模型,其余代码保持不变。这一个端点即可对接 60 多家服务商的 300 多个模型。
三步操作:
- 获取密钥。在密钥页面创建一个即可。OpenRouter 密钥以 sk-or- 开头,工具据此识别它连接的是 OpenRouter 而非 OpenAI 本身。请将密钥存放在环境变量中,不要写进源代码。普通的 sk-... 密钥是 OpenAI 的密钥,无法路由。
- 将 base URL 指向 https://openrouter.ai/api/v1。由于该 API 与 OpenAI 兼容,只需替换这一个值,官方 OpenAI SDK 即可正常工作。
- 以 provider/model 形式选择模型 slug,例如 openai/gpt-4o 或 anthropic/claude-sonnet-4。切换模型时只需更改 slug 这一项。可在 openrouter.ai/models 浏览模型目录。
大多数工具将这些设置放在不同位置——环境变量、配置文件或设置界面——但各处的值完全相同。下面用三种方式演示同一个调用。
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [{"role": "user", "content": "Refactor this function."}]
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
resp = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Refactor this function."}],
)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
});
const resp = await client.chat.completions.create({
model: "anthropic/claude-sonnet-4",
messages: [{ role: "user", content: "Refactor this function." }],
});前两种使用 OpenAI SDK,大多数项目已安装该 SDK。OpenRouter 也提供自己的 SDK,无需设置 base URL 即可发起同样的调用:Python 版为 openrouter,TypeScript 版为 @openrouter/sdk。
from openrouter import OpenRouter
import os
with OpenRouter(api_key=os.environ["OPENROUTER_API_KEY"]) as client:
resp = client.chat.send(
model="anthropic/claude-sonnet-4",
messages=[{"role": "user", "content": "Refactor this function."}],
)import { OpenRouter } from "@openrouter/sdk";
const client = new OpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
});
const resp = await client.chat.send({
model: "anthropic/claude-sonnet-4",
messages: [{ role: "user", content: "Refactor this function." }],
});两个可选请求头 HTTP-Referer 和 X-Title 可用于标记你的应用,使其显示在 OpenRouter 的排行榜中。两者都不是发起有效请求所必需的。详情请参阅应用归属说明。
哪些编程智能体和 AI 工具支持 OpenRouter
同一个 API 密钥适用于下面所有工具,因此你只需配置一次,即可为整个列表完成密钥配置。终端智能体读取配置文件或环境变量;编辑器和扩展则在设置面板中进行配置。
| 工具 | 连接方式 | 配置 |
|---|---|---|
| Claude Code(Anthropic 的终端智能体) | 通过 OpenRouter 兼容 Anthropic 的端点,使用环境变量 | 指南 |
| Codex CLI(OpenAI 的开源终端智能体) | ~/.codex/config.toml,设置 model_provider = "openrouter" | 指南 |
| OpenClaw(开源智能体,原 Moltbot/Clawdbot) | ~/.openclaw/openclaw.json,或设置 OPENROUTER_API_KEY | 指南 |
| Hermes Agent(Nous Research 的开源 CLI 智能体) | ~/.hermes/config.yaml,密钥存放在 ~/.hermes/.env 中 | 指南 |
| Cursor(AI 代码编辑器) | 应用内设置:自定义 OpenAI base URL 及密钥 | 指南 |
| Cline(VS Code 智能体扩展) | 扩展设置:OpenRouter 提供商 | 页面 |
| Kilo Code(VS Code 智能体扩展) | 扩展设置:OpenRouter 提供商 | 页面 |
| SillyTavern(本地优先的聊天前端) | 连接设置:OpenRouter API | 页面 |
这份列表并不详尽。OpenRouter 同样支持 Claude Desktop、Junie CLI、OpenCode 以及 MCP 服务器。其模式始终如一:一个密钥、一个基础 URL、一个模型标识符(slug)。
路由如何让你的智能体保持“存活”
单一端点为你带来了路由能力,而这对智能体的重要性远超对一次性脚本的意义。
一次失败的 API 调用本身很容易处理。你捕获错误并重试即可。但一个执行多步骤任务的智能体则没那么宽容,因为它在多次调用之间保持着状态。中途发生的提供商故障可能导致编辑只应用了一半、工具调用从未返回结果,或者智能体将某个计划当作已完成来继续推理。当故障转移发生在底层的路由层时,智能体根本看不到这次失败。它拿到补全结果,继续运行。有两项机制承担这项工作,并且它们可以叠加使用。
自动提供商故障转移
这无需任何配置。某个模型通常由多家提供商提供服务,如果 OpenRouter 首先尝试的那家宕机或对你限流,它会将同一模型路由到另一家提供该服务的提供商。你只为成功落地的调用付费。
手动模型回退
这是你主动选择接入的一层。与备用供应商不同,你可以通过传入一个 models 数组来指定备用模型(使用 OpenAI SDK 时,放在 extra_body={"models": [...]} 中)。OpenRouter 会先尝试你的首选模型,然后按顺序依次尝试每个备用模型,并且只按实际运行的模型计费,该模型会返回在响应的 model 字段中。这覆盖了这样一种情况:某个模型背后只有一个供应商,而该供应商宕机了——正是在这种时候,供应商级别的故障转移无处可去。
如果你完全不想自己选择,Auto Router(openrouter/auto)会针对每条提示词挑选模型,把更简单的请求发给更便宜的模型,把更难的请求发给更强的模型。无论它选中哪个模型,你都按标准费率付费,不收取额外路由费用。在原型开发阶段、你还不知道哪个模型适合某项任务时,这个功能非常方便。
使用 SDK 构建你自己的智能体
如果你是在接入一个现有工具,上面的步骤就足够了。如果你要构建自己的智能体,OpenRouter 为你提供了两个 SDK。
Client SDK 支持 TypeScript 和 Python,是 REST API 之上一个轻量的、类型安全的封装层,提供生成的类型和自动补全,而不是手写 HTTP 请求。
Agent SDK 替你运行整个循环。它管理多轮对话、执行你的工具,并通过一个 callModel 原语跟踪状态。由于你可以在不同轮次之间更换模型,像读取文件这种成本较低的步骤可以路由到便宜的模型,而代码生成则交给更强的模型——这一切都发生在同一个循环内。
下面是一个工具调用调用的形态。这一次 callModel 调用会发送提示词,让模型调用 get_weather,运行该函数,将结果反馈回去,并返回最终文本。
import { callModel, tool } from "@openrouter/agent";
import { z } from "zod";
const weatherTool = tool({
name: "get_weather",
description: "Get the current weather for a location",
inputSchema: z.object({ location: z.string() }),
execute: async ({ location }) => ({ temperature: 72, condition: "sunny", location }),
});
const result = await callModel({
model: "anthropic/claude-sonnet-4",
messages: [{ role: "user", content: "What is the weather in San Francisco?" }],
tools: [weatherTool],
});
const text = await result.getText();费用与速率限制
OpenRouter 提供免费套餐。20 多个模型以 $0 价格运行,限制为每天 50 次请求、每分钟 20 次;一旦你充值 $10 积分,限额将提升至每天 1,000 次。在依赖它之前有两点需要注意。失败的尝试仍会计入每日配额,而且热门的免费模型在高峰时段可能会被上游提供商限流。即便如此,这足以让你在推理上花任何钱之前,把一个智能体端到端跑通。
在付费使用方面,OpenRouter 不对模型定价加价。你支付的每 token 费率与直接向提供商支付的相同,也就是模型目录中显示的价格。在此基础上,积分购买需支付 5.5% 的手续费,最低 $0.80。因此,你的推理成本保持在提供商的费率水平,而 OpenRouter 的收益就是这笔积分手续费。定价页面有当前数字,Activity 仪表板会实时显示每次请求的模型和费用,这是发现智能体在比任务所需更重的模型上消耗积分的最快方式。
常见问题解答
我是否需要为每个工具单独申请一个 API 密钥?
不需要。一个 OpenRouter 密钥可用于本列表中的所有工具。在 openrouter.ai/keys 生成一次,然后将同一个 sk-or-... 值粘贴到 Claude Code、Codex CLI、Cursor 或任何其他受支持的工具中即可。
OpenRouter 是否兼容 OpenAI SDK?
是的。将 base_url(Python)或 baseURL(TypeScript)指向 https://openrouter.ai/api/v1,并传入你的 OpenRouter 密钥即可。OpenRouter 是 OpenAI Chat API 的即插即用替代方案,因此官方 SDK 无需任何其他改动即可直接使用。
如何免费使用 OpenRouter?
使用免费模型并保持在免费额度内即可。免费模型(即模型页面上的 :free 变体)每天最多可运行 50 次请求;一旦你充值 $10 积分,额度将提升至每天 1,000 次。
我可以在 VS Code 中使用 OpenRouter 吗?
可以。使用 Cline 或 Kilo Code 这类暴露了 OpenRouter 提供方选项的智能体扩展,或任何允许你设置自定义 OpenAI base URL 的扩展。将 base URL 设置为 https://openrouter.ai/api/v1,粘贴你的密钥,然后选择一个模型即可。
OpenRouter 使用什么样的模型 slug 格式?
格式为 provider/model,例如 openai/gpt-4o 或 anthropic/claude-sonnet-4。在作者名前加上 ~ 前缀,如 ~anthropic/claude-sonnet-latest,即可始终解析到该系列中的最新版本。浏览完整列表请访问 openrouter.ai/models。
OpenRouter 会记录我的代码或提示词吗?
来源:OpenRouter:Announcements · openrouter.ai