现在位置: 首页 > AI Agent 教程 > 正文

AI Agent 核心组件

一个 AI Agent 为什么能够理解任务、调用工具,并根据执行结果继续工作?关键在于它内部的模型、工具、记忆和规划等模块,以及负责组织这些模块运行的执行逻辑。

例如,让一个 Agent 完成"读取 Excel 销售数据,生成统计图表并保存报告",整个过程可能涉及:

  1. 理解用户的任务要求,确定需要处理的文件。
  2. 读取 Excel 数据,识别表格结构。
  3. 规划分析步骤,确定需要计算的指标。
  4. 调用 Python 等工具处理数据、生成图表。
  5. 检查执行结果,保存报告并返回文件位置。

这些操作并不完全由大语言模型直接完成,而是由模型、外部工具和执行程序共同实现。

理解 AI Agent 的核心组件,有助于我们进一步了解 Agent 的工作原理,以及如何开发自己的 Agent 应用。

AI Agent 核心组件

AI Agent 整体架构

从功能上看,一个典型的 LLM Agent 可以分为以下几个部分:

组件 主要职责
感知(Perception) 接收用户输入、环境信息和工具返回结果。
模型(LLM) 理解任务、分析信息并决定下一步操作。
工具(Tools) 执行搜索、文件操作、代码运行和 API 调用等任务。
记忆(Memory) 保存对话上下文、任务状态和需要长期使用的信息。
规划(Planning) 拆解复杂任务,确定执行步骤,并根据结果调整计划。

AI Agent 整体架构

需要注意,这五个部分是一种便于理解的功能划分,并不代表所有 Agent 都必须采用相同的架构。

简单的 Agent 可能只需要一个大语言模型和几个工具;复杂的 Agent 则可能增加长期记忆、任务调度、多 Agent 协作和运行状态管理等能力。


1、感知(Perception)

感知负责接收 Agent 在执行任务时需要处理的信息,包括用户输入、文件内容、外部数据以及工具返回结果。

对于传统的文本 Agent,输入通常是文字;对于多模态 Agent,输入还可以包括图片、声音、视频等内容。

常见的输入类型包括:

  • 文本:用户指令、聊天记录、文档和程序代码。
  • 图像:截图、照片、设计稿等。
  • 语音:用户的语音指令或音频内容。
  • 结构化数据:JSON、CSV、数据库查询结果等。
  • 环境信息:浏览器页面、文件目录、软件运行状态等。
  • 工具结果:搜索结果、代码执行输出、API 响应和错误信息。

例如,一个浏览器 Agent 在执行"打开网页并填写表单"时,可能需要读取网页 DOM 结构或者页面截图,判断输入框和按钮的位置,再决定下一步操作。

不同 Agent 获取环境信息的方式并不相同。有些通过 API 获取结构化数据,有些通过屏幕截图和计算机操作工具与软件交互。

感知获得的信息会被整理为模型可以处理的上下文,供后续推理和决策使用。

2、模型(LLM)

大语言模型(Large Language Model,LLM)通常是 Agent 的核心推理组件,主要负责理解任务、分析上下文以及决定下一步需要采取的操作。

常见的模型包括 GPT、Claude、DeepSeek、Qwen 等系列模型。

在 Agent 系统中,模型主要承担以下工作:

  • 理解任务:识别用户希望完成什么,以及任务有哪些约束条件。
  • 分析信息:综合当前上下文、历史记录和工具返回结果进行判断。
  • 选择操作:确定应该直接回答,还是调用某个外部工具。
  • 生成参数:根据工具定义生成调用时所需的参数。
  • 处理反馈:读取执行结果,判断是否需要继续操作。

模型如何决定调用工具?

例如,用户要求:

查询北京明天的天气,如果有雨就提醒我带伞。

模型可以识别出任务包含两个步骤:首先获取天气预报,然后根据天气情况判断是否生成提醒。

但是,模型本身并不能凭空获取可靠的实时天气数据,它需要调用天气查询工具。

模型根据工具的名称、参数说明和当前任务生成调用请求,由 Agent 的执行程序完成实际调用。

工具返回天气数据后,模型再根据结果决定后续操作。

因此,模型主要负责判断和生成调用指令,真正执行操作的是外部程序或工具。

说明:模型能力会影响 Agent 的任务理解和决策质量,但 Agent 的实际表现还与工具质量、系统提示词、执行环境、权限控制和结果验证机制等因素有关。

3、工具(Tools)

工具是 Agent 与外部环境交互的重要方式。

大语言模型擅长理解和生成内容,但实际工作往往涉及访问文件、查询数据库、运行程序或者操作其他软件,这些都需要借助外部工具。

例如,Agent 要分析 Excel 文件,就需要具备文件读取和数据处理能力;要发送邮件,则需要能够访问相应的邮件服务。

常见工具可以分为以下几类:

工具类型 常见工具 用途
信息获取 搜索引擎、网页读取、数据库查询 获取外部信息和业务数据
代码执行 Python、Shell、代码沙箱 数据分析、计算和程序执行
文件处理 文件读取、文件写入、文档解析 整理文档、处理表格和生成文件
内容生成 图片生成、语音合成、文档生成 生成图片、音频和其他文件
系统交互 API、邮件、日历、浏览器操作 与外部应用和业务系统交互

