本章总览
API 层封装 Anthropic Messages API:streaming、retry、prompt cache。本章是理解「模型调用」如何实现的最佳入口。
总览图
渲染图表中…
学完本章你应该能
- 跟踪 callClaudeAPI 流程
- 理解 SSE 解析
- 知道 prompt_too_long 如何处理
核心概念(先读懂这些)
Streaming 是 UX 刚需
用户看到逐字输出;tool_use delta 可提前执行。API 层负责把字节流变成结构化事件。
API 请求管道
渲染图表中…
services/api/ 文件
| 文件 | 行数 | 职责 |
|---|---|---|
| claude.ts | 3420 | 核心 API 调用:streaming messages |
| withRetry.ts | — | 重试/backoff/fallback 逻辑 |
| promptCacheBreakDetection.ts | — | 缓存失效检测 |
Streaming 流程
callClaudeAPI(messages, tools, system)
→ fetch with stream: true
→ parse SSE events
→ tool_use delta → StreamingToolExecutor.add()
Retry 策略
withRetry
API 429/529 时 exponential backoff。prompt_too_long 触发 autoCompact 而非 retry。
本章小结与延伸
services/api/claude.ts 是外部世界边界。 继续学习: