🐵指尖猴全新升级
第6课:Agent Loop:AI自己决定下一步
🤖

Agent Loop:AI自己决定下一步

AI自己排兵布阵,循环到任务完成为止!

📖知识引入

🔄循环四拍
模型要工具→Harness执行→tool_result回传→再问模型,周而复始
🏁stop_reason判断
stop_reason为end_turn说明模型不再要工具,任务完成,跳出循环
🧭决策权移交
下一步干什么由模型看着结果自己定——这就是「智能体」的含义
🛑步数上限
给循环装max_steps保险丝,防止Agent原地转圈烧光token
💡
每圈都打印stop_reason和工具调用,Agent的「思考轨迹」便一目了然

🔍Agent Loop核心代码

messages = [{"role": "user", "content": "查北京天气,再换算成华氏度"}]

for step in range(10):  # 最多10步,防失控的保险丝
    resp = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        system="你是天气助手,需要数据就调用工具",
        messages=messages,
        tools=tools,
    )
    if resp.stop_reason == "end_turn":
        print("任务完成:", resp.content[0].text)
        break  # 模型不再要工具,循环谢幕

    # 模型要工具:把它的请求和工具结果都记入历史
    messages.append({"role": "assistant", "content": resp.content})
    for block in resp.content:
        if block.type == "tool_use":
            result = run_tool(block.name, block.input)  # 执行工具
            messages.append({
                "role": "user",
                "content": [{
                    "type": "tool_result",
                    "tool_use_id": block.id,  # 与申请单配对
                    "content": str(result),
                }],
            })

一圈圈循环:要工具就执行回传,end_turn就收工——Agent的心脏就这几十行

🎯小测验

第1题:Agent Loop中,模型返回tool_use后Harness该做什么?

第2题:什么信号说明模型认为任务完成、可以退出循环?

第3题:给循环设置max_steps上限的主要原因是?

📝本课知识点

  • ✓要工具→执行→回传→再问模型
  • ✓end_turn是收工信号
  • ✓步数上限防失控
第6课完成!继续探索下一课吧 🚀