第 3 章:AI 应用开发框架

本章系统梳理了 AI 应用开发的主流框架与智能体范式,帮助开发者理解从单智能体到分布式多智能体的演进路径,掌握消息驱动与协同开发等关键工程实践。

智能体的定义与主流开发范式

本节介绍智能体(Agent)的基本定义及主流开发范式,帮助读者建立智能体应用的整体认知。

什么是智能体

我们可以将智能体(Agent)理解为一个具备自主理解、规划、记忆和工具使用能力的数字化实体。想象一个高度智能的个人助理,你只需告诉他“帮我规划一次去北京的周末旅行”,他就能自主完成以下任务:

  • 感知(Perception):理解用户的自然语言指令。
  • 规划与推理(Planning & Reasoning):借助模型推理能力,将任务拆解为查询往返机票、筛选酒店、规划景点路线、预估预算等子任务。
  • 记忆(Memory):记住你之前的偏好,比如喜欢靠窗的座位、偏爱的经济型酒店。
  • 工具(Tool):调用外部工具,如机票预订 API、酒店查询系统、地图服务等,来执行这些子任务。
  • 反馈与迭代(Feedback & Iteration):将规划好的行程草案反馈给你,并根据你的修改意见进行调整,最终完成预订。

智能体让 AI 从一个只会内容生成的语言模型,进化成一个具备自主规划能力的行动者。

智能体的主流开发范式

随着智能体技术的不断成熟,业界出现了多种有效的智能体开发范式。根据解决问题的场景与复杂度,主流智能体应用开发范式大致分为以下几种:

  • 简单 LLM 应用:直接调用模型 API 实现内容生成,完全依赖模型服务。
  • 单智能体:为 LLM 应用增加 RAG、Tool、Memory 等能力,使模型具备与特定环境交互的能力。
  • 工作流(Workflow):将应用拆分为多个独立子智能体,并按照预定义流程编排,适合复杂业务场景。
  • 多智能体系统(Multi-Agent):采用模型驱动、对话式流程编排,各子智能体协作完成复杂目标,具备更高的自主决策权。

接下来将围绕单智能体、工作流、多智能体系统三种核心开发范式展开,讲解其核心设计理念。

单智能体

Augmented LLM Application 旨在弥补大模型预训练特性的局限性,如无法获取最新数据、无法调用本地工具、无状态等。典型单智能体架构如下图所示。

下图展示了单智能体架构的基本模式:

图 1: 单智能体架构示意图
图 1: 单智能体架构示意图

单智能体架构的高级性依赖于底层模型能力,但在实际应用中,模型能力有限,单智能体模式面临工具选择、上下文膨胀、任务复杂度和可维护性等挑战。因此,业界设计了工作流和多智能体系统等模式来弥补模型能力不足。

工作流

工作流是一种编排模式,将复杂任务拆解为有序步骤,强调流程的确定性和可控性。常见工作流包括链式工作流(Chain)和路由工作流(Routing)。

链式工作流

链式工作流将复杂任务分解为一系列子任务,每一步由独立的 LLM 调用完成,上一阶段输出作为下一阶段输入。

下图展示了链式工作流的结构:

图 2: 链式工作流架构
图 2: 链式工作流架构

路由工作流

路由工作流通过对输入进行分类,将其分派到专门的下游任务或处理路径,实现关注点分离与精准响应。

下图展示了路由工作流的结构:

图 3: 路由工作流架构
图 3: 路由工作流架构

多智能体系统

多智能体系统采用自治协作模式,由多个具备自治能力的 Agent 组成,每个 Agent 有独立角色和能力,通过消息或上下文交互协同完成复杂目标。

这种方式更接近团队合作,适合任务边界不清晰、需动态规划的场景,如研究型问答、复杂数据分析等。其挑战在于交互和决策路径高度动态,难以预测和调试。

开发一个简单的智能体

本节以 Spring AI Alibaba 框架为例,介绍如何快速定义和实现一个功能完备的智能体。

智能体框架选型

智能体开发生态最初以 Python 为主,后逐步拓展到 Java 等语言。Spring AI Alibaba 等 Java 框架为开发者提供了丰富的智能体开发能力。

Spring AI Alibaba 中的 Agent 定义

