什么是 AI Agent:从一次 LLM 调用到自主闭环

作者:JC2026.11.04 06:44浏览量:0

简介:本文从“一次大模型调用”与“自主运行的 Agent”的本质差异切入,系统阐述 AI Agent 的定义、三个判定标准、八步运行闭环与核心工作原理,提供与框架无关的最小伪代码示例,并对比 Agent 与工作流、RAG、Multi-Agent 的区别,覆盖典型场景与工程落地注意事项,帮助读者既看懂概念,又能照着跑通实践。

agent-llm-">什么是 AI Agent:从一次 LLM 调用到自主闭环

一、概念定义:AI Agent 到底是什么

AI Agent(智能体)是一种以大语言模型(LLM)为核心决策部件,通过“感知—决策—行动—反馈”的持续循环来自主完成任务的自动化程序。它与常见的“单次调用脚本”有本质区别:单次调用是“模型响应一次、程序结束”,而 Agent 让模型在一个循环里被反复调用,每次工具执行的结果都回灌给模型,由模型自己决定下一步行动、自己判断什么时候停止。

可以从三个视角理解这个定义:

  • 技术视角:Agent = LLM + 工具集 + 记忆 + 循环 + 终止条件。LLM 负责理解、规划与决策;工具负责与外部世界交互(查数据库、调接口、读写文件);记忆保存任务上下文;循环保证“思考—行动—观察”可以多轮进行;终止条件由模型自主判断与预设安全边界共同决定。
  • 使用视角:用户只需要给出目标,而不是逐步指令,Agent 就能自己拆解步骤、自己调用工具、自己纠错、自己交付结果。
  • 业务视角:Agent 把大模型的通用推理能力,转化为可以操作真实系统(查询数据、调用服务、驱动流程)的执行能力,这是大模型能力走向生产环境的关键形态。

它解决的核心问题是:单次调用只能“聊”,不能“干完一件事”。真实任务往往多步骤、有依赖、需要实时信息,这恰恰是单次调用无法覆盖的。

二、背景与价值:单次调用到底差在哪

很多人第一次接大模型时,写的都是这样的代码(伪代码):

  1. # 单次调用:一问一答,程序随即结束
  2. response = llm.chat(
  3. model="某通用对话模型",
  4. messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
  5. )
  6. print(response.text)

这是一个一问一答的脚本:开发者拼好 prompt,模型返回一句话,程序结束。它有用,但它不是 Agent。

现在把需求换成:“现在几点?再帮我算算从现在到明天早上 8 点还有多少小时。”这个问题模型一口气答不了——它没有实时时钟,无法直接得知当前时间;它也没法先拿到时间、再计算差值、最后组织语言。中间需要调用时间类工具,且第二步依赖第一步的结果。

差别就在这里:

  • 单次调用:模型只被调用 1 次,是一条直线,状态由开发者手工维护;
  • Agent:模型在一个循环里被反复调用,每次工具执行完,结果都回灌给模型,由模型自主决定下一步、自主判断何时停止。

由此可以得到三个快速判断一段程序是不是 Agent 的问题:

  1. 一次任务里,模型被调用了几次? 只调一次是脚本;反复调、循环调,才可能是 Agent。
  2. 工具返回的结果,有没有回到模型? 调完工具直接把结果丢给用户,那是“套壳函数”,不是闭环。
  3. 是谁决定什么时候停? 步骤是人写死的是工作流;由模型自己判断“信息够了,可以答了”才是 Agent。

三、核心组成:三个信息来源与八步闭环

1. 三个信息来源

Agent 的信息有三个来源:

  • 用户输入:任务目标、约束条件、补充说明;
  • 工具返回:查询结果、计算结果、接口响应、报错信息;
  • 环境状态:设备状态变更、定时任务触发、Webhook 回调等外部事件。

原始信息进来还不算完,关键在于由模型判断“它意味着什么”,再决定下一步动作。

2. 八步运行闭环

一个完整 Agent 的运行闭环是八步:

读取记忆 → 规划拆解 → 选择工具 → 执行行动 → 感知结果 → 反思校验 → 更新记忆 → 判断完成。

  • 读取记忆:加载系统约束、任务描述与历史交互,作为本轮决策的上下文基础;
  • 规划拆解:LLM 根据目标与已知信息,判断当前缺口,给出“下一步做什么”;
  • 选择工具:从注册的工具集中选出本轮应调用的工具,并生成调用参数;
  • 执行行动:真正运行工具,与数据库、外部接口或本地环境交互;
  • 感知结果:接收工具返回,既包括成功结果,也包括错误与异常;
  • 反思校验:检查结果是否合理、格式是否正确、是否需要重试或换一种做法;
  • 更新记忆:把工具结果与反思结论写回上下文,作为下一轮决策依据;
  • 判断完成:模型判断“信息是否足够”。没完成,就带着偏差回到“规划”继续下一圈;完成了,才输出最终结果。

注意:这一圈不是只跑一次,而是反复跑,直到模型自主宣布完成,或触发安全上限。

四、工作原理:约二十行伪代码看懂最小闭环

