BringSkills
搜索目录分类文档定价联系我们
BringSkills
文档快速开始接入指南支持的 AI 助手MCP 与客户端接入身份验证错误参考

错误参考

了解 BringSkills 的错误返回结构、重试行为和限流规则。

HTTP 状态码

标准错误格式

常见错误类型

处理最佳实践

标准错误格式

大多数 API 失败请求都会返回统一的 JSON 结构,便于你排错、告警和记录日志。

{
  "code": 400,
  "message": "Invalid request: missing required field 'input'",
  "error_type": "validation_error",
  "details": {
    "field": "input",
    "reason": "required"
  },
  "request_id": "req_abc123xyz"
}

HTTP 状态码

2xx 成功

200OK— 请求成功
201Created— 资源创建成功

4xx 客户端错误

400Bad Request— 请求格式或参数不正确
401Unauthorized— 缺少或使用了无效 API Token
403Forbidden— Token 有效但权限不足
404Not Found— 请求的资源不存在
409Conflict— 资源已存在或当前状态不允许该操作
422Unprocessable— 校验未通过
429Too Many Requests— 已触发请求频率限制

5xx 服务端错误

500Internal Error— 出现未预期的服务端错误
502Bad Gateway— 上游服务暂时不可用
503Service Unavailable— 服务暂时不可用
504Gateway Timeout— 上游服务响应超时

常见错误类型

authentication_error

缺少 Token 或 Token 无效

确认 Token 存在、未过期,并且属于当前要调用的环境

authorization_error

Token 权限不足

确认技能已进入你的库,并且所用 key 属于正确账户

validation_error

请求数据未通过校验

检查必填字段、数据类型以及嵌套输入字段名

not_found_error

请求的资源不存在

核对 skill slug、key ID 或接口路径是否正确

rate_limit_error

短时间内请求过多

使用指数退避,并遵循响应头里的重试提示

execution_error

通过校验后,技能执行阶段仍然失败

检查输入载荷,必要时缩小请求规模并改正参数后重试

internal_error

平台内部或依赖侧出现错误

稍后重试;如需联系支持,请带上 request_id

错误类型含义建议处理方式
authentication_error缺少 Token 或 Token 无效确认 Token 存在、未过期,并且属于当前要调用的环境
authorization_errorToken 权限不足确认技能已进入你的库,并且所用 key 属于正确账户
validation_error请求数据未通过校验检查必填字段、数据类型以及嵌套输入字段名
not_found_error请求的资源不存在核对 skill slug、key ID 或接口路径是否正确
rate_limit_error短时间内请求过多使用指数退避,并遵循响应头里的重试提示
execution_error通过校验后,技能执行阶段仍然失败检查输入载荷,必要时缩小请求规模并改正参数后重试
internal_error平台内部或依赖侧出现错误稍后重试;如需联系支持,请带上 request_id

高频错误场景

Token 无效或已过期
401
{
  "code": 401,
  "message": "Invalid or expired API token",
  "error_type": "authentication_error"
}
修复建议: 如果当前 key 被删除、轮换或暴露过,请重新生成一个新的 API 密钥。
技能不在你的技能库中
403
{
  "code": 403,
  "message": "You have not purchased this skill",
  "error_type": "authorization_error",
  "details": {
    "skill_slug": "premium-analyzer"
  }
}
修复建议: 先领取免费技能或完成购买,再调用执行接口。
输入校验失败
422
{
  "code": 422,
  "message": "Validation failed",
  "error_type": "validation_error",
  "details": {
    "errors": [
      {"field": "input.text", "message": "Required field missing"}
    ]
  }
}
修复建议: 对照技能的输入 schema 检查请求体,确保所有必填字段都已传入。
请求频率超限
429
{
  "code": 429,
  "message": "Rate limit exceeded",
  "error_type": "rate_limit_error",
  "details": {
    "limit": 100,
    "window": "1m",
    "retry_after": 45
  }
}
修复建议: 先退避等待,再重试,并避免同一个 key 出现大规模并发突发请求。

处理最佳实践

永远检查非 2xx 响应

抛错前先解析响应体,这样你才能拿到真正的 API 错误信息。

const response = await fetch(url, options);

if (!response.ok) {
  const error = await response.json();
  throw new Error(`API Error: ${error.message}`);
}

const data = await response.json();

只在适合时重试

429 和 5xx 适合退避重试,但格式错误的请求不应该盲目重放。

async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const response = await fetch(url, options);
    
    if (response.ok) return response.json();
    
    if (response.status === 429 || response.status >= 500) {
      const delay = Math.pow(2, i) * 1000; // 1s, 2s, 4s
      await new Promise(r => setTimeout(r, delay));
      continue;
    }
    
    throw new Error(`API Error: ${response.status}`);
  }
  throw new Error('Max retries exceeded');
}

记录 request_id

把请求 ID 写入日志和支持工单,后续定位问题会快很多。

try {
  const result = await executeSkill(input);
} catch (error) {
  console.error('Skill execution failed', {
    message: error instanceof Error ? error.message : 'Unknown error',
    request_id: error && typeof error === 'object' && 'request_id' in error ? error.request_id : null, // Include in support tickets
    timestamp: new Date().toISOString()
  });
}

限流说明

免费 / 入门用量

100

次请求 / 分钟

付费 / 生产用量

1,000

次请求 / 分钟

企业级

定制

联系销售

限流响应头

当收到 429 时,优先读取 Retry-After 等响应头,再决定下一次重试时间。

返回:支持的 AI 助手下一步:接入指南
BringSkills

BringSkills 负责打包工作流、保护运行时执行,并把同一条安装路径带到用户已经在使用的 AI Agent 上。

support@bringskills.com

用于账户、账单、安全和合作问题联系。

产品

  • 浏览技能
  • 分类
  • 定价

资源

  • 文档
  • 快速开始
  • 常见问题
  • 联系我们

公司

  • 关于我们
  • 成为创作者
  • 创作者分成

法律

  • 隐私政策
  • 服务条款
  • 退款政策

© 2026 BringSkills. 保留所有权利。

x.com/BringSkills