-
Notifications
You must be signed in to change notification settings - Fork 0
Request Lifecycle
22024735 edited this page Jul 11, 2026
·
1 revision
flowchart TD
Request[收到 HTTP 请求] --> Limit{请求体超过上限}
Limit -->|是| TooLarge[HTTP 413]
Limit -->|否| AIRoute{是否为 AI 路由}
AIRoute -->|否| Pass[普通透明转发]
AIRoute -->|是| Parse[解析结构化 JSON]
Parse --> HasImage{包含图片}
HasImage -->|是| Vision[Vision 摘要并按配置移除原图]
HasImage -->|否| Detect
Vision --> Detect{包含 Agent 工具协议}
Detect -->|是| Agent[启用协议保护]
Detect -->|否| Stateless[普通无状态请求]
Agent --> Estimate[估算完整请求 Token]
Stateless --> Estimate
Estimate --> OldResult{Agent 且超过工具清理阈值}
OldResult -->|是| Clear[清理旧 tool result 保留最近 N 条]
OldResult -->|否| Output
Clear --> Output[计算输出预算]
Output --> Reduce{输出预算过大}
Reduce -->|是| Lower[降低 max tokens]
Reduce -->|否| Budget
Lower --> Budget{预算决策}
Budget -->|safe| Send[发送上游]
Budget -->|compact + Agent| Native[等待 Claude 原生 compact]
Budget -->|compact + stateless| Compact[代理 compact 或提醒]
Budget -->|chunk + stateless| Chunk[拆分执行并综合]
Budget -->|chunk + Agent| Native
Native --> Send
Compact --> Send
Chunk --> Send
Send --> Result{上游结果}
Result -->|成功| Rewrite[usage 采集和响应处理]
Result -->|普通错误| Replay[保留错误体返回]
Result -->|上下文 400| Rescue[执行一次上下文救援]
Rescue --> Retry[最多重试一次]
Retry --> RetryResult{重试结果}
RetryResult -->|成功| Rewrite
RetryResult -->|失败| Replay
Rewrite --> Record[保存保护记录]
Replay --> Record
Record --> Response[返回 Claude 客户端]
-
POST且 JSON,并命中upstream.aiRoutes:进入 Orchestrator。 - Hook 路由:仅接受 loopback 请求和正确的随机 Hook token。
- Dashboard、status、logs、health、shutdown:由本地 Server 处理。
- 其他路由:保留查询参数并透明转发给上游。
上下文错误最多重试一次。代理不会对任意 5xx 或已经开始输出的流盲目重试,因为生成请求不是天然幂等操作。第一次失败和重试结果都会写入诊断日志。