【智能体架构】人工智能智能体架构内部:组件和功能
视频号
微信公众号
知识星球
自主主体是一个位于环境中的系统,也是环境的一部分,它感知环境并随着时间的推移对其采取行动,以追求自己的议程,并在未来实现它的感知。
--Franklin和Graesser(1997)
斯坦·富兰克林博士和阿特·格雷瑟博士是人工智能和认知科学领域的著名研究人员。
他们的合作大大有助于我们理解自主智能体和智能系统。
即使在1996年,他们也走在了时代的前面。
他们当时的研究尤其值得注意,在该领域提供了宝贵和先进的见解。
进入2023年,随着大型语言模型的发展,人工智能代理具有了新的意义。
这一发展激发了我们许多人的好奇心,引发了人们对它们如何发挥作用的疑问。
为了理解人工智能代理的复杂性,并更深入地了解其架构,让我们深入研究这些系统如何运行的基本方面。
但首先让我们了解--
什么是AI Agent架构?
“智能Agent架构”是指自主Agent的设计或结构,它是一个能够独立感知其环境、做出决策并采取行动实现特定目标的系统或实体。
该体系结构定义了代理的不同组件如何交互以实现智能行为。
现在,让我们分解一下上面提到的代理体系结构的四个关键组件:
- 分析模块的主要作用是确定代理在其上下文中的功能或角色。
- 记忆使它能够回忆过去的行为。
- 规划模块将代理置于动态环境中,使其能够规划未来的行动。
- 动作模块将代理的决定转换为特定的动作。
值得注意的是,在这个框架内,评测模块对记忆和计划模块施加影响,这三个模块共同在塑造动作模块的功能方面发挥着重要作用。
在下一节中,让我们详细介绍这些模块。
1.1配置模块
自治代理通常在执行任务的同时体现特定的角色,如编码员、教育工作者或领域专家。
Pro-filing模块的工作是识别这些代理角色,通常通过将它们嵌入输入提示中来影响大型语言模型(LLM)的行为。
创建代理配置文件有三种常见方法:
a.手工制作方法:
手工制作方法包括手动指定代理配置文件,其中明确定义了个性和关系等特征。
这是通过在软件开发中为每个代理分配不同的角色和职责来实现的。
虽然这种方法很灵活,但在处理大量代理时可能会耗费大量人力,因为配置文件需要细致的手工制作。
b.LLM生成方法:
LLM生成方法通过生成语言模型(LLM)自动创建代理概要文件。
手动提示概述了生成规则,种子配置文件作为初始示例。例如,RecAgent手动制作具有年龄和偏好等详细信息的种子配置文件,然后使用ChatGPT在此基础上生成其他配置文件。
虽然这种方法对许多代理具有时间效率,但在控制生成的配置文件时可能会牺牲精度。
c.数据集对齐方法:
数据集对齐方法基于真实世界的数据集定义代理配置文件,使用来自调查等来源的信息来初始化虚拟代理。
年龄、性别和收入等人口统计细节与真实的人口属性相一致。
这种方法有效地弥合了虚拟代理和现实之间的差距,捕捉到了准确的真实世界人口特征。
除了生成代理配置文件的策略之外,另一个重要考虑因素是用于配置代理的信息。
这些信息可以包括人口统计细节,如年龄、性别、收入和心理特征等因素。
1.2记忆模块
记忆模块在人工智能代理的世界中扮演着至关重要的角色。
把它想象成人工智能的记忆库,它存储从周围环境中收集的信息,并使用这些记录的记忆来指导未来的行动。
该内存模块帮助代理积累经验,使其能够自我改进,并做出更一致、合理和有效的决策。
在本次讨论中,我们将全面了解内存模块,重点关注其结构、格式和功能。
a.记忆结构:
基于大型语言模型(LLM)的自主主体从人类记忆过程中汲取灵感。
人类记忆包括感觉记忆、短期记忆和长期记忆等阶段。
在为人工智能代理设计记忆系统时,研究人员在适应人工智能的独特能力时会考虑这些阶段。
在人工智能中,短期记忆的功能类似于特定环境中的学习能力长期记忆类似于外部矢量存储系统,允许快速访问和检索信息。
与人类不同,人工智能代理优化了算法实现的记忆系统之间的读写过程,避免了人类记忆中的逐渐转移。
模拟人类记忆元素有助于设计者增强人工智能代理的推理和自主性。
现在,让我们来探索人工智能中常用的两种记忆结构。
b.内存格式:
信息可以使用各种格式存储在存储器中,每种格式都具有不同的优势。以下是四种常见的内存格式:
- 自然语言:想象一下使用日常语言来编程和推理任务。这种方法允许对信息进行灵活而丰富的存储和访问。例如,Re-flexion在滑动窗口中以自然语言存储经验反馈,Voyager则使用自然语言描述来表示《我的世界》游戏中的技能,直接将其存储在内存中。
- 嵌入:嵌入可以提高记忆检索和阅读的效率。例如,MemoryBank将每个内存段编码为嵌入向量,创建索引语料库以供检索。GITM将参考计划表示为嵌入,以便于匹配和重用,而ChatDev将对话历史编码为矢量,以便于检索。
- 数据库:外部数据库提供结构化存储,实现高效、全面的内存操作。ChatDB使用数据库作为符号长期内存,LLM控制器生成的SQL语句可以在数据库上准确操作。
- 结构化列表:另一种内存格式是结构化列表,它可以更简洁、更高效地传递信息。例如,GITM将子目标的行动列表存储在层次树结构中,明确地捕捉目标和相应计划之间的关系。RET-LLM最初将自然语言句子转换为三元组短语并将其存储在内存中。
总之,记忆模块就像人工智能从经验中学习并做出明智决策的秘密。
1.3规划模块
在处理复杂任务时,人类通常会将它们分解为更简单的子任务,并逐步解决每一个子任务。
规划模块为基于LLM的代理提供了思考和规划复杂任务的能力,使其更加全面、强大和可靠。
我们将在下面讨论两种类型的计划模块。
- 无反馈规划
- 计划与反馈
a.无反馈规划:
在这种方法中,代理在计划过程中生成计划而不接收反馈。他们使用各种规划策略:
- 子目标分解:这种方法包括将复杂的任务分解为可执行的子任务,允许大型语言模型制定更好的计划。
- 多路径思想:在子目标分解的基础上,这种方法假设多条路径可以达成最终解决方案,从而提高复杂推理任务的性能。
- 外部规划师:在LLM可能不可靠的情况下,使用外部规划师将自然语言描述转换为正式的规划语言,并通过外部符号规划师获得结果。将LLM的一般知识与外部专家知识相结合可以提高性能。
b.有反馈的计划:
人类规划往往受益于经验和反馈。为了模拟这种能力,各种计划模块从不同的来源接收反馈,增强了代理的计划能力:
- 环境反馈:代理人利用来自环境的反馈来完善他们的计划,根据成功或失败来改进他们的策略。
- 人工反馈:代理商可以在真实的人工反馈的帮助下制定计划,更好地与实际环境保持一致,减少错误。
- 模型反馈:语言模型可以作为批评者,通过迭代反馈循环提供反馈以改进生成的计划。
总之,规划模块对于基于LLM的代理处理复杂任务至关重要。有反馈和无反馈的规划对于构建有效的基于LLM的代理至关重要。
1.4动作模块
行动模块的主要目标是将代理人的决定转化为特定的结果,实现与环境的直接互动,并确定代理人在完成任务中的有效性。
行动模块包括以下内容:
a.行动目标:
动作目标代表动作的预期目标,通常由人类或代理本身指定。
主要行动目标有三个:
i.任务完成情况:
动作模块旨在逻辑地完成特定任务,任务类型在不同场景中有所不同。
例如,Voyager使用LLM来指导代理在复杂场景(如Minecraft)中进行资源收集和任务完成。
ii。对话互动:
与人类进行自然语言对话的能力对于基于LLM的自主代理至关重要,使其能够有效地帮助用户或协作。
先前的工作改进了各个领域的对话互动。例如,ChatDev促进了软件开发公司员工之间的对话。
DERA迭代地增强对话交互,一些方法鼓励主体在交互对话中有相似的意见。
iii.环境探索与互动:
代理通过与环境的交互来获取新知识并调整其行为。这使他们能够生成与环境相一致的新颖行为。
Voyager通过允许代理探索开放式环境来进行持续学习。
记忆增强强化学习(MERL)积累文本知识,并根据外部反馈调整主体动作。
GITM允许代理收集文本知识,并根据环境反馈调整其行为。
b.行动策略:
行动策略是指代理用于生成行动的方法。
这些策略可能包括记忆回忆、多轮互动、反馈调整和整合外部工具。
让我们详细探讨一下这些策略:
i.记忆回忆:
记忆回忆技术通过检索存储在记忆模块中的相关经验,帮助代理人做出明智的决定。
生成代理维护对话和经验的记忆流,用于确保一致的行动。
GITM使用记忆来指导行动,例如向先前发现的位置移动。
CAMEL构建历史经验的记忆流,以告知LLM生成的动作。
ii。多轮互动:
多轮互动方法利用多轮对话的背景来确定适当的行动。
ChatDev鼓励特工根据他们的对话历史采取行动。
DERA的对话代理允许研究者代理在沟通过程中提供反馈,指导决策者代理的行动。
一些方法,如多智能体辩论(MAD),涉及基于LLM的智能体之间的迭代交互,以实现共识。
iii.反馈调整:
代理人可以根据人类的反馈或与外部环境的接触来调整和加强他们的行动策略。
例如,Voyager允许代理在操作失败后改进其策略,或使用反馈机制验证成功的策略。
交互式构建学习代理(ICLA)使用用户对初始操作的反馈来迭代地增强计划。
SayCan采用强化学习框架,仅根据环境反馈调整行动。
iv.合并外部工具:
可以通过结合外部工具和扩展知识来源来增强代理。
代理可以访问和使用API、数据库、web应用程序和其他外部资源。
例如,ToolFormer确定要调用的适当API、调用的时间以及将结果集成到未来令牌预测中的最佳方法。
像ChemCrow这样的试剂包含了用于有机合成和药物发现任务的专家设计的工具。
ViperGPT将视觉和语言模型组装成用于各种查询的子程序,HuggingGPT将机器学习社区中的各种人工智能模型连接起来用于人工智能任务。
v.行动模块:
动作空间是指基于LLM的代理可以执行的可能动作。
它来自两个主要来源:扩展行动能力的外部工具和代理人自己的知识和技能。
外部工具包括API、知识库、可视化模型和语言模型。
这些工具可以实现各种操作,如信息检索、数据查询、语言生成和图像分析。
代理人自身获得的知识使其能够规划、生成语言和做出决策,从而进一步扩大其行动潜力。
2.学习策略
学习是人类和基于LLM的代理的基本机制,使他们能够获得知识和技能,并显著增强自己的能力。
这一变革性的过程使基于LLM的代理能够超越最初的编程,使他们能够以更高的技巧和适应性执行任务。
在本节中,我们将探讨基于LLM的代理所采用的各种学习策略及其深远的影响。
a.从实例中学习:
学习是人类获取知识和技能的基本机制,其意义延伸到基于LLM的主体。
通过学习,这些代理获得了在遵循指令、导航复杂任务和适应不同环境方面表现出色的能力。
这一变革过程使他们能够超越最初的编程,从而能够以更高的技巧和灵活性执行任务。
b.从人类注释中学习:
整合人类反馈对于微调LLM以与人类价值观保持一致至关重要,尤其是在设计代理以帮助或取代人类执行特定任务时。
刘等人提出的CoH方法包括人类评审员评估LLM产生的反应以区分有利和不利结果的步骤。
这种组合方法增强了LLM对错误的理解,但可能会占用大量资源。
c.学习LLM的注释:
LLM具有来自预训练的广泛世界知识,可用于注释任务,与人工注释相比降低了成本。
例如,刘等人开发了一种使用社会互动来微调LLM的稳定结盟方法。
雷纳引入了一个批评家模型来提供结构化反馈,提高了生成器模型的推理能力。
ToolFormer使用LLM对具有潜在API调用的预训练语料库进行注释,微调LLM以在文本生成中使用API。
ToolBench完全使用ChatGPT生成,提高了LLM使用工具的熟练程度。
值得注意的是,ToolLLaMA表现出强大的泛化能力。
d.从环境反馈中学习:
智能主体通常通过探索周围环境和与环境互动来学习。
例如,Voyager遵循迭代提示方法来验证新获得的技能。
LMA3自主设定目标、执行动作并对其表现进行评分。
GITM和内部独白基于大规模语言模型将环境反馈整合到规划过程中。
创建逼真的环境可以显著提高代理性能。
WebShop有一个模拟的电子商务环境,用于搜索、购买、接收奖励和反馈等活动。
实施例模拟器增强物理交互并微调下游任务的模型。
e.从交互式人类反馈中学习:
交互式的人类反馈允许动态适应、完善和与人类保持一致。
与一次性反馈相比,它更符合现实世界的场景。
例如,[156]采用了一个通信模块,通过基于聊天的交互和人类反馈来协作完成任务。
交互式反馈促进了可靠性、透明度、即时性、特定任务的理解和信任随着时间的推移而演变。
关键要点
总之,理解人工智能中的代理架构可以为其功能和操作提供有价值的见解。
人工智能中的智能代理体系结构由四个关键组件组成:
- 配置模块、内存模块、计划模块和动作模块,每个模块在塑造代理的行为时都有不同的目的。
- 评测模块通过各种方法(如手工制作、LLM生成和数据集对齐)来识别代理的角色。
- 内存模块模拟人类的记忆过程,并提供存储信息的结构和格式。
- 规划模块允许代理在有反馈和无反馈的情况下为复杂任务制定策略,增强他们解决问题的能力。
- 最后,行动模块将决策转化为结果,目标、战略、行动空间和影响发挥着关键作用。
在这里,我们已经到了本文的末尾。
我希望它有帮助。
如果你想了解更多关于人工智能代理的信息,
你可以看看这个博客。
- 275 次浏览