OpenStarry API 接入文档
3 步完成接入
OpenStarry 完全兼容 OpenAI / Anthropic API 格式,无需改变工具链,只需替换 Base URL 和 API Key 即可。
进入控制台创建 API Key,并根据所用工具选择对应端点:
https://api.openstarry.com/v1
https://api.openstarry.com
API Key 格式为 sk- 开头(例:sk-xxxxxxxxxxxxxxxx),在控制台 → API Keys 中创建。
选择你使用的工具,按文档配置即可立即开始使用 OpenStarry 提供的全部模型。
可用模型
在请求的 model 参数中填入以下模型 ID 即可调用。
⚠️ 本站禁止中国大陆地区用户调用 Claude、ChatGPT、Gemini 等境外 AI 模型。如用户违反用户协议私自调用,平台发现后将封禁对应 API Key,充值余额不退还。
| 模型名称 | 提供商 | 输入价格 /1M tokens | 输出价格 /1M tokens |
|---|---|---|---|
| Anthropic | ¥35.0 | ¥175.0 | |
| Anthropic | ¥21.0 | ¥105.0 | |
| OpenAI | ¥210.0 | ¥1260.0 | |
| OpenAI | ¥35.0 | ¥210.0 | |
| OpenAI | ¥17.5 | ¥105.0 | |
| ¥14.0 | ¥84.0 | ||
| ¥3.5 | ¥21.0 | ||
| DeepSeek | ¥3.0 | ¥6.0 | |
| DeepSeek | ¥1.0 | ¥2.0 | |
| DeepSeek | ¥1.4 | ¥5.6 | |
| Moonshot | ¥6.5 | ¥27.0 | |
| Moonshot | ¥4.0 | ¥21.0 | |
| 智谱 AI | ¥9.8 | ¥30.8 | |
| 智谱 AI | ¥7.0 | ¥22.4 | |
| 智谱 AI | ¥8.4 | ¥28.0 | |
| MiniMax | ¥2.1 | ¥8.4 | |
| MiniMax | ¥4.2 | ¥16.8 | |
| Alibaba | ¥2.31 | ¥13.65 | |
| Xiaomi | ¥1.4 | ¥21.0 | |
| Xiaomi | ¥0.56 | ¥2.80 | |
Python 接入
推荐使用官方 OpenAI Python SDK,完全兼容。
同步调用
流式输出
Node.js 接入
cURL 直接调用
Go 接入
流式输出(Streaming)
通过 SSE(Server-Sent Events)实现实时流式响应,支持所有模型。
错误码说明
| HTTP 状态码 | 错误码 | 说明 | 处理建议 |
|---|---|---|---|
400 | invalid_request | 请求参数格式错误 | 检查 model、messages 格式 |
401 | invalid_api_key | API Key 无效或过期 | 检查 Key 是否正确,是否已过期 |
402 | insufficient_quota | 余额不足或超出额度 | 前往控制台充值或升级套餐 |
429 | rate_limit_exceeded | 请求频率超出限制 | 实现指数退避重试,或升级套餐 |
500 | internal_error | 服务器内部错误 | 稍后重试;持续出现请联系支持 |
503 | model_unavailable | 指定模型暂时不可用 | 系统会自动 Failover,或手动切换模型 |
接入客户端与开发工具
OpenStarry 兼容 OpenAI API 协议,任何支持自定义 API 端点的 AI 客户端或编程工具均可直接接入。所有工具的配置只需三个参数:
| 参数 | 值 | 说明 |
|---|---|---|
| API Base URL | https://api.openstarry.com/v1 |
所有工具统一使用此地址 |
| API Key | 你的 OpenStarry API Key | 在 Dashboard → API Keys 获取 |
| 模型名称 | 如 glm-5.1 |
参见快速开始中的完整模型列表 |
按次计费套餐(星序版 / 星衍版 / 星途版,即 Coding Plan)适合 IDE 编程工具(Cursor、Cline、Claude Code 等);按量计费(Token Plan)适合对话客户端(Chatbox、Cherry Studio)和工作流平台(Dify)。
Cursor
Cursor 是目前最流行的 AI 编程 IDE,基于 VS Code 深度定制,内置 Tab 补全、Composer 多文件编辑、Chat 问答等功能。通过配置自定义模型端点,可将 OpenStarry 接入 Cursor 的所有 AI 功能。
配置步骤
- 打开 Cursor,进入 Settings(⌘,)→ Models
- 在 OpenAI API Key 字段填入你的 OpenStarry API Key
- 展开 Override OpenAI Base URL,填入:
https://api.openstarry.com/v1 - 点击 Verify 验证连接成功
- 在模型列表中点击 + Add model,输入模型 ID(如
glm-5.1) - 在 Chat / Composer 中选择你添加的模型即可使用
Cursor 免费版用户通过此方式配置后,使用 OpenStarry 的模型不会消耗 Cursor 自身的配额,按 OpenStarry 计费规则扣费。
Claude Code
Claude Code 是 Anthropic 官方发布的终端 AI 编程工具,支持读写项目文件、执行 Shell 命令、调用 MCP 工具,适合复杂的端到端开发任务。通过 OpenStarry 接入后,可使用 Claude 系列及其他多家模型。
配置步骤
- 安装 Claude Code:
npm install -g @anthropic-ai/claude-code - 设置环境变量(推荐写入
~/.zshrc或~/.bashrc):
# OpenStarry 接入配置 export ANTHROPIC_API_KEY="sk-your-key-here" export ANTHROPIC_BASE_URL="https://api.openstarry.com"
- 重新加载配置后运行
claude启动,默认使用 GLM-5.1 - 可通过
claude --model claude-sonnet-4-6指定模型
推荐按次计费配合 Claude Code 使用,适合每日深度开发场景,成本可控且无需关注 Token 用量。
Cline(VS Code 插件)
Cline 是 VS Code 中最受欢迎的开源 AI 编程插件,支持自动读写文件、执行终端命令、调用浏览器,可完成完整的功能开发流程。同类插件还有 Kilo Code、Roo Code,配置方式完全相同。
配置步骤
- 在 VS Code 扩展市场搜索并安装 Cline
- 点击侧边栏 Cline 图标,进入 Settings(齿轮图标)
- API Provider 选择
OpenAI Compatible - Base URL 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- Model ID 填入模型名,如
glm-5.1 - 点击 Save,在聊天框输入任务即可开始
TRAE
TRAE 是字节跳动推出的 AI IDE(trae.ai),支持自定义模型服务商,可接入 OpenStarry 使用全部模型。
TRAE IDE 配置
- 打开 TRAE IDE → Settings → AI → Custom Provider
- Base URL 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- 选择或输入模型 ID(如
glm-5.1)
Trae Agent(CLI)配置
llm: model: glm-5.1 api_base: https://api.openstarry.com/v1 api_key: your-openstarry-key
TRAE IDE 目前提供免费 Claude/GPT 配额;配置自定义端点后可使用你自己的 OpenStarry 模型,不受官方免费额度限制。
OpenCode
OpenCode 是开源的终端 AI 编程工具,通过 JSON 配置文件接入 OpenAI 兼容端点。
配置步骤
- 安装:
npm install -g opencode-ai或从 opencode.ai 下载 - 在项目根目录创建
opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openstarry": {
"npm": "@ai-sdk/openai-compatible",
"name": "OpenStarry",
"options": {
"baseURL": "https://api.openstarry.com/v1",
"apiKey": "${OPENSTARRY_API_KEY}"
},
"models": {
"glm-5.1": { "name": "GLM-5.1" },
"gpt-4o": { "name": "GPT-4o" },
"deepseek-v4-flash": { "name": "DeepSeek V4 Flash" }
}
}
}
}
- 设置环境变量:
export OPENSTARRY_API_KEY=your-key - 在项目目录运行
opencode启动
Codex
OpenAI Codex CLI 是命令行 AI 编程助手,通过配置文件可接入任何 OpenAI 兼容端点。
配置步骤
- 安装(需要 Node 22+):
npm install -g @openai/codex - 创建配置文件
~/.codex/config.toml:
model = "glm-5.1" [provider] base_url = "https://api.openstarry.com/v1" env_key = "OPENAI_API_KEY" wire_api = "chat"
- 设置环境变量:
export OPENAI_API_KEY=your-openstarry-key - 在项目目录运行
codex,支持--model参数切换模型
Kilo CLI
Kilo CLI 是 Kilo Code 的终端版本,支持 OpenAI 兼容端点配置。
配置步骤
- 安装:
npm install -g kilocode - 创建配置文件
~/.kilo/config.json:
{
"apiProvider": "openai-compatible",
"baseUrl": "https://api.openstarry.com/v1",
"apiKey": "your-openstarry-key",
"model": "glm-5.1"
}
- 在终端运行
kilo或kilocode启动
ArkClaw
ArkClaw 是字节跳动 Ark 平台的 AI 编程 Agent,基于 OpenClaw 架构,支持自定义 OpenAI 兼容端点。
配置步骤
- 安装:从 Ark 平台下载,或
pip install arkclaw - 创建配置文件
~/.arkclaw/config.json:
{
"provider": {
"type": "openai-compatible",
"base_url": "https://api.openstarry.com/v1",
"api_key": "your-openstarry-key"
},
"model": "glm-5.1"
}
Kilo Code
Kilo Code 是 VS Code 的 AI 编程插件,配置方式与 Cline 完全相同。
配置步骤
- 在 VS Code 扩展市场搜索并安装 Kilo Code
- Activity Bar → Kilo Code → 点击设置(齿轮图标)
- API Provider 选择
OpenAI Compatible - Base URL 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- Model ID 填入
glm-5.1或其他模型 - 保存后即可使用
Qwen Code
Qwen Code 是阿里云推出的 VS Code AI 编程插件,支持代码补全、Chat 和 Agent 任务,可配置自定义 API 端点。
配置步骤
- 在 VS Code 扩展市场搜索 Qwen Code 并安装,或从阿里云扩展市场安装
- 打开插件设置,将 API Endpoint 设置为
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- 从列表选择模型或手动输入模型 ID
- 支持代码补全、对话问答和 Agent 任务,对中文内容友好
通义灵码
通义灵码(TONGYI Lingma)是阿里云推出的 AI 编程助手,支持 VS Code 和 JetBrains 系列 IDE,可配置自定义 API 端点。
配置步骤
- 在 VS Code 扩展市场搜索 TONGYI Lingma 并安装
- 使用阿里云账号登录以获得完整功能
- 设置 → Lingma → API Configuration → Custom Endpoint
- Base URL 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
通义灵码与 Qwen 系列模型配合效果最佳。建议代码场景使用 qwen3.6-plus 或 qwen-coder-turbo。
Qoder
Qoder 是 VS Code 的 AI 编程插件,支持 OpenAI 兼容的自定义端点配置。
配置步骤
- 在 VS Code 扩展市场搜索并安装 Qoder
- 点击侧边栏齿轮图标进入设置
- Provider 选择
OpenAI Compatible - Base URL 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- Model 填入
glm-5.1或gpt-4o
Cherry Studio
Cherry Studio 是开源的桌面 AI 对话客户端,支持多服务商、多模型管理,可同时开启多个对话窗口进行对比,适合日常问答、写作、翻译等场景。
配置步骤
- 从 cherry-ai.com 下载并安装
- 打开 设置 → 模型服务,点击 + 添加
- 供应商类型选择 OpenAI,名称填写 OpenStarry
- API 地址 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- 点击 管理模型,手动添加模型 ID(如
glm-5.1、gpt-4o、deepseek-v4-flash) - 返回首页选择该服务商下的模型开始对话
Chatbox
Chatbox 是轻量级的跨平台 AI 对话桌面客户端(Windows / macOS / Linux / iOS / Android),界面简洁,配置简单,适合快速上手。
配置步骤
- 从 chatboxai.app 下载安装对应平台版本
- 进入 设置 → AI 模型
- AI 提供商 选择
OpenAI API - API 域名 填入:
https://api.openstarry.com(不含 /v1,Chatbox 会自动拼接) - API Key 填入你的 OpenStarry API Key
- 模型 填入模型 ID,如
glm-5.1 - 保存后在主界面选择模型开始对话
Chatbox 的 API 域名字段不含路径,填写时去掉末尾的 /v1,Chatbox 会自动拼接。
OpenClaw
OpenClaw 是支持自定义 LLM 后端的 AI 编程 Agent,支持文件编辑、终端命令、Web 搜索等能力。
配置步骤
- 安装:
npm install -g openclaw或从 openclaw.ai 下载 - 配置
~/.openclaw/openclaw.json或运行openclaw dashboard进行图形配置:
{
"agents": {
"default": {
"provider": "openstarry",
"model": "glm-5.1"
}
},
"providers": {
"openstarry": {
"type": "openai-compatible",
"baseUrl": "https://api.openstarry.com/v1",
"apiKey": "your-openstarry-key"
}
}
}
- 运行
openclaw启动 Agent
Hermes Agent
Hermes 是基于 OpenAI 兼容 API 的 AI Agent 框架,通过修改 base_url 即可接入 OpenStarry,无需改动业务代码。
Python 接入
from hermes import Agent
agent = Agent(
base_url="https://api.openstarry.com/v1",
api_key="your-openstarry-key",
model="glm-5.1"
)
环境变量方式
export OPENAI_BASE_URL=https://api.openstarry.com/v1 export OPENAI_API_KEY=your-openstarry-key
Coze(扣子)
Coze 是字节跳动推出的 AI Bot 搭建与工作流编排平台,支持对话 Bot、工作流、知识库、插件等功能,适合快速构建 AI 应用。通过配置自定义模型端点,可在 Coze 中使用 OpenStarry 全部模型。
配置步骤(自定义模型 API)
- 进入 coze.cn,登录后进入 工作空间 → 设置 → 模型
- 点击 添加自定义模型
- API 协议 选择
OpenAI - Base URL 填入:
https://api.openstarry.com/v1 - API Key 填入你的 OpenStarry API Key
- 模型名称 填入模型 ID,如
glm-5.1或gpt-4o - 保存后,在 Bot 编排页面的 模型 下拉框中选择该自定义模型即可
Coze 国际版(coze.com)同样支持自定义模型配置,流程与国内版相同。建议中国用户使用 coze.cn 以获得更稳定的访问速度。
若需在 Coze 工作流中批量调用模型,建议使用 按量计费 套餐,避免按次计费的并发限制。
OpenViking
OpenViking 是轻量级开源 AI 编程助手,通过环境变量配置接入任何 OpenAI 兼容端点。
配置步骤
export OPENAI_API_KEY=your-openstarry-key export OPENAI_BASE_URL=https://api.openstarry.com/v1
- 在项目目录运行
openviking启动
Dify
Dify 是开源的 AI 工作流与应用构建平台,支持 RAG、Agent、工作流编排等场景,适合将 AI 能力嵌入业务系统。通过 OpenStarry 接入,可在 Dify 中使用 Claude、GPT-4o、DeepSeek 等全部模型。
配置步骤(云端版 / 自托管均适用)
- 进入 Dify → 设置(右上角)→ 模型供应商
- 找到 OpenAI-API-compatible,点击配置
- API Key 填入你的 OpenStarry API Key
- API Endpoint 填入:
https://api.openstarry.com/v1 - 点击保存,在模型列表中添加需要的模型 ID
- 在 App 或 Workflow 中选择该供应商下的模型作为推理引擎
可将 Claude、GPT-4o、DeepSeek 等全部模型添加到同一个 OpenStarry 供应商下,统一计费,无需分别配置。
Postman
Postman 是最常用的 API 调试工具,适合测试提示词效果、验证接口返回格式、调试工具调用(Function Calling)等。
配置步骤
- 新建 HTTP Request,方法选
POST - URL 填入:
https://api.openstarry.com/v1/chat/completions - Headers 添加:
Authorization: Bearer your-openstarry-key和Content-Type: application/json - Body → raw → JSON 填入:
{
"model": "glm-5.1",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}
- 点击 Send,响应中的
choices[0].message.content即为模型回复 - 流式模式:将
"stream": true后读取 SSE 事件
常见问题
本文档页汇总开发者在接入 OpenStarry 过程中最高频遇到的问题。本页内容与首页 FAQ 同步更新,按主题分为 4 类:热门问题 · 计费套餐 · 技术接入 · 安全合规。点击问题可展开答案。
热门问题
OpenStarry 支持哪些国产大模型?
国内调用 AI 大模型 API 稳定吗?会卡顿吗?
Claude Code 怎么配置第三方 API 端点?
~/.zshrc 或 ~/.bashrc 添加:export ANTHROPIC_BASE_URL="https://api.openstarry.com"export ANTHROPIC_API_KEY="sk-你的Key"然后
source ~/.zshrc 即可让 Claude Code 走 OpenStarry 的国产大模型后端。详细配置见 Claude Code 接入文档。CC Switch / Cursor / Codex 怎么接入国产大模型?
https://api.openstarry.com/v1。Cursor:Settings → Models → OpenAI API Key 填 OpenStarry Key,Base URL 改
https://api.openstarry.com/v1。Codex:设置
OPENAI_BASE_URL=https://api.openstarry.com/v1 环境变量即可。详细步骤见 工具接入总览。
计费套餐
模型费用是官方价吗?有最低消费吗?
Coding Plan(按次计费)和 Token Plan(按量计费)怎么选?
充值后余额会过期吗?
有没有团队版或企业版套餐?可以开发票吗?
技术接入
支持哪些编程语言和 SDK?
base_url 为 https://api.openstarry.com/v1,无需任何适配工作。完整示例见 SDK 文档。API 端点是什么?怎么调用不同大模型?
https://api.openstarry.com/v1,通过请求体中的 model 参数切换不同大模型(如 glm-5-1、deepseek-v4、kimi-k2.6、MiniMax-m3、qwen3.6-plus),不用换 base_url。详细参数见 模型列表。怎么从其他 AI 平台迁移到 OpenStarry?
base_url 改为 https://api.openstarry.com/v1,API Key 换为 OpenStarry Key(sk- 开头),零代码改动。所有现有的代码(Python、Node.js、Go、Java、curl 等)继续运行,只是请求会被路由到 OpenStarry 后端。支持流式输出(Streaming)/ Function Calling / Vision 吗?
stream=true 启用;Function Calling / Tools 与 OpenAI 规范完全一致;Vision 通过 image_url content type 上传。详见 流式输出文档。单次调用真的只要一分钱吗?哪些模型这么便宜?
可以自选套餐吗?比如指定模型、调用次数?
安全合规
我的对话内容会被存储吗?数据安全吗?
API Key 泄露了怎么办?怎么撤销或重置?
服务稳定吗?SLA 多大?
遇到问题怎么联系你们?
延迟优化与性能调优
AI API 的响应延迟分两段:首 Token 延迟(TTFT)——从请求到首个 Token 返回;以及总生成时间——直到所有 Token 输出完毕。对话类应用通常更关注 TTFT,批处理场景更关注吞吐量。以下策略均经过线上验证。
OpenStarry 在全球部署了 3 个国内直连节点(北京、上海、广州)+ 3 个海外节点(新加坡、硅谷、英国),SDK 会自动选择延迟最低的节点。如需手动指定,可在 base_url 中添加区域前缀,详见接入指南。
一、开启流式输出(Streaming)
流式输出是改善体验的最高优先级优化。设置 stream: true 后,模型生成第一个 Token 时即可开始显示,用户感知的等待时间大幅缩短。
- 对话界面:必须开启流式,否则用户需等待模型生成完整回复才能看到内容
- 批量处理、后台分析等场景:可关闭流式以简化代码逻辑
- Python
openaiSDK 支持stream=True并返回异步迭代器,可直接async for chunk in response - Node.js SDK 同样支持
stream: true,通过for await...of消费
二、模型选择策略
并非所有任务都需要最强模型。根据任务复杂度选择模型,是降低延迟与成本最直接的手段。
| 任务类型 | 推荐模型 | 理由 |
|---|---|---|
| 简单问答、分类、摘要 | DeepSeek V4 Flash、Gemini 3 Flash | 延迟低、成本极低,适合高并发 |
| 代码生成、复杂推理 | GLM-5.1、GPT-4o | 准确率高,适合对质量要求严格的场景 |
| 长文档处理(>64K tokens) | Kimi K2.6、Gemini 3 Flash | 超长上下文,价格合理 |
| 中文内容创作 | GLM-5.1、Kimi K2.6 | 中文语料充分,理解更准确 |
| 实时语音 / 工具调用 | GPT-4o、Claude Sonnet 4.6 | 工具调用延迟低,JSON 格式输出稳定 |
对于不确定复杂度的请求,可先用快速模型(如 DeepSeek Flash)判断,复杂问题再路由到旗舰模型,称为「级联路由」策略,可将平均成本降低 60% 以上。
三、提示词优化
提示词的长度和结构直接影响 TTFT 与 Token 消耗。以下原则经过多轮线上验证:
- 系统提示词精简化:移除冗余说明,保留关键指令。系统提示词每减少 1000 tokens,TTFT 通常可降低 30–80ms
- 复用高频系统提示词:对固定的系统提示词,Anthropic Claude 系列支持
cache_control参数缓存前缀,可节省 90% 以上的首次处理时间 - Few-shot 示例放置位置:将示例放在系统提示词末尾(而非用户消息中),有助于缓存命中
- 避免过长的 user 消息:若需传入大量上下文(如文档),考虑在后端预处理,仅传入关键段落,或改用支持文件上传的 API
- max_tokens 合理设置:设置符合实际需求的
max_tokens,过大的预留会影响某些模型的调度优先级
四、重试与故障转移
网络抖动和上游限流是生产环境的常态。健壮的重试机制可显著提升服务可用性。
常见错误码处理
| HTTP 状态码 | 含义 | 建议处理 |
|---|---|---|
429 | 触发速率限制 | 读取 Retry-After 响应头,按指定时间等待后重试;若无该头则指数退避(1s → 2s → 4s → 8s) |
502 / 503 | 上游服务暂时不可用 | 立即重试 1 次,若仍失败则退避 5s 后再试,最多 3 次 |
504 | 网关超时 | 可能是单次请求过大;拆分请求或降低 max_tokens 后重试 |
400 | 请求格式错误 | 不可重试,检查参数格式(模型名、消息结构等) |
401 | API Key 无效 | 不可重试,检查 Key 是否正确、是否过期 |
建议为所有生产请求设置合理的 timeout:连接超时 5s,读取超时 120s(长文本生成可适当延长)。捕获 TimeoutError 后,对无状态请求可安全重试;对有状态操作需幂等性保证。
五、网络连接优化
合理的网络配置可将实际可观测延迟降低 10–30%:
- 保持长连接(Keep-Alive):HTTP/1.1 默认开启 Keep-Alive,HTTP/2 更进一步支持多路复用。避免每次请求重新建立 TCP 连接(冷启动 TLS 握手通常需要 100–300ms)
- 使用国内直连节点:将 base_url 设置为
https://api.openstarry.com/v1,国内服务器会自动路由至北京接入点 - DNS 预热:在应用启动时提前解析 API 域名,避免首次请求的 DNS 查询延迟
- 并发批量请求:对于独立的多个请求,使用
asyncio.gather()(Python)或Promise.all()(Node.js)并发发送,而非串行等待 - 避免高峰时段集中请求:如有批处理任务,可安排在非高峰时段(UTC+8 00:00–06:00)以获得更低延迟和更高限额
以上优化按优先级排序:开启流式 > 选对模型 > 精简提示词 > 正确重试 > 网络调优。建议按顺序逐步实施并通过 Dashboard 的延迟监控验证效果。
常见错误码详解
接入 OpenStarry 时可能遇到的所有错误码按 HTTP 状态码分类,每个错误码给出含义、常见原因、示例响应和处理建议。对照本节排查大多数接入问题;如未列出,参见 数据安全说明 或联系 support@openstarry.com。
OpenStarry API 100% 兼容 OpenAI 错误格式,错误响应体结构为 {"error": {"message": "...", "type": "...", "code": "..."}}。可用 response.json()["error"]["code"] 精准识别错误类型。
400 — invalid_request_error
含义:请求参数格式错误(HTTP 400)。不可重试。
常见原因:
model字段拼写错误(如glm-5写成glm5)messages数组为空,或首条消息不是user/system- 必填参数缺失(如 stream 模式下未设置
stream_options) - JSON 语法错误(缺逗号、缺引号、UTF-8 编码异常)
示例响应:
处理建议:先检查请求体 JSON 格式;用 模型列表 对照正确的 model 名;用 Postman / curl 单独测试最小请求体。
401 — invalid_api_key / authentication_error
含义:API Key 无效、过期或缺失。不可重试。
常见原因:
- Key 拼写错误(区分大小写)
- 使用了已撤销的 Key
- Key 已过期(年付到期)
- Authorization 头格式错误(应为
Bearer sk-xxx) - 误把
sk-xxx写到了 URL query 而非 Header
处理建议:到 Dashboard → API Keys 重新复制完整 Key(注意末尾无空格);检查 Authorization 头格式。
402 — insufficient_quota / insufficient_balance
含义:账户余额不足或 Coding Plan 套餐已用完。不可重试(需先充值或续费)。
常见原因:
- Token Plan 余额为 0 或负数
- Coding Plan 当周/当月次数已用完
- 套餐到期未续费
处理建议:前往 Dashboard → 套餐账单 充值或升级套餐;计费说明。
403 — permission_denied
含义:当前 Key 无权访问指定资源或模型。不可重试。
常见原因:
- Key 绑定套餐仅含国产模型,调用了国际模型(Claude / GPT)
- Key 已禁用(违规使用被封禁)
- 企业子账号无权限访问父账号资源
处理建议:检查套餐是否包含目标模型;联系 service@openstarry.com 处理账号权限问题。
404 — model_not_found / not_found
含义:请求的模型不存在或已下线。不可重试(需更换模型)。
常见原因:
- 模型名拼写错误(如
Claude-4-sonnet写成claude-4-sonnet实际不存在的版本) - 模型临时下线(厂商弃用)
- 端点错误(误用
/anthropic调 OpenAI 模型)
处理建议:参考 模型列表 获取正确 model 字符串;用 GET /v1/models 端点获取当前可用模型列表。
408 — request_timeout
含义:请求处理超时。可重试(建议 1-2 次)。
常见原因:
- 单次请求
max_tokens设置过大(如 32000) - 输入上下文过长 + 输出过长组合
- 上游模型厂商端拥塞
处理建议:降低 max_tokens;拆分为多次短请求;指数退避后重试。
413 — context_length_exceeded
含义:输入超出模型上下文窗口。不可重试(需精简输入)。
常见原因:
- messages 数组总 tokens 超过模型上限(如 GLM 5.1 限 128K,Kimi K2.6 限 256K)
- 上传了多张大图片(Vision 模式下)
- 长文档未做分块直接送入 RAG
处理建议:用 tiktoken 提前估算 tokens;超过上限时启用 提示词优化 中的分块策略;或切换到 Kimi K2.6 等长上下文模型。
429 — rate_limit_exceeded / tokens_rate_limit_exceeded
含义:请求频率或 Token 速率超出当前套餐限制。可重试(按 Retry-After 头)。
常见原因:
- QPS(每秒请求数)超过套餐限制(如 Coding Plan 限 10 QPS)
- TPM(每分钟 Token 数)超限(GLM 5.1 限 200K TPM)
- 同一 IP 在短时间内高频调用
示例响应:
处理建议:读取 Retry-After 响应头;实现指数退避(1s → 2s → 4s → 8s);批量任务用 令牌桶限流 控制并发。
500 — internal_server_error
含义:OpenStarry 网关或上游模型厂商内部错误。可重试(1-3 次)。
处理建议:立即重试 1 次;若仍失败退避 5s 后再试;持续出现请联系 support@openstarry.com 并附上 request_id(错误响应中包含)。
502 / 503 — bad_gateway / service_unavailable
含义:上游模型服务暂时不可用。可重试(建议 3 次内)。
常见原因:上游厂商维护、机房故障、网络抖动。OpenStarry 节点级 Failover 通常 5 秒内自动切换。
处理建议:客户端实现 3 次重试(间隔 2s / 5s / 10s);若持续超过 1 分钟,访问 status.openstarry.com 查看状态。
504 — gateway_timeout
含义:OpenStarry 网关到上游模型的连接超时。可重试。
处理建议:单次请求 max_tokens 过大导致生成时间超过 120s;建议拆分或降低;也可能是上游模型响应慢,OpenStarry 会自动 Failover 到备用节点。
流式(SSE)连接中断
含义:启用 stream=true 时连接中途断开。可重试。
常见原因:
- 客户端网络波动(最常见,VPN/代理/防火墙中断)
- 代理服务器缓冲过大,主动关闭空闲连接
- CDN 边缘节点故障
- 客户端超时设置过短
处理建议:客户端实现「断点续传」——记录已收到的 last_chunk 偏移,下次重试时附上(OpenAI 暂不支持完整 resume,可重新发起整次请求);调整反向代理(如 Nginx)的 proxy_read_timeout 至 300s+。
快速对照表
| HTTP | 错误码 | 含义 | 可重试 |
|---|---|---|---|
400 | invalid_request_error | 请求参数错误 | 否 |
401 | invalid_api_key | API Key 无效 | 否 |
402 | insufficient_quota | 余额不足 | 否 |
403 | permission_denied | 无访问权限 | 否 |
404 | model_not_found | 模型不存在 | 否 |
408 | request_timeout | 请求超时 | ✅ |
413 | context_length_exceeded | 上下文超限 | 否 |
429 | rate_limit_exceeded | 速率限制 | ✅(按 Retry-After) |
500 | internal_server_error | 服务器错误 | ✅ |
502 / 503 | service_unavailable | 上游不可用 | ✅ |
504 | gateway_timeout | 网关超时 | ✅ |
工具调用失败调试指南
Function Calling / Tools 是 AI 编程最常用的能力,但调试时最容易踩坑。本节列出 7 种最常见的失败模式,每种给出症状、原因、调试方法和修复代码示例。
OpenStarry 完全兼容 OpenAI Tools API(tools / tool_choice / tool_calls)和 Anthropic Tool Use(tools / tool_use / tool_result)。下方示例以 OpenAI 格式为主,Anthropic 格式差异会单独标注。
失败 1:工具名拼写错误(model 调了不存在的 tool)
症状:模型返回 finish_reason="tool_calls",但 tool_calls[0].function.name 不在你声明的 tools 列表中。
原因:模型产生幻觉(hallucination),调了一个没声明的工具名;或工具名大小写不一致。
示例:
修复:
失败 2:参数 JSON 解析失败(model 输出非合法 JSON)
症状:json.loads(tool_call.function.arguments) 抛 JSONDecodeError。
原因:
- model 在 JSON 里夹了 markdown 代码块(
```json ... ```) - model 输出截断(context 不够,被强制截断)
- 中文/特殊字符未正确转义
- model 输出了 Python 风格的
'single quotes'或 PythonNone
修复:
失败 3:必填参数缺失(model 没给必填字段)
症状:TypeError: get_weather() missing 1 required positional argument: 'city'。
原因:工具 schema 描述不够清晰,model 误以为某字段是可选;或 max_tokens 不够导致 arguments 截断。
修复:
- 用 Pydantic 或 Zod 等 schema 库定义参数,自动生成 OpenAI Tools 格式,附带清晰描述
- 在工具
description中明确标注必填:「必填:北京的城市名,例如 'beijing'」 - 设置
additionalProperties=False,强制 model 填齐 - 客户端兜底:缺必填字段时,自动追问 model「参数 city 是必填的,请重新提供」
失败 4:参数类型不匹配(string vs number)
症状:int("beijing") 抛 ValueError;或 datetime.strptime("hello", "%Y-%m-%d") 抛 TypeError。
原因:model 把 limit: 100(number)填成了 "100"(string);把 date 填成了 "2025/01/01"(格式错误)。
修复:
失败 5:工具执行超时(HTTP / DB 查询卡住)
症状:整个对话被卡住 30s+;用户体验卡死;后续轮次延迟陡增。
原因:工具调用的 HTTP/DB/API 慢;未设置超时;model 看不到进度就反复调用。
修复:
- 所有工具调用必须设超时(建议 10-30s)
- 超时后返回错误字符串而非抛异常(让 model 看到结果自己决策)
- 对慢操作改用异步:立刻返回
task_id,后续轮次再查询
失败 6:工具返回内容太大(context 爆炸)
症状:单次工具返回 100K 字符;后续轮次费用暴涨;最后几轮报 413 context_length_exceeded。
原因:未对工具返回做截断/摘要。
修复:
- 硬截断:
return result[:5000](简单粗暴) - 智能截断:保留前 2K + 中间关键段 + 后 2K(适合长文档)
- 摘要:再调一次便宜的模型把工具输出总结成 200 字
- 结构化:用
re.findall只提取 model 需要的字段
失败 7:无限循环(tool 输出又触发了同一次调用)
症状:账单异常增长;日志显示同一个 tool 被连续调用 50+ 次;状态码开始 429。
原因:model 没拿到预期结果 → 重新调 → 还是没拿到 → 再调...;或工具输出包含「请再次调用」类文本诱导。
修复:
- 设置最大循环次数(如 8 轮),强制结束
- 检测相同 (tool_name, args_hash) 连续出现 ≥3 次,主动中断并改问 model「卡住了,请换个思路」
- 在 system prompt 明确:「同一工具最多调用 5 次,超过请直接给最终答案」
调试技巧
1. 开启 --debug 日志:打印每一轮的完整 messages 数组(含 tool_calls 和 tool 返回),便于还原执行流。
2. 用 stream=true + 实时打印:流式模式下能看到 model 思考过程,比非流式更容易发现问题。
3. 用 LangChain / LlamaIndex 的 trace:可视化每一步的工具调用和参数。
4. 单元测试 tool 函数:脱离 model,单独跑 tool 函数的 happy path 和异常 path,确保逻辑正确。
5. 准备 fallback 工具:当 model 调的工具不可用时,提供一个通用的 web_search / code_exec 兜底。
工具调用失败 90% 集中在参数解析和无限循环两类。建议优先做:(1) 用 Pydantic/Zod 严格校验入参;(2) 设置最大循环 8 轮;(3) 所有外部调用 10s 超时;(4) 工具返回 5K 截断。这 4 条做好,基本能消灭 80% 的工具调用事故。