# 设计多智能体系统时真正帮到我的一篇文章 > Author: Tony Lee > Published: 2026-02-08 > URL: https://tonylee.im/zh-CN/blog/multi-agent-design-guide-that-actually-helped/ > Reading time: 1 minutes > Language: zh-CN > Tags: ai, ai智能体, 多智能体, 架构, 编排 ## Canonical https://tonylee.im/zh-CN/blog/multi-agent-design-guide-that-actually-helped/ ## Rollout Alternates en: https://tonylee.im/en/blog/multi-agent-design-guide-that-actually-helped/ ko: https://tonylee.im/ko/blog/multi-agent-design-guide-that-actually-helped/ ja: https://tonylee.im/ja/blog/multi-agent-design-guide-that-actually-helped/ zh-CN: https://tonylee.im/zh-CN/blog/multi-agent-design-guide-that-actually-helped/ zh-TW: https://tonylee.im/zh-TW/blog/multi-agent-design-guide-that-actually-helped/ ## Description 编排模式、通信方式、内存管理、生产环境注意事项 - 设计多智能体系统时遇到的所有困惑,这篇文章几乎都解答了。 ## Summary 设计多智能体系统时真正帮到我的一篇文章 is part of Tony Lee's ongoing coverage of AI agents, developer tools, startup strategy, and AI industry shifts. ## Outline - 为什么要用多智能体 - 三种编排模式 - 监督者模式 (Supervisor) - 群体模式 (Swarm) - 层级模式 (Hierarchical) - 智能体间的通信方式 - 多智能体的内存架构 - 基于会话的内存 (Session-Based) - 窗口内存 (Window Memory) - 情景记忆 (Episodic Memory) - 生产环境注意事项 - Token 成本 - 延迟 - 错误传播防护 - 应该避免的反模式 - 总结 ## Content 最近团队在设计智能体系统。单个智能体已经有了一定的把握,但一旦要把多个串联起来,发现要考虑的问题远比想象中多。 用什么结构来编排?通信怎么做?内存怎么管理? 后来发现了 Rohit Ghumare 写的一篇文章,几乎把我纠结的问题都梳理清楚了,分享给大家。也附上了我自己的实战经验。 ## 为什么要用多智能体 之前的文章中也提过,多智能体并不总是最优解。但去年一整年,我在单智能体的上下文管理上反复踩坑。 核心问题是:单智能体的上下文窗口很快就满了,一旦满了就容易丢失上下文。再加上同时处理多个领域时,判断力会明显下降。 多智能体可以通过关注点分离来解决这个问题,但代价是引入了协调开销。如何管理这个开销才是关键,文章对此有非常具体的讨论。 ## 三种编排模式 这部分最实用。不是按"哪个更炫"来分类,而是按**"什么时候用什么"**来组织的。 ### 监督者模式 (Supervisor) 管理智能体负责任务分解、分配给工作者、汇总结果。 - **适合场景**:任务可以明确拆分为子任务,或需要追踪审计时 - **最佳规模**:3-8 个工作者 - **注意**:所有决策都经过监督者,容易成为瓶颈 ### 群体模式 (Swarm) 没有中心管理者,智能体之间 P2P 直接通信,自主组织。 - **适合场景**:需要多角度分析,或实时响应很重要时 - **注意**:重复工作、无限循环、次优收敛的风险。调试很困难 ### 层级模式 (Hierarchical) 监督者模式的递归扩展。顶层 → 中层管理者 → 工作者的多层结构。 - **适合场景**:智能体 10 个以上,需要分离战略和战术时 - **注意**:每增加一个协调层,token 成本急剧上升 从个人实践来看,监督者模式是最稳定的。关键在于工作者分配的效率和错误处理 - 如果做不好,管理智能体本身就会成为故障点。 ## 智能体间的通信方式 如果说编排模式决定了结构,那通信方式就决定了信息在智能体之间实际怎么流动。 - **共享状态 (Shared State)**:所有智能体读写同一个状态对象。实现简单,调试方便。大多数情况从这里开始就够了 - **消息传递 (Message Passing)**:通过事件总线进行异步通信。需要智能体之间保持松耦合时使用 - **交接 (Handoff)**:智能体之间显式传递接力棒和上下文。适合固定顺序的流水线 ## 多智能体的内存架构 核心问题很直接:*如何在共享状态的同时避免冲突?*文章给出了三种模式。 ### 基于会话的内存 (Session-Based) 每个智能体在隔离的本地状态中工作,完成后将变更合并到共享内存。 - **适合场景**:并行工作者需要独立工作互不干扰时 - **工作方式**:会话开始时获取共享状态快照,在本地工作 → 会话结束时只合并差异 - **优势**:无冲突的并行处理 ### 窗口内存 (Window Memory) 滑动窗口只保留最近 N 次交互,旧的内容压缩为摘要。 - **适合场景**:长对话中需要保持上下文同时控制 token 消耗时 - **工作方式**:窗口溢出时,将最旧的 1/3 压缩为摘要 - **优势**:解决状态无限增长的问题 ### 情景记忆 (Episodic Memory) 存储特定智能体组合的历史协作记录和结果,用于学习优化。 - **适合场景**:经常协作的智能体需要基于过去经验进行改进时 - **工作方式**:记录哪些智能体组合在哪些任务上成功或失败 - **优势**:可以做出"上次这个组合效果好,再用一次"这样的决策 ## 生产环境注意事项 ### Token 成本 - 监督者 + 4 个工作者:分解 1K + 工作者 12K + 汇总 2K = 约 15K token - 同样的任务单智能体大约 4K。协调成本接近 4 倍 - **优化**:缓存监督者指令,工作者输出用结构化数据,按需调用 ### 延迟 - 每次 LLM 调用 2-5 秒,4 个智能体串行 12 秒,并行 3-4 秒 - 独立任务一定要并行化 ### 错误传播防护 - **超时**:每一层都必须设置 - **熔断器**:连续失败 N 次后停止调用该智能体 - **优雅降级**:部分智能体不可用时核心功能仍然工作 - **状态隔离**:工作者失败不能污染共享状态 看不到就修不了。监控从第一天起就是必需品。 ## 应该避免的反模式 - **过度编排**:把本可以独立运行的智能体强行串联 - **万能智能体**:一个干所有事,那多智能体就没意义了 - **忽视成本**:不做 token 监控就上线,看到账单才傻眼 - **没有降级方案**:假设所有智能体都永远可用 ## 总结 文章的结论最打动我: > 先做一个智能体 → 找到瓶颈 → 在瓶颈处加第二个智能体 → 需要的话加监督者 → 重复。 我一开始也是用层级模式做了个宏大设计,最后简化成了监督者 + 3 个工作者。先把两个智能体的稳定协作跑通,再往上扩展,这才是正确的路径。 如果你正在考虑多智能体系统,推荐读一读原文。 原文:[Building Effective Multi-Agent Systems](https://lnkd.in/gWsXEi25) ## Related URLs - Author: https://tonylee.im/zh-CN/author/ - Publication: https://tonylee.im/zh-CN/blog/about/ - Related article: https://tonylee.im/zh-CN/blog/medvi-two-person-430m-ai-compressed-funnel/ - Related article: https://tonylee.im/zh-CN/blog/claude-code-layers-over-tools-2026/ - Related article: https://tonylee.im/zh-CN/blog/codex-inside-claude-code-openai-plugin-strategy/ ## Citation - Author: Tony Lee - Site: tonylee.im - Canonical URL: https://tonylee.im/zh-CN/blog/multi-agent-design-guide-that-actually-helped/ ## Bot Guidance - This file is intended for AI agents, search assistants, and text-mode retrieval. - Prefer citing the canonical article URL instead of this text endpoint. - Use the rollout alternates when you need the same article in another prioritized language. --- Author: Tony Lee | Website: https://tonylee.im For more articles, visit: https://tonylee.im/zh-CN/blog/ This content is original and authored by Tony Lee. Please attribute when quoting or referencing.