快速开始
RelayAI 提供 OpenAI Chat Completions 兼容接口。个人实名认证用户与企业认证用户使用同一个 base_url,通过 model 参数选择模型,平台按 API Key 的认证权限校验。
个人用户完成实名认证后,可在 控制台 → API 密钥 创建 Key 并调用国内模型;企业认证审核通过后,企业成员可直接新建绑定企业的 Key,调用国内及已授权海外模型。两类 Key 的接口地址均为 https://api.relayai.com.cn/v1。
- 注册并完成对应级别的实名认证
- 在控制台创建 API Key
- 查询账户当前可用模型
- 运行示例并核对响应与用量
鉴权
所有请求通过 HTTP 请求头中的 Bearer Token 鉴权。Base URL 如下:
在请求头中携带密钥:
Authorization: Bearer sk-relay-xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json接口支持范围
兼容范围以具体接口为单位,不同模型和上游渠道可能支持不同能力。生产接入前,请先查询账户的可用模型,并用目标接口完成一次测试。
| 接口或能力 | 状态 | 接入说明 |
|---|---|---|
POST /v1/chat/completions | 已列明 | 本文提供非流式与流式示例。 |
GET /v1/models | 已列明 | 使用 API Key 查询该账户当前可用模型。 |
POST /v1/responses | 按渠道确认 | Codex 等客户端可能依赖此接口,接入前必须实测。 |
| Anthropic 协议 | 按渠道确认 | 仅在账户与目标渠道已开通对应协议时使用。 |
| 嵌入、图像、视频与 3D | 按模型确认 | 模型出现在目录中不等于所有 OpenAI 端点均可直接调用,具体请求格式以开通说明为准。 |
发起第一个请求
调用 /chat/completions 接口发起一次对话补全。下面的示例以国产模型 deepseek-v4-flash 为例:
运行 Python 示例前执行 pip install openai;运行 Node.js 示例前执行 npm install openai。建议将密钥写入环境变量 RELAY_API_KEY,不要提交到代码仓库。
# cURL
curl https://api.relayai.com.cn/v1/chat/completions \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "user", "content": "用一句话介绍 RelayAI"}
]
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.relayai.com.cn/v1",
api_key="sk-relay-...",
)
resp = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "user", "content": "你好,RelayAI"}
],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.relayai.com.cn/v1",
apiKey: process.env.RELAY_API_KEY,
});
const resp = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "你好,RelayAI" }],
});
console.log(resp.choices[0].message.content);{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "deepseek-v4-flash",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "RelayAI 提供统一的大模型 API 接入服务。"},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 18, "completion_tokens": 20, "total_tokens": 38}
}请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| model 必填 | string | 模型标识,见 模型列表。 |
| messages 必填 | array | 对话消息列表,每条包含 role 与 content。 |
| stream | boolean | 是否流式返回,默认 false。 |
| temperature | number | 采样温度,0–2,默认 1。 |
| max_tokens | integer | 生成内容的最大 token 数。 |
查询账户可用模型
模型和权限会随账户、认证级别及上游状态变化。使用同一个 API Key 查询当前账户可调用的模型,不要在应用中长期写死公开示例目录。
curl https://api.relayai.com.cn/v1/models \
-H "Authorization: Bearer $RELAY_API_KEY"接口返回该 API Key 当前获准使用的模型。若返回 401,请检查密钥及请求头;公开页面不会暴露账户专属目录。
模型示例目录
以下列表同步后台全量模型目录,共 52 个模型,其中 43 个已有可用渠道、9 个暂未开放。目录用于识别模型命名和模态,不代表任一账户必然可调用;实际可用模型以 GET /v1/models 和控制台显示为准,模型标识区分大小写。
查看公开示例模型标识
| 模型标识 | 归属 | 模态 | 合规状态 |
|---|---|---|---|
deepseek-v4-flashdeepseek-v4-pro | 深度求索 | 文本 | 国产 · 已备案 |
MiniMax-M2.7MiniMax-M2.7-highspeedMiniMax-M3 | MiniMax | 文本 | 国产 · 已备案 |
MiniMax-H3 | MiniMax | 视频 | 国产 · 已备案 |
doubao-seed-2-1-pro-260628doubao-seed-2-1-turbo-260628doubao-seed-evolving-latest-version | 字节跳动 | 文本 | 国产 · 已备案 |
doubao-seedance-2-0-260128doubao-seedance-2-0-mini-260615doubao-seedance-2-5-260628 | 字节跳动 | 视频 | 国产 · 已备案 |
doubao-seedream-5-0-260128doubao-seedream-5-0-pro-260628 | 字节跳动 | 图像 | 国产 · 已备案 |
doubao-seed3d-2-0-260328 | 字节跳动 | 3D | 国产 · 已备案 |
glm-5glm-5.2 | 智谱 | 文本 | 国产 · 已备案 |
hy3hy3-preview | 腾讯混元 | 文本 | 国产 · 已备案 |
k3k3-256kimi-k2.7-codekimi-k2.7-code-highspeed | 月之暗面 | 文本 | 国产 · 已备案 |
kimi-k2.6 | 月之暗面 | 文本 | 国产 · 暂未开放 |
mimo-v2.5mimo-v2.5-pro | 小米 | 文本 | 国产 · 已备案 |
qwen3.7-flashqwen3.7-plusqwen3.8-max | 阿里巴巴 | 文本 | 国产 · 已备案 |
qwen-image-3.0-prowan2.7-image-pro | 阿里巴巴 | 图像 | 国产 · 已备案 |
gemini-3.1-pro-previewgemini-3.5-flashgemini-3.5-flash-litegemini-3.6-flash | 文本 | 海外 · 企业授权 | |
gemini-3.1-flash-image | 图像 | 海外 · 企业授权 | |
gemini-embedding-2 | 嵌入 | 海外 · 企业授权 | |
imagen-4.0-fast-generate-001imagen-4.0-generate-001imagen-4.0-ultra-generate-001 | 图像 | 海外 · 企业授权 | |
veo-3.1-generate-preview | 视频 | 海外 · 企业授权 | |
gpt-5.6-lunagpt-5.6-solgpt-5.6-terra | OpenAI | 文本 | 海外 · 企业授权 |
gpt-4ogpt-4o-minigpt-5.4gpt-5.4-minio4-mini | OpenAI | 文本 | 海外 · 暂未开放 |
claude-haiku-4-5claude-opus-5claude-sonnet-4-6 | Anthropic | 文本 | 海外 · 暂未开放 |
个人实名认证但未完成企业认证的用户仅可调用国内模型。海外模型仅向通过审核的企业客户开放,仍使用上方同一个 API 地址,限用于合法授权的研发、测试及内部业务场景,企业须自行确保业务合规。
流式输出
设置 stream: true,服务端以 SSE(Server-Sent Events)逐块返回,适合打字机式实时渲染。
stream = client.chat.completions.create(
model="qwen3.8-max",
messages=[{"role": "user", "content": "写一首诗"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")在编程工具中使用
支持自定义兼容端点的编程工具与 Agent 可以接入 RelayAI。请先确认工具所需协议、RelayAI 账户权限和模型渠道均已开通,再将 base_url 指向对应端点并填入 API Key。下面给出常见配置示例。
这些为第三方工具,配置项可能随版本变化,请以其官方文档为准。当工具调用 gpt-*、gemini-*、veo-* 等海外模型时,须遵守海外模型「企业授权场景」的合规要求。
# 写入 shell 配置或当前会话
export ANTHROPIC_BASE_URL="https://api.relayai.com.cn"
export ANTHROPIC_AUTH_TOKEN="sk-relay-..."
export ANTHROPIC_MODEL="gpt-5.6-terra"
# Settings → Models → Override OpenAI Base URL
Base URL https://api.relayai.com.cn/v1
API Key sk-relay-...
Model deepseek-v4-flash # 添加为自定义模型
export OPENAI_BASE_URL="https://api.relayai.com.cn/v1"
export OPENAI_API_KEY="sk-relay-..."
export OPENAI_MODEL="glm-5.2"
provider: openai-compatible
base_url: https://api.relayai.com.cn/v1
api_key: sk-relay-...
model: kimi-k2.7-code
查看更多工具配置(5)
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"relayai": {
"npm": "@ai-sdk/openai-compatible",
"name": "RelayAI",
"options": {
"baseURL": "https://api.relayai.com.cn/v1",
"apiKey": "sk-relay-..."
},
"models": {
"deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
"qwen3.8-max": { "name": "Qwen 3.8 Max" }
}
}
}
}
# ~/.codex/config.toml(用户级配置)
model = "deepseek-v4-flash"
model_provider = "relayai"
[model_providers.relayai]
name = "RelayAI"
base_url = "https://api.relayai.com.cn/v1"
env_key = "RELAY_API_KEY"
使用条件:Codex 自定义 Provider 使用 Responses API。首次接入前,请确认当前 RelayAI 账户、所选模型与渠道已支持 /v1/responses;仅支持 /v1/chat/completions 的渠道无法直接用于 Codex。
# 设置 → Model Settings → Add provider
Name RelayAI
Base URL https://api.relayai.com.cn/v1
API Key sk-relay-...
模型 deepseek-v4-flash # 可添加多个已授权模型
# Settings → Qoder → Model Backend → Custom Endpoint
Base URL https://api.relayai.com.cn/v1
API Key sk-relay-...
Model Name deepseek-v4-flash # 大小写敏感
# 设置 → 模型 → 添加模型 → 自定义(OpenAI 兼容)
接口地址 https://api.relayai.com.cn/v1/chat/completions
API Key sk-relay-...
模型名称 deepseek-v4-flash
WorkBuddy 技能包:安装 RelayAI Skill 后可一句话调用模型切换、成本查询、多模型对比。 前往下载 Skill →
Agent 接入与治理
企业可以把 OpenClaw、WorkBuddy、Claude Code、Python SDK 或自研 Harness 的模型流量归属到受管 Agent,并统一应用模型白名单、预算和工具策略。客户端只使用 Agent 绑定的企业 API Key,不需要额外提交 Agent ID。
客户端的具体模型配置见上方编程工具与 Agent。完成模型接入后,再按本节接入企业预算和业务工具审批。
快速接入
- 创建 Agent设置归属部门、项目、风险等级与模型白名单。
- 绑定独立 Key每个业务实例使用独立的企业 API Key。
- 配置客户端选择对应协议并填写 RelayAI API 地址和模型。
- 验证模型调用发起真实请求,确认 Console 已观测到模型用量。
- 接入工具治理登记 Tool、配置策略并在执行前完成授权核销。
治理范围
| 能力 | 接入模型 API 后 | 额外要求 |
|---|---|---|
| 模型请求与路由结果 | 自动归集 | 使用 Agent 绑定的企业 Key。 |
| Token 用量与预估成本 | 返回 usage 时自动归集 | 计算费用前需存在对应供应商价格版本。 |
| 企业、项目、Agent、Key 预算 | 按绑定关系生效 | 需先设置额度、阈值和告警或阻断动作。 |
| 本地 Shell、文件与浏览器工具 | 不会自动接管 | 按客户端版本配置 Hook 或 MCP 包装。 |
| ERP、支付、删除等业务工具 | 不会自动执行审批 | 通过受控服务端执行器调用授权与核销接口。 |
预算与权限
网关根据绑定 Key 自动识别企业和 Agent,调用方不能指定其他 Agent 身份。
Agent 白名单与 API Key 可用模型共同生效,任一不允许都会拒绝请求。
企业、部门、项目、Agent 和 API Key 可分别设置额度、阈值与超额动作。
每个 Agent、Tool 和动作组合可以配置为允许、人工审批或拒绝。
工具授权与人工审批
工具凭证只允许核销一次。服务端执行器必须在真正调用业务工具之前完成授权和核销。
- 固定工具映射把 tool_key 映射到受信任函数和动作类型。
- 请求授权提交 request_id、参数摘要和预估成本。
- 策略决策返回允许、待人工审批或拒绝。
- 核销凭证用相同请求和参数核销一次性 ticket。
- 执行业务工具核销成功后才调用目标系统。
发起策略判断;返回 approval 时使用相同 request_id 轮询,返回 allow 且包含能力凭证后停止轮询。
执行前核销一次性能力凭证。授权与核销必须使用相同的 request_id、tool_key、action_type 与 parameters_hash。
已经核销后如遇网络中断,应使用 request_id 到目标系统查询执行结果,不能直接重试支付、删除等高风险动作。
常见问题
为什么显示“尚未观测到模型用量”?
确认 Agent 已绑定正在使用的企业 Key,并用该 Key 发起真实模型请求。上游还需要返回 usage;计算费用时还需配置对应模型的供应商价格。
接入 OpenClaw 或 Claude Code 后,本地工具会自动受控吗?
不会。模型 API 接入负责模型流量、用量和预算。本地 Shell、文件与浏览器工具需要通过 Hook、MCP 包装或受控执行器接入。
审批通过后为什么仍未执行工具?
审批通过只表示可以领取一次性能力凭证。Agent Gateway 还需用原 request_id 领取并核销凭证,成功后才执行工具。
多个 Agent 可以共用一把 Key 吗?
当前一把企业 API Key 只能绑定一个 Agent,以保证调用、预算和审计记录能够准确归属。
“已核销工具凭证”是否代表业务操作成功?
不代表。它只证明执行前授权已经完成;目标系统的最终结果应由执行器按 request_id 记录和查询。
错误与排查
请求失败时先记录 HTTP 状态码和响应中的 request_id。响应通常包含 error.type 与 error.message;具体字段可能因模型渠道而不同。
{
"error": {
"type": "invalid_request_error",
"message": "model is required"
},
"request_id": "req_01..."
}| 状态码 | 含义 | 处理建议 |
|---|---|---|
| 400 | 请求参数或 JSON 格式错误 | 检查必填字段、字段类型与请求体格式。 |
| 401 | 密钥无效或缺失 | 检查 Authorization 请求头。 |
| 402 | 余额不足 | 前往控制台充值或核对套餐额度。 |
| 403 | 无该模型权限 | 海外模型需企业授权,联系商务开通。 |
| 404 | 模型或资源不存在 | 调用 GET /v1/models 核对模型 ID。 |
| 422 | 参数校验失败 | 按 error.message 修正字段后重试。 |
| 429 | 触发限流 | 若响应包含 Retry-After,按其等待;否则使用指数退避并加入随机抖动。 |
| 500 | 服务内部错误 | 保留 request_id,短暂退避后重试。 |
| 502 / 503 | 网关或上游暂时不可用 | 短暂退避后重试;持续失败时携带 request_id 联系支持。 |
限流与计费
限流按账户、API Key、模型和渠道配置执行,实际额度以控制台、响应头或合同约定为准。文本模型通常按实际输入与输出 token 计费,其他模态按对应计费单位结算。
- 每次请求的用量可在响应
usage字段及控制台账单中核对; - 遇到 429 时不要立即循环重试,应按响应头或指数退避策略等待;
- 模型单价和可用计费方式以定价页及控制台展示为准。