AIUnlimited
🌳

AI基础

🌱
AI 种子

从零开始

🌿
AI 萌芽

打好基础

🌳
AI 枝干

付诸实践

🏕️
AI 树冠

深入探索

🌲
AI 森林

精通AI

🔨

AI精通

✏️
AI 草图

从零开始

🪨
AI 雕刻

打好基础

⚒️
AI 匠心

付诸实践

💎
AI 打磨

深入探索

🏆
AI 杰作

精通AI

📘

AI实战

📖
理解开源模型

开源模型的基础知识和资源

🎯
问题到模型任务

将业务问题转化为模型任务

⚡
跑通第一个模型

30分钟快速看到第一个结果

🔧
微调与评测

微调模型并评估性能

🚀
应用系统

构建实际AI应用系统

🎨
生成式AI

探索AIGC的开源模型

🤖
Agent智能体

学习Agent框架和MCP工具

📐
基础补充

LLM基础知识和评测

🎓

Claude 学院

🤖
Claude 101 入门

用 Claude 学习 AI 基础知识

💻
Claude Code 101 入门

让 Claude 成为你的结对编程伙伴

🤝
Claude Cowork 入门

与 Claude 协作完成复杂项目

⚙️
Claude 平台 101

使用 Claude API 构建应用

实验室

已加载 7 个实验
🧬神经网络沙盒🤖AI 还是人类?🥋提示工程道场🏁算法竞速🧠AI 知识挑战🏗️系统设计画布
🎯模拟面试进入实验室→
🚀

职业发展

🚀
面试发射台

开启你的旅程

🌟
行为面试精通

掌握软技能

💻
技术面试

通过编程轮次

🤖
AI与ML面试

ML面试精通

🏆
Offer与未来

拿下最好的Offer

立即开始
AIUnlimited

AI 教育平台

沪ICP备18025655号-11

学习

  • AI基础
  • AI实战
  • Claude学院
  • 实验室
  • 职业发展

社区

  • 关于
  • 常见问题

支持

  • 服务条款
  • 隐私政策
  • 联系我们
AI & 工程学习计划›🤖 Agent智能体›课程›Agent是什么,它能做什么事?
🤖
Agent智能体 • 入门⏱️ 15 分钟阅读

Agent是什么,它能做什么事?

Agent是什么,它能做什么事?

Agent到底是什么,和普通问答有什么不同?

Agent(智能体)是一种以大模型为核心,能够围绕任务目标自主进行决策和执行的应用系统。大模型为Agent提供语言理解、推理和内容生成等基础能力,使其能够理解用户提出的任务并分析当前信息。在此基础上,Agent进一步将模型的推理能力用于任务执行:面对一个目标,它不仅需要生成回答,还需要判断为了完成目标应该做什么,并通过工具获取外部信息或执行具体操作。当任务包含多个步骤时,Agent还可以利用前一步获得的结果继续判断下一步操作,必要时调整原有计划,直到任务完成。因此,Agent关注的重点从“根据输入生成什么内容”扩展到了“围绕目标如何完成任务”。这里所说的自主决策并不是完全不受限制地行动,而是在预先设定的任务范围、工具和权限内,根据当前状态选择合适的操作。所以说,Agent不是一种独立于大模型的新模型,而是以大模型作为理解和决策核心,并将模型与外部能力结合起来形成的任务执行系统。

Agent适合处理包含多个步骤、需要使用外部信息或工具,并且执行过程可能根据中间结果发生变化的任务,常见的应用场景包括信息检索、数据分析、软件开发和业务自动化等。例如,在信息检索场景中,Agent可以根据任务搜索并整理不同来源的资料;在数据分析场景中,可以读取数据、完成计算并生成分析结果;在软件开发场景中,可以编写代码、执行测试并根据运行结果继续修改;在业务自动化场景中,可以连接数据库和业务系统,完成数据查询、工单处理等操作。对于翻译、摘要、改写等可以直接通过模型生成完成的任务,通常不需要使用Agent。

一个Agent,需要哪些部分配合?

正文配图

LLM,理解任务并判断下一步

Agent的核心,负责处理用户输入、生成响应和进行决策等,相当于Agent的“大脑”。因为Agent不是按预设路径行动,而是根据实时情况动态调整其行为策略,所以LLM不仅负责理解和生成内容,还需要根据当前任务和执行结果判断下一步操作,决定如何与外部环境进行交互。Agent通过Prompt(提示词)规定LLM的角色、任务目标、行为规则和权限边界,让LLM在预先设定的范围内进行决策和执行。

Planning,把任务拆成可执行的步骤

负责制定Agent的行动计划,包括将复杂任务分解为多个子任务,并确定后续的执行步骤。Agent在处理多步骤任务时,不仅需要制定行动计划,还需要根据任务的执行情况进行调整。例如,当工具返回的结果与预期不同,或者获得的信息不足时,Agent可以调整原有计划,重新确定下一步操作。Planning模块使Agent能够根据任务状态动态规划和调整后续行动。

Memory,记住任务进展和需要的信息

用于存储Agent的记忆,包括短期记忆和长期记忆。短期记忆主要保存当前会话或任务中的信息,长期记忆则用于保存需要长期使用的信息。记忆是一个动态、可访问且可更新的系统。动态是指记忆可以随着新的信息和任务状态发生变化;可访问是指Agent能够根据需要检索和使用存储在记忆中的信息;可更新则是指Agent可以根据新的信息和执行结果对已有记忆进行补充或修改。随着记忆不断更新,Agent可以利用交互和任务经验改进后续的判断和决策,提升对不同任务和环境的适应能力。

Tools,让模型能够实际执行操作

Agent可以使用的各种工具,包括搜索引擎、数据库、计算器、代码执行环境以及通过API提供的各种外部服务。Tools模块的核心作用是扩展Agent与外部环境交互的能力,使Agent不仅能够生成内容,还能够获取外部信息和执行具体操作。

在使用Tools模块时,Agent需要根据当前任务和上下文判断是否需要使用工具,以及选择哪个工具。有效地使用工具不仅指选择正确的工具,还包括怎么高效地利用工具,减少不必要的工具使用。当任务需要多个工具配合完成时,Agent还需要根据工具返回的结果决定是否继续调用其他工具,并对不同工具的结果进行整合。因此,Tools模块不仅为Agent提供外部能力,还要求Agent能够根据任务需要合理选择和使用工具。

Agent是一个集成了LLM、Planning、Memory和Tools的系统,如下图所示。这些模块共同协作,使Agent能够自主执行任务、学习并改进其行为。

接到任务以后,Agent怎样一步步做下去?

Agent接收到任务后,需要根据任务目标和当前信息决定如何推进任务。例如,有些任务可以一边调用工具一边根据返回结果决定下一步操作;有些复杂任务需要先拆分步骤,再逐步执行;对于生成的结果,还可以进一步检查和修改。当一个Agent难以完成全部任务时,也可以由多个Agent分工协作。

根据任务特点和执行方式不同,Agent可以采用不同的任务执行模式。下面介绍ReAct、Plan-and-Execute、Reflection和多Agent协作四种常见模式,它们分别从动态执行、任务规划、结果改进和任务分工等方面组织Agent的任务执行过程。

ReAct模式

ReAct(Reasoning and Acting)是一种将推理和行动结合起来的任务执行方式,由Shunyu Yao等人提出。大模型根据当前信息进行推理并采取行动,再根据行动获得的新信息继续推理和行动,直到任务完成。

ReAct的典型过程包括Thought(推理)、Action(行动)和Observation(观察)。其中,Thought表示模型根据当前信息进行分析,判断下一步应该做什么;需要获取外部信息或执行某项操作时,模型生成相应的Action,例如调用搜索工具或查询数据库;工具执行后返回的结果作为Observation提供给模型,模型再结合这些新信息继续进行判断。

在任务执行过程中,Thought、Action和Observation会根据任务需要交替出现,形成推理、行动和观察相互配合的执行过程。其典型过程可以表示为:

Thought → Action → Observation → Thought → Action → Observation → …… → 最终结果

例如,用户询问:“2024年诺贝尔物理学奖获得者是谁?其中年龄最大的是哪一位?”

Agent首先判断需要获得2024年诺贝尔物理学奖的获奖名单,因此调用搜索工具进行查询。获得名单后,发现还需要比较获奖者的年龄,于是继续查询他们的出生日期。获得所需信息后,Agent再进行比较并生成最终答案。

第 1 课,共 7 课已完成 0%
←返回学习计划

讨论

登录 参与讨论

在这个过程中,Agent并没有在任务开始时确定所有执行步骤,而是根据每次工具返回的结果决定下一步操作。因此,ReAct比较适合搜索、查询、工具调用等需要与外部环境不断交互的任务。对于步骤较多的复杂任务,如果完全采用这种边执行边决定下一步的方式,可能出现遗漏步骤或执行路径反复等情况。

Plan-and-Execute模式

