CCA-F 练习题库· Agentic Architecture & Orchestration
一次 assistant 响应返回时 stop_reason 为 "tool_use",并包含三个 tool_use block,因为 Claude 并行请求了三个工具。关于如何正确地继续该循环,以下哪些说法是正确的?多选。
- A执行这些工具,并在随后的一条 user 消息中一次性返回全部三个 tool_result block。
- B在发送结果之前,必须把 assistant 的完整 content(包括那些 tool_use block)追加到消息历史中。
- C每个 tool_result 都必须通过 tool_use_id 引用其对应 tool_use block 的 id。
- D每个 tool_result 必须放在各自单独的 user 消息中发送,一轮一个,发完再发下一个结果。
- E必须把三个 tool_result block 拆分到多条 user 消息中,才能保持它们的顺序。
正确答案:A B C(多选)
解析
当 Claude 返回 stop_reason "tool_use" 并带有多个并行的 tool_use block 时,继续该循环需要先追加历史、再执行工具并正确返回结果。
- B必须先把 assistant 这一轮的完整 content(其中包含这些 tool_use block)追加到消息历史中,然后才发送结果。
- A随后执行这些工具,并发送一条 user 消息,把所有 tool_result block 一起放在其中;按照文档,tool_result block 必须排在该 user 消息 content 数组的最前面,紧跟在 assistant 的 tool_use 消息之后。
- C每个 tool_result 都必须通过 tool_use_id 与发起它的那次调用相匹配。
- DE把结果拆分到多条 user 消息中对保持顺序而言并非必要——顺序由消息内数组中的位置决定——而且这实际上正是文档中所说的「错误」模式,它会「教会」Claude 不再发起并行调用,所以 D 和 E 都是错误的。
延伸阅读
本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。