📚 首页 / 03-claude-api/questions / architect-questions.md

模块 3 架构师问答题 — Claude API 实战

每题先自己答,再看参考要点。场景题格式:Scenario / Constraints / Options / Best choice / Why / Why others are weaker / Tradeoffs / What would change the answer。

Q1. 场景题:夜间评估管线的可靠性升级

Scenario:每晚 20,000 次评估调用,目前循环调同步 Messages API,偶发 429/529 导致部分任务丢失,团队用 while True 无脑重试。 Constraints:结果次日 9 点前要出;预算紧;无实时性要求。 Options:(a) 加大重试次数 (b) Message Batches + 结果按 custom_id 对账 (c) 换更快模型 (d) 自建多线程并发 + 客户端限速 Best choice:(b)。 Why:批处理 50% 折扣、独立限流域、结果含 succeeded/errored/canceled/expired 四态可对账(errored 项可重入新批);24h 过期与 29 天取结果满足次日出报告的节奏;max_tokens: 0 与 stream 不可入批(来源: https://platform.claude.com/docs/en/build-with-claude/batch-processing(访问于 2026-08-30))。 Why others are weaker: 加剧流量放大还烧钱; 无助于丢失问题; 仍走同步限流域。 Tradeoffs:延迟小时级、需要轮询/取结果逻辑;共享前缀记得用 1h TTL 缓存。 What would change the answer:若要求分钟级出结果 → 客户端令牌桶 + 指数退避。

Q2. 缓存命中率从 95% 掉到 0,你按什么顺序排查?

参考要点:

  1. 前缀是否被改(时间戳、A/B 测试开关、工具定义变动——断点前任何字节变化 → hash 变)
  2. tool_choice 是否变化(作废 messages 缓存;tools/system 保留)
  3. TTL 是否被吃光(从请求开始计时;长流式响应 + 低频访问 → 5m 窗口错过;换 1h)
  4. 是否低于最小可缓存长度(静默不缓存;看 cache_creation 与 cache_read 双 0)
  5. 并发竞态:缓存条目要等第一个响应开始才可读——并行首批必然 miss
  6. (来源: https://platform.claude.com/docs/en/build-with-claude/prompt-caching(访问于 2026-08-30))

Q3. 为什么"用 SDK"本身就是一个架构决策?裸 HTTP 什么时候合理?

参考要点:

Q4. 你的应用要发 60 秒内完成的"中等长度"响应,但网络环境经常掐 10 分钟空闲连接。怎么设计?

参考要点:

Q5. 认证架构:API key 直接给每个微服务实例,有什么风险?更好的方案?

参考要点:

Q6. 重试设计里"计费不幂等"是什么意思?对预算控制有什么影响?

参考要点:

Q7. 什么时候用自动缓存,什么时候用显式断点?给出决策规则。

参考要点:

Q8. 错误处理策略与用户体验如何联动?举三个分派例子。

参考要点:

📚 目录