Agent 的基本架构

根据《A survey on large language model based autonomous agents》智能体综述文章,Agent核心是需要具备以下几个核心特性与模块:Profile模块: Profile 模块的目的主要是做Agent角色认定,回答的核心问题有: 我是谁? 我在哪? 我该干什么?

Agent 的基本架构

根据《A survey on large language model based autonomous agents》智能体综述文章,Agent核心是需要具备以下几个核心特性与模块:

  • Profile模块: Profile 模块的目的主要是做Agent角色认定,回答的核心问题有: 我是谁?我在哪?我该干什么?无论是在当前的人与人之间的协同,还是人与智能体的协同,亦或是智能体与智能体间的协同。
  • Memory模块: Memory即记忆模块,主要用来存储、获取、检索信息。
  • Planning模块: 制定计划,可以根据过去的行为与目标动态规划下一步的行动。
  • Action模块: 执行模块,执行智能体的具体决策。

图片

Profile 模块

角色模块的目的是识别代理的角色。代理通常通过承担特定角色来执行任务,如程序员、教师和领域专家。角色模块通过将代理的配置文件写入提示中,影响LLM的行为。代理配置文件通常包括基本信息(如年龄、性别和职业)、心理学信息(反映代理的个性)和社交信息(详细说明代理之间的关系)。

角色生成策略

  • 手工方法:代理配置文件由人工指定。例如,Generative Agent通过姓名、目标和与其他代理的关系等信息描述代理。
  • LLM生成方法:代理配置文件由LLMs自动生成。例如,RecAgent首先创建几个种子配置文件,然后利用ChatGPT生成更多配置文件。
  • 数据集对齐方法:代理配置文件从现实世界数据集中获取。例如,[29]根据美国国家选举研究(ANES)中参与者的背景信息为GPT-3分配角色。

Memory 模块

记忆模块在代理架构设计中起着非常重要的作用。它存储从环境中感知到的信息,并利用记录的记忆来促进未来的行动。记忆模块帮助代理积累经验、自我进化,并以更一致、合理和有效的方式行事。

记忆结构

  • 统一记忆:仅模拟人类的短期记忆,通常通过上下文学习实现。例如,RLP和SayPlan使用上下文信息作为短期记忆。
  • 混合记忆:明确模拟人类的短期和长期记忆。例如,Generative Agent和AgentSims使用向量数据库实现长期记忆。

记忆格式

  • 自然语言:记忆信息直接使用自然语言描述。例如,Reflexion和Voyager使用自然语言存储体验反馈。
  • 嵌入:记忆信息被编码为嵌入向量。例如,MemoryBank和ChatDev将对话历史编码为向量。
  • 数据库:记忆信息存储在数据库中。例如,ChatDB和DB-GPT使用数据库作为记忆模块。
  • 结构化列表:记忆信息被组织成列表。例如,GITM使用层次树结构存储子目标的动作列表。

记忆操作

  • 记忆读取:从记忆中提取有意义的信息以增强代理的行动。例如,Generative Agent和GITM使用近期性、相关性和重要性评分函数提取信息。
  • 记忆写入:将感知到的环境信息存储在记忆中。例如,ChatDB和RET-LLM使用不同的策略处理记忆重复和溢出问题。
  • 记忆反思:模拟人类反思能力,生成更抽象、复杂和高层次的信息。例如,Generative Agent和GITM通过反思生成高层次见解。

Planning 模块

规划模块旨在赋予代理类似人类的能力,即将复杂任务分解为更简单的子任务并分别解决。规划模块根据代理在规划过程中是否可以接收反馈分为两类:无反馈规划和有反馈规划。

无反馈规划

  • 单路径推理:最终任务被分解为几个中间步骤,每个步骤只导致一个后续步骤。例如,Chain of Thought(CoT)和Zero-shot-CoT使用推理步骤作为提示。
  • 多路径推理:推理步骤被组织成树状结构,每个中间步骤可能有多个后续步骤。例如,Self-consistent CoT(CoT-SC)和Tree of Thoughts(ToT)使用树状推理结构生成计划。
  • 外部规划器:利用外部规划器生成计划。例如,LLM+P和LLM-DP使用外部规划器处理PDDL。