Spring AI Alibaba 中的 Agent 定义为 React Agent,是典型的 ReAct 模式实现。ReAct 通过“思考 - 行动 - 观察”循环动态解决复杂问题。

下图展示了 ReAct 循环的具体步骤:

图 4: ReAct 智能体循环流程
图 4: ReAct 智能体循环流程

循环步骤包括:

  • 思考(Thought):分析任务目标、已有信息和可用工具,生成推理过程或计划。
  • 行动(Action):调用外部工具,生成结构化指令。
  • 观察(Observation):执行工具调用,将结果反馈给智能体。
  • 循环迭代:结合观察结果和任务目标,进入新一轮思考,直至任务完成。

示例代码与 AgenticAPI

快速定义一个简单的 Agent

定义智能体需明确以下基础配置:

  • Name(名称):唯一标识符,建议具备描述性。
  • Description(描述):简要说明能力,便于多智能体协作时区分。
  • Model(模型):指定底层大语言模型,如 “qwen-max”。

引导 Agent 行为(设置 Prompt 提示词)

instruction 参数用于引导智能体行为,包括:

  • 核心任务或目标
  • 性格或角色(Persona)
  • 行为约束
  • 工具使用说明
  • 输出格式要求

编写 instruction 时应清晰具体,可用 Markdown 格式和示例增强可读性。

高级设置:配置工具与模型参数

工具赋予智能体超越模型预训练数据的能力。可通过原生函数、API 或其他智能体实例为 Agent 配置工具,提升其与业务系统的集成能力。

工作流与多智能体

本节介绍如何通过多智能体架构应对复杂业务场景,重点讲解 Spring AI Alibaba 框架下的多智能体类型与工作流实现。

Spring AI Alibaba 中的多智能体类型

下图展示了 Spring AI Alibaba 中 Agent 的类继承关系:

图 5: Spring AI Alibaba Agent 类型关系图
图 5: Spring AI Alibaba Agent 类型关系图
类型ReactAgentFlowAgentMultiAgent
核心特性推理、生成、工具使用控制多个智能体流程控制多个智能体流程
流程编排预定义流程(串行、并行等)支持大模型决策的流程控制
确定性较高不确定性较高确定性介于 ReactAgent 和 FlowAgent 之间
表 1: Spring AI Alibaba 预置 Agent 类型对比

工作流-SequentialAgent

SequentialAgent 依次执行多个子 Agent,上一个 Agent 的输出作为下一个 Agent 的输入。

下图展示了 SequentialAgent 的典型架构:

图 6: SequentialAgent 架构
图 6: SequentialAgent 架构

示例:文章协作助手,包含 writer_agent、reviewer_agent 两个子智能体,通过 SequentialAgent 串联。

工作流-ParallelAgent

ParallelAgent 并行执行多个子 Agent,适合多领域任务协同。

下图展示了 ParallelAgent 的架构:

图 7: ParallelAgent 架构
图 7: ParallelAgent 架构

示例:智能搜索助手,包含多个领域子 Agent,并通过 MergerAgent 合并输出,最终用 SequentialAgent 串联。

下图为智能搜索助手的总体架构:

图 8: 智能搜索助手架构
图 8: 智能搜索助手架构

工作流-LoopAgent

LoopAgent 循环执行子 Agent,适合需要多轮迭代的任务。

下图展示了 LoopAgent 的架构:

图 9: LoopAgent 架构
图 9: LoopAgent 架构

多智能体系统-LlmRoutingAgent

LlmRoutingAgent 通过模型决策下一个子智能体走向,适合动态流程控制。

下图展示了 LlmRoutingAgent 的基本架构:

图 10: LlmRoutingAgent 架构
图 10: LlmRoutingAgent 架构

从单进程到分布式部署

本节介绍智能体从单进程到分布式部署的演进,重点解析 A2A 协议及其在分布式智能体系统中的应用。

下图展示了分布式智能体架构的演进趋势:

图 11: 分布式智能体架构演进
图 11: 分布式智能体架构演进

什么是 A2A 协议

A2A 协议是一项开放标准,旨在实现异构智能体间的高效通信与协作。其核心角色包括用户、A2A 客户端和 A2A 服务端。

