CCA-F 练习题库· Tool Design & MCP Integration
你定义了一个 get_weather 工具,Claude 判断它需要当前天气。你的应用会收到什么?又必须做什么才能完成这次交互?
- A响应的 stop_reason 为 "tool_use" 并带有一个 tool_use block;你的应用执行这次查询,把输出放进一个 tool_result block(引用对应的 tool_use_id)以一条新的 user 消息发回,然后再发起一次请求
- BAnthropic 会像运行 web_search 这类服务端工具一样,在自己的基础设施上执行 get_weather,在服务端把结果注入模型上下文,并在同一次响应中内联返回天气,因此既不需要 tool_result,也不需要再发一次请求
- C响应回来时 stop_reason 为 "end_turn";你的应用从 assistant 文本中解析出内嵌的 JSON 结果,再把解析到的值作为普通 user 文本在下一次请求中发回
- DClaude 会打开一个流式通道,自动在你的机器上运行该工具并把结果流式传回,所以你的应用只需在流关闭后用一条空的 assistant 消息作确认
正确答案:A
解析
- A正确:像 get_weather 这样由用户定义的工具属于 client tool,因此它的代码在你的应用中执行,而不是在 Anthropic 的基础设施上。当 Claude 决定调用它时,API 响应返回时 stop_reason 为 "tool_use",并带有一个或多个 tool_use block(每个都有 id 和输入参数)。你的应用执行这次查询,把 assistant 的 tool_use 内容追加进去,然后发起一次后续请求,其中新的 user 消息包含一个引用同一 tool_use_id 的 tool_result block;Claude 随后用这个结果给出最终回答。这一来一回在 Anthropic 的 tool-use 文档中得到确认(文档用的就是同样的 get_weather 示例)。
- B错误,因为 Anthropic 只会内联执行 server tool(例如 web_search、web_fetch、code_execution)——不会执行自定义的 client tool。
- C错误,因为 stop_reason 是 tool_use 而不是 end_turn,而且结果是通过结构化的 tool_result block 返回的,而不是从 assistant 文本中解析出来的。
- D则杜撰了一个自动运行的流式通道。
延伸阅读
本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。