智能体的发展:从单任务到多代理协同与人代理交互
随着人工智能技术的不断进化,我们见证了智能体(AI Agent)的发展:从只能执行单一任务的简单代理,到如今能够进行多代理协同与人类代理交互的复杂系统。这种进步不仅拓宽了智能应用的边界,使其能够在更加复杂的环境中同时处理多种任务,还提升了与用户合作的能力,共同做出更加精细化的决策。
我们正步入一个新纪元,其中最新的开源大型语言模型(LLMs)能够自由地与多样化的外部工具交互,完成更加丰富和复杂的任务。这不仅推动了AI技术的民主化,还为社区驱动的创新和发展打开了新的大门。
尽管LLMs的智能和精准的提示输入提供了巨大优势,但有效利用这些模型仍然需要用户掌握相应的技巧,这已导致培训市场的出现。然而,prompt工程的复杂性也对普通用户的体验造成了挑战。
AI智能体,作为能够感知环境、做出决策和执行动作的独立实体,可能是解决这一挑战的关键。AI智能体不仅能够自主完成任务,也能够主动与环境交互。随着LLMs的发展,AI智能体为这些模型提供了实际行动力,不仅仅是作为工具,而是作为能够自动化处理通用问题的智能实体。通过释放LLMs的潜能,AI智能体将成为未来技术的关键驱动力。
例如,AutoGPT将复杂任务分解为更易管理的子任务,并生成相应的提示(prompts)。MetaGPT将高级人类流程管理经验编码到智能体的提示中,促进了多智能体之间的结构化合作。ChatDev受到软件开发的经典瀑布模型的启发,通过模拟一个虚拟软件公司的环境,展示了智能体在专业功能研讨会中的合作潜力。在这个环境中,多个智能体扮演不同的角色,遵循开发流程,通过聊天进行协作。
MetaGPT
MetaGPT是由Deep Wisdom联合几个大学发布的一个基于大型语言模型(LLMs)专门为高效整合人类工作流程而设计的多智能体合作框架。通过将标准化操作程序(SOPs)编码到智能体的提示序列中,MetaGPT简化了工作流程,使智能体能够以类似于人类专家的方式来校验中间成果,这有助于减少错误的发生。
在MetaGPT系统中,智能体根据装配线原则被分配不同的角色,以协同完成复杂任务。任务被分解为多个子任务,每个子任务由相应的智能体负责。这种方法不仅提高了任务执行的一致性,还提升了解决方案的质量。例如,在软件工程的协作任务中,MetaGPT展现出了相较于传统基于聊天的多智能体系统更一致的解决方案生成能力。
广泛接受的SOPs在任务分解和有效协调中扮演了关键角色,尤其是在确定团队成员职责和中间产物标准方面。在软件开发领域,产品经理通常依据SOP来创建产品需求文档(PRD),这有助于指导整个开发过程。
MetaGPT框架吸取了SOPs的重要经验,并允许智能体生成结构化且高质量的需求文档、设计文档、流程图和界面规格。这种结构化的中间输出能够显著提升目标代码生成的成功率。MetaGPT模拟了一个高度规范化的公司流程环境,在这个环境中,所有智能体必须严格遵守已确立的标准和工作流程。在角色扮演构架中,智能体被分配了各种各样的角色,以高效协同工作、分解复杂任务。这种角色扮演的设计有助于减少无效交流,并降低大模型幻觉风险。
MetaGPT通过"编程促进编程"(programming to program)的方法,提供了一个有前景的元编程框架。智能体不仅是代码的执行者,还主动参与到需求分析、系统设计、代码生成-修改-执行、以及运行时调试的全过程。每个智能体都拥有特定的角色和专业知识,并遵循既定的标准。如此一来,MetaGPT成为了一种独特的解决方案,在自动化编程任务中展现出巨大的潜力,并推动了元编程的高效实现。
MetaGPT接受单行需求作为输入,并输出用户故事、竞争分析、需求、数据结构、API、文档等。在内部,MetaGPT包括产品经理、架构师、项目经理和工程师。它提供了一个软件公司的整个流程,以及精心编排的标准操作程序(SOP)。代码 = SOP(团队) 是其核心理念。我们将SOP具体化,并将其应用到由大型语言模型(LLMs)组成的团队中。
在通信协议中,智能体通过共享消息池发布和订阅结构化消息,以此来协调工作和交换信息。这允许智能体根据自己的角色和任务需求,获取相关信息并执行任务。
MetaGPT中的工程师智能体可以生成代码,运行代码检查错误。如果遇到错误,智能体会查阅存储在记忆中的消息,并将它们与产品需求文档、系统设计和代码文件进行对比,以识别问题并进行修正。这一过程涉及迭代编程和可执行反馈,使得智能体可以不断优化其解决方案。
整个软件开发过程图强调了MetaGPT对SOPs的依赖性。这些SOPs规定了从项目开始到完成的每一步,确保智能体可以高效、系统地完成任务。
MetaGPT实验流程
安装步骤:
#步骤1:确保您的系统上安装了Python 3.9或更高版本。您可以使用以下命令来检查:
#您可以使用conda来初始化一个新的python环境
conda create -n metagpt python=3.9
conda activate metagpt
python3 --version
#步骤2:克隆仓库到您的本地机器以获取最新版本,并进行安装。
git clone https://github.com/geekan/MetaGPT.git
cd MetaGPT
pip3 install -e . # 或者 pip3 install metagpt # 用于稳定版本
#步骤3:设置您的OPENAI_API_KEY,或确保它已经存在于环境变量中
mkdir ~/.metagpt
cp config/config.yaml ~/.metagpt/config.yaml
vim ~/.metagpt/config.yaml
#步骤4:运行metagpt命令行工具
metagpt "Create a 2048 game in python"
#步骤5 [可选]:如果您想要保存工作区中的产物,如象限图、系统设计、序列流程图等,可以在执行步骤3之前执行此步骤。默认情况下,框架是兼容的,整个过程可以完全不执行此步骤而运行。
如果执行,请确保您的系统上安装了NPM。然后安装mermaid-js。(如果您的计算机中没有npm,请前往Node.js官方网站安装Node.js https://nodejs.org/,然后您的计算机中将有npm工具。)
npm --version
sudo npm install -g @mermaid-js/mermaid-cli
运行过程:
ChatDev
ChatDev是OpenBMB联合清华大学NLP实验室共同开发的大模型全流程自动化软件开发框架,它模拟了一家虚拟软件公司,由担任不同职能的多个智能代理运作,包括首席执行官(CEO)、首席产品官(CPO)、首席技术官(CTO)、程序员、审查员、测试员和设计师。这些智能代理构成了一个多代理组织架构,并共同致力于一个使命:“通过编程革新数字世界。” 在ChatDev中,代理们通过聊天参与研讨会协作,涵盖设计、编码、测试以及文档撰写等多种专业任务。
ChatDev的主要目标是提供一个易于使用、高度可定制和可扩展的框架,该框架基于大型语言模型(LLMs),旨在成为研究集体智能的理想场景。https://github.com/OpenBMB/ChatDev
ChatDev通过模拟软件开发的瀑布模型,实现了智能的分阶段、分聊天的协作。每个阶段包含多个原子聊天,而在每个聊天中,两个扮演不同角色的智能体通过任务导向的对话来协同完成子任务。这个流程不仅包括了智能体之间基于指令的互动,还包括了角色专业化、记忆流、自省等机制,以确保智能体能够高效、准确地执行任务,并持续优化决策过程。
角色专业化使每个智能体都能在对话中有效地扮演其指定的角色,比如程序员、审查员等。记忆流记录了聊天中的对话历史,使智能体在做决策时有足够的上下文信息。自省机制则是在达成共识的情况下,让智能体反思并验证决策,确保没有违反终止条件。
在编码和测试阶段,为了减少代码幻觉——即智能体生成与现有代码库不一致的代码——ChatDev引入了思维指令机制。智能体通过角色交换,明确询问或解释代码中的具体问题,这样可以更精确地定位问题所在,并通过更具体的指令指导程序员修复问题。这种机制加强了智能体对代码的理解,提高了编程和测试的准确性。
ChatDev实验流程
安装步骤:
克隆GitHub仓库:使用以下命令开始克隆仓库:
git clone https://github.com/OpenBMB/ChatDev.git
设置Python环境:确保你有一个3.9或更高版本的Python环境。你可以使用以下命令创建并激活这个环境,将ChatDev_conda_env替换为你喜欢的环境名称:
conda create -n ChatDev_conda_env python=3.9 -y
conda activate ChatDev_conda_env
安装依赖项:移动到ChatDev目录,并通过运行以下命令安装必需的依赖项:
cd ChatDev
pip3 install -r requirements.txt
设置OpenAI API密钥:将你的OpenAI API密钥作为环境变量导出。将"your_OpenAI_API_key"替换为你实际的API密钥。记住,这个环境变量是会话特定的,所以如果你打开一个新的终端会话,你需要再次设置它。在Unix/Linux系统上:
export OPENAI_API_KEY="your_OpenAI_API_key"
构建你的软件:使用以下命令开始构建你的软件,将[description_of_your_idea]替换为你的想法描述,将[project_name]替换为你想要的项目名称:在Unix/Linux系统上:
python3 run.py --task "[description_of_your_idea]" --name "[project_name]"
运行你的软件:一旦生成,你可以在WareHouse目录下的特定项目文件夹中找到你的软件,例如project_name_DefaultOrganization_timestamp。在该目录下使用以下命令运行你的软件:在Unix/Linux系统上:
cd WareHouse/project_name_DefaultOrganization_timestamp
python3 main.py
# 安装完成后,我们创建了一个字谜游戏:
python3 run.py --task "创建一个猜英文字谜的游戏" --name 'puzzle'
# 可视化智能代理对游戏的生成过程:
python3 visualizer/app.py
MetaGPT和ChatDev的异同
MetaGPT和ChatDev都支持自动化软件开发,但在架构设计、技术实现、支持功能等方面存在一些差异。
功能特点 | MetaGPT | ChatDev |
流程标准化 | 标准化操作程序 | 聊天链 |
任务解决模式 | 按指令操作 | 智能体间通信 |
架构设计 | 系统接口 | —① |
缓解代码幻觉 | — | 思维指令 |
艺术设计 | — | 文字到图片设计师 |
记忆 | 上下文检索 | 短时记忆共享 |
消息共享 | 智能体层面广播 | 阶段层面传递 |
版本管理 | — | Git |
自动化测试 | —② | 解释器反馈 |
自然语言文档 | 产品需求文档 | 用户手册 |
①MetaGPT通过序列流程显式设计架构;而ChatDev的架构设计是通过生成性基础模型隐式实现的。②截至2023年9月19日,MetaGPT的官方代码库目前不支持软件开发的自动化测试。
各种智能体在快速发展
全球范围内,多个AI智能体产品如AiAgent.app和GPT Researcher已被推出,并在媒体报道、行业分析、研究助理等领域获得成功应用。这些智能体设计得足够灵活,能够调用软件应用和硬件设备,大大提升了工作效率和便利性。尽管AI智能体的发展时间短暂,它们迅速在各行业中得到认可。随着大型语言模型(LLMs)的多模态能力和计算力的增强,早年提出的智能体理念得以迅速实现,并广泛应用于多个领域。各种开源AI智能体的出现,加速了技术供应商和创业团队引入智能体的步伐,并帮助更多组织认识到并接受了AI智能体的概念,这可能成为LLMs落地的主要模式,并助力多个行业更好地利用LLMs。
最后分享
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型面试题
面试,不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费
】
如有侵权,请联系删除。