发请求 · 读 stop_reason · 执行工具 · 回灌结果——循环的生命周期。单步跑一遍:stop_reason 如何驱动工具调用与终止。
本演示为非官方原创练习内容,依据公开考纲编写,非真实考题。
messages = [{"role": "user", "content": prompt}] while True: resp = client.messages.create( model="claude-sonnet-4-6", tools=tools, messages=messages, ) messages.append({"role": "assistant", "content": resp.content}) if resp.stop_reason == "end_turn": break tool_results = [] for block in resp.content: if block.type == "tool_use": output = run_tool(block.name, block.input) tool_results.append({ "type": "tool_result", "tool_use_id": block.id, "content": output, }) messages.append({"role": "user", "content": tool_results})统计本周新增的注册用户,并按来源渠道分组。
请求尚未返回,下一步将看到 stop_reason。
本步未发生工具调用。
对话刚开始,messages 数组里只有一条 user 消息。点「下一步」把它发给 Claude,看它决定先做什么——而不是我们替它决定。
开始 · 2 tools