A2A 协议的主要元素有:

  • Agent Card(智能体卡片):JSON 格式元数据,描述智能体能力和服务端点。
  • Task(任务):支持多轮交互的状态化任务。
  • Message(消息):单次通信的基本单元。
  • Artifact(产出物):任务完成后的实体化结果。
  • Part(内容块):消息或产出物的最小内容单元。

A2A 支持轮询、流式传输和推送通知三类交互机制。

A2A 协议的工作流

A2A 协议的工作流程分为三步:

  1. 发现 A2A Server 的 AgentCard。
  2. 进行授权和权限认证。
  3. 发起 A2A 请求(同步或流式)。

下图展示了 AgentCard 发现流程:

图 12: AgentCard 发现流程
图 12: AgentCard 发现流程

下图展示了 A2A 授权与认证流程:

图 13: A2A 授权与认证流程
图 13: A2A 授权与认证流程

下图展示了同步请求流程:

图 14: A2A 同步请求流程
图 14: A2A 同步请求流程

下图展示了流式请求流程:

图 15: A2A 流式请求流程
图 15: A2A 流式请求流程

基于 NacosA2ARegistry 的自动注册与发现

AgentCard 是远端 Agent 的数字名片,A2AClient 通过解析 AgentCard 实现智能体发现。AgentCard 的获取方式包括直接配置、固定 URI 和注册中心。

下图展示了直接配置方式:

图 16: AgentCard 直接配置
图 16: AgentCard 直接配置

下图展示了固定 URI 方式:

图 17: AgentCard 固定 URI 发现
图 17: AgentCard 固定 URI 发现

NacosA2A 注册中心

Nacos 作为 A2A 协议的注册中心,统一管理 Agent 的注册、发现和检索能力。

下图展示了 NacosA2A 注册中心架构:

图 18: NacosA2A 注册中心架构
图 18: NacosA2A 注册中心架构

Nacos 支持 Agent 版本管理和灰度发布,提升分布式智能体系统的可维护性和扩展性。

下图展示了 Nacos 在 Agent 应用中的多重角色:

图 19: Nacos 多重角色架构
图 19: Nacos 多重角色架构

消息驱动的智能体开发模式

本节介绍消息驱动在 AI 应用中的关键作用,重点分析 RocketMQ 在 AI 场景下的创新架构与调度能力。

消息模型提升 AI 通信效率

AI 应用交互具有长耗时、多轮次和高算力成本等特点。传统消息队列难以满足 AI 场景下的高并发、长会话和大消息体需求。

下图展示了基于 RocketMQ 的轻量化消息架构:

图 20: RocketMQ 轻量化消息架构
图 20: RocketMQ 轻量化消息架构

RocketMQ 针对 AI 场景优化了百万级 Lite-Topic 支持、自动管理、大消息体传输和严格顺序保障。

下图展示了消费分发策略:

图 21: RocketMQ 消费分发策略
图 21: RocketMQ 消费分发策略

基于消息驱动的智能化资源调度

RocketMQ 通过优先级与配额机制,实现流量削峰填谷、定速消费和智能资源分配。

下图展示了资源调度架构:

图 22: RocketMQ 智能资源调度架构
图 22: RocketMQ 智能资源调度架构

基于统一元数据的 AI 协同开发模式

AI 时代的协同开发可基于统一元数据,打通产品、设计、前后端等多角色协作流程,提升开发效率。

下图展示了统一元数据驱动的协同开发流程:

图 23: AI 协同开发流程
图 23: AI 协同开发流程
层级主要内容
智能协作层需求解析→智能校验→冲突检测
物料规范层Design Token 库→语义化组件→API 契约
转换引擎层文生图→图生代码→代码重构→接口联调
基础数据层结构化 PRD→设计系统→接口规范
表 2: 统一物料流系架构

在 AI 时代,团队可通过统一物料库和智能工具链,实现需求、设计、开发、测试等环节的高效协同。

总结

本章系统梳理了 AI 应用开发的主流框架与智能体范式,涵盖从单智能体到多智能体、分布式部署、消息驱动与协同开发等关键内容。理解并合理运用这些开发模式,将为构建高效、可扩展的 AI 原生应用奠定坚实基础。

文章导航

独立页面

这是书籍中的独立页面。

书籍首页

评论区