GloopAPI 接入指南

错误处理

处理错误和重试边界。

先区分请求是否被接受,再决定是否重试。端点页面列出实际状态码、错误外壳与代表性错误;不同协议不一定共享同一 JSON 结构,二进制成功响应也可能在失败时返回 JSON。

响应决策

信号 下一步
400 / 字段或模型不支持 对照端点 schema 与当前能力目录修改输入,不原样循环重试
401 / 403 核对 Key 有效期、账户、IP、模型或工具权限与额度
402 / 额度不足 补充预算或减少新请求范围;已有任务继续恢复原记录
404 核对资源身份、路径与开关,不能据此推断未知提交从未执行
409 区分幂等冲突、任务未准备、报价变化或资源被引用,按具体错误处理
410 原资源已删除或过期,保留账务和幂等证据,不自动另建任务
429 / 5xx / 网络超时 限流退避或服务恢复后核对是否接受;有幂等契约才安全重放

已接受与未知

HTTP 202 表示已接受或仍待完成;工具返回 HTTP 200 也可能是失败任务,需读 status。取消接受不等于取消终态。HTTP 200 的流式响应还可能包含错误事件或异常断流。

创建超时、unknown 与 billing_review 保留原键并按异步恢复查询。重试保存与重新生成是不同操作,文件源已过期时保存重试也可能无法恢复。

诊断信息

记录时间、方法、路径、HTTP 状态、错误码、可用的 request_id、任务 ID 与业务请求键。脱敏请求内容,不记录 Key 或签名链接。诊断时以接口返回的错误信息和用量记录为准。

自动重试必须有次数与时间上限。无法证明未接受的收费请求先核查,不将重复提交作为默认恢复策略。

工具稳定错误码

机器码 HTTP 安全处理
invalid_input 400 核对精确 version 和 input_schema,修正新请求输入
invalid_cursor 400 不自行构造游标,刷新首屏取得新的 next_cursor
quote_required / budget_required 400 新调用按能力字段补齐报价或费用上限
quote_expired / quote_stale / invalid_quote 409 仅对确认未提交的新调用核对后重新报价;不存在与他人报价均返回 invalid_quote,不暴露所有权
budget_exceeded 409 新调用预算不足,核对 maximum_usd 后明确选择预算
idempotency_conflict 409 同请求键改变了请求,找回原完整请求;不自动换键重发
tool_service_unavailable 503 基础设施失败或能力暂不可用;未知提交仍用原身份、原键和原完整请求恢复

未知创建结果优先查询原 run_id;没有 run_id 时用原 Key、原 Idempotency-Key 与原完整创建请求重放,包含原 quote_id 和 max_cost_usd。不能因为报价过期或开关关闭而修改未知提交。只有确认未被接受的新业务操作才可以重新报价或新建请求键。