为什么需要多智能体?
当开发者说他们需要“多智能体”时,他们通常是在寻求以下一种或多种能力:- 上下文管理:提供专业知识,同时避免超出模型的上下文窗口限制。如果上下文是无限的且延迟为零,你可以将所有知识都塞进一个提示中——但现实并非如此,因此你需要模式来有选择地呈现相关信息。
- 分布式开发:允许不同团队独立开发和维护功能,并将它们组合成一个具有清晰边界的大型系统。
- 并行化:为子任务生成专门的执行者,并让它们并发执行以获得更快的结果。
模式
以下是构建多智能体系统的主要模式,每种模式适用于不同的用例:选择模式
使用此表将你的需求与正确的模式匹配:- 分布式开发:不同团队能否独立维护组件?
- 并行化:多个智能体能否并发执行?
- 多跳:该模式是否支持连续调用多个子智能体?
- 直接用户交互:子智能体能否直接与用户对话?
可视化概览
- 子智能体
- 交接
- 技能
- 路由器
一个主智能体将子智能体作为工具进行协调。所有路由都通过主智能体。

性能比较
不同的模式具有不同的性能特征。了解这些权衡有助于你根据延迟和成本要求选择正确的模式。 关键指标:- 模型调用次数:LLM 调用的次数。调用越多 = 延迟越高(尤其是顺序调用时)和每次请求的 API 成本越高。
- 处理的令牌数:所有调用中上下文窗口的总使用量。令牌越多 = 处理成本越高,并可能触及上下文限制。
单次请求
用户: “买咖啡”一个专门的咖啡智能体/技能可以调用
buy_coffee 工具。
- 子智能体
- 交接
- 技能
- 路由器
4 次模型调用:

重复请求
第 1 轮: “买咖啡” 第 2 轮: “再买一次咖啡”用户在同一对话中重复相同的请求。
- 子智能体
- 交接
- 技能
- 路由器
再次 4 次调用 → 总计 8 次
- 子智能体设计上是无状态的——每次调用都遵循相同的流程
- 主智能体维护对话上下文,但子智能体每次都是全新的
- 这提供了强大的上下文隔离,但重复了整个流程
多领域
用户: “比较 Python、JavaScript 和 Rust 在 Web 开发方面的表现”每个语言智能体/技能包含约 2000 个令牌的文档。所有模式都可以进行并行工具调用。
- 子智能体
- 交接
- 技能
- 路由器
5 次调用,~9K 令牌
每个子智能体在隔离状态下工作,只处理其相关上下文。总计:9K 令牌。

总结
以下是所有三种场景下各模式的比较:Connect these docs to Claude, VSCode, and more via MCP for real-time answers.