下面的伪代码不依赖任何语言与框架,任何支持函数调用(Function Calling)协议的大模型服务都可以实现:

  1. # Agent 的最小闭环(伪代码)
  2. messages = [system_prompt, user_task] # 1. 初始记忆:系统约束 + 任务
  3. while True:
  4. # 2. 规划:模型基于完整上下文生成下一步动作
  5. response = llm.chat(messages, tools=tool_schemas)
  6. # 8. 判断完成:模型主动表示不再需要调用工具
  7. if not response.tool_calls:
  8. break # 输出最终答案
  9. # 3. 选择工具 → 4. 执行行动 → 5. 感知结果
  10. for call in response.tool_calls:
  11. result = execute_tool(call.name, call.arguments)
  12. # 6. 反思校验:可在此插入格式校验、重试、上限检查
  13. # 7. 更新记忆:把工具结果回灌进上下文
  14. messages.append(tool_message(call, result))

理解这段代码,抓住三个要点:

  • 循环的核心是“模型决定下一步”。开发者只提供工具和边界,每一轮具体做什么,由模型根据上下文决定;
  • 工具结果必须写回记忆。这是形成闭环的关键:结果若直接给用户而不回灌,就退化为套壳函数;
  • 终止是双保险。模型主动停止(宣布完成)之外,程序侧还要有被动拦截(最大轮数、超时、异常退出)。

掌握了这个循环,再去理解业界常见的 ReAct 范式(“推理—行动—观察”交替进行)以及主流编排框架的循环引擎,会发现它们讲的是同一件事:让模型在一轮中先思考、再调工具、再观察结果,然后进入下一轮。框架做的是工程化封装——状态管理、流程控制、持久化、人机协同等,但内核始终是这个闭环。

五、与相关概念的区别与联系

  • Agent vs 单次调用/对话脚本:单次调用一条直线、一次结束;Agent 在循环中多次决策,具备自主性与纠错能力。
  • Agent vs 工作流:工作流的步骤、分支、终止条件都由人预先写死,结果确定可预期;Agent 的步骤顺序与停止时机由模型动态决定,灵活但需要安全约束。二者常被组合使用:稳定环节用工作流,不确定环节交给 Agent。
  • Agent vs RAG:RAG(检索增强生成)本质是“先检索外部知识、再生成回答”这一类特殊工具,可视为只有一种工具、一轮决策的简化 Agent;完整 Agent 可以编排多种工具、多轮行动。
  • Agent vs 函数调用:函数调用是模型“提出结构化工具调用请求”的能力,是 Agent 的使能手段;Agent 则是用这种能力加上记忆与终止逻辑后持续运转的完整系统。
  • Agent vs Multi-Agent:Multi-Agent 是把任务拆给多个职责不同的 Agent 协作完成,属于组织形式;其中每个 Agent 内部,依然运行着上述同一个单 Agent 闭环。

六、典型应用场景

  • 智能客服与企业助手:打通订单系统、知识库与工单系统,完成“查询—判断—处理—回访”的多步任务;
  • 数据分析与报表生成:自主完成取数、计算、图表生成与结论文案撰写;
  • 研发与运维自动化:结合日志、监控告警类工具,完成故障“发现—定位—处置”的闭环排查;
  • 个人与办公助理:日程管理、资料检索、文档处理,通过工具调用串联多个通用软件能力;
  • 流程自动化升级:对缺乏标准接口的老旧系统,借助浏览器操作类工具实现跨系统流转。

在工程实现上,国内外主流通用大模型服务(包括百度智能云的通用大模型与 Agent 开发类服务)普遍提供标准对话接口与工具调用协议,开发者可以按时延、成本与合规要求选择合适平台,架构模式与本文描述的闭环一致。

七、工程落地注意事项

  • 终止与上限:务必设置最大循环轮数、总超时与异常退出条件,防止模型陷入无限循环或反复调用同一工具;
  • 工具设计:工具应粒度清晰、描述准确、尽量幂等、错误信息友好,工具描述质量直接影响模型选择工具的准确率;
  • 记忆管理:上下文窗口有限,长任务需要历史压缩与关键状态持久化,否则会出现成本攀升与信息丢失;
  • 安全与权限:工具调用应做沙箱隔离、权限分级与白名单控制,高危操作(删除数据、资金变动、对外发送)应引入人工确认;
  • 可观测性:完整记录每一轮的模型输入输出、工具调用与返回,便于排障、评估与回归测试;
  • 成本控制:循环每转一圈都是一次模型调用,token 消耗随轮数线性增长,应以“单任务平均轮数”作为成本核心指标;
  • 效果评估:用固定任务集评估成功率、平均轮数、工具调用准确率等指标,避免仅凭个别案例判断优劣。

八、总结

回到定义本身:AI Agent 是以大语言模型为决策核心,沿着“读取记忆—规划—用工具—感知—反思—更新—判断完成”的闭环自主运转的程序。它与单次调用的区别在于“循环与反馈”,与工作流的区别在于“由模型自主决定步骤与停止”,与 RAG、函数调用的区别在于“完整闭环与自主编排”。理解了这个八步闭环,就能看懂任何 Agent 框架的核心循环在做什么;动手实现时,先用最朴素的代码跑通“循环、回灌、终止”三件事,再考虑框架与多智能体协作——这就是从一次 LLM 调用,走向一个会自己跑的 Agent 的务实路径。