有反馈规划

  • 环境反馈:从环境中获取反馈以影响代理的未来行为。例如,ReAct和Voyager使用环境反馈进行计划。
  • 人类反馈:直接与人类互动以获取反馈。例如,Inner Monologue使用人类反馈调整其行动策略。
  • 模型反馈:利用预训练模型生成反馈。例如,Reflexion和SelfCheck使用模型反馈改进其推理过程。

Action 模块

行动模块负责将代理的决策转化为具体的结果。该模块位于最下游位置,直接与环境交互。行动模块受到角色、记忆和规划模块的影响。

行动目标

  • 任务完成:代理的行动旨在完成特定任务。例如,Voyager和ChatDev中的代理完成任务。
  • 沟通:代理的行动旨在与其他代理或真实人类沟通。例如,ChatDev和Inner Monologue中的代理进行沟通。
  • 环境探索:代理的行动旨在探索不熟悉的环境。例如,Voyager中的代理探索未知技能。

行动生成

  • 通过记忆回忆行动:行动是根据当前任务从代理记忆中提取信息生成的。例如,Generative Agent和GITM使用记忆信息指导行动。
  • 通过计划跟随行动:代理按照其预先生成的计划采取行动。例如,DEPS和GITM中的代理遵循计划。

行动空间

  • 外部工具:利用外部API、数据库和外部模型扩展行动空间。例如,HuggingGPT、ChatDB和ChemCrow使用外部工具。
  • 内部知识:依赖LLMs的内部知识指导行动。例如,DEPS、ChatDev和Generative Agent使用LLMs的规划、对话和常识理解能力。

行动影响

  • 改变环境:代理通过行动直接改变环境状态。例如,GITM和Voyager中的代理改变环境。
  • 改变内部状态:代理采取的行动改变代理本身。例如,Generative Agent和SayCan中的代理更新记忆。
  • 触发新行动:一个代理行动触发另一个行动。例如,Voyager中的代理在收集到所有必要资源后建造建筑物。

通过上述模块的协同作用,基于LLM的自主代理能够模拟人类行为,有效执行多样化任务。

相关资讯

我为什么放弃了 LangChain?

如果你关注了过去几个月中人工智能的爆炸式发展,那你大概率听说过 LangChain。简单来说,LangChain 是一个 Python 和 JavaScript 库,由 Harrison Chase 开发,用于连接 OpenAI 的 GPT API(后续已扩展到更多模型)以生成人工智能文本。更具体地说,它是论文《ReAct: Synergizing Reasoning and Acting in Language Models》的实现:该论文展示了一种提示技术,允许模型「推理」(通过思维链)和「行动」(通过能够使用

面壁智能ChatDev火遍全球,GitHub星标超1.2万

ChatDev 又双叒叕霸榜了 GitHub Trending,开源仅 6 周星标数已超 1.2 万!这一由面壁智能(ModelBest)联合清华大学 NLP 实验室共同开发的大模型全流程自动化软件开发框架,火遍全球,吸引国内外软件开发和创业者成为“自来水”。谷歌 DeepMind 大模型产品负责人 Bailey、资深数据科学家 Sanyam Bhutani等对 ChatDev 强大的自动开发软件功能及其背后的大模型群体智能技术进行了详细解读。DeepMind 大模型产品负责人 Bailey 的推特截图资深数据科学

从框架到经典方法,全面了解分布式深度强化学习DDRL

本文在回顾分布式深度强化学习 DDRL 基本框架的基础上,重点介绍了 IMPALA 框架系列方法。AlphaGo 是一个在人机博弈中赢得众多职业围棋手的 agent 机器人。随着 AlphaGo 的突破,深度强化学习(Deep Reinforcement Learning,DRL)成为一种公认的解决连续决策问题的有效技术。人们开发了大量算法来解决介于 DRL 与现实世界应用之间的挑战性问题,如探索与开发困境、数据低效、多 agent 合作与竞争等。在所有这些挑战中,由于 DRL 的试错学习机制需要大量交互数据,数据