智能体(Agents)正主宰着当下的每一次 AI 对话。在演示中,它们看起来像是能够独立思考、制定策略并解决问题,无需人类帮助的自主数字助手。然而,一旦剥开其华丽的界面,你会发现其本质要简单得多。智能体不过是在循环中运行的语言模型。它是一种设计模式,而非意识。理解这一区别至关重要,因为它会改变你构建、调试以及信任这些系统的方式。
智能体究竟是什么
标准的聊天机器人是一个单次执行函数。你输入一个提示词,模型预测下一个 Token 并返回一段文本,然后就停止了。它不会检查答案是否准确,也不会验证网页链接是否有效或计算结果是否正确。它一次性给出它认为最好的猜测,然后便保持沉默。
而智能体会将这种“单次执行”分解为一个重复的循环。模型仍然在生成文本,但现在它是在一个受控的循环内运行,能够影响外部世界并对发生的情况做出反应。
这个循环如下所示:
- 评估目标并思考该做什么。
- 执行动作,通常是通过调用工具或 API。
- 观察该动作的结果。
- 根据新信息再次进行思考。
这个循环会不断重复,直到任务完成或系统达到安全限制。这就是全部的秘密。这里并没有什么隐藏的推理引擎。这种“魔力”源于给予模型利用来自真实工具的真实数据来纠正自身路径的机会。
ReAct:思考-行动-观察循环
实现这种循环最常见的方法是 ReAct 模式,即 Reason(推理)加 Act(行动)。在循环的每一次迭代中,模型都会经历三个不同的阶段。
首先,模型产生一个思考(Thought)。它会对当前情况进行反思,提醒自己最初的目标,并决定下一步需要了解什么。其次,它选择一个行动(Action)。这可能是一个网页搜索、一次数据库查询、一次计算器调用或是一个读取文件的请求。第三,它接收到一个观察(Observation)。系统在模型之外执行该动作,并将原始结果反馈到对话历史中。随后,模型利用这一新鲜的观察结果作为其新的现实,开始下一次循环。
举个简单的例子。假设你要求智能体告诉你明天奥斯汀(Austin)是否会下雨。模型可能会思考:“我需要奥斯汀的天气预报。”它的行动是调用一个带有城市名称的天气 API。观察结果以原始 JSON 格式返回:一个温度读数和一个降水概率。模型随后再次思考:“预报显示有 70% 的降雨概率,”其最终行动是将这些信息综合成一段通俗易懂的英文回答给你。
这种结构非常重要,因为它为模型提供了事实依据。如果模型在继续下一步之前必须执行搜索并阅读结果,它就无法凭空捏造事实。观察结果为下一次思考提供了硬性约束。这种循环让“凭空捏造”变得困难得多,因为模型在开口说话之前必须先观察。
构建可靠循环所需的要素
在生产环境中运行这种模式不仅仅需要一个巧妙的提示词。你需要建立三项实际的防护措施。
设置步数预算。 务必定义循环迭代的最大次数。如果没有上限,智能体可能会陷入“原地打转”——搜索、观察、推理、再次搜索——直到耗尽你的 API 预算。步数限制强制终止循环。你可以决定在达到限制后是返回部分结果、转交给人工处理,还是直接优雅地报错。
自己处理代码执行。 语言模型本身并不运行工具。它只负责建议行动,通常是通过输出包含工具名称和参数的结构化文本或 JSON。你的代码必须
