智能体作为工具(Agent Tool)
Multi-agent 将复杂的应用程序分解为多个协同工作的专业化Agent。与依赖单个Agent处理所有步骤不同,Multi-agent架构允许你将更小、更专注的Agent组合成协调的工作流。
Multi-agent系统在以下情况下很有用:
- 单个Agent拥有太多工具,难以做出正确的工具选择决策
- 上下文或记忆增长过大,单个Agent难以有效跟踪
- 任务需要专业化(例如:规划器、研究员、数学专家)
Multi-agent模式
Spring AI Alibaba支持以下Multi-agent模式:
| 模式 | 工作原理 | 控制流 | 使用场景 |
|---|---|---|---|
| Tool Calling | Supervisor Agent将其他Agent作为工具调用。"工具"Agent不直接与用户对话——它们只执行任务并返回结果。 | 集中式:所有路由都通过调用Agent。 | 任务编排、结构化工作流。 |
| Handoffs | 当前的Agent决定将控制权转移给另一个Agent。活动Agent随之变更,用户可以继续与新的Agent直接交互。 | 去中心化:Agent可以改变当前由谁来担当活跃Agent。 | 跨领域对话、专家接管。 |
选择模式
| 问题 | 工具调用 | 交接(Handoffs) |
|---|---|---|
| 需要集中控制工作流程? | ✅ 是 | ❌ 否 |
| 希望Agent直接与用户交互? | ❌ 否 | ✅ 是 |
| 专家之间复杂的、类人对话? | ❌ 有限 | ✅ 强 |
你可以混合使用两种模式——使用交接进行Agent切换,并让每个Agent将子Agent作为工具调用来执行专门任务。
自定义Agent上下文
Multi-agent设计的核心是上下文工程——决定每个Agent看到什么信息。Spring AI Alibaba 为你提供细粒度的控制:
- 将对话或状态的哪些部分传递给每个Agent
- 为子Agent定制专门的提示
- 包含/排除中间推理
- 为每个Agent自定义输入/输出格式
系统的质量在很大程度上取决于上下文工程。目标是确保每个Agent都能访问执行任务所需的正确数据,无论它是作为工具还是作为活动Agent。