函数调用(Function Calling)

Function Calling 是 Agent 调用外部工具的一种常见实现方式。

开发者先定义工具的名称、功能以及需要的参数,模型根据用户任务选择合适的工具,并生成结构化的调用参数。

例如,开发者定义一个天气查询工具:

{
    "name": "get_weather",
    "description": "查询指定城市的天气",
    "parameters": {
        "city": "string",
        "date": "string"
    }
}

当用户要求查询北京明天的天气时,模型可能生成类似以下的工具调用参数:

{
    "city": "北京",
    "date": "2026-10-11"
}

以上日期仅用于演示。实际应用中,应根据当前日期和用户所在时区计算查询日期。

Agent 的执行程序接收到调用请求后,调用对应的天气 API,并将查询结果返回给模型。

整个过程可以概括为:

用户提出任务
    ↓
模型选择工具
    ↓
生成调用参数
    ↓
程序执行工具
    ↓
返回执行结果
    ↓
模型继续处理

需要注意,模型生成工具调用请求,并不代表工具已经执行成功。实际执行、权限检查、异常处理以及结果返回,通常由 Agent 的运行环境负责。

除了 Function Calling,开发者也可以通过 MCP(Model Context Protocol)等方式集成外部工具和数据源。

4、记忆(Memory)

Agent 在执行任务时,需要保留一定的上下文信息,才能知道当前任务进行到了哪一步,以及之前的操作得到了什么结果。

这种信息保存和使用机制通常称为记忆(Memory)。

根据保存时间和用途,可以将记忆分为以下几类。

短期记忆

短期记忆主要保存当前对话和正在执行的任务信息。

例如,用户先说"帮我分析这个 Excel 文件",随后又说"把结果生成柱状图",Agent 需要结合之前的上下文,才能知道第二条指令对应哪份数据。

短期记忆通常依赖模型上下文窗口或应用维护的会话状态。

由于模型上下文窗口存在长度限制,长时间运行的 Agent 可能需要对历史信息进行截取、摘要或外部存储。

长期记忆

长期记忆用于保存需要跨会话使用的信息,例如用户偏好、历史任务记录、项目资料等。

常见的实现方式包括:

  • 使用数据库保存用户偏好和历史记录。
  • 使用文件保存任务执行结果和项目状态。
  • 使用向量数据库存储可以进行语义检索的信息。
  • 通过检索机制在需要时读取相关历史内容。

长期记忆不一定需要向量数据库。对于用户配置、任务状态等结构化数据,普通关系型数据库或键值数据库往往更直接。

情节记忆与语义记忆

在一些 Agent 设计中,还会根据记忆内容进行进一步分类:

  • 情节记忆(Episodic Memory):保存过去执行过的任务、操作过程和结果。
  • 语义记忆(Semantic Memory):保存事实、概念、规则和其他知识信息。

例如,记录"上次生成报告时使用了哪些参数"属于任务经验;保存"项目采用 PostgreSQL 数据库"属于项目知识。

这些分类主要用于帮助开发者设计记忆系统,并不意味着所有 Agent 都必须分别实现独立的记忆模块。

RAG 与 Agent 记忆

RAG(Retrieval-Augmented Generation,检索增强生成)是一种在模型生成回答之前,先从外部数据源检索相关内容,再结合检索结果生成回答的技术。

RAG 常用于让 Agent 查询内部文档、知识库、历史资料等信息。

例如,用户询问"公司的报销制度是什么",Agent 可以先从企业知识库中查找相关文档,再根据检索内容回答。

一个典型的 RAG 流程如下:

用户提问
    ↓
查询知识库
    ↓
检索相关内容
    ↓
将内容加入模型上下文
    ↓
生成回答

RAG 可以通过向量检索、关键词检索或者混合检索等方式实现,并不局限于向量数据库。

注意:RAG 并不等同于 Agent 的长期记忆。RAG 主要解决外部信息检索和利用的问题,而长期记忆还涉及信息保存、更新、过期管理和跨任务使用等。

在实际开发中,RAG 可以作为 Agent 访问长期知识或历史信息的一种方式。


5、规划(Planning)

规划负责将用户提出的任务转化为可以执行的操作步骤。

对于简单任务,例如"查询今天的天气",Agent 可能只需要调用一次工具。

对于复杂任务,例如"生成一份竞品分析报告",通常需要多个步骤才能完成。

例如:

  1. 确定需要分析的产品及比较指标。
  2. 查找产品价格、功能和技术资料。
  3. 整理不同产品的差异。
  4. 生成对比表格和分析内容。
  5. 检查引用来源和最终结果。

Agent 可以先生成完整计划,也可以在执行过程中逐步决定下一步操作。

常见的推理与规划方法

在 Agent 开发中,经常会看到 CoT、ReAct、ToT、Reflection 等概念。

这些方法关注的重点不同,有些用于组织模型推理,有些用于结合工具执行,还有些用于检查和修正结果。

