CCA-F 练习题库· Context Management & Reliability
对于一个生产环境的 agent,选出所有把 Claude 的 stop_reason 与恰当的处理或升级策略正确配对的选项。
- A
refusal→ 检查stop_details中的策略类别,并考虑在备用模型上重试。 - B
pause_turn→ 把 assistant 返回的内容发回去,让 Claude 继续那个已达到迭代上限的服务端工具循环。 - C
model_context_window_exceeded→ 把响应视为被截断,因为生成是受上下文窗口而非max_tokens限制的。 - D
tool_use→ 这是一个 HTTP 错误,所以应当作为异常捕获,并用指数退避重试该请求。 - E
end_turn→ 一律视为失败并升级给人工审核。
正确答案:A B C(多选)
解析
Claude 的 stop reason 属于成功(HTTP 200)的完成结果,每一种都有既定的处理路径——它们与 HTTP 4xx/5xx 错误在类别上完全不同,后者会以 SDK 异常的形式暴露并单独处理。
- A正确——
refusal表示安全分类器或模型拒绝了;stop_details只在 refusal 时才会被填充,携带策略category(例如cyber/bio/null)以及一段说明,而在备用模型上重试(服务端fallbacks,目标claude-opus-4-8)是文档推荐的应对方式,所以检查stop_details并考虑 fallback 是合理的(按stop_reason分支,只在需要类别时读取stop_details)。 - B正确——当服务端工具的采样循环达到默认的 10 次迭代上限时,响应会以
pause_turn停止;你把 user message 连同 assistant 返回的内容重新发送,服务端就会自动继续。 - C正确——
model_context_window_exceeded(4.5+)表示生成是被上下文窗口切断的,而不是被请求的max_tokens上限切断,应当把它当作输入体量导致的截断来处理,与max_tokens区分开。 - D错——
tool_use是一个正常的成功 stop reason,表示你应当执行被请求的工具并返回tool_result,而不是一个需要退避重试的 HTTP 错误。 - E错——
end_turn是普通的、成功的完成,所以一律把它升级给人工是不正确的。
延伸阅读
本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。