在人工智能的快速发展中,AI Agent作为一项创新技术,正逐渐成为研究和应用的热点。AI Agent不仅仅是执行命令的程序,它们能够感知环境、做出决策并采取行动,展现出类似人类的群体协作能力。本文将探讨AI Agent的技术原理、开源框架、以及未来发展趋势。
AI Agent概述
AI Agent的迅速发展得益于大型语言模型(LLM)的驱动。自从2023年以来,LLM Agent因其在研究、框架和应用方面的迅猛发展而受到广泛关注。Agent的概念源自于能够通过传感器感知环境,并通过执行器对环境做出反应的实体。在工程实现上,AI Agent可以拆分为规划、记忆、工具和行动四大核心模块。
LLM Agent系统架构
LLM Agent系统架构可以概括为“1+4”模型,即一个大语言模型加上观察、思考、行动和记忆四个功能模块。这种架构使得AI Agent能够进行复杂的任务处理和决策制定。
Multi-Agents协作
Multi-Agents技术允许多个自主的Agent参与协作,模拟人类群体在解决问题时的动态。Agent与环境的接口可以是虚拟的,也可以是与物理世界的直接交互。Agent配置可以是预定义的、模型生成的或数据驱动的。Agent间的通信可以是合作、辩论或竞争,通信结构可以是分层、去中心化、集中化或共享消息池。
开源框架的技术剖析
开源框架为AI Agent的开发提供了多样化的工具和平台。以下是一些值得关注的开源框架:
斯坦福小镇
斯坦福小镇项目是一个多Agent的Demo Roleplay,展示了Agent如何感知环境并基于“记忆流”做出决策。Agent的记忆分为观察和反思两种类型,包括被动和主动行为,以及由LLM评估打分的重要性、时效性和相关性。
记忆流分成两个部分
第一种记忆类型Memory Objects:
- Observation(包括被动和主动行为)
- lmportance score:LLM评估打分(0-10)
- Recency score: 时间衰减因子
- Relevance score:向量检索
第二种记忆类型 Reflection:
这是Agent生成的更高层次、更抽象的思想
AutoGen
AutoGen是微软开发的一个多Agent框架,它允许用户构建自己的复杂工作流。这个框架需要用户自己定制解决复杂问题,例如组成软件公司写代码或组成虚拟小组讨论Idea。
Autogen 优势与不足总结
优势
微软官方主推开源产品,文档,示例比较完善丰富,相关研究和应用也在不断持续
不足
- 底层跟GTP模型深度绑定,如果需要使用Bedrock的模型或者本地模型,则需要使用LLMProxy方案(fastchat,litellm,ollama等)
- 对Claude 系列模型的message api不太友好,需要对接口改动较多。如消息中name参数缺失需要严格按照’userassistant’顺序等
- 无法对agent输出的message做精细化的控制(类似metagpt那种特定消息的订阅发布机制)导致每次运行消耗token数非常多,实际运行不太稳定,速度也非常慢
LangGraph
LangGraph是一套在langchain框架之上的开发组件,可以轻松开发带有状态的、可控循环流程的LLM应用。它借鉴了NetworkX框架的设计思路,将应用流程定义成一个图,其中节点代表Agent或工具,边代表执行顺序。
一个应用流程定义成一个图节点(node)可以代表一个agenttool,或者一次function call,亦或者一次大模型调用,甚至是链接一个子图。边(edge),则代表节点的执行顺序(数据流向),并且可以通过设置conditionaledge,来控制流程分支。
MetaGPT
MetaGPT是国内开源的一个Multi-Agent框架,它构成一个虚拟软件公司,内部包括不同角色的Agent,提供了软件公司全过程的精心调配。
MetaGPT记忆和通信机制
首先每个agent 维护一个自己的消息队列通过 watch(action),来订阅来自全局环境里某些特定 action 发布的消息,并触发observe,think,action,publish,把消息发给全局环境。全局环境中的消息又接着被其他订阅该action 的 agent 观察到,重复上述流程
ChatDev
Chat Dev是一个开源多代理(Agent)编程框架的项目,国内人工智能初创企业面壁智能打造的一个虚拟软件公司,由各种具有不同角色的代理人(Agent)运作,包括首席执行官(首席执行官)、首席采购官(首席产品官)、1首席技术官(首席技术官)、程序员等。查特开发内部的代理通过参与专门的功能研讨会(通过连锁店组合)进行协作,从需求分析,设计、编码、测试和到最终的文档编写,依次完成软件开发各个阶段的任务。
Bedrock Agent
Bedrock Agent代表了亚马逊云科技在AI Agent领域的解决方案。它通过用户调用agent、获取对话历史、生成观察或最终回复等步骤,实现了复杂的工作流程。
Agents工作流
Bedrock Agent的工作流包括用户调用agent、返回控制、Lambda获取对话历史、预处理和后处理等环节。这种工作流允许Agent在调用时需要函数的执行结果,并在循环中直到完成任务或询问用户后续问题。
Session和Prompt属性
Session和Prompt属性在用户和agent之间的会话期间持续存在,它们可以在Lambda事件中发送,用于个性化agent的行为。
Bedrock Agent – Orchestration
Bedrock Agent的编排采用了ReAct范式,即推理加动作加外部反馈,以提升回答的准确率。
总结与展望
AI Agent代表了工作流的革新,它们不再是简单的指令执行者,而是能够进行自我反思、规划和修正的参与者。设计有用的Agent AI应用需要考虑通信机制、记忆机制和工作流设计。
选择合适的Agent开发框架或服务时,需要考虑是否有足够的技术开发人员、是否需要快速上线、对数据和服务安全的看重程度、是否单Agent已经满足效果,以及是否有可参考的SOP或工作流。
垂直特定场景落地,具备开放世界的通用性Multi-Agents最大的作用是通过模拟人在生产活动中的群体协助,或者分工,来提高AI解决问题的能力上限,随着各类垂直特定场景的逐步落地(例如 AIGC创作 Agents,数据加工 Agents),未来会出现具备更好开放世界通用性的 AI Agent。
AI Agent技术的发展为人工智能领域带来了新的可能性。从技术原理的深入理解到开源框架的应用实践,再到未来趋势的展望,AI Agent正逐步成为推动智能化进程的重要力量。随着技术的不断成熟和应用场景的不断拓展,我们期待AI Agent能够在更多领域展现出其独特的价值和潜力。