Skip to main content
说明: 原先的 Spring Boot 示例模块 agentscope-examples/multiagent-patterns/ 已在 2.0 包重构中移除。请以本文中的代码片段作为参考实现。其他可运行示例见 agentscope-examples/documentation/
本示例使用 Spring AI Alibaba 的流式智能体(SequentialAgentParallelAgentLoopAgent)与 AgentScopeAgent 子智能体及 AgentScope 的 DashScopeChatModelModel)。各管道由基于 ReActAgent 的 AgentScopeAgent 构建,并通过 PipelineService 调用。

前置条件

  • JDK 17+
  • Maven 3.6+
  • DashScope API Keyexport AI_DASHSCOPE_API_KEY=your-key 或在 application.yml 中设置 spring.ai.dashscope.api-key

模型配置

示例使用一个共用的 Model Bean(DashScopeChatModel),供所有管道子智能体使用:

1. SequentialAgent:自然语言 → SQL → 得分

场景:用户用自然语言描述查询。管道(1)SQL 生成器将其转为 MySQL SQL,(2)SQL 评分器评估 SQL 与用户意图的匹配度(0–1)。子智能体按顺序执行,前一环节输出作为下一环节输入。 示例输入:「列出过去 30 天总金额大于 500 的所有订单。」

实现

  • SQL 生成器instruction("{input}")outputKey("sql") — 接收用户输入,将生成的 SQL 写入状态键 sql
  • SQL 评分器instruction("... {sql} ... {input} ...")outputKey("score") — 接收上一步的 sql 与原始 input,将得分写入状态键 score

2. ParallelAgent:多角度调研

场景:用户给出一个主题,管道从技术、金融/商业、市场/行业三个角度并行调研,结果合并为一份报告(research_report)。 示例输入:「调研大语言模型的当前发展状况。」(演示中使用「AI agents in enterprise software」。)

实现

  • 每个子智能体使用 instruction("Research the following topic: {input}.") 及各自的 outputKeytech_analysisfinance_analysismarket_analysis)。
  • DefaultMergeStrategy 将子智能体输出合并为一份结果,写入 mergeOutputKey research_report

3. LoopAgent:SQL 迭代优化直到质量阈值

场景:从自然语言生成 SQL,并迭代优化直到质量得分超过 0.5。每次迭代执行内层 SequentialAgent:SQL 生成器 → SQL 评分器。循环直到得分 > 0.5 或达到最大迭代次数。 示例输入:「找出 2024 年下单超过 3 次的客户。」

实现

LoopPipelineConfig 中构建的 SQL 生成器与 SQL 评分器 AgentScopeAgent 与 SequentialPipelineConfig 相同(相同 prompt、instructionoutputKey)。然后将它们包在一个 SequentialAgent 中,再包在带条件循环策略的 LoopAgent 中:
  • LoopAgent 包装一个 SequentialAgentsql_agent),每次迭代执行 SQL 生成器再执行 SQL 评分器。
  • loopStrategyLoopMode.condition(...) — 接收上一轮消息,读取最后一条(评分器输出),解析为数字;当 score > 0.5 时返回 true 结束循环。

调用管道:PipelineService

PipelineService 注入三个管道智能体,对外提供 runSequentialrunParallelrunLoop。每个方法传入字符串输入并返回对应的结果记录。
返回类型: 服务实现片段(如何从状态中读取结果):

可选演示运行器

pipeline.runner.enabled=true 时,PipelineCommandRunner 在启动时为每个管道运行一次演示(固定示例输入并输出日志):

配置

相关文档