AnRouter 接入文档
从第一条请求到 Codex、Claude Code、OpenCode、OpenClaw 与 Hermes Agent。所有示例都明确区分 Base URL 和完整端点,避免重复拼接路径。
5 分钟快速开始
先在 AnRouter 控制台创建 API 密钥,再从模型页面复制模型 ID。下面以当前目录中的 glm-5.3 为例。
Python 示例需要安装官方 openai 包。Node.js 示例需要安装 openai 包,并保存为 ES module,例如 example.mjs。运行任一示例前,请先在进程环境中设置 ANROUTER_API_KEY。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ANROUTER_API_KEY"],
base_url="https://api.anrouter.com/v1",
)
response = client.chat.completions.create(
model="glm-5.3",
messages=[{"role": "user", "content": "用三句话介绍你自己。"}],
)
print(response.choices[0].message.content)
// 保存为 example.mjs,然后运行:node example.mjs
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ANROUTER_API_KEY,
baseURL: "https://api.anrouter.com/v1",
});
const response = await client.chat.completions.create({
model: "glm-5.3",
messages: [{ role: "user", content: "用三句话介绍你自己。" }],
});
console.log(response.choices[0].message.content);
curl https://api.anrouter.com/v1/chat/completions \
-H "Authorization: Bearer $ANROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"messages": [{"role": "user", "content": "用三句话介绍你自己。"}]
}'
密钥与身份认证
OpenAI 兼容请求统一使用 Bearer Token。AnRouter 的 Anthropic Messages 路由同时接受 Claude Code 使用的 Bearer 认证,以及 Anthropic SDK 常用的 x-api-key。
Authorization: Bearer YOUR_ANROUTER_API_KEYAuthorization: Bearer YOUR_ANROUTER_API_KEYx-api-key: YOUR_ANROUTER_API_KEY端点与 Base URL
Base URL 是客户端继续拼接路径的起点,不是完整请求地址。不同客户端拼接方式不同,不能把一条地址机械复制到所有软件。
| 用途 | 应填写 | 最终请求 |
|---|---|---|
| OpenAI SDK / OpenCode / OpenClaw / Hermes | https://api.anrouter.com/v1 | /v1/chat/completions |
| Codex 自定义 provider | https://api.anrouter.com/v1 | /v1/responses |
| Claude Code / Claude Desktop Gateway / Anthropic SDK | https://api.anrouter.com | /v1/messages |
| 原始 HTTP | 直接写完整地址 | https://api.anrouter.com/v1/… |
| Gemini 原生 REST | https://api.anrouter.com | /v1beta/models/{model}:generateContent |
/v1/chat/completions 填进 SDK 的 Base URL,或给 Claude Code 填 https://api.anrouter.com/v1,都可能生成错误的 /v1/v1/… 请求。AnRouter 支持的主要 API 路由
POST /v1/responses
POST /v1/responses/compact
POST /v1/messages
GET /v1/models/{model}
POST /v1/embeddings
POST /v1/rerank
POST /v1/images/edits
POST /v1/audio/transcriptions
POST /v1/audio/speech
POST /v1beta/models/{model}:streamGenerateContent
路由存在不等于任意模型都支持该能力。模型、上游渠道、请求字段三者必须兼容。
协议与请求示例
OpenAI Chat Completions
curl https://api.anrouter.com/v1/chat/completions \
-H "Authorization: Bearer $ANROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3","messages":[{"role":"user","content":"你好"}]}'
OpenAI Responses
curl https://api.anrouter.com/v1/responses \
-H "Authorization: Bearer $ANROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3","input":"审查这个函数的边界条件。"}'
Anthropic Messages
curl https://api.anrouter.com/v1/messages \
-H "x-api-key: $ANROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model":"glm-5.3",
"max_tokens":1024,
"messages":[{"role":"user","content":"你好"}]
}'
查询当前模型列表
curl https://api.anrouter.com/v1/models \
-H "Authorization: Bearer $ANROUTER_API_KEY"
排错指南
检查密钥是否完整、是否已吊销;OpenAI 兼容请求确认使用 Authorization: Bearer,Claude Code 使用 Bearer 时设置 ANTHROPIC_AUTH_TOKEN。
先记录客户端最终请求 URL,重点检查是否出现 /v1/v1、是否把完整端点误填为 Base URL,以及模型 ID 是否精确匹配 GET /v1/models。
可能是令牌速率限制、并发限制或上游容量限制。采用指数退避并加入随机抖动,不要立即无限重试。
Agent 通常还依赖工具调用、流式输出和特定协议。Codex 请单独测试 /v1/responses;Claude Code 请单独测试 /v1/messages。
Codex CLI / 桌面 App
Codex 的 CLI、IDE 扩展和 ChatGPT 桌面端 Codex 功能共享用户级 ~/.codex/config.toml。AnRouter 应配置为独立 provider;不要修改 auth.json 去伪装 OpenAI 官方登录。
1. 安装并验证
# macOS / Linux
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# 检查
codex --version
Windows PowerShell:irm https://chatgpt.com/codex/install.ps1 | iex
2. 先验证 Responses 路由
curl https://api.anrouter.com/v1/responses \
-H "Authorization: Bearer $ANROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3","input":"只回复 ok"}'
3. 写入用户级配置
# ~/.codex/config.toml
model = "glm-5.3"
model_provider = "anrouter"
[model_providers.anrouter]
name = "AnRouter"
base_url = "https://api.anrouter.com/v1"
env_key = "ANROUTER_API_KEY"
wire_api = "responses"
~/.codex/,编辑其中的 config.toml。Windows 对应 %USERPROFILE%\.codex\config.toml。点击图片可查看原图。responses 是 Codex 自定义 provider 唯一支持的 wire API,也是省略该字段时的默认值。所选 AnRouter 模型与渠道必须能通过 POST /v1/responses 工作。4. 提供密钥并启动
export ANROUTER_API_KEY="your_anrouter_api_key"
codex --model glm-5.3
# 打开桌面端
codex app
桌面 App 或 IDE 扩展可能不继承 shell 变量,可把 ANROUTER_API_KEY=… 放入 ~/.codex/.env,然后完全重启应用并新建会话。
auth.json 和内置 openai provider 属于 OpenAI 登录/认证流程;AnRouter 使用独立 provider 更清晰,也不会覆盖现有 OpenAI 登录。Claude Code / VS Code
Claude Code 向 Anthropic Messages 端点发送请求,因此 Base URL 必须使用不带 /v1 的域名。AnRouter 可以接收这种协议,但 Anthropic 官方不承诺 Claude Code 对非 Claude 模型的完整兼容性;开始真实项目之前务必验证工具调用与编辑流程。
1. 安装
# macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor
Windows PowerShell:irm https://claude.ai/install.ps1 | iex
2. 临时测试
export ANTHROPIC_BASE_URL="https://api.anrouter.com"
export ANTHROPIC_AUTH_TOKEN="your_anrouter_api_key"
export ANTHROPIC_MODEL="glm-5.3"
claude
3. 持久化到 Claude Code 设置
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"env": {
"ANTHROPIC_BASE_URL": "https://api.anrouter.com",
"ANTHROPIC_AUTH_TOKEN": "your_anrouter_api_key",
"ANTHROPIC_MODEL": "glm-5.3"
}
}
claude 或 anthropic 开头的模型加入选择器。glm-5.3 等 AnRouter 模型不会自动出现,应使用 ANTHROPIC_MODEL 显式指定。POST /v1/messages,但未提供 Claude Code 可选的 POST /v1/messages/count_tokens 路由。普通 Messages 请求可以工作,但明确依赖服务端 Token 计数的客户端功能可能失败;一次普通对话成功不能代表 Claude Code 全部能力均兼容。4. VS Code 扩展
- 安装官方 Claude Code 扩展,并先确认终端中的
claude可以通过 AnRouter 完成一次请求。 - 扩展与 CLI 默认共享
~/.claude/settings.json,优先使用上面的共享配置。 - 若扩展未读取共享变量或仍弹出登录提示,按 ⌘/Ctrl + Shift + P,运行 Preferences: Open User Settings (JSON)。
- 修改变量后运行 Developer: Reload Window,再发送短请求验证。
仅在需要扩展专用配置时,把下面字段合并进现有 VS Code 用户设置;不要删除文件里其他设置:
{
"claudeCode.disableLoginPrompt": true,
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://api.anrouter.com" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "your_anrouter_api_key" },
{ "name": "ANTHROPIC_MODEL", "value": "glm-5.3" }
]
}
5. Claude Desktop:Code 标签
Claude Desktop 的本地 Code 会话可复用 Claude Code 设置。若桌面应用没有继承 shell 变量,可在 Local 环境旁的设置入口补充环境变量;这里仍使用不带 /v1 的 ANTHROPIC_BASE_URL=https://api.anrouter.com。
6. Claude Desktop:第三方推理配置
- 在 Claude Desktop 打开 Help → Troubleshooting → Enable Developer Mode。
- 再打开 Developer → Configure Third-Party Inference…,Provider 选择 Gateway。
- Gateway base URL 填
https://api.anrouter.com,填写 AnRouter API Key;认证方式选 bearer,凭据类型选 Static API key。 - 测试连接,在 Models 区域填写 AnRouter 模型的准确 ID,然后选择 Apply locally。
/v1 的 https://api.anrouter.com;Claude Desktop 会在请求时使用 /v1/messages。点击图片可查看原图。https://api.anrouter.com,也不要填写完整的 /v1/messages 请求地址。Hermes、OpenCode 等 OpenAI-compatible 客户端才填写 https://api.anrouter.com/v1。若该窗口是只读状态,说明组织通过受管配置锁定了这些值,需要联系管理员。参考:Claude Code LLM gateway · VS Code 集成 · Claude Desktop 第三方推理
OpenCode
OpenCode 可通过 @ai-sdk/openai-compatible 连接 Chat Completions。TUI、桌面 App 与 IDE 界面可以复用同一 provider 配置。
1. 桌面 App:添加自定义 provider
- 打开 OpenCode Desktop 的 provider 设置,选择添加自定义 provider。
- Provider ID 填
anrouter,显示名称填 AnRouter。 - Base URL 填
https://api.anrouter.com/v1,API Key 填你的 AnRouter 密钥。
- 在 Models 中添加模型,模型 ID 必须与 AnRouter 模型页或
GET /v1/models返回完全一致,例如glm-5.3。 - 没有特殊需求时,请求 Headers 留空,然后提交并在模型选择器中选择
anrouter/glm-5.3。
2. TUI / CLI:保存凭据
- 启动 OpenCode,在 TUI 中输入
/connect。 - 选择 Other,Provider ID 填
anrouter。 - 输入 AnRouter API Key。该步骤只保存凭据,还需要下面的 provider 配置。
3. 手动配置 provider
"attachment": true 与 "modalities": { "input": ["text", "image"], "output": ["text"] }。若省略这些字段,OpenCode 可能仍显示并压缩图片,但会在请求发往 API 前移除图片,模型因此会回答无法查看图片。{
"$schema": "https://opencode.ai/config.json",
"model": "anrouter/glm-5.3",
"provider": {
"anrouter": {
"npm": "@ai-sdk/openai-compatible",
"name": "AnRouter",
"options": {
"baseURL": "https://api.anrouter.com/v1"
},
"models": {
"glm-5.3": {
"name": "GLM 5.3",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
},
"glm-5.3-flash": {
"name": "GLM 5.3 Flash",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
},
"deepseek-v4-flash-0731": {
"name": "DeepSeek V4 Flash 0731",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
},
"kimi-k2.6": {
"name": "Kimi K2.6",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
},
"minimax-m3": {
"name": "MiniMax M3",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
},
"qwen-3.8-27b": {
"name": "Qwen3.8 27B",
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
}
}
}
}
}
项目配置放在仓库根目录 opencode.json;个人全局配置可放在 ~/.config/opencode/opencode.json。本示例不硬编码 context/output 上限,避免客户端元数据与服务端实际能力不一致。
4. 验证
opencode auth list
opencode
# 在 TUI 中
/models
@ai-sdk/openai-compatible 对应 /v1/chat/completions。只有明确要走 Responses 的模型/provider 才改用 @ai-sdk/openai。OpenClaw
OpenClaw 的模型 provider 与 Gateway 登录令牌是两件事。AnRouter API Key 只用于模型 provider,不要误填到 gateway.auth.token。
1. 安装与检查
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw --version
openclaw doctor
2. 把密钥放在全局运行环境
# ~/.openclaw/.env
ANROUTER_API_KEY=your_anrouter_api_key
3. 在不覆盖现有配置的前提下添加 provider
请在实际运行 Gateway 的机器上执行下面的增量命令。OpenClaw 会保护 provider 映射,--merge 会保留现有 channels、tools、skills、其他 providers 与 Gateway 设置。
| Gateway 所在位置 | 应编辑的配置 |
|---|---|
| macOS / Linux 本机 | ~/.openclaw/openclaw.json |
| Windows 原生安装 | %USERPROFILE%\.openclaw\openclaw.json |
| Windows Hub / WSL | 在实际运行 Gateway 的 WSL 环境中编辑 ~/.openclaw/openclaw.json |
| 远程 Gateway | 登录远程主机,编辑远程用户的配置文件 |
openclaw config set models.providers.anrouter \
'{"baseUrl":"https://api.anrouter.com/v1","apiKey":"${ANROUTER_API_KEY}","api":"openai-completions","models":[{"id":"glm-5.3","name":"GLM 5.3"},{"id":"glm-5.3-flash","name":"GLM 5.3 Flash"},{"id":"deepseek-v4-flash-0731","name":"DeepSeek V4 Flash 0731"},{"id":"kimi-k2.6","name":"Kimi K2.6"},{"id":"minimax-m3","name":"MiniMax M3"},{"id":"qwen-3.8-27b","name":"Qwen3.8 27B"}]}' \
--strict-json --merge
4. 验证并重启 Gateway
openclaw config validate
openclaw models list
openclaw models set anrouter/glm-5.3
openclaw gateway restart
openclaw gateway status
openai-completions 是 Chat Completions 适配器。OpenClaw 是工具密集型 Agent,正式使用前要验证所选模型的工具调用、流式输出和长上下文,而不只是普通聊天。Hermes Agent
Hermes 当前推荐通过 hermes model 配置自定义端点。Hermes 官方现行文档使用顶层 custom_providers 列表定义具名自定义端点;下面的手动配置遵循这一官方结构。
1. Hermes Desktop 图形化配置
- 首次启动时进入模型/provider 配置;之后可从设置中的模型配置入口重新打开。
- 选择 Local / custom endpoint,Endpoint 填
https://api.anrouter.com/v1,API Key 填 AnRouter 密钥。 - 模型填写准确 ID,例如
glm-5.3;若出现 API mode,选择chat_completions。 - 保存后新建会话,先发送一条短消息验证。
https://api.anrouter.com/v1;下一行 API Key 请填写自己的 AnRouter 密钥,切勿公开截图。点击图片可查看原图。2. 安装 CLI
# macOS / Linux / WSL2
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes --version
hermes doctor
Windows PowerShell:iex (irm https://hermes-agent.nousresearch.com/install.ps1)
3. CLI 推荐:交互式配置
hermes model
| Provider | Custom endpoint |
| API Base URL | https://api.anrouter.com/v1 |
| API Key | AnRouter API Key |
| Model | glm-5.3 |
| API Mode | chat_completions |
| Context length | 可先留空让端点发现;如需手填,以模型目录为准 |
4. 可选:命名 provider 配置
# ~/.hermes/config.yaml
custom_providers:
- name: anrouter
base_url: https://api.anrouter.com/v1
key_env: ANROUTER_API_KEY
api_mode: chat_completions
model:
provider: custom:anrouter
default: glm-5.3
# ~/.hermes/.env
ANROUTER_API_KEY=your_anrouter_api_key
5. 验证
- 运行
hermes doctor检查安装与配置。 - 启动
hermes,先发送短问题。 - 会话内使用
/model custom:anrouter:glm-5.3切换;添加或修改 provider 则退出会话后运行hermes model。
context_length。其他兼容客户端
如果客户端明确支持“OpenAI compatible / Custom OpenAI endpoint”,通常可以用下面四项接入。客户端名称相似不代表一定允许自定义 Base URL;没有公开配置入口时,不要使用未经证实的环境变量强行覆盖。
| Provider 类型 | OpenAI compatible |
| Base URL | https://api.anrouter.com/v1 |
| API Key | AnRouter API Key |
| Model | 从模型页面或 GET /v1/models 复制 |
- 先确认客户端最终调用的是
/v1/chat/completions还是/v1/responses。 - 先做最小文本请求,再测试 streaming、tools、vision、JSON 等高级能力。
- 如果客户端只允许填写官方供应商 Key、没有 Base URL 字段,不应宣称原生兼容 AnRouter。
安全与生产检查
为个人、CI、生产服务分别创建密钥;不要多人共用一个长期密钥。用环境变量、系统 Secret Manager 或客户端凭据存储。
按业务真实请求验证模型 ID、协议、流式输出、工具调用、超时与最大输入。不要只凭普通聊天成功就直接上线 Agent。
只对可恢复错误重试,使用指数退避、随机抖动和最大重试次数。记录 request ID,不记录完整密钥或敏感提示词。
客户端和模型会更新。升级客户端、切换协议或更换模型后,在测试环境重新执行最小请求与 Agent 能力测试。