方法 基本思路 适用场景
CoT Chain-of-Thought,将复杂问题分解为中间推理步骤 数学、逻辑和复杂问题分析
ReAct 结合推理与工具操作,根据执行结果继续决策 搜索、工具调用、多步骤任务
ToT Tree of Thoughts,探索和评估多个候选推理路径 复杂问题求解、方案探索
Reflection 根据反馈检查并修正已有结果 代码修改、内容检查、任务优化

需要注意,CoT、ToT、ReAct 和 Reflection 并不是同一层级的技术,也不一定需要同时使用。

实际开发时,应根据任务复杂度选择合适的方法,避免为简单任务设计过于复杂的执行流程。

ReAct 执行示例

假设用户要求:"查询北京明天的天气,如果下雨就发送提醒。"

Agent 可以按照以下流程执行:

  1. 分析任务,确定需要先查询天气。
  2. 调用天气 API 获取预报数据。
  3. 读取天气查询结果。
  4. 判断是否满足下雨条件。
  5. 如果满足条件,并且具有发送权限,则调用消息工具发送提醒。
  6. 检查消息工具的执行结果,并向用户反馈。

如果天气 API 返回错误,Agent 可以在允许的重试范围内重新查询,或者提示用户查询失败。

这类根据工具反馈调整后续操作的方式,是 ReAct 模式的重要特点。

6、Agent 运行循环(Agent Loop)

感知、模型、工具、记忆和规划不是彼此独立运行的。Agent 通常需要通过一个执行循环,将这些能力连接起来。

这个执行循环通常称为 Agent Loop。

它的基本过程可以概括为:

接收任务
    ↓
分析当前状态
    ↓
决定下一步操作
    ↓
调用工具
    ↓
获取执行结果
    ↓
判断任务是否完成
    ↓
未完成则继续执行
    ↓
完成后输出结果

例如,一个编程 Agent 接到"修复项目中的登录错误"任务后,可能会依次执行:

  1. 读取相关源代码。
  2. 分析错误原因。
  3. 修改代码文件。
  4. 执行自动化测试。
  5. 根据测试结果决定是否继续修改。
  6. 测试通过后,整理修改内容并返回结果。

如果测试失败,Agent 可以读取错误信息,再次分析和修改代码。

但这种反馈机制不代表 Agent 一定能够自行解决所有问题。复杂错误可能需要人工介入。

Agent Loop 何时结束?

Agent 不应该无限循环。实际开发时,需要设置合理的终止条件。

常见的终止条件包括:

  • 任务完成:已达到用户要求的目标。
  • 达到执行限制:超过最大执行步数、运行时间或调用预算。
  • 执行失败:遇到无法恢复的错误。
  • 需要人工确认:某些操作需要用户批准才能继续。
  • 用户主动停止:用户取消当前任务。

除此之外,还应根据任务类型设置权限检查、错误重试以及结果验证机制,避免 Agent 重复执行错误操作。


一个完整的 Agent 执行示例

前面分别介绍了 Agent 的各个组件。接下来通过一个完整实例,了解这些组件如何协同工作。

假设用户提出以下任务:

帮我查询明天北京的天气,如果有雨,就给小王发送一条带伞提醒。

整个任务可以分为以下几个阶段:

阶段 执行内容
感知 接收用户指令,识别城市、日期、天气条件和接收人。
模型 理解任务目标,判断需要查询天气和发送消息。
规划 确定先查询天气,再判断是否发送提醒。
工具 调用天气查询 API,获取天气预报。
记忆与状态 保留任务要求和查询结果,按需读取授权通讯录中的联系人信息。
工具 满足下雨条件时,调用消息工具发送提醒。
结果检查 根据消息工具的返回状态,判断是否发送成功。

AI Agent 完整任务执行过程

这个例子包含了 Agent 的基本工作流程:理解任务、规划操作、调用工具、获取反馈,并根据结果决定是否继续执行。

实际应用中,还需要考虑联系人是否存在、消息工具是否具有发送权限、天气查询是否成功等情况。

对于向外部发送消息等操作,可以根据应用的安全要求,在执行前增加用户确认步骤。

总结

AI Agent 并不是单独依靠一个大语言模型完成全部工作,而是通过模型、工具、记忆、规划以及执行控制逻辑共同完成任务。

从开发角度看,各部分可以简单理解为:

  • 感知:获取任务和环境信息。
  • 模型:理解信息,判断下一步操作。
  • 工具:执行具体操作,与外部系统交互。
  • 记忆:管理任务状态、上下文和历史信息。
  • 规划:组织执行步骤,根据反馈调整任务。

其中,Agent Loop 负责组织这些组件,使 Agent 能够持续执行,直到任务完成或者满足其他终止条件。

如果只是开发一个简单的 Agent,可以先从大语言模型 + 工具调用 + 执行循环开始,再根据实际需求增加长期记忆、复杂规划和其他能力。

在设计 Agent 时,除了关注模型能做什么,还需要考虑工具是否可靠、权限是否合理,以及如何判断任务真正完成。这些因素直接影响 Agent 在实际项目中的稳定性和安全性。

相关资料: