1x2s 发表于 5 天前

什么是 AI Agent(智能体)?

最近看到很多大厂都开始做智能体,什么是智能体,有哪些使用场景,小白如何学习智能体呢?

苏打 发表于 5 天前

问题比较多,智能体定义及组成可以参考Google发布的《Agents》白皮书。
地址:Agents
原文是一个白皮书,内容非常长,为了方便大家了解,我对主要内容进行了提取。不过还是建议大家看一遍原文,这个文章写的很好,对于构建智能体有很多值得学习、借鉴的地方,尤其是例代码。
第一章:引言

什么是智能体?

智能体可以被定义为一个试图通过观察世界并利用其工具来达成目标的应用程序。与传统的生成式AI模型不同,智能体具有自主性,能够在没有人类干预的情况下独立行动。它们不仅能够根据明确的指令执行任务,还能在没有明确指令的情况下,通过推理来决定下一步行动。智能体的核心在于其认知架构,即驱动其行为、决策和行动的三个基本组件:模型、工具和编排层。


模型、工具与编排层

模型:模型是智能体的核心决策者,通常是一个或多个语言模型(LM)。这些模型可以是通用的、多模态的,也可以根据特定任务进行微调。模型的选择应根据最终应用的需求,理想情况下,模型应具备与工具相关的数据签名。
工具:尽管生成式AI模型在文本和图像生成方面表现出色,但它们无法直接与外部世界互动。工具弥补了这一缺陷,使智能体能够与外部数据和系统交互,执行更广泛的任务。工具的形式多样,通常与常见的Web API方法(如GET、POST、PATCH和DELETE)对齐。
编排层:编排层描述了智能体如何循环处理信息、进行内部推理,并基于推理结果决定下一步行动。这个循环会持续进行,直到智能体达成目标或达到停止点。编排层的复杂性因任务而异,可能涉及简单的决策规则或复杂的逻辑链。
智能体与模型的区别

智能体与传统的生成式AI模型有几个关键区别:

[*]知识扩展:模型的知识仅限于其训练数据,而智能体通过工具与外部系统连接,扩展了其知识范围。
[*]会话管理:智能体能够管理会话历史(如聊天记录),支持多轮推理和预测,而模型通常只能进行单次推理。
[*]工具实现:智能体原生支持工具的使用,而模型则需要通过复杂的提示工程来实现类似功能。




第二章:工具——连接外部世界的钥匙

智能体的核心能力之一是通过工具与外部世界进行交互。这些工具不仅扩展了智能体的功能,还使其能够访问实时信息、执行复杂任务,并在现实世界中产生影响。本章将详细介绍智能体所使用的三种主要工具类型:扩展(Extensions)、函数(Functions)和数据存储(Data Stores),并探讨它们如何帮助智能体突破生成式AI模型的固有局限。


1. 扩展(Extensions):无缝连接API与智能体

扩展是智能体与外部API之间的桥梁,允许智能体以标准化的方式执行API调用。与传统的自定义代码相比,扩展更具弹性和可扩展性,能够动态选择最适合的API来响应用户查询。


扩展的工作原理

扩展通过以下方式连接智能体与外部API:

[*]教导智能体如何使用API:扩展通过提供示例,教导智能体如何调用特定的API端点。
[*]定义API调用所需的参数:扩展还定义了调用API所需的参数,确保智能体能够正确解析用户输入并生成有效的API请求。
例如,假设一个智能体的目标是帮助用户预订航班。开发者可以使用Google Flights扩展,使智能体能够调用Google Flights API来检索航班信息。如果用户输入“我想预订从奥斯汀到苏黎世的航班”,智能体会自动提取“奥斯汀”和“苏黎世”作为出发地和目的地,并生成相应的API请求。
扩展的优势


[*]动态选择:智能体可以根据用户查询动态选择最合适的扩展,而无需依赖固定的代码逻辑。
[*]弹性处理:扩展能够处理各种边缘情况,例如用户未提供完整信息时,智能体可以通过推理或提示用户补充信息。


示例:Google Flights扩展

在Google的Gemini应用中,用户可以启用Google Flights扩展,并通过自然语言查询航班信息。例如,用户可以输入“显示从奥斯汀到苏黎世下周五的航班”,智能体会自动调用Google Flights API并返回实时航班信息。
2. 函数(Functions):客户端执行的灵活工具

函数是另一种重要的工具类型,与扩展不同,函数的执行发生在客户端,而不是智能体端。这种设计为开发者提供了更细粒度的控制,适用于需要安全认证、批处理操作或复杂数据转换的场景。


函数的工作原理

函数是自包含的代码模块,能够完成特定任务并重复使用。智能体可以生成函数的参数,但实际的API调用由客户端应用程序执行。这种分工使得开发者能够更好地控制数据流和系统执行。
例如,在旅行规划场景中,智能体可以生成一个包含城市列表和用户偏好的JSON格式函数调用。客户端应用程序随后可以使用这些参数调用Google Places API,检索相关城市的图像和数据,并将结果呈现给用户。
函数的优势


[*]安全性:由于API调用发生在客户端,开发者可以避免在智能体端暴露敏感信息或API密钥。
[*]灵活性:开发者可以在客户端执行复杂的数据转换或批处理操作,而无需依赖智能体的能力。
[*]异步操作:函数调用适用于需要长时间运行的异步操作,例如批量数据处理或人工审核。


示例:旅行规划函数

假设一个智能体被训练为旅行助手,用户输入“我想和家人一起滑雪,但不知道去哪里”。智能体可以生成一个函数调用,返回一个结构化的JSON输出,包含推荐的城市列表和用户偏好(如“滑雪”)。客户端应用程序随后可以使用这些数据调用Google Places API,检索相关城市的图像和信息。


3. 数据存储(Data Stores):访问动态信息的桥梁

数据存储为智能体提供了访问动态和实时信息的途径,确保模型的响应基于最新的事实和数据。与传统的生成式AI模型不同,智能体可以通过数据存储访问其训练数据之外的信息,从而提供更准确和相关的响应。


数据存储的工作原理

数据存储通常以向量数据库的形式实现,存储数据的向量嵌入(vector embeddings)。这些嵌入是高维数学表示,能够捕捉数据的语义信息。当用户查询智能体时,查询会被转换为向量嵌入,并与数据存储中的内容进行匹配。匹配到的数据随后被检索并用于生成响应。


数据存储的应用场景

数据存储支持多种数据格式,包括:

[*]网站内容:智能体可以访问预索引的网站数据,提供最新的信息。
[*]结构化数据:如PDF、Word文档、CSV文件和电子表格。
[*]非结构化数据:如HTML、PDF和TXT文件。


示例:检索增强生成(RAG)

检索增强生成(RAG)是一种常见的应用场景,智能体通过数据存储检索相关信息,并将其用于生成响应。例如,用户查询“Google的育儿假政策是什么?”时,智能体会从数据存储中检索相关政策文档,并生成基于最新信息的响应。




工具总结

扩展、函数和数据存储是智能体与外部世界交互的三大工具类型。每种工具都有其独特的优势和适用场景:

[*]扩展:适用于需要智能体直接控制API调用的场景,例如多跳规划和实时API调用。
[*]函数:适用于需要客户端执行API调用或复杂数据转换的场景,提供更高的安全性和灵活性。
[*]数据存储:适用于需要访问动态和实时信息的场景,支持检索增强生成(RAG)等应用。
通过合理选择和组合这些工具,开发者可以构建出功能强大且灵活的智能体,解决各种复杂的现实世界问题。
第三章:通过针对性学习增强模型性能

智能体的核心能力之一是通过工具与外部世界进行交互,但要让智能体在实际应用中表现出色,模型必须能够有效地选择和使用这些工具。本章将深入探讨如何通过针对性学习来增强模型的性能,使其能够更好地理解何时以及如何使用工具完成任务。
上下文学习(In-context Learning)

上下文学习通过在推理时提供提示、工具和少量示例,使模型能够“即时”学习如何使用这些工具完成任务。ReAct框架是这种方法的典型代表。
基于检索的上下文学习(Retrieval-based In-context Learning)

这种方法通过从外部存储器中检索最相关的信息、工具和示例,动态填充模型提示。例如,Vertex AI扩展中的“示例存储”就是这种技术的应用。
微调学习(Fine-tuning Based Learning)

微调学习通过在推理前使用大量特定示例训练模型,帮助模型理解何时以及如何使用某些工具。这种方法适用于需要模型在特定领域表现出色的场景。
针对性学习的类比:厨师的烹饪艺术

为了帮助读者更好地理解这些针对性学习方法,我们可以用一个厨师的烹饪艺术来类比:

[*]上下文学习:想象一个厨师收到了一份特定的食谱(提示)、一些关键食材(工具)和几个示例菜肴(少量示例)。基于这些有限的信息和厨师的通用烹饪知识,他需要“即时”准备一道符合食谱和顾客偏好的菜肴。这就是上下文学习。
[*]基于检索的上下文学习:现在,假设这个厨师在一个备有各种食材和食谱的厨房(外部数据存储)中工作。他可以根据顾客的食谱和偏好,动态选择食材和食谱,从而准备出更符合顾客需求的菜肴。这就是基于检索的上下文学习。
[*]微调学习:最后,假设我们送这位厨师去学校学习一种新的烹饪风格(大量特定示例)。通过深入学习,他能够更好地应对未来的顾客需求,并在特定烹饪风格中表现出色。这就是微调学习。
第四章:使用LangChain快速构建智能体

为了展示智能体的实际应用,本文提供了一个使用LangChain和LangGraph库构建的快速原型示例。该示例使用了Google的gemini-1.5-flash-001模型,结合SerpAPI(用于Google搜索)和Google Places API,回答用户的多阶段查询。通过这个简单的示例,读者可以直观地理解模型、编排层和工具如何协同工作,完成复杂任务。
第五章:生产级应用——Vertex AI智能体

构建生产级智能体应用需要集成用户界面、评估框架和持续改进机制。Google的Vertex AI平台提供了一个完全托管的开发环境,简化了这一过程。开发者可以通过自然语言界面快速定义智能体的目标、任务指令、工具和子智能体,轻松构建所需的系统行为。Vertex AI平台还提供了一系列开发工具,支持测试、评估、调试和改进智能体性能,使开发者能够专注于智能体的构建和优化。


<hr/>如何构建智能体,可以参考近日anthropic公司发布的Building effective agents,感觉写的非常不错。这是其中关于构建智能体的说明:
构建模块:增强型LLM(Building block: The augmented LLM)

智能体系统的基本构建块是增强型LLM,具备检索、工具和记忆等增强功能。我们当前的模型能够主动使用这些功能——生成自己的搜索查询,选择适当的工具,并确定要保留的信息。



增强型LLM

我们建议专注于两个关键方面:将这些能力量身定制以适应你的具体用例,并确保它们为LLM提供一个简洁且有良好文档支持的接口。虽然有很多方式可以实现这些增强功能,但一种方法是通过我们最近发布的模型上下文协议,它允许开发者通过一个简单的客户端实现,集成日益增长的第三方工具生态系统。
接下来,我们假设每个LLM调用都可以访问这些增强功能。
工作流:提示链式调用(Workflow: Prompt chaining)




提示链式工作流

提示链式调用将任务分解成一系列步骤,每个LLM调用处理前一个调用的输出。你可以在任何中间步骤添加程序检查(见下图中的“门控”)以确保过程正常进行。 使用时机: 该工作流适用于任务可以轻松清晰地分解为固定子任务的情况。主要目标是通过将每个LLM调用的任务简化来换取更高的准确性。
提示链式调用的典型应用:

[*]生成市场营销文案,然后将其翻译成不同的语言。
[*]编写文档大纲,检查大纲是否符合某些标准,然后根据大纲编写文档。
工作流:路由(Workflow: Routing)

路由将输入分类,并将其引导至专门的后续任务。此工作流有助于关注点分离,构建更为专业化的提示。没有该工作流的情况下,优化一种输入类型可能会影响其他输入的表现。



路由工作流

使用时机: 路由适用于复杂任务,在这些任务中存在明确的类别,更适合分别处理,并且分类可以通过LLM或更传统的分类模型/算法准确完成。
路由工作流的典型应用:

[*]将不同类型的客户服务查询(一般问题、退款请求、技术支持)引导到不同的后续处理流程、提示和工具。
[*]将简单/常见问题路由到较小的模型(如Claude 3.5 Haiku),而将复杂/不常见问题路由到更强大的模型(如Claude 3.5 Sonnet),以优化成本和速度。
工作流:并行化(Workflow: Parallelization)

LLM有时可以同时处理一个任务,并将它们的输出进行程序化汇总。此工作流,即并行化,具有两种关键变体:

[*]分区: 将任务分解成可以并行处理的独立子任务。
[*]投票: 多次运行相同任务,以获得不同的输出。



并行化工作流

使用时机: 并行化适用于可以通过并行化提高速度的子任务,或者需要多个视角或尝试以获得更高置信度的结果的情况。对于具有多个考量的复杂任务,当每个考量由单独的LLM调用处理时,LLM通常表现更好,能够专注于每个特定方面。
并行化工作流的典型应用:

[*]分区: 实施保护措施,让一个模型实例处理用户查询,另一个模型实例筛查不适当内容或请求。这通常比让同一个LLM调用同时处理保护措施和核心响应效果更好。
[*]投票: 评审一段代码中的漏洞,多个不同的提示评审并标记代码中的问题。
[*]评估是否内容不当,多个提示评估不同的方面,或者使用不同的投票阈值平衡假阳性和假阴性。
工作流:调度器-工作者(Workflow: Orchestrator-workers)

在调度器-工作者工作流中,一个中心LLM动态地将任务分解,分配给工作者LLM,并综合它们的结果。



调度器-工作者工作流

使用时机: 该工作流非常适合复杂任务,其中无法预测所需的子任务(例如,在编码任务中,可能需要更改的文件数量以及每个文件的更改性质可能依赖于任务)。与并行化的地理相似性不同,关键的区别是它的灵活性——子任务不是预定义的,而是由调度器根据具体输入决定的。
调度器-工作者工作流的典型应用:

[*]处理产品编码任务,涉及多次修改多个文件。
[*]搜索任务,涉及从多个来源收集并分析信息以获取可能的相关信息。
工作流:评估者-优化者(Workflow: Evaluator-optimizer)

在评估者-优化者工作流中,一个LLM调用生成响应,另一个LLM调用提供评估并在循环中反馈。



评估者-优化者工作流

使用时机: 当我们有明确的评估标准,并且通过迭代优化能提供可度量的价值时,这个工作流特别有效。适用的情况有两个标志:首先,LLM响应在有人给出反馈时可以明显改善;其次,LLM能够提供这样的反馈。这类似于人类写作者在编写文档时经过的迭代过程。
评估者-优化者工作流的典型应用:

[*]文学翻译,其中存在翻译模型可能初次未能捕捉的细微差别,但评估者模型可以提供有用的反馈。
[*]复杂的搜索任务,要求多轮搜索和分析以收集全面信息,评估者决定是否需要进一步搜索。
智能体

随着大语言模型(LLM)在理解复杂输入、进行推理与规划、可靠地使用工具以及从错误中恢复方面的能力逐渐成熟,智能体(Agents)开始在生产环境中得到了广泛应用。智能体的工作通常始于人类用户的指令或互动讨论。一旦任务明确,智能体便能独立规划和执行任务,必要时会返回人类用户以获取更多信息或判断。在执行过程中,智能体需要在每个步骤获取来自环境的“真实信息”(如工具调用结果或代码执行)以评估其进展。智能体还可以在检查点或遇到障碍时暂停,并请求人类反馈。任务通常在完成时终止,但常常也会设置停止条件(如最大迭代次数)以保持对过程的控制。
智能体能够处理复杂的任务,但它们的实现往往是直接的。通常,它们只是基于环境反馈的循环,使用工具的LLM。因此,设计工具集及其文档时,需要特别清晰和周到。我们在附录2《提示工程与工具》中扩展了工具开发的最佳实践。



自主智能体

何时使用智能体:
智能体适用于那些开放性问题,在这些问题中,预测所需步骤的数量既困难又不可能,或者不能硬编码一个固定路径。LLM可能需要执行多次操作,你必须对其决策有一定的信任。智能体的自主性使其在可信环境中进行任务扩展时尤为理想。
智能体的自主性意味着更高的成本,并且可能会带来错误累积的风险。我们建议在沙盒环境中进行广泛测试,并建立适当的安全防护措施。
智能体的应用示例:
以下示例来自我们的实际应用:

[*]一个编码智能体,用于解决SWE-bench tasks,该任务涉及根据任务描述修改多个文件;
[*]我们的“computer use” reference implementation,其中Claude使用计算机执行任务。



编码智能体的高层流程

将这些模式组合和定制(Combining and customizing these patterns)

这些构建模块并非是预设的,它们是开发人员可以根据不同用例进行塑造和组合的常见模式。成功的关键与任何LLM特性一样,是衡量性能并在实现中进行迭代。重复一次:你应该仅在能够显著改善结果时,才考虑增加复杂性。

潜之 发表于 5 天前

1、什么是 LLMAgent?

要了解什么是 LLM Agent,我们首先来了解一下 LLM 的基本功能。传统上,LLM 的作用无非是预测下一个 token。


通过连续采样许多token,我们可以模拟对话并使用 LLM 为我们的查询提供更广泛的答案。


然而,当我们继续“对话”时,任何 LLM 都会暴露出它的一个主要缺点:它不记得对话!


LLM 经常在许多其他任务上失败,包括乘法和除法等基本数学运算:


这是否意味着 LLM 很糟糕?绝对不是!LLM 没有必要面面俱到,我们可以通过外部工具、记忆和检索系统来弥补其劣势。
通过外部系统,LLM的能力可以得到增强。Anthropic 称之为“增强型LLM”。


例如,当面对数学问题时,LLM可能会决定使用适当的工具(计算器)。


那么这个“增强型LLM”是Agent吗?不,也许有点是……
让我们首先来定义一下Agent:
Anagentis anything that can be viewed as perceiving its environment throughsensorsand acting upon that environment throughactuators.(Agent是指任何可以通过传感器感知环境并通过执行器对环境采取行动的事物。)—— Russell 和 Norvig, 《人工智能:一种现代方法》(2016 年)
Agent与其环境交互,通常由几个重要组件组成:

[*]环境(Environments)——Agent与之交互的世界
[*]传感器(Sensors)——用于观察环境
[*]执行器(Actuators)——用于与环境交互的工具
[*]效应器(Effectors)——决定如何从观察到行动的“大脑”或规则


该框架用于与各种环境交互的各种Agent,如机器人与其物理环境交互或人工智能Agent与软件交互。
我们可以稍微概括一下这个框架,使其适合“增强型 LLM”。


使用“增强型” LLM,Agent可以通过文本输入观察环境(因为 LLM 通常是文本模型)并通过使用工具执行某些操作(例如搜索网络)。
为了选择要采取哪些行动,LLMAgent有一个至关重要的组成部分:规划能力。为此,LLM 需要能够通过思路链等方法进行“推理”和“思考”。


有关推理的更多信息,请参阅《推理 LLM 视觉指南》
利用这种推理行为,LLM Agent将规划出需要采取的必要行动。


这种规划行为使Agent能够了解情况(LLM )、规划下一步(规划)、采取行动(工具)并跟踪已采取的行动(记忆)。


根据系统不同,您可以拥有不同程度的自主权的 LLM Agent。


取决于你问谁,系统越“agentic”,LLM 就越多地决定系统如何运行。
在接下来的部分中,我们将通过 LLM Agent 的三个主要组件:内存(Memory)、工具(Tools)和规划(Planning),介绍自主行为的各种方法。
2、记忆(Memory)

LLM 是易遗忘的系统,或者更准确地说,在与它们交互时根本不进行任何记忆。
例如,当你向大模型 (LLM) 提出一个问题,然后又提出另一个问题时,它不会记住前者。


我们通常将其称为短期记忆(short-term memory),也称为工作记忆(working memory),它充当(近)即时上下文的缓冲。这包括 LLM Agent最近采取的行动。
然而,LLM Agent还需要跟踪可能数十个步骤,而不仅仅是最近的操作。


这被称为长期记忆(long-term memory),因为 LLMAgent理论上可以记住数十个甚至数百个需要记住的步骤。


让我们探索一下为这些模型提供记忆的几种技巧。
3、短期记忆(Short-Term Memory)

实现短期记忆的最直接方法是使用模型的上下文窗口,它本质上是 LLM 可以处理的token数。


上下文窗口往往至少有 8192 个token,有时可以扩展到数十万个token!
可以使用大型上下文窗口来跟踪完整的对话历史记录作为输入提示的一部分。


只要对话历史符合 LLM 的上下文窗口,这种方法就有效,而且是模仿记忆的好方法。但是,我们实际上不是记住对话,而是“告诉”LLM 那次对话是什么。
对于上下文窗口较小的模型,或者对话历史记录很大时,我们可以使用另一个 LLM 来总结迄今为止发生的对话。


通过不断总结对话,我们可以将对话的规模保持在较小水平。这将减少token的数量,同时仅跟踪最重要的信息。
4、长期记忆(Long-term Memory)

LLM Agent中的长期记忆包括需要在较长时间内保留的Agent过去的动作空间。
实现长期记忆的一种常用技术是将所有以前的交互、操作和对话存储在外部矢量数据库中。
为了建立这样的数据库,首先将对话embedding到能够捕捉其含义的数字表示中。


建立数据库后,我们可以embedding任何给定的提示,并通过将提示embedding与数据库embedding进行比较来在向量数据库中找到最相关的信息。


这种方法通常被称为检索增强生成(RAG)。
长期记忆还可能涉及保留来自不同会话的信息。例如,你可能希望 LLMAgent记住它在之前的会话中所做的任何研究。
不同类型的信息也可以与要存储的不同类型的记忆相关联。在心理学中,有许多类型的记忆需要区分,但《语言Agent的认知架构》论文将其中四种与 LLM Agent联系起来。


这种区分有助于构建Agent框架。语义记忆(关于世界的事实)可能存储在与工作记忆(当前和最近的情况)不同的数据库中。
5、工具(Tools)

工具允许给定的 LLM 与外部环境(例如数据库)交互或使用外部应用程序(例如运行自定义代码)。


工具通常有两种用例:获取数据以检索最新信息和采取行动,例如安排会议或订购食物。
要实际使用工具,LLM 必须生成适合给定工具 API 的文本。我们倾向于期望可以格式化为JSON 的字符串,以便可以轻松地将其输入到代码解释器中。



请注意,这不仅限于 JSON,我们还可以在代码本身中调用该工具!

你还可以生成 LLM 可以使用的自定义函数,例如基本乘法函数。这通常称为函数调用。


有些 LLM 可以使用任何工具,只要得到正确而广泛的提示即可。工具使用是大多数当前 LLM 都具备的能力。


访问工具的更稳定的方法是通过微调 LLM(稍后会详细介绍!)。
如果Agent框架是固定的,那么工具可以按照给定的顺序使用……


…或者 LLM 可以自主选择使用哪种工具以及何时使用。LLM Agent,如上图所示,本质上是 LLM 调用的序列(但可以自主选择操作/工具/等等)。


换句话说,中间步骤的输出被反馈到LLM中以继续处理。


6、Toolformer(工具学习)

工具使用是加强LLM能力和弥补其劣势的有力方法。因此,工具使用和学习方面的研究在过去几年中迅速兴起。



“Tool Learning with Large Language Models: A Survey” paper:随着对工具使用的关注度不断提高,(Agentic)LLM 有望变得更加强大。

这项研究的大部分内容不仅涉及促使大模型 (LLM) 使用工具,还涉及对他们进行专门的工具使用培训。
实现这一目标的首批技术之一是 Toolformer,这是一种经过训练的模型,可以决定调用哪些 API 以及如何调用。
它通过使用 [ 和 ] token来指示调用工具的开始和结束来实现这一点。当给出提示时,例如“ 5 乘以 3 等于多少?”,它会开始生成token,直到到达token [。


此后,它会不断生成token,直到到达 → 表示 LLM 停止生成token的token为止。


然后,将调用该工具,并将输出添加到迄今为止生成的token中。


该 ] 符号表示 LLM 现在可以根据需要继续生成。
Toolformer 通过精心生成一个数据集来创建此行为,该数据集包含许多可供模型训练的工具用途。对于每个工具,都会手动创建一个小样本提示,并用于对这些工具的输出进行采样。


根据工具使用、输出和损失减少的正确性对输出进行过滤。生成的数据集用于训练 LLM 以遵循这种工具使用格式。
自 Toolformer 发布以来,已经出现了许多令人兴奋的技术,例如可以使用数千种工具的 LLM(ToolLLM4)或可以轻松检索最相关工具的 LLM(Gorilla5)。
无论哪种方式,大多数当前的 LLM(2025 年初)都已接受过训练,可以通过 JSON 生成轻松调用工具(如我们之前所见)。
7、模型上下文协议 (MCP)

工具是 Agentic 框架的重要组成部分,允许 LLM 与世界互动并扩展其功能。但是,当你有许多不同的 API 时,启用工具的使用会变得很麻烦,因为任何工具都需要:

[*]手动跟踪并输入到 LLM
[*]手动描述(包括其预期的 JSON 模式)
[*]当 API 发生变化时,手动更新


为了使工具更容易为任何给定的 Agentic 框架实现,Anthropic 开发了模型上下文协议 (MCP)。MCP 标准化了天气应用程序和 GitHub 等服务的 API 访问。
它由三个部分组成:

[*]MCP Host — 管理连接的 LLM 应用程序(例如 Cursor)
[*]MCP客户端— 与 MCP 服务器保持 1:1 连接
[*]MCP服务器— 为 LLM 提供上下文、工具和功能


例如,假设你希望给定的 LLM 应用程序总结存储库中最新的 5 个提交。
MCP Host(与客户端一起)会首先调用 MCP Server 询问有哪些工具可用。


LLM 收到信息后,可以选择使用某个工具。它通过 Host 向 MCP Server 发送请求,然后接收结果,包括所使用的工具。


最后,LLM 接收结果并可以向用户解析答案。


该框架通过连接到任何 LLM 应用程序都可以使用的 MCP 服务器,使创建工具变得更加容易。因此,当你创建 MCP 服务器与 Github 交互时,任何支持 MCP 的 LLM 应用程序都可以使用它。
8、规划(Planning)

使用工具可提高 LLM 的功能。它们通常使用类似 JSON 的请求进行调用。
但是在Agent系统中,LLM如何决定何时使用哪种工具?
这就是规划开始发挥作用的地方。LLM Agent中的规划涉及将给定的任务分解为可操作的步骤。


该计划允许模型迭代地反映过去的行为并在必要时更新当前计划。



我喜欢计划顺利完成的感觉!

为了实现 LLM Agent 中的规划,我们首先来看一下这项技术的基础,即推理。
9、推理(Reasoning)

规划可行步骤需要复杂的推理行为。因此,LLM 必须能够展示这种行为,然后才能在规划任务的下一步之前展示这种行为。
“推理”LLM指的是那些在回答问题之前倾向于“思考”的人。


我使用“推理”和“思考”这两个术语有点宽泛,因为我们可以争论这是否是类似人类的思考,或者仅仅是将答案分解为结构化步骤。
这种推理行为可以通过大致两种选择来实现:微调 LLM 或特定的提示词工程。
通过提示词工程,我们可以创建 LLM 应该遵循的推理过程的示例。提供示例(也称为小样本提示) 是引导 LLM 行为的好方法。


这种提供思维过程示例的方法称为思维链(Chain-of-thought),可以实现更复杂的推理行为。
只需说“让我们一步一步思考”,就可以在没有任何示例(零样本提示)的情况下启用思维链。


在训练 LLM 时,我们可以为其提供足够数量的包含类似思考示例的数据集,或者 LLM 可以发现自己的思维过程。
一个很好的例子是 DeepSeek-R1,它使用奖励来指导思考过程的使用。


有关推理大模型 (LLM) 的更多信息,请参阅我的视觉指南。


推理大模型 (LLM) 的视觉指南马丁·格鲁滕多斯特·2月3日阅读全文
10、推理与行动(Reasoning and Acting)

在 LLM 中实现推理行为非常好,但并不一定能够规划出可行的步骤。
到目前为止,我们关注的技术要么展示推理行为,要么通过工具与环境互动。


例如,思维链 (Chain-of-Thought) 纯粹侧重于推理。
将这两个过程结合起来的首批技术之一被称为 ReAct(推理与执行)。


ReAct 通过精心的提示词工程来实现这一目标。ReAct 提示描述了三个步骤:

[*]思考(Thought)--对当前情况进行推理
[*]操作(Action)-- 要执行的一组操作(例如工具)
[*]观察(Observation)--对行动结果的推理步骤
提示词本身就非常简单。


LLM 使用这个提示词(可以用作系统提示)来引导其行为在思考、行动和观察的循环中发挥作用。


它会持续这种行为,直到某个操作指定返回结果。通过迭代思考和观察,LLM 可以规划出操作,观察其输出并进行相应调整。
因此,与具有预定义和固定步骤的Agent相比,该框架使 LLM 能够展示更多自主的Agent行为。
11、反思(Reflecting)

没有人能够完美地完成每一项任务,即使是 ReAct 大模型也不例外。只要你能反思这个过程,失败就是过程的一部分。
ReAct 缺少这一过程,而这正是 Reflexion 发挥作用的地方。Reflexion 是一种使用口头强化来帮助Agent从以前的失败中吸取教训的技术。
该方法假设三个 LLM 角色:

[*]参与者(Actor)——根据状态观察选择并执行动作。我们可以使用 Chain-of-Thought 或 ReAct 等方法。
[*]评估者(Evaluator)——对参与者产生的输出进行评分。
[*]自我反思(Self-reflection)——反思参与者采取的行动和评估者给出的分数。


添加记忆模块来跟踪动作(短期)和自我反思(长期),帮助Agent从错误中吸取教训并确定改进的动作。
一种类似且优雅的技术被称为“SELF-REFINE”,其中重复完善输出和生成反馈的操作。


同一个 LLM 负责生成初始输出、精细输出和反馈。



“SELF-REFINE:带有自反馈的迭代细化”

有趣的是,这种自我反思行为(反思和自我完善)与强化学习非常相似,强化学习根据输出的质量给予奖励。
12、多Agent协作(Multi-Agent Collaboration)

我们探索的单个Agent有几个问题:太多工具可能会使选择变得复杂,环境变得过于复杂,并且任务可能需要专业化。
相反,我们可以研究多智能体,即多个智能体(每个智能体都可以访问工具、内存和规划)相互交互并与环境交互的框架:


这些多Agent系统通常由专门的Agent组成,每个Agent都配备了自己的工具集并由主管监督。主管管理Agent之间的通信,并可以为专门的Agent分配特定任务。


每个Agent可能有不同类型的可用工具,但也可能有不同的记忆系统。
在实践中,有几十种多智能体架构,其核心有两个组件:

[*]Agent初始化——如何创建单个(专门的)Agent?
[*]Agent编排——所有Agent如何协调?


让我们探索各种有趣的多Agent框架并重点介绍这些组件的实现方式。
13、人类行为的交互式模拟(Interactive Simulacra of Human Behavior)

可以说,最具影响力、坦率地说非常酷的多智能体论文之一名为“生成智能体:人类行为的交互式模拟”。
在本文中,他们创建了模拟可信人类行为的计算软件Agent,他们称之为生成Agent。


每个生成Agent所赋予的配置文件使它们以独特的方式行事,并有助于创建更有趣和更具活力的行为。
每个Agent都由三个模块(内存、规划和反射)初始化,非常类似于我们之前在 ReAct 和 Reflexion 中看到的核心组件。


记忆模块是这个框架中最重要的组件之一。它存储了计划和反思行为,以及迄今为止的所有事件。
对于任何给定的下一步或问题,都会检索记忆并根据其新近性、重要性和相关性进行评分。得分最高的记忆将与Agent共享。



《生成Agent:人类行为的交互式模拟》论文的注释图。

它们共同允许 Agent 自由地开展其行为并相互交互。因此,Agent 的协调工作非常少,因为它们没有特定的工作目标。



来自交互式演示

本文中有太多令人惊叹的信息片段,但我想强调它们的评估指标。
他们的评估以Agent行为的可信度作为主要指标,并由人类评估员对其进行评分。



生成Agent:人类行为的交互式模拟。

它展示了观察、规划和反思在这些生成Agent的性能中的重要性。如前所述,如果没有反思行为,规划就不完整。
14、模块化框架(Modular Frameworks)

无论你选择哪种框架来创建多智能体系统,它们通常都由几个要素组成,包括其配置文件、对环境的感知、记忆、规划和可用的操作。1516


实现这些组件的流行框架是 AutoGen、MetaGPT和 CAMEL。但是,每个框架处理每个 Agent 之间的通信的方式略有不同。
例如,使用 CAMEL,用户首先创建问题并定义AI 用户和AI 助手角色。AI 用户角色代表人类用户并将指导该过程。


之后,AI用户和AI助手将通过相互交互来协作解决查询。


这种角色扮演方法使得Agent之间能够进行协作通信。
AutoGen 和 MetaGPT 的沟通方式不同,但归根结底都是这种协作沟通方式。客服人员有机会相互交流,以更新他们的当前状态、目标和后续步骤。
在过去的一年里,特别是最近几周,这些框架的增长呈爆炸式增长。


随着这些框架不断成熟和发展,2025 年将是真正令人兴奋的一年!
源文:A Visual Guide to LLM Agents
参考:长短期记忆:Cognitive Architectures for Language Agents

吉吉 发表于 5 天前

刚开始我也很懵,直到完整的看完了3遍吴恩达在BULIT2024的演讲视频,终于搞明白什么是Agent智能体。
这篇回答主要围绕着斯坦福大学教授吴恩达演讲中的Keynote讲一讲到底啥是Agent。希望能帮助和我一样迷糊的“非技术”背景的AI爱好者,揭开Agent这团迷雾。
Agent中文是智能体、代理的意思。
首先,先来看看Agent(智能体)和Non-Agent(非智能体)的对比
一、Non-Agent和Agent对比
拿写文章这个动作举例子。
大语言模型:我们输入一个提示,大模型一次性的从头到尾的生成一篇文章,中间不能修改。


Agent:它会先写出一个大纲,如果需要找资料的话,它会先联网找资料,接着它先写一份初稿,然后它会思考哪一部分写的不好,开始修改,改好以后再读一遍自己写的稿子,再修改,就这样反复这样的动作,最后形成终稿发给你。


人类:先写出一个大纲,去网上找资料,接着把资料填进大纲里出一份初稿,然后发给领导,或者自己多读几遍,看看哪里不通顺,不够口语化,再删删减减,最后发给领导。


结论:Agent做牛马们要做的活儿
通过刚才的描述,你是否发现,Agent智能体和人类的行为高度相似?
其实智能体终极形态就是靠近一个活生生的人,人做一个事情什么思路,智能体就是什么思路。
吴恩达在演讲中把智能体详细的分成了四类,分别是Reflection、Tooluse、planning、multi- agent collaboration


二、Reflection反思
通俗来讲,Reflection 就像是一个学生在完成作业后自己检查并修改错误的过程
吴恩达在演讲中举了一个例子。
如果用大语言模型塑造了一个“程序员”,你让他写个代码,它给你直接输出了答案,肯定不是最满意的,人类就要不断告诉他哪里需要修改。比如第几行有错误,怎么调整会更好。


但这时候,如果你再新建一个“审查员”角色的大模型,用它来检查代码是否正确,并指出不足之处。根据“审查员”模型的反馈,“程序员”再次进行改进代码。反复循环这样的操作,直到结果让人满意为止。


这样的过程就叫做Reflection反思
这种方法特别适用于需要高质量结果的任务,例如代码生成、复杂文档撰写、法律文件分析等。
三、Tool use 工具调用
通俗来讲,就像让我们人类算一个“12345 × 67890是多少?”咱也算不准,但我们拿个计算器,一下子就能得出准确结论。工具调用就是大语言模型会自己使用计算器。
在实际应用中,它会先识别需求:模型意识到它无法直接回答某个问题,需要借助工具。
再根据任务类型,判断要调用哪个工具,工具可以是计算器、知识库查询、数据库、搜索引擎,甚至是另一个模型。用工具完成任务后,将结果转化为人类易于理解的形式输出。
当大语言模型学会调用工具之后,有几个好处
1. 突破模型能力限制:
语言模型擅长语言理解,但可能在计算、实时信息查询、专业领域数据处理等方面能力不足。工具使用可以弥补这些缺陷。就像人类一样,有人擅长文科,有人擅长理科,但是要是给人们一个计算器,谁都能算出来了。
2. 提升准确性和效率:
比如在回答需要计算或实时查询的问题时,工具能提供精准答案,而不只是基于训练数据进行推测。你可以理解为大语言模型是一个人,塞给它一个工具,它就更准。
3. 扩展模型功能:
这种能力将语言模型从“单一的大脑”扩展为一个“多功能助手”。,如编程调试、数据分析、内容生成等。
ChatGPT添加插件的功能:如果你购买了ChatGPT Plus版,你可以来到插件商店里去选择插件帮助你完成更复杂的问题。
speechki:文本转语音的插件,coupert:找优惠券和促销码,edx:找某个领域的优质课程, one word domains: 检查域名是否可用。








四、Planning 规划/reasoning推理
举个例子,如果你发送一段这样的请求,Agent会动用4个模型去解决你的问题。
分别是:
1、openpose 模型用来提取动作
2、google/vit模型用来把动作转成图片
3、vit-GPT2模型,把图片转成文字
4、fastspeech模型,把文字转成语音
这种能力的提升,让AI更加接近真实的智能行为,能够处理更广泛的任务。


五、Multi Agent Collaborative 多智能体协作
吴恩达用了清华大学团队开发的ChatDev来解释这个概念。
ChatDev你可以理解为一家虚拟软件公司,公司里有各类职员,有CEO、CTO、测试员、程序员等等。
在这个公司里,人类是最大的Boss,你可以用一句话,就让这些职员替你打工,完成软件设计开发一条龙服务。
每个职员其实就是一个Agent。


ChatDev将整个开发过程分成了四个阶段。分别是设计、写代码、测试、合作文档


还设计了沟通链条,每次写作两个角色之间会交流沟通完成一个个小任务。
有点像我们平时公司里的那种沟通交流的模式。
在每次交流中,设置了3个机制,分别是角色专业化、记忆流、自我反思


角色专业化是指大语言模型会提前设定好每个角色是干嘛的,比如他会告诉CEO,你是CEO你负责做决定。告诉CTO你负责系统设计。
记忆流保存了,之前对话的全部信息,让智能体不要忘记之前的沟通,做出正确的决策。
自我反思:是指两个人没有达成共识之前, 进行自我反思。最后达成共识。
我当时研究了这个虚拟公司以后,仿佛看到了未来AI的样子,每个人都可以是“老板”,你的手下会有一帮AI员工帮你完成复杂高难度的工作。
之所以我们现在感知不强烈,是因为这些模型都停留在代码阶段,并没有被开发成小白也能搞懂的应用。
六、其他大厂们的行动
1. Google:Astra 项目是谷歌探索通用人工智能助手未来功能的研究原型。
利用多模态理解、多语言、工具使用、原生音频和记忆等能力,谷歌希望Astra能帮助人们理解世界,生活。


2024年12月11日谷歌发布了Project Astra的介绍视频 ,视频里的小哥拿着带有Astra的手机在伦敦展示了不同的功能。


它能够记得门的密码,还能够帮你讲解如何洗不同材质的衣服, 它还可以识别纸上的文字自动帮你搜索这些地点并告诉你都是干嘛的。
去国外旅行某个东西不知道怎么说,它会教你发音。你还可以让他对着某个雕塑,问它历史背景。可以和他聊植物的种类。
它还可以帮你朋友选礼物,只要把你朋友曾经看过的书单给她看,他可以告诉你你朋友喜欢什么。多语言输入它也没问题。
戴上眼镜骑车,你可以随意问它你看到的地点。问它路况和禁止停车区域。回到家你可以问眼镜,你家的门密码是多少,立刻会在你眼前显示。


2025年1月初谷歌发布了名为《Agents》的白皮书,从谷歌角度探讨了生成式AI Agent(智能体)的概念、架构和应用。
2. OpenAI:
2025年将会是智能体爆发的一年,2025年1月1日,OpenAI CEO 奥特曼公布了公司的新年目标,其中智能体被他列入第二位。


有网友爆料,OpenAI计划推出代号为“Operator”的全新AI智能体产品,能够自动执行各种复杂操作,这个 Agent 将具备直接控制电脑的能力。
3. Anthropic:2024年10月23日,它发布了开发可以操控计算机的模型。虽然这个模型还没太成熟,让他统计表格数据什么的,会经常出错。但是我们能看到Anthropic努力的方向和愿景。那就是让AI完全帮人类做事。


2024年12月底,Anthropic 公司发布了一篇重磅博客《buliding effective agents》,详细探讨了如何构建高效的 Agent,并分享了他们在这一领域的最新研究成果。


4. Microsoft:微软在2024年10月的“AI Tour”活动中,宣布将为Dynamics 365系列业务应用推出10个新的AI智能体,涵盖销售、客户支持和会计等领域。
2024年11月11日微软发布了Azure AI Agent ,一个集设计、定制和管理 AI 解决方案于一体的统一平台。
5. 字节跳动(ByteDance):字节跳动推出了Coze Agent平台,积极布局AI智能体领域。
最后,在写完这篇稿子的时候,我有一个非常强烈的感知,那就是AI颠覆世界的轮廓在慢慢变得清晰,我们在科幻片中看到的未来即将成为现实,我很荣幸能参与这个时代,见证科技以更高速的发展改变我们的生活。
这篇文章所有的参考资料,以及谷歌和Anthropic公布的白皮书和博客的链接都在下方,如果需要,可以去下载。
如果你喜欢这篇文章的话,点赞和关注卓子,如果想第一时间接收到资讯,可以点亮星标 ,我们下次再见,拜拜~
参考资料:
1、谷歌Agents白皮书
https://www.kaggle.com/whitepaper-agents
2、Anthropic重磅博客《bulid effective Agents》
https://www.anthropic.com/research/building-effective-agents
3、吴恩达BULIT2024演讲Keynote翻译版
https://drive.google.com/file/d/1o_2YoeVQE20GjQ3edGOb5TkmJeQyvK2n/view?usp=sharing
4、全程干货,吴恩达BULIT2024演讲来了
https://mp.weixin.qq.com/s/jfhiw_0tVbH0_TMlFBEZ3w
5、Andrew Ng Explores The Rise Of AI Agents And Agentic Reasoning | BUILD 2024 Keynote
https://www.youtube.com/watch?v=KrRD7r7y7NY
6、思维引擎 | AI Agent,还火吗?(万字长文讲清AI Agent)
https://mp.weixin.qq.com/s/eHV_Xy9FE_J-ON1OTLY9uQ
7、OpenAI憋新大招:将推AI Agent,会操控电脑
https://mp.weixin.qq.com/s/NGpApx0bGEFJrRn6Ju7O4A
8、Project Astra | Exploring the future capabilities of a universal AI assistant
https://www.youtube.com/watch?v=hIIlJt8JERI
9、Anthropic-Developing a computer use model
https://www.anthropic.com/news/developing-computer-use
7、3步让AI接管你的电脑【claude最新API使用教程】
https://www.bilibili.com/video/BV1NwyQYzELV/?spm_id_from=333.337.search-card.all.click&vd_source=971d06d504ab9115e9baac0518a6b6e4
11、ChatDev:不写代码,一句话做软件游戏,附保姆级教程搭建你的在线AI软件游戏公司
https://www.bilibili.com/video/BV1L34y1T7gu?spm_id_from=333.788.videopod.episodes&vd_source=971d06d504ab9115e9baac0518a6b6e4
12、微软亚洲研究院2025六大预测:AI Agents 将颠覆传统工作模式
https://mp.weixin.qq.com/s/cLEIF9Otndh68o5v660bSQ
13、Top 10 ChatGPT Plugins You Can't Miss
https://www.youtube.com/watch?v=o2M_paJf48I&t=323s

十一月末 发表于 5 天前

随着大语言模型的横空出世,生成式AI应用也在不断发展,图1列出了生成式AI应用的分级,共分为5级:

[*]L1 Tool,人类完成所有工作,基本没有任何显性的AI辅助,只是比较简单的工具,会被逐渐升级淘汰;
[*]L2 Chatbot,人类直接完成绝大部分工作,人类向AI询问意见,了解信息,AI提供信息和建议但不直接处理工作;
[*]L3 Copilot,人类和AI进行协作,工作量相当,AI根据人类要求完成工作初稿,人类进行目标设定,修改调整,最后确认;
[*]L4 Agent,AI完成绝大部分工作,人类负责设定目标、提供资源和监督结果,AI完成任务拆分,工具选择,进度控制,实现目标后自主结束工作;
[*]L5 Intelligence,完全无需人类监督,AI自主拆解目标,寻找资源,选择并使用工具,完成全部工作,人类只需给出初始目标。
当发展到L4级别时,Agent(即智能体)的能力已经越来越接近通用人工智能,可以借助AI完成绝大部分的工作。相对来看,L3和L4级别的AI应用价值更大,但需要大语言模型的能力来进一步支持升级。



图1 生成式AI应用的分级

在《大语言模型Agent综述与实践》中,笔者已对基于大语言模型的智能体进行介绍。基于大语言模型的智能体的演进方向之一是多智能体间的协同。和人类在现实生活中将不同专长的专家组成团队、发挥集体智慧、共同完成复杂任务的协作方式类似,目前众多理论研究者和应用开发者也在探索多个不同角色的智能体相互协作、共同完成复杂任务的方案。
《Large Language Model based Multi-Agents: A Survey of Progress and Challenges》对基于大语言模型的多智能体的相关研究进行了综述,本文前半部分是对这篇论文的阅读笔记,并对综述中提及的部分工作进行展开,后半部分是对基于大语言模型的多智能体的实践。如有不足之处,请指正。
如无特殊说明,下面所讲的智能体、多智能体均指基于大语言模型的智能体、多智能体,而非传统的智能体、多智能体。
综述

大语言模型显现出与人类相当的推理和规划潜力,这与人类对能够感知环境、做出决策和响应的智能体的期望相一致,因此,基于大语言模型的智能体被提出。进一步,和人类在现实生活中将不同专长的专家组成团队、发挥集体智慧、共同完成复杂任务的协作方式类似,基于大语言模型的多智能体被提出。多个智能体相互协作、共同完成复杂任务。与单智能体相比,多智能体能够定义不同角色的智能体,使得每个智能体专精特定领域的知识和能力,并通过智能体间的交互有效模拟复杂的现实世界环境,提供更高级的能力。
《Large Language Model based Multi-Agents: A Survey of Progress and Challenges》对基于大语言模型的多智能体的相关研究进行了综述,内容包括以下几个部分:

[*]背景知识,包括单智能体的介绍、多智能体和单智能体的对比;
[*]多智能体的架构,包括智能体和环境的交互、智能体画像构建、智能体间的通信和智能体能力获取;
[*]多智能体的应用,包括在问题求解和世界模拟这两大类中的应用,而每个大类中又具体拆分若干子类,论文对多智能体在每个子类中的应用进展均进行了介绍;
[*]多智能体的工具和资源,包括框架、数据集和基准;
[*]多智能体后续的挑战和机遇。
图2是论文列出的基于大语言模型的多智能体的研究进展,包括相关的框架、应用、数据集和基准,也包括多智能体如何通过记忆和自我进化进行迭代、获取能力。基于大语言模型的多智能体的框架包括Camel、MetaGPT、AutoGen、Agents,后面会再详细介绍。多智能体通过自我进化进行迭代、获取能力的方案包括Self-Adaptive、ProAgent、LTC等,后面会再详细介绍。多智能体的应用分问题求解和世界模拟两大类,而每个大类又分若干子类,问题求解的子类包括软件开发(Software Development)、具身智能(Embodied Agents)、科学实验(Science Experiments)、科学辩论(Science Debate),世界模拟的子类包括社会模拟(Societal Simulation)、游戏(Gaming)、心理学(Psychology)、经济学(Economy)、推荐系统(Recommender Systems)、政策制定(Policy Making)、疾病传播模拟(Disease Propagation Simulation),图2列出了各子类在每个时间周期(3个月为一个时间周期)内的论文数,后面会对多智能体在软件开发中的应用进行详细介绍。



图2 基于大语言模型的多智能体的研究进展

背景

基于大语言模型的智能体

在《大语言模型Agent综述与实践》中,笔者已对基于大语言模型的智能体进行介绍,这里直接引用其中的内容。基于大语言模型的智能体其核心是大语言模型,大语言模型承担着大脑的角色,用于思考和规划,而围绕着大语言模型,Agent还包含记忆和工具,记忆用于存储短期上下文信息和长期知识信息,工具则承担着感官和四肢的角色,在大语言模型的思考和规划下,Agent一方面可以通过工具获取外部的各种信息用于进一步的思考和规划,另一方可以通过工具执行动作对外部环境施加影响。



图3 基于大语言模型的Agent的整体架构

《LLM Powered Autonomous Agents》中使用图3描述了基于大语言模型的Agent的整体架构,其中包含以下核心组件:

[*]规划(Planning),大语言模型作为Agent的大脑负责思考和规划,而思考和规划的方式又可以分为两部分:

[*]分而治之(Task Decomposition):对于复杂的任务,大语言模型会将其分解为多个相对简单的子任务,每个子任务包含独立的子目标,从而分而治之、逐步求解;
[*]自我反思(Self-Reflection):大语言模型会对过去的规划和执行进行自我反思,分析其中的错误,并对后续的思考和规划进行改进,完善最后输出的结果。

[*]记忆(Memory),记忆是对大语言模型本身由模型结构和参数所蕴含知识的补充,记忆又可以分为短期记忆和长期记忆:

[*]短期记忆,即大语言模型的上下文学习,包括提示、指示、前序步骤的大语言模型推理结果和工具执行结果等;
[*]长期记忆,即外部可快速检索的向量索引,这也就是目前比较流行的一种大语言模型应用的解决方案——RAG(Retrieval-Augmented Generation,检索增强生成)。RAG的流程可以简单概括为,将包含知识的文档切分为块,并对块向量化,构建块向量索引,然后将问题也向量化,然后从块向量索引中检索和问题相关的块,最后将块和问题合并作为大语言模型的输入进行推理。RAG可以有效缓解大语言模型无法扩展知识、由知识局限产生的“幻觉”的问题。

[*]工具(Tool),工具作为Agent的感官和四肢,Agent一方面可以通过工具获取外部的各种信息用于进一步的思考和规划,例如通过搜索引擎搜索某个关键词的最新信息,另一方可以通过工具执行动作对外部环境施加影响,例如调用外部系统的接口执行指令并获取执行结果。
另外,在《A Survey on Large Language Model based Autonomous Agents》这篇综述论文中,作者提出了和图3类似的基于大语言模型的智能体的整体架构,如图4所示,其中除了和图3相同的Memory、Planning、Action组件外,作者还增加了画像(Profile)组件。画像(Profile)组件即提示中关于智能体角色的定义。我们平时通过大语言模型解决某类问题时,一般会先定义其角色,例如期望通过大语言模型根据关键词创作一段广告创意描述,则会给出类似“你是一位广告创意优化师,你需要根据关键词创作一段广告创意描述”这样的角色定义,并还会在提示中进一步给出思考步骤、约束限制、样本示例等。而画像,既可以由人工根据一定的方法论进行撰写,也可以由大语言模型根据提示进行生成。



图4 基于大语言模型的智能体的整体架构

多智能体和单智能体的对比

随着应用场景越来越复杂,基于大语言模型的大模型智能体也在向多智能体的协同进行演进,由各个智能体各司其职、分工协作来共同完成任务。
与单智能体相比,多智能体强调多样化的智能体配置、智能体间的交互和集体决策过程,这使得多个自主智能体能够通过合作解决更动态和复杂的任务。
架构




图5 基于大语言模型的多智能体的整体架构

图5是论文列出的基于大语言模型的多智能体的整体架构,其中涉及多个智能体间的协作,类似于人类在问题解决场景中的协作。论文分四个方面对多智能体的架构进行解析:

[*]智能体和环境的交互(Agent-Environment Interface);
[*]智能体画像构建(Agents Profiling);
[*]智能体间的通信(Agents Communication);
[*]智能体能力获取(Agents Capabilities Acquisition)。
智能体和环境的交互

智能体通过和环境的交互,获取信息,思考规划,执行动作对环境施加影响,进行再获取信息,用于后续的思考和规划,如此循环迭代多轮。智能体交互的环境可分为以下几类:

[*]沙箱环境(Sandbox),即模拟或虚拟环境,沙箱环境主要用于软件开发和游戏,软件开发中将可编写和执行各类代码的代码解释器(Code Interpreter)作为模拟环境,游戏中将游戏规则作为模拟环境;
[*]物理环境(Physical),即真实物理环境,智能体和物理实体交互,且交互遵循物理定律,智能体的行动是真实的物理动作,比如打扫房间等;
[*]无环境(None),例如多智能体对一个问题进行辩论以达成共识,无环境下的应用主要关注智能体间的交互,而非智能体和外部环境的交互。
智能体画像构建

多智能体中各智能体承担不同的角色,每个角色均有相应的描述,包括特征、能力、行为、约束和目标等,这些描述构成智能体的画像(Profile)。例如,在游戏中,各智能体作为游戏玩家,有不同的角色和技能,对游戏的目标有不同的作用;在软件开发中,各智能体承担的角色包括产品经理、架构师、开发工程师、测试工程师等,每个智能体分别负责软件开发流程的某一环节;在辩论中,各智能体承担的角色包括正方、反方和裁判等,每个智能体有特定的职责和策略。
智能体画像构建的方法也可分为以下几类:

[*]预先定义(Pre-Defined),即由多智能体设计者人工显式地定义;
[*]模型生成(Model-Generated),即通过指示由大语言模型自动生成;
[*]数据衍生(Data-Derived),即根据已有数据集衍生。
智能体间的通信

多智能体中各智能体的相互协作依赖智能体间的通信,论文从通信范式、通信结构和通信内容三个方面对智能体间的通信进行解析:

[*]通信范式(Communication Paradigms):智能体间通信的方式、方法;
[*]通信结构(Communication Structure):智能体间通信的组织、结构;
[*]通信内容(Communication Content):智能体间通信的内容。
通信范式可分为三类:

[*]合作(Cooperative),各智能体有共同的目标,相互交换信息以达成统一的解决方案;
[*]辩论(Debate),各智能体各自表达和维护自己的观点和方案,点评其他智能体的观点和方案,最终达成共识;
[*]竞争(Competitive),各智能体有各自的目标,且各自的目标可能相互冲突。
通信结构可分为四类:

[*]分层(Layered)结构,如图6左上角所示,多智能体按层组织,每层包含多个不同角色的智能体,智能体只与同层或相邻层的其他智能体通信,《A Dynamic LLM-Powered Agent Network for Task-Oriented Agent Collaboration》这篇论文中提出的动态智能体网络(Dynamic LLM-Powered Agent Network,DyLAN)即属于分层结构,类似多层前馈神经网络,只是将其中的神经元替换为智能体,其针对给定问题,在推理时根据智能体优选算法选择各层中最优的智能体,然后使用选出的智能体逐层向前传递求解给定问题;
[*]去中心化(Decentralized)结构,如图6右上角所示,各智能体间直接点对点地相互通信,这种结构主要用于世界模拟(World Simulation)应用中;
[*]中心化(Centralized)结构,如图6左下角所示,由一个或一组智能体构成中心节点,其他智能体只与中心节点通信;
[*]共享消息池(Shared Message Pool)结构,如图6右下角所示,由MetaGPT提出,所有智能体发送消息至共享消息池,并订阅和自己相关的消息。



图6 多智能体的通信结构

通信内容格式主要是文本,但特定应用也有特殊的内容格式,例如,在软件开发中,智能体通信的内容可能还包括代码片段。
智能体能力获取

能力获取是多智能体中的关键过程,其使得智能体能够动态学习和演变。能力获取包括智能体从哪些类型的反馈中学习以增强其能力,以及智能体为有效解决复杂问题而调整自己的策略。
根据反馈的来源,可将反馈分为以下几类:

[*]来自真实或模拟环境的反馈(Feedback from Environment),这种反馈在问题求解应用中比较普遍,包括软件研发中智能体从代码解释器(Code Interpreter)获取的代码执行结果,机器人这类具身智能体从真实或模拟环境获取的反馈等;
[*]来自智能体间交互的反馈(Feedback from Agents Interactions),这种反馈在问题求解应用也比较常见,包括来自其他智能体的判断,或来自智能体间的通信等,例如在科学辩论中,智能体通过智能体间的通信评估和完善结论,在博弈游戏中,智能体通过之前几轮和其他智能体的交互完善自己的策略;
[*]来自人类反馈(Human Feedback),人类反馈对智能体对齐人类偏好很重要,这种反馈主要在人机回环(Human-in-the-loop)应用中,《Putting Humans in the Natural Language Processing Loop: A Survey》这篇综述论文系统总结了在自然语言处理流程的各个环节中,可加入的人类反馈,这些环节包括数据生产、数据打标、模型选择、模型训练、评估部署等,如图7所示;



图7 在自然语言处理流程的各个环节中可加入人类反馈


[*]无反馈(None),无反馈主要出现世界模拟这类应用中,因为这列应用主要侧重结果分析,例如传播模拟的结果分析,而非智能体能力获取,所以无需引入反馈对智能体的策略进行调整。
而智能体调整策略、增强能力的方式又可以分为三类:记忆(Memory),自我进化(Self-Evolution)和动态生成(Dynamic Generation)。
记忆(Memory)。智能体通过记忆模块保存过去交互和反馈的信息,在后续的执行中,可以从记忆中检索和当前任务相关的信息,特别是和本次任务目标类似的成功执行的信息,将这些信息作为上下文,辅助智能体思考规划。
自我进化(Self-Evolution)。除了基于记忆过去的信息来调整后续的执行外,智能体还可以动态地自我进化,调整目标和策略。论文在这里列举了自我进化相关的研究。
Self-Adaptive

《Self-Adaptive Large Language Model (LLM)-Based Multiagent Systems》这篇论文将MAPE-K控制循环和大语言模型相结合,实现多智能体的自我进化。MAPE-K控制循环是一个著名的框架,用于促进智能体的自主性和自我意识,如图8所示,其包含监控(Monitoring)、分析(Analyzing)、规划(Planing)、执行(Executing)、知识(Knowledge)这几个阶段或组件,而其名称就是由上述阶段或组件的英文单词的首字母组成。在监控阶段,智能体使用专门的传感器从环境中收集数据。在分析阶段,智能体评估数据以确定基于感知到的环境变化所需的响应。在规划阶段,智能体基于分析结果进一步收敛动作集合,通过执行动作能够达到预期的状态。在执行阶段,智能体通过执行器执行选定的动作。



图8 MAPE-K控制循环

MAPE-K控制循环和大语言模型相结合,实现多智能体的自我进化的方案如图9所示,其中包含多个智能体,而每个智能体采用如图8所示的MAPE-K控制循环实现自我进化,每个智能体的控制循环使用大语言模型实现知识存储、分析和规划。



图9 MAPE-K控制循环和大语言模型相结合,实现多智能体的自我进化的方案

每个智能体的控制循环使用大语言模型实现知识存储、分析和规划的细节如图10所示,其中智能体的处理流程主要包含以下三个任务:

[*]监控,即MAPE-K控制循环中的监控阶段,智能体收集感知器的数据,计算智能体的状态,联同来自其他智能体的消息,一并作为输入大语言模型的提示的一部分;
[*]GPT,合并MAPE-K控制循环中的分析、规划阶段以及知识存储,智能体依赖大模型模型,由其根据监控输入进行推理,输出动作;
[*]执行,即MAPE-K控制循环中的执行阶段,智能体将大语言模型输出的动作转化为可执行的指令,并执行。



图10 每个智能体的控制循环使用大语言模型实现知识存储、分析和规划的细节



图11 智能体4在第一轮交互中输入大语言模型的提示以及大语言模型返回的动作

论文设计以下应用场景评估MAPE-K控制循环和大语言模型相结合的效果:该应用场景共有5个智能体,其中智能体1、2、3为书籍卖家,智能体4、5为书籍卖家,买卖双方通过多轮交互、互相发送消息进行议价,卖家的成功条件是以尽可能高的价格成功卖出书籍,买家的成功条件是以尽可能低的价格成功买到书籍。智能体4在第一轮交互中输入大语言模型的提示以及大语言模型返回的动作如图11所示,未被蓝色标记的部分是输入大语言模型的提示,其中包括智能体4的角色描述、成功条件以及智能体1、3发给智能体4的消息,被蓝色标记的部分是大语言模型返回的动作,因为智能体1给出的价格相比智能体3给出的价格更低,为20,所以智能体4后续的动作是给智能体1回复消息,期望价格进一步降低至15。
ProAgent

《ProAgent: Building Proactive Cooperative Agents with Large Language Models》这篇论文提出ProAgent框架,其中,多智能体在协作时,每个智能体能够分析当前状态,推断其他智能体的意图,动态调整本身的策略和行动,对齐其他智能体,从而增强多智能体的协作能力。
论文使用Overcooked-AI这一开源项目作为评估ProAgent的应用场景,该项目基于热门视频游戏Overcooked,其中,多智能体相互协作,协作目标是尽可能快地烹饪并递送汤,协作过程中智能体的动作包括选择食材、烹饪汤、递送汤等。



图12 ProAgent框架的整体架构和流程

ProAgent框架的整体架构和流程如图12所示,该框架包含4个模块和1个机制,4个模块分别是规划器(Planner)、校验器(Verificator)、控制器(Controller)和记忆(Memory),1个机制是认知修正(Belief Correction)。
ProAgent框架中智能体基于上述模块和机制感知环境、思考规划、执行动作的流程如图12左侧所示。首先,将智能体在环境中的状态由符号形式转化为自然语言形式,然后将自然语言形式的状态和记忆中的历史信息拼接在一起,由大语言模型作为规划器进行思考规划,识别其他智能体的意图,预估其他智能体的动作,并规划当前智能体本身后续的动作。接着,一方面通过认知修正机制,对比其他智能体的动作预估值和实际值,若有差异,则进行修正,另一方面通过校验器,校验当前智能体本身后续的规划动作是否可成功执行,若不可成功执行,则由规划器重新思考规划,如此循环,直至规划器给出可成功执行的动作,最后由控制器执行相应的动作。
流程细节和示例如图12右侧所示,当前智能体——Alice和另一个智能体——Bob合作制作并递送汤,Alice通过大语言模型进行思考规划时,其提示包括知识(即游戏目标、可选择的动作等)和状态(即Alice、Bob和环境当前的状态)等,大语言模型按照思维链(Chain of Thought,COT)的方式进行思考规划,先输出思考过程,再输出Alice的规划和Bob的意图,Bob的意图通过认知修正机制被修正,Alice的规划通过校验器被校验,校验通过的动作被控制器执行。
LTC

《Adapting LLM Agents Through Communication》这篇论文提出了通信学习(Learning through Communication,LTC)这一新的学习方式,将智能体的消息历史作为训练数据集对大语言模型进行微调。LTC既可用于单智能体,也可用于多智能体,单智能体通过思维链产生多个消息,多智能体通过相互之间的交互产生多个消息,这些消息构成类似强化学习中的轨迹,产生相应的结果,这些结果构成对各智能体的奖励,如图13所示。



图13 单智能体和多智能体的多个消息构成轨迹、产生奖励

图13左侧单智能体的多个消息构成的轨迹的数据示例如图14所示:



图14 单智能体的多个消息构成的轨迹的数据示例

其中,轨迹由词元序列构成,且每个词元通过Mask标记其由哪方产出,轨迹通过Reward标记其获得的奖励。
LTC的整体架构如图15所示,其参考强化学习,包括两个阶段:

[*]探索(Exploration)阶段,智能体通过和大语言模型、环境及其它智能体等各方的交互,产出多个消息,构成如图14所示的轨迹,这些轨迹会存入重放池(Replay Buffers);
[*]更新(Updating)阶段,从重放池中采样轨迹,使用这些轨迹作为训练数据集微调大语言模型,微调的目标函数包含两部分,一部分是大语言模型本身的损失函数,即期望大语言模型能够通过前序词元序列准确预测下一个词元,另一部分是强化学习中PPO优化算法的损失函数,即期望大语言模型能够最大化奖励,通过将这两部分加权求和,使得微调后的大语言模型在保持语言模型能力的同时,能够最大化奖励,提升解决问题的能力。



图15 LTC的整体架构

动态生成(Dynamic Generation)。系统运行过程中根据需要动态生成新的智能体。论文在这里列举了动态生成相关的研究。
AutoAgents

《AutoAgents: A Framework for Automatic Agent Generation》这篇论文提出AutoAgents框架,如图16所示,其针对某个任务(例如,写一篇关于人工智能觉醒的小说)可动态生成相应的智能体进行处理,处理过程包括两个阶段:

[*]草稿阶段(Draft Stage):通过三个预先定义的智能体——规划者(Planner)、智能体观察者(Agent Observer)、规划观察者(Plan Observer)的合作,生成完成任务所需的智能体和执行计划;
[*]执行阶段(Execution Stage):使用生成的智能体逐步执行计划,并通过一个预先定义的智能体——动作观察者(Action Observer)监控执行过程。



图16 AutoAgents框架

展开AutoAgents框架的部分细节。
在草稿阶段,规划者 https://www.zhihu.com/equation?tex=%5Cmathcal%7BP%7D 负责根据任务内容生成和完善智能体和执行计划,智能体观察者 https://www.zhihu.com/equation?tex=%5Cmathcal%7BO%7D_%7Bagent%7D 负责对生成的智能体的合理性以及和任务的匹配度进行分析,并向规划者提出建议,规划观察者 https://www.zhihu.com/equation?tex=+%5Cmathcal%7BO%7D_%7Bplan%7D 负责对生成的执行计划的合理性以及和任务的匹配度进行分析,向规划者提出建议。规划者和智能体观察者、规划观察者进行多轮交互,直至观察者不再有反馈或交互达到最大轮数,从而得到最终的智能体和执行计划,执行计划包含多个步骤,每步由一个或多个智能体完成,每个智能体包含以下信息:提示(Prompt,即智能体的画像、目标和约束)、描述(Description)、工具集和建议。
在执行阶段,执行计划被分步执行,每步由单个或多个智能体完成,每步的完成过程也会进行多轮迭代,直至当前步骤完成或迭代达到最大次数。若某步的完成过程由单个智能体进行多轮迭代,则智能体采用思维链的方式逐步思考,论文称之为“Self-refinement Agent”,若某步的完成过程由多个智能体进行多轮迭代,则智能体采用交互的方式逐步思考,论文称之为“Collaborative Refinement Action”。同时,论文引入长短期记忆,计划的执行过程采用长期记忆,每步的迭代过程采用短期记忆,论文称之为“Knowledge Sharing Mechanism”。每步完成后,动作观察者分析截至当前步的计划执行情况,对计划进行调整。
AutoAgents框架的处理过程的伪代码如图17所示。



图17 AutoAgents框架的处理过程的伪代码

AgentVerse

《AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors》这篇论文提出了AgentVerse框架,如图18所示,和AutoAgents类似,AgentVerse针对某个任务也可以动态生成相应的智能体进行处理,AgentVerse模拟人类组织解决问题的流程,针对给定问题,进行多轮迭代,每轮迭代又分为4个阶段:

[*]专家招聘(Expert Recruitment),定义和调整各智能体的角色;
[*]协作决策(Collaborative Decision-Making),由上述智能体联合讨论决定解决问题的策略;
[*]动作执行(Action Execution),各智能体和环境交互,执行动作;
[*]评估(Evaluation),评估本轮迭代结果是否符合预期。
协作决策中,论文尝试了两种多智能体间的协作方式,一种是水平结构(Horizontal Structure),即各智能体分别提出决策,再进行决策的整合,另一种是垂直结构(Vertical Structure),即由一个智能体提出决策,其他智能体提出反馈,迭代多次,直至达成一致。



图18 AgentVerse框架

应用

论文在前一部分分智能体和环境的交互、智能体画像构建、智能体间的通信、智能体能力获取四个方面对多智能体的架构进行解析。
论文在这一部分则对多智能体的应用进行分类介绍。论文将这些应用总结为两大类:问题解决(Problem Solving)和世界模拟(World Simulation)。两大类又分别包含了若干子类,问题求解的子类包括软件开发(Software Development)、具身智能(Embodied Agents)、科学实验(Science Experiments)、科学辩论(Science Debate),世界模拟的子类包括社会模拟(Societal Simulation)、游戏(Gaming)、心理学(Psychology)、经济学(Economy)、推荐系统(Recommender Systems)、政策制定(Policy Making)、疾病传播模拟(Disease Propagation Simulation)。论文分别对各子类的相关研究工作进行了梳理和介绍,并使用下表对各项工作按智能体和环境的交互、智能体画像构建、智能体间的通信、智能体能力获取这四个方面进行总结。



表1 对各项工作按智能体和环境的交互、智能体画像构建、智能体间的通信、智能体能力获取这四个方面进行总结

笔者下面主要对问题解决大类中软件开发的相关研究工作进行展开介绍,其他类别的相关研究工作读者可阅读论文原文,或进一步阅读论文所介绍工作的论文原文。
问题解决

使用多智能体解决问题的主要动机是利用具有专业知识的智能体的集体能力。这些智能体作为个体行动,合作解决复杂问题,如软件开发、具身智能体、科学实验和科学辩论。
下面主要对软件开发的相关研究工作进行展开介绍。软件开发流程一般是标准SOP工作流,由产品经理产出需求、架构师设计方案、研发工程师编写代码、测试工程师测试功能,因此,软件开发中各智能体的角色包括产品经理、架构师、研发工程师和测试工程师等,各智能体间的通信结构一般采用分层结构,按照标准SOP工作流,由各智能体逐步完成软件开发任务。
CAMEL

《CAMEL: Communicative Agents for "Mind" Exploration of Large Language Model Society》这篇论文提出了“Role-Playing”框架,如图19所示,针对某个任务,由AI用户(AI user)和AI助手(AI assistant)这两个智能体分别承担某个角色,进行多轮交互,每轮交互中,由AI用户根据任务目标和当前进展给出指示,由AI助手跟随指示、给出相应解决方案,直至最终完成任务。
以“开发股票交易机器人”为例,首先由人提出这一想法,并由人指定AI用户的角色是交易员、AI助手的角色是Python程序员,然后由Task Specifier这一智能体对想法进行细化,产出详细的任务描述,指出开发的功能需要包括对社交媒体平台上关于某只股票的正负向评价进行分析、并根据分析结果执行相应的交易操作。根据任务描述,AI用户和AI助手进行多轮交互,例如,AI用户先给出安装Python依赖的指示,AI助手给出应安装依赖列表和相应安装命令,AI用户再给出代码中引入库的指示,AI助手给出引入库的代码,如此交互,逐步给出交易机器人的实现方案。



图19 CAMEL Role-Playing框架

“Role-Playing”框架涉及Task Specifier、AI用户、AI助手这三个智能体,如何让这三个智能体遵循要求,即由Task Specifier细化想法,由AI用户给出指示,由AI助手给出解决方案,论文针对不同类型的应用场景,为这三个智能体设计了相应的提示,论文称这部分工作为“Inception Prompting”,图20为软件开发场景下Task Specifier、AI用户、AI助手这三个智能体的指示。



图20 软件开发场景下Task Specifier、AI用户、AI助手这三个智能体的指示

Self-collaboration

《Self-collaboration Code Generation via ChatGPT》这篇论文提出了“self-collaboration”框架,如图21所示,包含Division of Labor和Collaboration两阶段。在Division of Labor阶段,论文引入标准的软件开发方法,将软件开发过程划分为若干步骤,每个步骤由相应角色的智能体负责完成。论文引入三种角色:Analyst,Coder和Tester,由Analyst负责拆解需求、设计方案,由Coder负责基于Analyst给出的方案和Tester给出的反馈编写代码,由Tester负责测试代码。在Collaboration阶段,则按照Division of Labor阶段已划分的软件开发若干步骤,分步执行,每步由相应角色的智能体负责完成。



图21 “self-collaboration”框架

论文在提示中使用了“Role Instruction”来引导大语言模型按照所指定的角色进行思考。每个角色有各自的指示,图22是Coder的指示示例。指示包含三部分,分别是任务描述、用户需求和角色描述。



图22 Coder的指示示例

ChatDev

《ChatDev: Communicative Agents for Software Development》这篇论文提出了ChatDev框架,以对话的方式实现软件开发,如图23所示。论文将软件开发过程划分为串行的三个阶段,分别是Design、Coding和Testing,每个阶段又可以进一步划分为一或多个子任务,Design阶段的子任务即Design,Coding的子任务包括Coding和Code Complete,Testing的子任务包括Code Review和Testing。每个子任务的完成采用CAMEL中提出的“Role-Playing”框架,引入Instructor和Assistant这两个智能体,由Instructor负责给出指示,由Assistant负责跟随指示、给出解决方案,这两个智能体会以对话的形式进行多轮交互,直至最终达成一致,输出当前任务的结果(文本或代码)。Instructor和Assistant这两个智能体在不同的子任务中有不同的角色,例如Code Review中,Instructor的角色是Reviewer,负责给出代码修改建议,Assistant的角色是Programer,负责根据建议修改代码。为了让大语言模型按照不同的角色进行思考,论文也采用了CAMEL提出的“Inception Prompting”方案,为不同的角色设计了不同的提示。



图23 ChatDev框架

通常,Instructor和Assistant这两个智能体以一问一答的形式进行多轮交互,交互方式可表示为: https://www.zhihu.com/equation?tex=%E2%9F%A8%5Cmathcal%7BI%7D%5Crightarrow%5Cmathcal%7BA%7D%2C%5Cmathcal%7BA%7D%5Crightarrow%5Cmathcal%7BI%7D%E2%9F%A9_%5Ccirclearrowleft+%5C%5C在这种交互方式下,如果Instructor给出的指示不明确,Assistant可能给出错误的解决方案,即导致幻觉的发生。为了解决这个问题,论文对交互方式进行升级,提出了“Communicative Dehallucination”机制,即在每轮交互中,若Assistant认为Instructor给出的指示并不明确,则先不给出解决方案,而是进行角色反转,由Assistant发起问题,向Instructor询问指示的细节,并由Instructor给出回复,由Assistant问、Instructor答的交互也会迭代多轮,直至Assistant认为指示已明确,才由其给出本轮交互的解决方案,新的交互方式可表示为:
https://www.zhihu.com/equation?tex=%E2%9F%A8%5Cmathcal%7BI%7D%5Crightarrow%5Cmathcal%7BA%7D%2C%E2%9F%A8%5Cmathcal%7BA%7D%5Crightarrow%5Cmathcal%7BI%7D%2C%5Cmathcal%7BI%7D%5Crightarrow%5Cmathcal%7BA%7D%E2%9F%A9_%5Ccirclearrowleft%2C%5Cmathcal%7BA%7D%5Crightarrow%5Cmathcal%7BI%7D%E2%9F%A9_%5Ccirclearrowleft+%5C%5C
MetaGPT

《MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework》这篇论文指出软件开发有如图24所示的标准SOP流程,包括需求分析、架构设计、系统设计、开发、测试等各步,每步由相应角色的人员完成,包括产品经理、架构师、项目经理、开发工程师、测试工程师。



图24 软件开发的标准SOP流程

论文提出的MetaGPT框架即遵循上述SOP流程分步进行软件开发,并设计相应角色的智能体,包括产品经理、架构师、项目经理、开发工程师、测试工程师。论文为每个智能体指定角色、目标、约束和工具,图25右侧是开发工程师智能体的示例,其负责根据产品经理产出的需求文档和项目经理产出的系统设计、遵循一定的编码规范编写代码,并可运行和调试代码,将运行和调试结果作为反馈对代码进行修改和完善。论文要求每个智能体均输出结构化的消息,从而避免幻觉问题,例如,产品经理输出结构化的需求文档,架构师输出数据结构、接口定义等,开发工程师输出代码。各智能体输出的结构化消息统一存入如图25左侧所示的共享消息池,而各智能体从共享消息池中订阅自己所关注的消息,例如架构师关注产品经理输出的需求文档。



图25 共享消息池和开发工程师智能体

AgentCoder

《AgentCoder: Multi-Agent-based Code Generation with Iterative Testing and Optimisation》这篇论文提出AgentCoder框架,其相对上述研究工作,只设计了3个智能体,分别是Programmer、Test Designer和Test Executor,因此占用较少的计算资源,另外,其更关注通过测试收集到的反馈,通过反馈对代码进行完善。
AgentCoder框架如图26所示,Programmer、Test Designer这两个智能体相互解耦,分别独立负责代码编写和测试用例生成,Programmer按照思维链的方式进行思考,思考过程分为问题理解、算法选择、伪代码生成、代码生成这四步,Test Designer生成覆盖度高的测试用例,包括基础测试用例、边界测试用例,大值测试用例这三类。而Test Executor则负责收集Programmer生成的代码和Test Designer生成的测试用例,执行测试用例,并将执行结果反馈给Programmer,用于代码的完善。



图26 AgentCoder框架

世界模拟

多智能体的另一个主流应用场景是世界模拟,涵盖社会科学、游戏、心理学、经济学、政策制定等领域。多智能体在世界模拟中的使用关键在于其出色的角色扮演能力,这对于真实地描绘模拟世界中的各种角色和观点至关重要。例如,《Generative Agents: Interactive Simulacra of Human Behavior》这篇论文,在一个类似“模拟人生”的沙箱环境中引入25个智能体构成社区,每个智能体有不同的画像,相互之间可以通信,产生丰富的对话和行为数据,用于深度的社会科学分析,而用户可以通过自然语言和这些智能体进行交互。



图27 多智能体构成的社区

关于多智能体应用于世界模拟的相关研究工作,读者可阅读论文原文,或进一步阅读论文所介绍工作的论文原文。
工具和资源

框架

论文在这里介绍了三个开源的多智能体框架:MetaGPT、CAMEL和AutoGen,这些框架均利用多智能体的协作进行复杂任务的求解,但在方法细节上有所不同。
MetaGPT和CAMEL在上一部分已有介绍,这里不再赘述,这里再介绍一下AutoGen。
AutoGen

《AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation》这篇论文提出了AutoGen框架,如图28所示,该框架支持开发可定制的、对话形式的智能体,这些智能体可接收和发送消息,而思考产出消息的能力可以基于大语言模型、人类或工具,另外,该框架支持灵活定制多智能体间的交互方式。



图28 AutoGen框架

图29是使用AutoGen框架开发并使用多智能体的示例。
图29中最上面一层列出了AutoGen框架用于定义对话形式的智能体的接口——ConversableAgent,其有三个核心方法:send方法用于发送消息,receive方法用于接收消息,generate_replay方法用于基于大语言模型、人类或工具等产出消息。AutoGen框架默认提供了ConversableAgent接口的两个实现——AssistantAgent和UserProxyAgent,AssistantAgent基于大语言模型产出消息,UserProxyAgent基于人类或工具产出消息,开发者也可以自行实现ConversableAgent接口,定制智能体。
图29中中间一层是基于AutoGen框架开发多智能体的示例,其中定义了两个智能体,分别是基于UserProxyAgent实例化得到的User Proxy A,和基于AssistantAgent实例化得到的Assistant B。然后,通过register_replay方法为User Proxy A注册定制的产出待发送消息的方法,该方法首先从人类获取待发送消息,若人类无输入且之前接收的消息中包含“code”,则调用工具执行接收的消息,工具执行结果作为待发送消息,论文称这一定制过程为“Conversation-Driven Control Flow”。最后,通过initiate_chat方法初始化对话,由User Proxy A向Assistant B发送消息,要求绘制META和TESLA年初至今的股票价格走势图。
图29中最下面一层则是上述所开发多智能体以对话形式相互交互的示意。



图29 使用AutoGen框架开发并使用多智能体的示例

论文还提到一些框架支持系统运行过程中根据需要动态生成新的智能体,包括前面在智能体能力获取部分已介绍的AgentVerse、AutoAgents等,这里不再赘述。论文也还提到一些研究工作通过平台化的方式快速支持智能体的构建和使用,例如,《OpenAgents: An Open Platform for Language Agents in the Wild》这篇论文提出了OpenAgents这一开源平台,如图30所示,其包含三类智能体:数据分析智能体、插件调用智能体和WEB搜索智能体,既支持WEB形式的直接访问,也支持本地化部署。



图30 OpenAgents平台

数据集和基准

论文总结了多智能体研究中常用的数据集或基准,如表2所示。不同的研究使用不同的数据集和基准。在问题解决场景中,大多数数据集和基准用于评估多个智能体合作或辩论的规划和推理能力。在世界模拟场景中,数据集和基准用于评估模拟世界和真实世界的对齐,或分析不同智能体的行为。



表2 多智能体研究中常用的数据集或基准

挑战和机遇

多智能体框架和应用的研究正在迅速进展,带来了许多挑战和机遇。论文这里列举了一些关键挑战和未来研究的潜在领域:

[*]支持多模态环境。大多数先前关于多智能体的工作都集中在基于文本的环境中,擅长处理和生成文本,而在多模态环境中,智能体将与多种感官输入进行交互,并生成多种输出,如图像、音频、视频和物理动作,目前这方面工作仍然较少。
[*]解决幻觉问题。幻觉问题在大语言模型和单智能体中是一个重大挑战,而在多智能体中,这个问题变得更加复杂,在多智能体中,一个智能体的幻觉可能会产生级联效应,错误信息会从一个智能体传播到另一个智能体,因此,在多智能体中,既要修正单个智能体的幻觉,也要完善智能体间的信息流,避免错误信息的扩散。
[*]获取集体智能。传统未基于大语言模型的多智能体中,智能体通常使用强化学习从离线训练数据集中学习,而基于大语言模型的多智能体主要从即时反馈中学习,如与环境或人类的交互,通过记忆和自我进化,基于反馈进行调整。
[*]支持扩展。多智能体由多个智能体组成,每个智能体通常依赖某个大语言模型,需要大量的计算资源和存储空阿金,扩展多智能体中的智能体数量,会导致计算资源需求的增长,如何更好地设计多智能体的工作流和任务分配机制,使得扩展多智能体,提升效果的同时减少计算资源的使用。
实践

LangGraph




图31 LangChain整体框架

LangChain是一个面向大语言模型的应用开发框架,它可以将外部数据源、工具和大语言模型结合在一起。目前LangChain整体框架如图31所示,由以下部分组成:

[*]LangChain库:

[*]langchain-core:核心组件的抽象定义和LangChain表达式语言;
[*]langchain-community:各种第三方实现的集成;
[*]langchain:各类Chain和Agent的实现;

[*]LangGraph:用于以图的方式将多个基于大语言模型的智能应用组合在一起;
[*]LangServe:用于将LangChain应用部署为REST API的服务;
[*]LangSmith:开发者平台,用于调试、评估和监控基于大语言模型构建的应用。
LangChain包含以下核心组件:

[*]Model,表示大语言模型;
[*]Prompt,表示提示;
[*]Tool,表示工具;
[*]Chain,表示将Model、Tool等组件串联在一起,甚至可以递归地将其他Chain串联在一起;
[*]Agent,相对于Chain已固定执行链路,Agent能够基于大语言模型进行思考和规划,根据不同的问题实现动态的执行链路;
关于Chain的实践可以阅读笔者之前撰写的《Mac本地部署大模型体验AIGC能力》,关于Tool和Agent的实践可以阅读笔者之前撰写的《大语言模型Agent综述与实践》,以下是对LangGraph的介绍和使用,基于LangGraph构建多智能体。本文所用的LangGraph的版本是“0.2.39”。
LangGraph的核心是将多智能体间的通信建模为图,其使用三个关键组件定义图中的相关信息:

[*]状态:一个共享数据结构,表示多智能体的当前状态,其可以是任何Python类型,但通常是TypedDict或Pydantic BaseModel,其存储的信息可以是多智能体间通信的历史消息及其他定制化的信息;
[*]节点:Python 函数,用于编码某个智能体的计算逻辑,其以当前状态作为输入,执行计算逻辑,并返回更新后的状态;
[*]边:Python函数,根据当前状态确定要执行的下一个节点。
LangGraph提供多种方法来控制智能体间的通信顺序(即边的定义):

[*]显式控制流(图边):通过定义图边显式指定智能体间的通信顺序;
[*]动态控制流(条件边):通过定义条件边由大型语言模型或路由函数决定接下来调用的智能体。
以下是一个显式控制流的例子,首先定义两个智能体——研究助手和摘要专家,研究助手负责根据给定主题(例如“强化学习”)提供信息,摘要专家负责根据给定信息生成摘要,显式控制流即先由研究助手提供信息,再由摘要专家生成摘要,代码如下所示:
import os

DASHSCOPE_API_KEY = 'xxx'
os.environ["DASHSCOPE_API_KEY"] = DASHSCOPE_API_KEY

LANGCHAIN_API_KEY = 'xxx'
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = LANGCHAIN_API_KEY

TAVILY_API_KEY = 'xxx'
os.environ["TAVILY_API_KEY"] = TAVILY_API_KEY

from langchain_community.chat_models import ChatTongyi
from langchain_core.messages import HumanMessage, SystemMessage
from langgraph.graph import StateGraph, MessagesState, START, END

model = ChatTongyi(model_name="qwen-max", temperature=0.1)

# 定义两个智能体——研究助手和摘要专家
def research_agent(state: MessagesState):
    """Call research agent"""
    messages = + state["messages"]
    response = model.invoke(messages)
    return {"messages": }

def summarize_agent(state: MessagesState):
    """Call summarization agent"""
    messages = + state["messages"]
    response = model.invoke(messages)
    return {"messages": }

workflow = StateGraph(MessagesState)
workflow.add_node("research", research_agent)
workflow.add_node("summarize", summarize_agent)

# 指定显式控制流,先由研究助手提供信息,再由摘要专家生成摘要
workflow.add_edge(START, "research")
workflow.add_edge("research", "summarize")
workflow.add_edge("summarize", END)

graph = workflow.compile()

for s in graph.stream(
    {"messages": },
    {"recursion_limit": 100},
):
    if "__end__" not in s:
      print(s)
      print("----")执行上述代码,LangSmith中记录的执行过程和结果如图32所示,从中可以看出,执行过程先由研究助手调用大语言模型给出“强化学习”的相关信息,再由摘要专家调用大语言模型根据上述信息,给出摘要:
强化学习(Reinforcement Learning, RL)是一种通过智能体与环境交互来学习最优行动策略的机器学习方法,旨在最大化累积奖励。其核心概念包括智能体、环境、状态、动作、奖励和策略。RL的目标是找到一个长期总奖励最大的策略,主要分为基于价值、基于策略和基于模型的方法。应用领域涵盖游戏(如AlphaGo)、机器人学、自动驾驶及推荐系统等。尽管面临样本效率低、探索与利用难题以及泛化能力差等挑战,随着计算资源和算法的进步,RL正逐渐成为解决复杂问题的有效工具,并展现出广泛的应用前景。


图32 显式控制流的执行过程和结果

也可以将上述显式控制流修改为动态控制流,将研究助手和摘要专家这两个智能体作为工具,以ReAct的方式由大语言模型决定接下来调用的智能体,代码如下:
import os

