CCA-F 练习题库· Agentic Architecture & Orchestration
你的应用用 client(用户自定义)工具驱动一个 agentic 循环。Claude 返回了一个 stop_reason 为 "tool_use" 的响应,其中包含一个 id 为 "toolu_123" 的 tool_use block。在你的代码执行完该工具之后,发往 Messages API 的下一个请求必须包含什么,Claude 才能继续?
- A把 tool_result block 放进与原始 tool_use block 相同的那条 assistant 消息里,让调用与其输出配对在同一轮之中,因此不需要额外的 user 轮次。
- B只发一条 user 角色的消息,内容是工具输出的纯文本,并丢掉先前的 assistant 轮次以省下重发它所需的 token。
- C一条 assistant 角色的消息,其内容是 tool_use_id 为 "toolu_123" 的 tool_result block,紧接在发起该调用的那一轮之后。
- D一个描述工具输出的全新 system prompt,对话其余部分重新开始,让循环从一个干净得多、短得多的上下文重新出发。
- E原有的 messages、assistant 的 tool_use 响应,以及一条新的 user 角色消息,其内容包含 tool_use_id 为 "toolu_123" 的 tool_result block。
正确答案:E
解析
client 工具的 agentic 循环是一次以 stop_reason 为依据的无状态往返。当 Claude 返回带有 tool_use block(id 为 "toolu_123")的 stop_reason "tool_use" 时,你的代码运行该工具并发起一个新请求;匹配的 tool_use_id 让 Claude 把输出与它的请求绑定起来,并且只要 stop_reason == "tool_use",这个循环就会重复。
- E正确——新请求重新发送完整的先前上下文(原有的 messages,加上原封不动追加的 assistant tool_use 轮次),并添加一条新的 user 角色消息,其内容包含引用 tool_use_id "toolu_123" 的 tool_result block。
- AC错,tool_result block 必须位于 user 角色的轮次中,绝不能放在 assistant 轮次。
- B错,必须重发完整历史而不是为省 token 把它丢掉。
- D错,不会通过新的 system prompt 重新开始任何东西。
延伸阅读
本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。