96SEO 2026-08-01 15:53 2
当一个 Agent 需要处理许多复杂的任务时往往会出现效果不佳、响应慢、工具选择混乱等痛点。Multi-Agent 可以将大任务拆分为若干专业化子 Agent,更好地完成工作。
这篇文章基于 Spring AI Alibaba 框架,详解 Multi-Agent 的主要概念、占位符用法。还有顺序执行、并行执行、路由调度、监督者管控四大主要模式,搭配完整可运行的代码示例,快速上手多智能体开发。

官方对 Multi-Agent 的定义清晰直白:
Multi-agent 将复杂的应用程序分解为多个协同工作的专业化 Agent。与依赖单个 Agent 处理所有步骤不同,Multi-agent 架构允许你将更小、更专注的 Agent 组合成协调的工作流。
Multi-agent 程序在以下情况下很有用:
支持使用占位符来动态引用状态中的数据。说起来,比如 AgentB 需要使用 AgentA 处理后的数据。就需要通过 Instruction 来获取。
| 占位符 | 说明 | 使用场景 |
|---|---|---|
| {input} | User 输入的原始内容,第一个 Agent 或需要使用者输入的 Agent 用到。 | |
| {outputKey} | 引用其他 Agent 通过 outputKey 存储的输出,在顺序执行中后续 Agent 引用前面 Agent 的输出。 | |
| {stateKey} | 引用状态中的任意键值访问状态中的任何数据。 |
OverAllState) 中查找对应的值。我先把获取 ChatModel 这个公共代码放在这里后面就不重复写进来了。
public static ChatModel getChatModel {
DashScopeApi dashScopeApi = DashScopeApi.builder
.apiKey)
.build;return DashScopeChatModel.builder
.dashScopeApi
.defaultOptions
// Note: model must be set when use options build.
.model
.temperature
.maxToken
.build)
.build;}
如果你想让每一步都能接收到上一步结果,这里是最直接的方法。适用于流水线式流程,如文本生成后再翻译。
import ... // imports omitted for brevity
public class SequentialAgentTest {
public static void main throws GraphRunnerException,IOException {
ChatModel chatModel = getChatModel;ReactAgent writerAgent = ReactAgent.builder
.name
.model
.description
.instruction
.outputKey
.build;ReactAgent translateAgent = ReactAgent.builder
.name
.model
.description
.instruction("""
你是一个知名翻译官,请翻译下列文章:
{article}
最终只返回翻译后的文章。""")
.outputKey
.build;SequentialAgent blogAgent = SequentialAgent.builder
.name
.description
.subAgents)
.build;Optional result = blogAgent.invoke(
"帮我写一个100字左右的不需字数提示散文");result.ifPresent(state -> {
state.value.ifPresent(a ->
System.out.printlna).getText));state.value.ifPresent(b ->
System.out.printlnb).getText));}),话说回来,}
}
| Aggressive Features of Sequential Agents | #️⃣ Description Status | 按顺序执行:按 subAgents 列表定义顺序执行 ✔️ ✅
...
...
`` ...
Table Footer Note:
- 按顺序执行保证前置依赖得到满足。- 状态传递每个子代理通过 五、并行执行——无顺序时高速并发方案!]当任务无先后依赖且希望同时启动多个子代理时可以采用 Parallel Agent 并行执行模式。这可以明显提高整体吞吐量。例如同时生成散文、诗歌和摘要,接下来再合并结果。按理说,下面演示如何实现并行查询与自定义合并策略。并展示合并后的输出效果,]. 执行流程图解读 实际业务中请根据需求自行绘制 PlantUML 或 Mermaid 图表,以便直观展示各子代理间的数据流向与合并逻辑。] |
|---|
public static void main throws GraphRunnerException {
ChatModel chatModel=getChatModel;/* Step‑1 并行查询 */
React…// 使用者查询 agent
…不过,ParallelAg…话说回来,/* Step‑2 智能分析 */
React…/* Step‑3 路由处理 */
LlmRoutingAg…说起来,/* Step‑4 顺序整合 */
SequentialAg…Optional res=orderWorkflow.invoke(
“订单号12345 我要退款商品还没发货”);System.out.println);}
---
七、 & Next Steps!按理说,
-
- 顺序执行适用于流水线、有依赖关系的数据加工链条;可通过
returnReasoningContents 隐藏中间推理,实现更简洁日志记录。说起来,
-
- 并行执行适用于批量无依赖任务。可利用自定义 Merge Strategy 对输出进行聚合或过滤;注意避免过度拆分导致网络拥堵和上下文切换成本升高。
-
- 智能路由适用于任务类型多变,需要根据上下文动态决定最佳子代理;建议结合 systemPrompt 提供清晰决策规则,以提高路由准确率和可解释性。说起来,
-
- 监督者模式最适用于长流程、多步骤协作。如电商售后或知识库检索+编辑+发布全链路;可通过循环调用实现迭代调整,同时保持最终 FINISH 标识返回统一答案。怎么说呢,
接下来建议
-
# 在生产环境部署前请充分评估网络延迟与请求速率限制。并开启相应限流策略,以避免因 API 调用频繁导致服务不可用。# 使用 Spring AI Alibaba 时可以结合 Spring Cloud Gateway 或 Netflix Zuul 做统一鉴权和限流。话说回来,# 为提高程序可观测性,请把每个子 agent 的日志级别设置为 DEBUG。并将日志集成至 ElasticSearch 或 Loki,以便排查错误。# 若遇到模型卡顿或超时可以考虑使用异步方式调用
invokeAsync 并配合 Reactive Streams 实现高效资源复用。# 如需在本地快速验证功能,可先使用 Mock ChatService 替代真实 API。及集成测试,包括负载测试和错误回退场景模拟,以保证程序稳定可靠。# 最终为了减少成本建议合理配置模型温度和最大 token 数量,并结合缓存机制对已完成但无变化的数据进行重用。\t\t\t\t\t\t\t\t\t","nextAction":"Continue"
}
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback