# Notes: 多智能体群聊系统研究 ## 核心概念 ### 群聊系统 vs 之前的 Supervisor 系统 | 特性 | Supervisor 系统 | 群聊系统 | |------|----------------|----------| | 流程 | 线性:规划 → 执行 → 汇总 | 多阶段循环 | | Agent 关系 | 层级:Supervisor 管理 Workers | 平等协作 | | 通信方式 | 单向:任务分发 | 多向:互相讨论 | | 决策方式 | Supervisor 决定 | CEO 最终决策 | | 用户参与 | 旁观 | 可插话 | ### 设计模式 #### 1. 流水线模式 ``` Stage 1 (Presenter) → Stage 2 (Discusser) → Stage 3 (Summarizer) ``` #### 2. 消息传递 - 每个 Stage 维护一个消息队列 - Agent 的输出成为下一个 Agent 的输入 - 使用 Shared Context 存储共享状态 #### 3. 智能轮数 ```python class SmartRoundController: def should_continue(self, stage, round_num, messages): # 使用 LLM 判断是否继续 prompt = f""" 当前阶段: {stage} 当前轮数: {round_num} 讨论内容: {messages} 讨论是否已经充分?是否需要更多轮数? """ return llm.judge(prompt) ``` ## 复用现有架构 ### 可复用的组件 1. **LLM Factory** - 语言模型 2. **Tool Registry** - 工具注册 3. **Session Manager** - 会话管理 4. **Agent Executor** - Agent 执行逻辑(部分) ### 需要新增的组件 1. **GroupChatManager** - 群聊管理器 2. **Participant** - 参与者 Agent 3. **Stage Controller** - 阶段控制器 4. **SmartRoundController** - 智能轮数控制器 ## 关键数据结构 ### GroupMessage ```python class GroupMessage(BaseModel): id: str agent_id: str agent_name: str content: str timestamp: datetime stage: str # presenter/discusser/summarizer round: int replying_to: Optional[str] # 回复的消息 ID ``` ### GroupContext ```python class GroupContext(BaseModel): topic: str # 讨论主题 stage: str # 当前阶段 round: int # 当前轮数 messages: list[GroupMessage] # 所有消息 user_interruptions: list[str] # 用户插话 final_decision: Optional[str] # 最终决策 ```