DASHSCOPE_API_KEY = 'xxx'
os.environ["DASHSCOPE_API_KEY"] = DASHSCOPE_API_KEY

LANGCHAIN_API_KEY = 'xxx'
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = LANGCHAIN_API_KEY

TAVILY_API_KEY = 'xxx'
os.environ["TAVILY_API_KEY"] = TAVILY_API_KEY

from langchain_community.chat_models import ChatTongyi
from typing import Annotated
from langchain_core.messages import SystemMessage, ToolMessage
from langgraph.prebuilt import ToolNode, InjectedState, create_react_agent

model = ChatTongyi(model_name="qwen-max", temperature=0.1)

# 定义两个智能体——研究助手和摘要专家
def research_agent(state: Annotated):
    """Call research agent"""
    messages = + state["messages"][:-1]
    response = model.invoke(messages)
    tool_call = state["messages"][-1].tool_calls
    return {"messages": )]}

def summarize_agent(state: Annotated):
    """Call summarization agent"""
    messages = + state["messages"][:-1]
    response = model.invoke(messages)
    tool_call = state["messages"][-1].tool_calls
    return {"messages": )]}

# 将研究助手和摘要专家作为工具
tool_node = ToolNode()
# 定义一个负责总体协调的智能体,其将研究助手和摘要专家作为工具,以ReAct的方式进行思考,分步调用工具
graph = create_react_agent(model, , state_modifier="First, research information on a given topic, Second, summarize based on information above.")

inputs = {"messages": [("user", "强化学习")]}

for s in graph.stream(inputs, stream_mode="values"):
    message = s["messages"][-1]
    if isinstance(message, tuple):
      print(message)
    else:
      message.pretty_print()执行上述代码,LangSmith中记录的执行过程和结果如图33所示,从中可以看出,负责总体协调的智能体,其将研究助手和摘要专家作为工具,以ReAct的方式进行思考,分步调用工具,先由研究助手调用大语言模型给出“强化学习”的相关信息,再由摘要专家调用大语言模型根据上述信息,给出摘要:
强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过智能体与环境的互动来学习最优行为策略。智能体根据其行为获得奖励或惩罚,并据此调整策略以最大化长期累积奖励。关键概念包括智能体、环境、状态、动作、奖励和策略。RL的目标是找到最优策略以获取最大累计奖励。主要算法类型有基于价值的方法(如Q-learning)、策略梯度方法(如REINFORCE)和模仿学习。RL广泛应用于游戏、机器人学、自动驾驶、推荐系统和资源管理等领域。面临的主要挑战包括样本效率低、探索与利用之间的权衡以及奖励稀疏性。未来,随着计算能力和算法的进步,预计RL将在更多实际应用中发挥作用,并提高其泛化和适应未知环境的能力。


图33 动态控制流的执行过程和结果

参考文献


[*]《真格基金戴雨森谈生成式AI:这是比移动互联网更大的创业机会,开始行动是关键》
[*]《Large Language Model based Multi-Agents: A Survey of Progress and Challenges》
[*]《A Survey on Large Language Model based Autonomous Agents》
[*]《A Dynamic LLM-Powered Agent Network for Task-Oriented Agent Collaboration》
[*]《Putting Humans in the Natural Language Processing Loop: A Survey》
[*]《Self-Adaptive Large Language Model (LLM)-Based Multiagent Systems》
[*]《ProAgent: Building Proactive Cooperative Agents with Large Language Models》
[*]《Adapting LLM Agents Through Communication》
[*]《AutoAgents: A Framework for Automatic Agent Generation》
[*]《AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors》
[*]《CAMEL: Communicative Agents for "Mind" Exploration of Large Language Model Society》
[*]《Self-collaboration Code Generation via ChatGPT》
[*]《ChatDev: Communicative Agents for Software Development》
[*]《MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework》
[*]《AgentCoder: Multi-Agent-based Code Generation with Iterative Testing and Optimisation》
[*]《Generative Agents: Interactive Simulacra of Human Behavior》
[*]《AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation》
[*]《OpenAgents: An Open Platform for Language Agents in the Wild》
[*]《LangGraph》
[*]《LangGraph中的多智能体系统》

wuchao 发表于 5 天前

要了解什么是AI Agent(智能体),先搞清楚什么是AI(人工智能)、AGI(通用人工智能)、AIGC(人工智能内容生成)、NLP(自然语言处理)、LLM(大语言模型)、Multimodal(模态)、COT(思维链)等基础概念,要了解AI Agent(智能体)和AI(人工智能)的本质区别。
AI(人工智能),旨在通过计算机程序和算法模拟人类智能,涵盖机器学习、深度学习、自然语言处理等领域,让计算机能像人类一样思考、学习、推理、决策和交流。
AI Agent(智能体),是一种基于LLM(大语言模型),能够独立思考、调用工具、处理任务的可执行计算机程序,拥有复杂的工作流程,无需人类驱动自动进行交互。作为AI(人工智能)的一种具体实现,更侧重于实体化、自主性和交互性,并能与其他智能体或人类进行交互和协作。例如,GPTs 可以打造个人专属 AI 助理(这是一种智能体),能帮忙整理电子邮件,还随时能给你创意灵感...
AI Agent(智能体)主要依赖规划(Planning)+ 记忆(Memory) + 工具(Tools)+行动(Action)四大核心要素进行工作。其中,LLM(大语言模型)是智能体的“大脑”,通过 LLM(大型语言模型)把问题拆解成具有先后逻辑的子问题,然后按需调用 LLM(大型语言模型)、RAG(检索增强生成)、文生图/文生视频等各种工具,解决最终问题。
那么,AI Agent(智能体)能做什么呢,有哪些使用场景呢?想象一下,你拥私人管家一样的 AI 智能体,叫你起床、帮你放音乐、自动做早餐、规划上班路线、写工作汇报、帮你回复各种繁杂的邮件、帮你做PPT、做数据统计、做产品规划、程序代码自动编写、自媒体自动运营、电商运营...啊啊啊,这也太方便了吧!
智能家教:一个教学型 AI 智能体,记住你每个知识点的学习情况,有针对性地教学,并提供个性化的练习题,帮你快速提高成绩。妈妈再也不用担心我的学习了...
智能客服:堪比真人的聊天机器人,代替客服与用户沟通,顺畅的与客户交流、解答客户问题、处理电商订单退换货等
自动驾驶:智能体代替真人驾驶汽车(例如特斯拉自动驾驶、百度萝卜快跑自动驾驶),通过多个智能体处理传感器数据、规划路线,做出驾驶决策,自动避让行人和车辆...
股票交易:智能体根据市场价格、成交量等股票技术指标,自动帮你选择股票、合理规划买卖时机、自动交易决策,再也不用每天盯盘了。
游戏NPC:作为非玩家角色(NPC),跟玩家互动、对战、组队等,具有高度适应性和策略性,以创造引人入胜的游戏体验。
还有智能办公、制造机器人、智能家具、智能交通指挥、智能医生等智能化应用场景,AI Agent(智能体)将深入各行各业,就像未来世界的超级助手,无论是在家、公司、医院、商场还是交通中,它们都能真真实实的改变我们的生活。
AI Agent (智能体)的出现,对互联网行业的工作方式、从业门槛等,带来巨大的影响,尤其是产品经理、程序员,毫不夸张的说,未来3-5年不懂AI Agent (智能体)的产品经理第1个将被淘汰,其次就是程序员。
当前最炙手可热的 岗位,无疑是AI产品经理、AI开发工程师、AI算法工程师、AI人工智能训练师、大模型开发工程师等AI相关岗位,部分岗位几十万甚至上百万年薪..想想都觉得香。
想要转AI产品经理、AI开发工程师的同学,建议尽早行动起来,越到后面AI相关岗位竞争可就激烈了。知乎知学堂旗下AI 解决方案公开课,从AI入门到精通,再到进阶,提供全方AI知识和技术培训。想转行AI产品、开发的同学,通过课程能学到机器学习、深度学习、NLP等AI基础知识和技术,和大模型、多模态、AI Agent(智能体)的技术原理和实际应用等。这么说吧,想转行AI产品经理、AI开发工程师拿高薪的同学,这课程是首选,入口我放在下面了,直接预约就可以↓
课程讲解当下流行的AI Agent (智能体),让你了解它的原理、核心技术、应用场景等,拆解使用AI Agent (智能体)技术真实落地的案例,干货满满。课程内容丰富,而且通俗易懂,哪怕是技术小白也能轻松上手,建议产品、开发同学,去听听看哦。
想要学习AI Agent (智能体) ,我们至少要经历下面三个阶段,在AI的知识体系中成长和进步,不断地实践,进而获得AI Agent (智能体)构建和开发能力。
第一阶段:了解AI Agent (智能体),熟悉API和调用。理解AI Agent (智能体)基础知识 ,了解各种API调用方法,能够调用预设的功能模块,达成业务交互与数据处理,能够独立构建简单的AI Agent (智能体),比如天气查询...
第二阶段:掌握NLP技术,学习自然语言处理和文本生成。掌控自然语言处理(NLP)编程工具、基本原理、核心技术,运用自然语言生成技术,让AI Agent (智能体) 能够自动生成文本或对话,能够开发基于NLP的应用,例如聊天机器人...
第三阶段:综合运用 API 调用、自然语言处理以及优化算法。将API 调用、自然语言处理以及优化算法等技术,综合运用于智能体开发中,可以构建比较复杂的AI Agent (智能体)应用,例如自动驾驶系统、股票交易系统...依据反馈与应用成效,不断优化AI Agent (智能体)。
能够把上面三个阶段走完,基本就能够构建非常多AI Agent (智能体)应用,不管对于后期转岗择业,还当前工作效率提升,都是非常有用的。比如,对于产品经理来说,通过构建AI Agent (智能体),可以进行产品最小化验证,不需要投入大量开发,即可构建商业产品和有效验证,为产品立项和产品开发提供依据。对于程序员来说,能够构建、开发、优化各种AI Agent (智能体)应用,调用包括LLM(大语言模型)在内的各种工具,甚至能构建复杂的AI Agent (智能体)产品,这岗位竞争力强了不是一星半点。

halczy 发表于 4 天前

关于AI Agent(智能体)的回复如下:<br><br>智能体是一种基于人工智能技术的智能系统,具备感知、思考、学习和决策等能力。智能体能够模拟人类的智能行为,从而完成各种复杂的任务。智能体的应用场景非常广泛,例如智能客服、智能家居、自动驾驶等领域。<br><br>对于初学者来说,学习智能体可以从了解人工智能基础知识开始,掌握机器学习、深度学习等核心技术。同时,还需要学习编程语言和开发工具,以便能够开发和应用智能体。此外,参与相关社区和论坛,与同行交流学习,也是提高智能体技能的有效途径。<br><br>随着越来越多的企业开始布局智能体领域,未来智能体将会得到更广泛的应用和发展。<br><br>希望以上回复能对您有所帮助。

aylue 发表于 4 天前

AI Agent(智能体)是一种基于人工智能技术的智能软件实体,能够模拟人类的感知、认知、决策等能力,自主完成某些任务。智能体能够利用机器学习、自然语言处理、计算机视觉等技术进行数据分析和理解,并作出智能响应和决策。<br><br>智能体的应用场景非常广泛,例如智能客服、智能家居、自动驾驶等领域。智能客服可以通过智能体实现自然语言交互,提高客户满意度;智能家居中,智能体可以控制家庭设备,提高生活便利性;在自动驾驶领域,智能体可以实现车辆自主导航和决策。<br><br>对于初学者来说,学习智能体需要掌握人工智能、机器学习等相关基础知识。可以通过阅读相关书籍、参加在线课程、参与开源项目等方式逐步深入学习。同时,实践是学习的关键,通过实践可以更好地理解和掌握智能体的原理和应用。

danssion 发表于 4 天前

关于智能体的回答如下:<br><br>智能体(AI Agent)是一种具备智能能力,能够自主执行任务并解决复杂问题的软件实体。它能够感知环境、理解人类指令和需求,并做出相应的响应。智能体可应用于多个领域,如智能家居、智能客服、自动驾驶等。<br><br>对于小白来说,学习智能体可以从了解人工智能基础知识开始,掌握相关编程语言和框架,学习机器学习和深度学习等相关技术。同时,可以关注智能体在实际应用中的案例,了解其具体的应用场景和解决方案。随着技术的不断发展,智能体将成为未来智能化社会的重要组成部分,学习智能体将有助于个人适应未来社会的发展需求。<br><br>以上内容仅供参考,建议查阅人工智能领域的专业书籍或咨询人工智能专家,以获取更多关于智能体的信息。
页: [1]
查看完整版本: 什么是 AI Agent(智能体)?