1681 字
8 分钟
基于大语言模型的智能体:规划、记忆与工具调用

从生成到行动#

普通的大模型调用是一次性的:输入提示,输出文本。很多任务无法靠一次生成完成——需要查资料、运行代码、调用外部系统,还要根据中间结果调整下一步。智能体(Agent) 把大模型放在控制器的位置,让它循环地观察环境、做决策、执行动作,直到任务完成。

与 RAG 相比,RAG 是“检索一次、生成一次”的固定流程,智能体则可以自行决定何时检索、检索什么、是否需要继续调用其他工具。

基本组成#

一个典型的语言模型智能体包含四部分:

  • 画像(Profile):角色设定、目标、可用资源和行为约束,通常写在系统提示中;
  • 记忆(Memory):短期记忆保存当前任务的对话和中间结果,长期记忆存放跨会话的知识或经验,可借助向量库检索;
  • 规划(Planning):把目标拆成子任务,决定执行顺序,并在失败时调整;
  • 行动(Action):调用工具与外部环境交互,例如搜索、数据库、代码解释器、文件系统和业务 API。

执行过程是一个循环:

观察(Observation)→ 思考(Thought)→ 行动(Action)→ 新的观察 → ...

循环在任务完成、达到步数上限或无法继续时终止。模型本身只负责“思考和选择动作”,真正的执行由外部工具完成。

ReAct:推理与行动交替#

ReAct(Reasoning + Acting)是最常见的智能体范式:让模型在每一步先写出简短推理,再选择一个动作,然后读取工具返回的观察结果,继续下一轮。

问题:2024 年诺贝尔物理学奖得主是谁?他所在机构今年发表了多少篇论文?
Thought:需要先确认获奖者。
Action:search("2024 诺贝尔物理学奖 得主")
Observation:John Hopfield 和 Geoffrey Hinton 获奖。
Thought:需要确认 Hinton 的所属机构。
Action:search("Geoffrey Hinton 所属大学")
Observation:多伦多大学。
Thought:需要统计该机构今年的论文数。
Action:search("University of Toronto 2024 publications count")
...

ReAct 的关键在于把推理和外部反馈交替起来。思维链只在模型内部续写,一旦某一步的事实假设错了,后面会沿着错误继续;ReAct 每一步都从环境取回真实观察,可以及时纠正。

工具调用#

工具通常以函数的形式提供:每个工具有名称、用途描述和参数模式(schema)。模型根据任务选择工具并生成参数,运行时负责校验和执行,再把结果作为观察返回。

{
"name": "search_flights",
"description": "查询指定日期和路线的航班",
"parameters": {
"from": {"type": "string"},
"to": {"type": "string"},
"date": {"type": "string"}
}
}

工具设计直接影响智能体的可靠性:

  • 描述清晰:说明工具做什么、什么时候用、参数格式和限制;
  • 粒度合适:太细碎会增加调用次数,太粗大会让模型难以正确传参;
  • 返回结构化结果:便于模型解析,也便于程序校验;
  • 失败可恢复:返回明确的错误信息,而不是静默失败或返回大段无关内容;
  • 权限最小化:只暴露完成任务所需的操作。

常见的工具有搜索引擎、代码解释器、数据库查询、文件读写、浏览器和各类业务 API。工具越多,选择难度和误用风险越大,通常需要按任务裁剪工具集。

规划与反思#

任务分解#

复杂任务可以先规划再执行。Plan-and-Execute 让模型先列出步骤,再逐步执行;与每一步都重新决策的 ReAct 相比,它更全局,但计划可能因中途信息变化而失效,需要在执行中修订。

另一种做法是层次化分解:高层负责拆分目标,低层子智能体负责具体步骤。任务越长、依赖越多,显式规划越有价值。

反思#

反思(Reflection)让模型检查自己的输出或执行轨迹,指出问题并重试:

  1. 执行任务,得到结果或失败信息;
  2. 让模型评价结果是否满足要求,分析失败原因;
  3. 根据反思修改计划或参数,再次尝试;
  4. 保留有效的经验,供后续任务使用。

Reflexion 是这一类方法的代表:它把失败经验写入记忆,在后续尝试中作为提示的一部分。反思能提高成功率,但会增加调用次数,也可能陷入反复自我否定。

多智能体#

当任务可以按角色拆分时,可以用多个智能体协作:

  • 分工:规划者、执行者、审查者各司其职;
  • 辩论:多个智能体给出不同答案,通过讨论或投票收敛;
  • 流水线:上游智能体的输出作为下游的输入。

多智能体适合职责边界清晰的复杂流程,但通信成本高,错误也会沿链路传播。多数场景下,一个带工具的智能体加清晰的流程控制更简单可靠。

评价与局限#

智能体的评价不能只看最终答案,还要看过程:

  • 任务成功率:端到端是否完成目标;
  • 轨迹质量:步骤是否必要、工具调用是否正确、是否绕路;
  • 成本与延迟:调用次数、token 消耗、总耗时;
  • 安全性:是否越权、是否执行了不可逆操作。

主要局限:

  • 误差累积:长程任务中每一步的小错误会放大,十几步后可能完全偏离目标;
  • 工具误用:模型可能编造参数、选错工具,或把工具返回的内容当作指令;
  • 提示注入:网页、文档、邮件等外部内容可能包含恶意指令,检索或浏览工具会把它们带入上下文,必须与可信指令隔离;
  • 不可逆操作:下单、转账、删除数据等动作一旦执行难以撤销,需要人工确认或沙箱限制;
  • 评测困难:真实环境状态多、路径不唯一,难以用固定答案衡量。

因此生产系统通常设置步数上限、超时、权限控制和人工审批,并对关键动作做日志记录。

相关阅读#

基于大语言模型的智能体:规划、记忆与工具调用
https://biscuit0613.github.io/posts/nlp/12-04-agent/
作者
Biscuit
发布于
2026-10-20
许可协议
CC BY-NC-SA 4.0
CoT、ToT 与 GoT:让模型展开推理
GCN:图神经网络