一句话定义:智能体主循环(Agent Loop)是智能体反复执行"想一下 → 做个动作 → 看结果"的循环结构,直到满足某个停止条件才退出。所有花哨的 Agent 框架,剥到最里面都是这一个循环。
它到底在循环什么
把大模型想象成一个只会说、不会做的"军师"。它很聪明,但手是绑着的——不能查数据库、不能发邮件、不能运行代码。主循环就是给这位军师配的一套"传令流程":
1. 观察:把当前的状态交给模型,包括用户的问题、之前每一步的结果;
2. 决策:模型输出下一步要做什么,通常是自然语言形式的"我要调用某工具,参数是这些";
3. 执行:外面的程序真的去调那个工具,拿到结果;
4. 回灌:把结果塞回上下文,回到第 1 步。
生活化一点:这就像你让实习生去办一件事。你说"帮我订张去上海的车票",他去查了一下,回来告诉你"只有下午两班,要哪班",你选一班,他再去下单——每一次"他回来问你"就是一轮循环。区别在于,实习生会自己判断"事儿办完了,我该走了",而模型不会,所以必须由程序设定停止条件。
停止条件才是真正的边界
常见的停止条件就那几种:模型自己说"我完成了"(通常会约定一个特殊标记或工具调用)、任务被判定成功、达到最大轮数上限、超时或超预算。一个没有终止条件的 Agent 循环就是死循环,会一直烧 token 直到你把额度用光。所以工程上几乎所有 Agent 的第一道保险都是"最大迭代次数"。
和相邻概念的区别
| 概念 | 本质 | 谁在决定下一步 |
|---|---|---|
| 单次大模型调用 | 一问一答,无状态延续 | 人 |
| 工作流(Workflow) | 预先写死的执行路径 | 开发者 |
| 智能体主循环 | 边做边看,路径动态生成 | 模型自己 |
| 多智能体(Multi-Agent) | 把主循环复制多份,互相传话 | 多个模型 |
关键差别在中间两行:工作流是"流程图",主循环是"走一步看一步"。前者可控、便宜、好调试;后者灵活,但更容易跑偏、更贵。能用工作流解决的,别上主循环,这是踩过坑的人最常给的忠告。
对从业者和普通人的意义
对开发者:既然内核是个循环,那么调试 Agent 的核心手段就是看每一轮的输入输出——把每轮的提示词、模型输出、工具返回值打印出来,绝大多数"Agent 好傻"的问题都能定位到某一轮:要么是工具返回的信息噪声太大,要么是上下文被塞满了导致模型忘事,要么是压根没有明确的停止条件。
对普通职场人:下次听到"我们用了某某 Agent 框架",可以问三个问题——它每轮能调哪些工具?它什么时候停?它的结果谁验收?这三个问题答不上来的,多半只是个包装得比较漂亮的单次调用。
至于各家框架的具体 API 和参数名,以官方文档为准。
