Agent 循环

- 说人话
- Agent 干活不是一口气算完,而是转圈:看一眼眼下什么情况,定一个动作,执行,再把结果读回来接着判断。这是因为模型只能照着当下看到的文字做一次判断,多步的任务只能一轮轮来,上一轮的结果就是下一轮的依据。你看它在界面上一条条冒出正在读取、正在运行,每一条就是一圈。
- 说行话
- 最常被引用的写法叫 ReAct,推理和行动交替。框架里给它封顶的参数就叫 max_iterations 或 max_turns,日志里那句 iteration limit,说的是撞上了这道闸,不是任务做完了。
- 潜台词
- 看它在界面上转圈不动,多半不是模型在想,是某一步工具调用卡住了,循环停在等返回那里。
- 别用它
- 不设停止条件会转到爆预算。必须有轮数上限和成本闸。
拿这个能做什么3 个项目
- 01
- 02
- 03
循环本身十几行就能写完,你买框架买的是周边:状态持久化、失败重试、中断续跑、可观测。评估框架该看这些,不是看它循环写得多优雅。
动手试试做完就算会了
给工具调用那步的 chat 套上 for turn in range(5):有调用就执行,结果以 role: "tool" 追加进 messages 再问,没有就 break。每圈打印 len(messages),一圈至少涨两条;让 get_weather 总回「还没更新」,看它第几圈收手。