Plan-and-Execute将复杂任务的处理分为规划和执行两个阶段。Agent接收到任务后,先分析任务目标并拆分出需要完成的步骤,形成整体计划,然后再按照计划逐步执行。

例如,用户要求:“分析三家新能源汽车企业最近一年的经营情况,并形成一份比较报告。”这个任务涉及资料收集、数据整理、对比分析和报告生成等多个环节。对于这类步骤较多的任务,可以先形成如下计划:

  1. 确定需要比较的三家企业;
  2. 收集各企业最近一年的经营数据;
  3. 整理销量、营收等关键指标;
  4. 对各企业的经营情况进行比较;
  5. 总结差异并生成报告。

计划形成后,Agent再依次完成其中的任务。在执行某个步骤时,仍然可以调用搜索、数据库或其他工具。如果执行过程中发现原来的计划无法继续,或者出现了新的任务需求,还可以对原有计划进行调整。

Plan-and-Execute的典型执行过程可以表示为:

用户任务 → 制定计划 → 逐步执行 → 检查任务状态 → 最终结果

其中,在检查任务状态时,如果发现原有计划需要调整,可以重新进行规划,再继续执行。

与ReAct相比,Plan-and-Execute更强调在执行前建立整体计划,因此适合步骤较多、任务目标明确并且能够提前进行拆分的任务。两种模式也可以结合使用,例如先使用Plan-and-Execute规划复杂任务,在执行其中某个步骤时,再使用ReAct根据工具返回结果动态决定下一步操作。

Reflection模式

Agent第一次生成的结果并不一定能够满足任务要求。例如,生成的报告可能遗漏重要信息,回答可能存在事实错误,代码也可能无法正常运行。对于这类任务,可以在初步结果的基础上增加检查和改进过程,这就是Reflection(反思)模式的基本思路。

Reflection的基本过程可以表示为:用户任务 → 生成初步结果 → 检查结果 → 发现问题 → 修改结果 → 再次检查→…… → 满足要求→ 最终结果。

例如,让Agent根据多份资料生成一份产品比较报告。完成初稿后,可以进一步检查是否覆盖了所有需要比较的产品、产品参数是否与原始资料一致、是否遗漏重要差异等。如果发现某款产品的信息不完整,可以重新查找资料并补充;如果结论与资料不一致,则需要重新修改。

在这个过程中,检查结果所依据的反馈可以来自不同来源。Agent可以检查自己的执行结果,也可以使用其他Agent或模型进行评估,还可以结合规则、知识库或人工审核等方式提供反馈。

这种模式比较适合报告生成、代码编写、复杂分析等对结果质量要求较高的任务。不过,多次检查和修改也会增加模型调用次数和执行时间,因此实际应用中通常需要设置结束条件,例如结果达到要求后结束,或者达到最大检查次数后停止。

多Agent协作模式

对于一些复杂任务,一个Agent可能需要同时承担资料收集、数据分析、内容生成和结果检查等多项工作。此时,可以将任务分配给多个Agent,由它们分别处理不同的部分,再通过协作完成最终目标。多Agent协作主要包括任务分工和信息交互两个方面。

任务分工时,为不同Agent分配不同的角色、任务、工具和知识。例如,要完成一份行业研究报告,可以设置研究Agent、数据分析Agent、写作Agent和审核Agent。研究Agent负责收集和整理资料,数据分析Agent负责处理相关数据,写作Agent负责生成报告,审核Agent负责检查报告。

在信息交互方面,多Agent之间可以采用不同的协作方式。对于能够明确拆分的任务,可以让多个Agent分别处理不同的子任务,最后汇总结果;对于前后存在依赖关系的任务,可以将一个Agent的结果传递给下一个Agent继续处理;对于需要反复讨论或修改的任务,不同Agent还可以通过消息交互交换信息。此外,还可以设置一个负责协调的Agent,由它根据当前任务决定接下来由哪个Agent处理。

以生成行业研究报告为例,一种多Agent协作方式如下图所示:

正文配图

多Agent能够通过分工降低单个Agent处理复杂任务的难度,但Agent数量并不是越多越好。随着Agent数量增加,任务分配、信息传递和结果协调也会变得更加复杂,同时会增加模型调用次数和执行成本。因此,对于单个Agent能够完成的任务,通常没有必要额外引入多个Agent。

这些任务执行模式并不是相互独立的,在实际应用中可以根据任务需要组合使用。例如,可以先使用Plan-and-Execute规划复杂任务,再使用ReAct完成其中需要多次工具调用的步骤,并通过Reflection检查和改进结果;对于规模更大的任务,还可以将不同子任务分配给多个Agent协作完成。