我以前认为构建 AI agent 基本上和提示聊天机器人是一样的。你把问题描述清楚,模型给出回答,然后任务就完成了。接着我发布了几个应用,现实给了我沉重的一击。LLM 不是 agent。LLM 只是在预测下一个 token。正是“循环”(loop)创造了 agent。

想象一下泡茶的过程。你不会只发送一个名为 make_tea() 的命令然后就走开了。你会接水,发现水压很低,于是等待,然后打开开关,发现开关坏了,于是换到另一个炉灶,观察是否有蒸汽,倒水,品尝,然后可能因为茶叶浸泡时间太长而加入蜂蜜。目标从未改变,但步骤却在不断变化。你会观察、调整并再次尝试。AI agent 的工作方式完全如此。

创造代理能力的循环

循环并非抽象的理论。它是任何代表你采取行动的系统的运行核心。在实践中,它实际上是这样的:

  • 思考 (Think): 模型对目标进行推理并决定其需求。用户问:“我明天应该带伞去波特兰吗?”模型识别出它需要天气预报和地理位置。
  • 行动 (Act): 模型调用工具。它可能会调用地理编码 API 来解析“波特兰”,然后使用坐标访问天气接口。
  • 观察 (Observe): 模型读取工具的输出。API 返回的是 JSON 格式的预报,还是 403 错误,亦或是 HTML 格式的维护页面?
  • 更新 (Update): 根据观察到的情况,模型修正其计划。如果地理编码器返回的是缅因州的波特兰而不是俄勒冈州的波特兰,模型需要进行消歧。如果 API 宕机了,它可能会切换到备用数据源或询问用户。
  • 再次思考 (Think Again): 循环带着新的上下文重新开始。

这并不是你写一次就可以忘掉的五个离散函数。它是一个持续运行的引擎,直到目标达成或触发强制停止。模型并不是像脚本一样执行代码。它是在对世界状态进行推理,选择行动,读取后果,并决定下一步该做什么。这就是高级自动补全与能够完成任务的 agent 之间的区别。

为什么这些框架看起来都大同小异

如果你花时间研究过 LangGraph、CrewAI 或 AutoGen,你可能会发现它们开始变得模糊不清。LangGraph 将流程建模为由节点和边组成的持久图。CrewAI 将 agent 组织成角色和团队(crews)。AutoGen 则编排多 agent 之间的对话。不同的封装,相同的骨架。

它们看起来很相似,因为它们都是围绕着这个相同的循环原则设计的。LangGraph 明确地将循环结构化为工具调用与模型推理之间的状态转换。CrewAI 将循环封装在基于角色的 agent 内部,但每个团队成员仍然在经历规划、行动和观察的循环。AutoGen 在执行者之间传递消息,但每一轮仍然是生成、执行、反思和路由的变体。

这些框架之所以专注于循环,是因为代理能力(agency)就存在于循环之中。底层的模型可以是 GPT-4、Claude,或者是经过微调的开源权重模型。没有循环,你只有一个非常昂贵的句子补全器;有了循环,你才拥有一个可以跨多次尝试持续朝着目标迈进的系统。

真正的挑战何时开始

本地演示看起来很神奇。而生产环境才是魔法与混乱交汇的地方。一旦你跨越了原型阶段,你就不再是在解决 AI 问题,而是在解决系统工程问题。

工具失效是不可避免的。 API 会超时。它们会返回格式错误的 JSON。它们会抛出包裹在 HTML 中的 500 错误。如果你的循环盲目信任每一个工具的输出,你的 agent 就会幻觉出成功,或者陷入混乱的螺旋。你需要在每一个返回的负载(payload)上实现重试逻辑、断路器和模式验证(schema validation)。

记忆会过时。 你的 agent 记得用户偏好的数据库是 PostgreSQL,但基础设施团队昨晚已经迁移到了新的集群。如果没有刷新或使上下文失效的机制,agent 会自信地针对已失效的端点发出命令。记忆需要时间戳、置信度评分以及自我失效的能力。

死循环是无声的杀手。 一个 agent 在网上搜索,没找到有用的东西,稍微优化一下查询词,再次搜索,还是没找到,然后不断重复。如果没有最大迭代上限或语义重复检测,它会在用户等待时消耗大量的 token 和金钱。你必须建立护栏:重试次数的硬上限、发散性检查以及人工介入路径。

无关数据会淹没推理能力。 检索增强生成 (RAG) 流水线经常将五十段模糊相关的文档塞进上下文窗口。智能体会被噪声淹没,从而选择错误的工具或产生参数幻觉。在模型看到检索到的文本之前,你需要进行过滤、排序和简洁的摘要处理。

智能体需要的不仅仅是智能。它需要一个系统:受控的记忆、显式的状态追踪、严格的护栏以及可观测的遥测。模型越强大,其周围的系统就必须越完善。一个强大的模型如果置于脆弱的循环中,只会产生更加“有条理”的失败。

完成任务

智能体真正的智能不在于能否给出第一个正确答案,而在于当一切都不按计划进行时,如何弥合意图与结果之间的差距。第一次尝试很容易,任何人都可以编写“理想路径”的脚本。难点在于第四次迭代:此时主 API 可能已宕机,上下文窗口正在缩小,用户正变得不耐烦,而智能体仍需交付有用的内容。

这种韧性正是 Demo 与产品之间的区别。它是一种从每一步中学习的能力——不是通过实时更新模型权重,而是通过更新计划。智能体在改变策略的同时,保持目标的稳定。这就是“循环原则”的实际应用。

那么,未来是属于更大的模型,还是属于更好的执行循环?规模确实有帮助。能力更强的模型在每个周期内的推理能力也更强。但是,一个运行在紧凑、可观测且具有韧性的循环中的较小模型,其表现几乎总是优于一个被要求“一蹴而就”解决所有问题的巨型模型。循环是将预测转化为行动的关键。请投资于此。

来源:The Looping Principle: A Simple Mental Model for Understanding AI Agents

欲了解更多此类讨论,请加入 Telegram 上的 GyaanSetu 学习社区