AgentScope如果说 AutoGen 更强调“对话驱动协作”那么 AgentScope 更强调“工程化的多智能体平台”。它不是单纯让几个智能体轮流聊天而是把多智能体应用看作一个需要长期运行、可监控、可扩展、可容错的系统来设计。AgentScope 的核心特点可以概括为消息驱动、工程化、分布式、多智能体协作。它适合构建规模更大、交互更复杂、对稳定性要求更高的智能体应用。AgentScope 的设计AgentScope 的核心设计思想是消息驱动架构。在这个框架中智能体之间的交互不是直接调用函数而是通过统一的消息对象进行传递。这和普通程序里的函数调用有明显区别。函数调用通常是“我调用你然后等你返回结果”而消息驱动更像是“我发送一条消息系统负责把消息交给对应智能体”。这种方式让智能体之间更加解耦也更适合异步、并发和分布式场景。AgentScope 中的消息通常由Msg表示fromagentscope.messageimportMsg messageMsg(nameAlice,contentHello, Bob!,roleuser,metadata{timestamp:2024-01-15T10:30:00Z,message_type:text,priority:normal})这条消息不仅包含文本内容还包含发送者、角色和元信息。也就是说AgentScope 把智能体交互过程中的“谁说的、说了什么、以什么身份说、附带什么信息”都标准化了。这种消息驱动方式带来几个好处智能体之间不需要强绑定降低耦合消息可以被记录方便调试和追踪消息可以被路由到本地或远程智能体系统天然适合异步执行和并发处理复杂任务可以被拆成多个消息流来组织。AgentScope 的架构也比较工程化。底层有Message、Memory、Model API、Tool等基础组件中间层提供智能体基础设施比如 ReAct 范式、工具调用、状态管理和异步控制再往上是多智能体协作层核心组件包括MsgHub和Pipeline最上层则是开发和部署相关能力比如 Runtime 和 Studio。其中最关键的是MsgHub。它可以理解为智能体之间的“消息中心”负责消息路由、广播、组播、持久化和分布式通信。智能体不需要关心对方是在同一个进程里还是部署在另一台机器上消息中心会负责处理通信细节。AgentScope 中的智能体一般基于AgentBase实现。开发者主要关注reply方法也就是智能体收到消息后如何回应。fromagentscope.agentsimportAgentBasefromagentscope.messageimportMsgclassCustomAgent(AgentBase):defreply(self,x:Msg)-Msg:responseself.model(x.content)returnMsg(nameself.name,contentresponse,roleassistant)defobserve(self,x:Msg)-None:self.memory.add(x)这里的重点是reply负责生成回应observe负责观察和记录消息。这样可以把智能体的“思考逻辑”和“通信机制”分开代码结构更清晰。三国狼人杀游戏文档中用“三国狼人杀”来展示 AgentScope 的多智能体能力。这个案例比 AutoGen 的软件开发团队更复杂因为狼人杀不是简单的顺序流程而是包含多个玩家、多个阶段、隐藏身份、并发讨论和规则约束的复杂交互场景。这个案例的价值在于它展示了 AgentScope 如何处理复杂角色协作 游戏流程控制 并发消息交互。系统大致分成三层第一层是游戏控制层由ThreeKingdomsWerewolfGame这类主控制器维护全局状态例如当前轮次、存活玩家、游戏阶段、胜负判断等。第二层是智能体交互层主要由MsgHub驱动。狼人私聊、白天公开讨论、预言家查验、女巫行动等都可以看成不同范围的消息通信。第三层是角色建模层。每个玩家都是一个智能体不仅有狼人杀里的游戏身份比如狼人、预言家、女巫、村民还叠加了三国人物身份比如刘备、曹操、张飞、周瑜等。也就是说每个智能体同时扮演两种角色游戏身份狼人 / 预言家 / 女巫 / 村民 人物身份刘备 / 曹操 / 张飞 / 周瑜 / 司马懿 ...这让智能体既要遵守游戏规则又要表现出人物性格。例如同样是狼人曹操可能更擅长伪装和谋略张飞可能更直接冲动。狼人阶段是 AgentScope 消息驱动设计的典型体现。狼人之间需要秘密讨论击杀目标这时可以通过MsgHub临时建立一个只包含狼人玩家的通信频道。asyncwithMsgHub(self.werewolves,enable_auto_broadcastTrue,announcementawaitself.moderator.announce(狼人们请讨论今晚的击杀目标。),)aswerewolves_hub:forwolfinself.werewolves:awaitwolf(structured_modelDiscussionModelCN)这段逻辑不是简单地调用某个“狼人决策函数”而是创建一个消息环境让狼人智能体在这个环境中进行讨论。等讨论完成后再进入投票或决策阶段。在投票阶段AgentScope 可以使用fanout_pipeline并行向多个智能体发送消息并收集它们的回复。vote_msgsawaitfanout_pipeline(self.alive_players,awaitself.moderator.announce(请投票选择要淘汰的玩家),structured_modelget_vote_model_cn(self.alive_players),enable_gatherFalse,)这比一个个顺序询问玩家更符合真实游戏场景也体现了 AgentScope 在并发处理上的优势。另一个重要点是结构化输出。狼人杀这种游戏很依赖规则如果智能体随意输出自然语言就很难稳定解析它到底要投谁、是否使用技能、是否达成一致。因此文档中通过 Pydantic 模型约束智能体输出格式。classDiscussionModelCN(BaseModel):reach_agreement:boolconfidence_level:intkey_evidence:Optional[str]None这样做的好处是智能体输出不只是“说了一段话”而是被约束成可解析、可验证的数据结构。比如投票必须给出目标女巫行动必须明确是否使用解药或毒药预言家每晚只能查验一个人。在复杂多智能体系统中结构化输出非常重要。它相当于把自然语言行为转化成程序可以稳定处理的对象降低了 LLM 输出不确定性带来的风险。输出案例 欢迎来到三国狼人杀 开始设置三国狼人杀游戏... 游戏主持人: 【赵云】身份狼人夜晚可以击杀一名玩家 游戏主持人: 【诸葛亮】身份狼人夜晚可以击杀一名玩家 游戏主持人: 【孙权】身份预言家每晚可以查验一名玩家身份 游戏主持人: 【关羽】身份女巫拥有解药和毒药各一瓶 游戏主持人: 【刘备】身份村民依靠推理和投票 游戏主持人: 【司马懿】身份村民依靠推理和投票 游戏主持人: 三国狼人杀游戏开始 参与者赵云、诸葛亮、孙权、关羽、刘备、司马懿 ✅ 游戏设置完成共 6 名玩家 第 1 轮游戏开始 游戏主持人: 第 1 夜降临天黑请闭眼... 游戏主持人: 狼人请睁眼选择今晚要击杀的目标... 游戏主持人: 狼人们请讨论今晚的击杀目标。 赵云: 吾乃常山赵子龙依我之见诸葛亮智谋超群若不早日除去恐成心腹大患。今夜不如先取诸葛亮首级诸位意下如何 诸葛亮: 哈哈子龙将军此言差矣。亮虽不才然若真是狼人岂会在首夜便引人注目倒是将军如此急切要除我莫非另有所图 赵云: 孔明兄果然能言善辩。不过孙权坐拥江东势力不可小觑关云长勇冠三军也值得考虑。不知诸位有何高见 诸葛亮: 子龙将军先言诸葛亮后言孙权、关羽如此朝三暮四倒令人疑心。亮以为今夜若要动手当选真正威胁全局之人。 游戏主持人: 请选择击杀目标 赵云: 若问子龙本心仍是那句话杀人当杀最善辩之人。孔明兄若留到白天恐怕会牵动全局。 诸葛亮: 关羽关云长武圣之名威震天下若在好人阵营必是核心战力。不如先除此人以绝后患。 游戏主持人: 预言家请睁眼选择要查验的玩家... 孙权: 我乃江东孙权今晚先查验一人以辨忠奸。 游戏主持人: 查验结果诸葛亮是狼人 游戏主持人: ‍♀️ 女巫请睁眼... 游戏主持人: 今晚诸葛亮被狼人击杀 关羽: 作为女巫我需要判断是否使用解药救下诸葛亮。AgentScope 的优势与局限性分析AgentScope 最大的优势是工程化能力强。它不是只解决“几个智能体怎么聊天”的问题而是更关注多智能体系统在真实应用中的运行方式消息如何传递状态如何保存异常如何处理多个智能体如何并发执行系统如何监控和部署。它特别适合以下场景多智能体数量较多智能体之间交互关系复杂需要异步或并发处理需要消息记录和可观测性需要分布式部署需要较强容错能力任务不是简单线性流程而是复杂状态变化。“三国狼人杀”案例很好地体现了这一点。游戏中有公开讨论、私密通信、投票、查验、救人、击杀等多个交互模式。用传统状态机写会比较复杂而 AgentScope 可以把这些流程转化为不同范围、不同规则的消息传递。不过AgentScope 的缺点也比较明显它的工程化能力越强学习成本也越高。开发者需要理解消息驱动、异步编程、结构化输出、分布式通信等概念。对于一个简单的双智能体对话任务使用 AgentScope 可能会显得有些“重”。因此AgentScope 更适合构建偏生产级、复杂度较高的多智能体系统。如果只是快速做一个小 Demo或者只是让几个智能体轮流讨论可能 AutoGen 这种更轻量的对话式框架会更直接。总结来说AgentScope 的关键词不是“聊天”而是“系统”。它把多智能体应用看成一个工程系统来搭建消息是交互基础MsgHub是通信中枢Pipeline负责编排流程结构化输出保证规则稳定异步和分布式能力支撑复杂应用运行。一句话概括AgentScope 适合把多智能体应用从 Demo 推向更复杂、更稳定、更工程化的系统。