尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南

AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南 1.集成生态全景解析构建企业级智能体系统的集成之道2.长期记忆集成深度解析让智能体真正“记住“用户3.Agent 状态存储AgentStateStore深度解析构建可恢复、可扩展的智能体运行时4.RAG 知识库集成全攻略从自建向量库到第三方平台一篇讲透5.技能仓库Skill Repository完全实战指南6.协议集成全景解析A2A、AG-UI、Agent Protocol 三大开放协议实战指南7.集成 Higress AI 网关智能体流量治理的生产级实战8.深度集成 Nacos智能体注册发现、技能管理与动态治理全实战9.集成 Scheduler 调度器让智能体“按时上班“的生产级定时调度实战10.集成 Chat Completions Web一行依赖让你的 Agent 变身 OpenAI 兼容服务11.集成在线训练Training让你的 Agent 越用越聪明一、引言协议层是智能体规模化的最后一公里2025 年 4 月Google 发布 A2AAgent-to-Agent协议2025 年 5 月CopilotKit 团队推出 AG-UIAgent-User Interaction Protocol。AI Agent 生态正在经历从各自为政到协议互通的关键转变。但在实际落地中企业面临的挑战更加复杂语言栈多样化核心业务团队用 Java/Go算法团队用 Python跨语言协同困难框架碎片化LangChain、AutoGen、CrewAI、AgentScope 各有各的接口规范前端适配重复造轮子每个团队都在自定义 SSE 事件格式无法复用前端组件AgentScope Java 2.0 在 extensions-protocol 模块中提供了四大协议适配器以独立 Maven 模块的形式实现即插即用的模块化集成协议适配器Maven Artifact职责定位A2A客户端 服务端agentscope-extensions-protocol-a2aAgent 间标准化通信与任务协作AG-UIagentscope-extensions-protocol-aguiAgent 与前端 UI 的事件驱动双向交互Agent Protocolagentscope-extensions-protocol-agent-protocol将 Agent 暴露为标准 REST APIChat Completions Webagentscope-extensions-protocol-chat-completions-web兼容 OpenAI Chat Completions API这四大协议覆盖了智能体系统的三个交互维度┌─────────────────────────────────────────────────────────┐ │ 用户 / 前端应用 │ │ ↕ AG-UIAgent ↔ User Interface │ ├─────────────────────────────────────────────────────────┤ │ 编排层 / 业务服务 │ │ ↕ Agent ProtocolAgent ↔ REST Client │ ├─────────────────────────────────────────────────────────┤ │ Agent 集群 │ │ ↕ A2AAgent ↔ Agent │ └─────────────────────────────────────────────────────────┘二、A2A 协议集成跨框架、跨语言的智能体互操作2.1 协议背景A2AAgent-to-Agent Protocol由 Google 于 2025 年 4 月发布同年 6 月捐赠给 Linux Foundation由 AWS、Cisco、Google、Microsoft、Salesforce、SAP 等共同维护。截至 2026 年已有超过 150 家组织支持该协议。其核心设计目标异构互操作不同框架、不同厂商的 Agent 可以互相发现、通信和协作不共享内存Agent 之间无需共享工具、上下文或内部状态基于现有标准构建在 HTTP、JSON、SSE 之上易于与现有技术栈集成2.2 核心概念概念说明Agent CardAgent 的机器可读能力名片名称、描述、技能、安全要求等类似微服务的 API 文档TaskA2A 中的核心工作单元具有完整生命周期Submitted → Working → Completed/Failed/CanceledMessageClient 与 Server 之间交换的对话消息ArtifactTask 执行过程中产生的输出物文件、数据等SkillAgent Card 中声明的能力单元描述 Agent 能做什么 MCP 与 A2A 的关系MCP 标准化了 Agent 如何调用工具手和脚A2A 标准化了 Agent 之间如何通信嘴巴和耳朵。两者互补不是替代关系。2.3 AgentScope Java 的 A2A 实现AgentScope Java 提供了完整的A2A Server A2A Client双端实现。添加依赖dependencygroupIdio.agentscope/groupIdartifactIdagentscope-extensions-protocol-a2a/artifactIdversion${agentscope.version}/version/dependencyA2A Server将 Agent 包装为 A2A 服务端点importio.agentscope.a2a.server.A2aServer;importio.agentscope.agent.ReActAgent;// 1. 构建 AgentReActAgentagentReActAgent.builder().name(TravelAssistant).description(帮助用户规划旅行行程).model(model).toolkit(toolkit).build();// 2. 创建 A2A ServerSpring Boot 自动配置或编程式A2aServera2aServerA2aServer.builder().agent(agent).port(8080).build();a2aServer.start();启动后Server 会自动暴露GET /.well-known/agent.json → Agent Card能力发现POST / → A2A JSON-RPC 端点Task 提交、消息发送GET /events → SSE 流流式事件推送A2A Client调用远端 A2A AgentAgentScope 支持两种客户端发现模式模式一Well-Known URI 直连importio.agentscope.a2a.client.A2aClient;A2aClientclientA2aClient.builder().baseUrl(http://travel-agent:8080).build();// 发送任务Tasktaskclient.sendTask(MessageSendParams.builder().message(Message.of(帮我规划一个东京五日游)).build());// 订阅流式事件client.subscribeEvents(task.getId(),event-{System.out.println(event.getType(): event.getData());});模式二Nacos 注册中心发现importio.agentscope.a2a.client.NacosAgentCardResolver;// 通过 Nacos 自动发现可用的 A2A AgentNacosAgentCardResolverresolverNacosAgentCardResolver.builder().serverAddr(nacos-server:8848).namespace(agent-registry).build();ListAgentCardcardsresolver.resolve(travel);A2aClientclientA2aClient.fromAgentCard(cards.get(0)); Nacos 集成的价值在企业级场景中Agent 数量可能达到数十甚至上百个。通过 Nacos Agent Registry 实现统一注册与发现让调 Agent 像调微服务一样自然。2.4 协议栈四层模型AgentScope 的 A2A 实现遵循协议栈四层设计层次职责AgentScope 实现传输层HTTP / SSE / WebSocket / RocketMQ默认 HTTP SSE可扩展 RocketMQ协议层JSON-RPC 2.0 请求/响应格式内置解析与序列化语义层Task、Message、Artifact 状态机完整生命周期管理发现层Agent Card 注册与检索Well-Known URI / Nacos2.5 生产实践要点安全Agent Card 中的 securitySchemes 字段声明认证要求OAuth2、API Key 等超时控制Task 执行可能耗时较长建议配置合理的 timeout 与心跳机制幂等性taskId 作为唯一标识重复提交同一 taskId 应返回已有 Task 而非重复创建背压处理流式事件订阅需考虑消费端处理能力避免 SSE 缓冲区溢出三、AG-UI 协议集成Agent 与前端的标准化事件通信3.1 协议背景AG-UIAgent-User Interaction Protocol由 CopilotKit 团队于 2025 年 5 月推出是一个开源、轻量、事件驱动的通信协议。其核心定位标准化 AI Agent 与前端 UI 的双向交互。如果说 MCP 解决了Agent 如何调用工具A2A 解决了Agent 之间如何通信那么 AG-UI 补上了协议栈上缺失的最后一环Agent 如何与人交互。截至 2026 年 7 月GitHub 上 ag-ui-protocol/ag-ui 仓库已有约 15.1k 星标、1.4k Fork。3.2 核心设计原则原则说明事件驱动所有通信天然是异步的适配流式输出传输无关不绑定具体传输层当前主流实现基于 SSE但支持 WebSocket、WebTransport框架无关一次构建可连接 React、Vue、原生 JS 或任何前端框架状态同步快照 增量Snapshot Delta模型支持断线恢复3.3 五类事件模型AG-UI 将 Agent 运行过程拆分为五大类事件事件类别事件类型用途生命周期RUN_STARTED / RUN_FINISHED / RUN_ERROR标记一次 Agent 执行的开始与结束文本消息TEXT_MESSAGE_START / TEXT_MESSAGE_CONTENT / TEXT_MESSAGE_END流式文本输出工具调用TOOL_CALL_START / TOOL_CALL_ARGS / TOOL_CALL_END / TOOL_CALL_RESULT工具调用的参数流与结果回传状态管理STATE_SNAPSHOT / STATE_DELTA / MESSAGES_SNAPSHOT全量快照 / 增量补丁 / 对话历史快照推理过程THINKING_START / THINKING_CONTENT / THINKING_END展示 Agent 的思考/推理过程3.4 SSE 事件流示例一次典型的 AG-UI 交互前端收到的 SSE 事件流如下data:{type:RUN_STARTED,threadId:thread-001,runId:run-001} data:{type:TEXT_MESSAGE_START,messageId:msg-001,role:assistant} data:{type:TEXT_MESSAGE_CONTENT,messageId:msg-001,delta:你好} data:{type:TEXT_MESSAGE_CONTENT,messageId:msg-001,delta:我是你的旅行助手。} data:{type:TEXT_MESSAGE_END,messageId:msg-001} data:{type:TOOL_CALL_START,toolCallId:tc-001,toolName:search_flights} data:{type:TOOL_CALL_ARGS,toolCallId:tc-001,delta:{\from\:\北京\,\to\:\东京\}} data:{type:TOOL_CALL_END,toolCallId:tc-001} data:{type:TOOL_CALL_RESULT,toolCallId:tc-001,result:找到3个航班...} data:{type:STATE_DELTA,delta:[{op:add,path:/flights,value:[...]}]} data:{type:RUN_FINISHED,threadId:thread-001,runId:run-001}每条事件格式为 data:\n\n两个换行符表示事件边界。3.5 AgentScope Java 的 AG-UI 实现添加依赖dependencygroupIdio.agentscope/groupIdartifactIdagentscope-extensions-protocol-agui/artifactIdversion${agentscope.version}/version/dependency核心机制AgentScope 框架在流式调用过程中产生28 种类型化事件AG-UI 适配器负责将这些内部事件映射为 AG-UI 标准事件格式并通过 SSE 推送给前端AgentScope 内部事件 → AG-UI Event Mapper → SSE Stream → 前端关键特性多 Agent 路由支持在一次会话中路由到不同的 Agent 处理中断与恢复支持用户主动中断RUN_CANCELED以及断线重连后- 通过 STATE_SNAPSHOT 恢复快照 增量首次连接发送全量快照后续仅推送增量变更降低带宽消耗3.6 前端接入示例consteventSourcenewEventSource(/ag-ui/run);eventSource.onmessage(event){constdataJSON.parse(event.data);switch(data.type){caseTEXT_MESSAGE_CONTENT:appendToChat(data.messageId,data.delta);break;caseTOOL_CALL_START:showToolCallUI(data.toolName);break;caseSTATE_DELTA:applyStatePatch(data.delta);break;caseRUN_FINISHED:hideLoadingIndicator();break;}};四、Agent Protocol 集成将 Agent 暴露为标准 REST API4.1 协议定位Agent Protocol 是一种通用的Agent 服务化协议核心目标是将 Agent 暴露为标准 REST API便于与现有微服务架构集成。与 A2A 面向Agent 间协作不同Agent Protocol 更偏向Agent 作为服务被调用的场景——即传统的 HTTP Client → Agent Server 模式。4.2 核心 API 端点端点方法说明/ap/tasksPOST创建新任务/ap/tasks/{taskId}GET查询任务状态/ap/tasks/{taskId}/stepsGET获取任务执行步骤/ap/tasks/{taskId}/stepsPOST执行下一步/ap/tasks/{taskId}/artifactsGET获取任务产出物/ap/agentsGET列出可用 Agent4.3 AgentScope Java 实现添加依赖dependencygroupIdio.agentscope/groupIdartifactIdagentscope-extensions-protocol-agent-protocol/artifactIdversion${agentscope.version}/version/dependency快速接入importio.agentscope.protocol.AgentProtocolServer;AgentProtocolServerserverAgentProtocolServer.builder().agent(agent).port(9090).build();server.start();启动后即可通过标准 HTTP 调用# 创建任务curl-XPOST http://localhost:9090/ap/tasks\-HContent-Type: application/json\-d{input: 帮我分析上周的销售数据}# 查询任务状态curlhttp://localhost:9090/ap/tasks/task-0014.4 适用场景已有微服务网关如 Higress、Kong需要将 Agent 纳入统一流量管控非 AI 原生的业务系统需要通过 HTTP 调用 Agent 能力需要与 CI/CD、监控系统等运维工具链集成多语言客户端Python、Go、Rust需要统一调用入口五、四大协议对比与选型指南5.1 协议定位对比维度A2AAG-UIAgent ProtocolChat Completions交互对象Agent ↔ AgentAgent ↔ 前端 UIClient ↔ AgentClient ↔ Agent通信模式任务委托 事件流事件驱动流式请求-响应请求-响应 / 流式核心抽象Task, Agent CardEvent, StateTask, Step, ArtifactMessage, Choice传输层HTTP SSESSE / WebSocketREST APIREST API发现机制Agent Card / Nacos 无直连 无直连 无直连典型用户编排 Agent / 多 Agent 系统 前端开发者 后端集成 / 微服务 LLM 应用开发者5.2 选型决策树你的场景是什么 │ ├─ 多个 Agent 需要互相委托任务 │ └─ ✅ A2A │ ├─ 需要前端实时展示 Agent 执行过程流式文本、工具调用可视化 │ └─ ✅ AG-UI │ ├─ 需要将 Agent 纳入现有微服务体系REST 调用、网关管控 │ └─ ✅ Agent Protocol │ ├─ 需要兼容 OpenAI SDK / 已有 Chat Completions 客户端 │ └─ ✅ Chat Completions Web │ └─ 以上都需要 └─ ✅ 组合使用同一 Agent 可同时暴露多种协议端点5.3 组合使用示例// 同一个 Agent同时暴露三种协议ReActAgentagentReActAgent.builder().name(SmartAssistant).model(model).toolkit(toolkit).build();// A2A Server供其他 Agent 调用A2aServera2aA2aServer.builder().agent(agent).port(8080).build();// AG-UI供前端实时交互AgUiServeraguiAgUiServer.builder().agent(agent).port(8081).build();// Agent Protocol供微服务网关调用AgentProtocolServerapAgentProtocolServer.builder().agent(agent).port(8082).build();a2a.start();agui.start();ap.start();六、架构全景协议层在 AgentScope 中的位置┌─────────────────────────────────────────────────────────────┐ │ extensions-protocol │ ├──────────┬──────────┬──────────────┬────────────────────────┤ │ A2A │ AG-UI │Agent Protocol│ Chat Completions │ │(CS) │ │ │ (OpenAI 兼容) │ ├──────────┴──────────┴──────────────┴────────────────────────┤ │ agentscope-core │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │ │ │ReActAgent│ │HarnessAgt│ │ Toolkit │ │ Event System │ │ │ └──────────┘ └──────────┘ └──────────┘ └───────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 基础设施层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │ │ │ Nacos │ │ RocketMQ │ │ Higress │ │ AgentState │ │ │ │(注册发现) │ │(异步传输) │ │(AI网关) │ │ Store(状态) │ │ │ └──────────┘ └──────────┘ └──────────┘ └───────────────┘ │ └─────────────────────────────────────────────────────────────┘七、生产环境最佳实践7.1 安全与鉴权A2A通过 Agent Card 的 securitySchemes 声明认证方式生产环境建议启用 mTLSAG-UISSE 连接需携带 Token考虑使用 Higress 网关做统一鉴权与限流Agent Protocol标准 HTTP Header 鉴权Bearer Token / API Key7.2 可观测性所有协议适配器均接入 AgentScope 的28 种类型化事件系统建议对接 OpenTelemetry实现全链路 Trace对 A2A Task 的 state 变迁做指标采集Submitted/Working/Completed/Failed 计数7.3 容错与重试协议容错策略A2ATask 级别重试taskId 幂等保证SSE 断线重连 事件回放AG-UISTATE_SNAPSHOT 全量恢复RUN_ERROR 事件通知前端Agent ProtocolHTTP 标准重试429/503Step 级别断点续传7.4 性能建议A2A 高吞吐场景考虑使用 RocketMQ 传输AgentScope 已有官方适配避免 SSE 长连接的资源占用AG-UI 前端渲染建议使用 虚拟列表 事件批量合并避免高频 TEXT_MESSAGE_CONTENT 导致 DOM 抖动Agent Protocol 的 Task 状态查询建议增加缓存层避免频繁查询执行中任务八、总结AgentScope Java 2.0 的协议集成层通过四大标准化适配器完整覆盖了智能体系统的三个交互维度交互维度协议价值Agent ↔ AgentA2A跨框架、跨语言的任务委托与协作Agent ↔ UserAG-UI标准化的流式事件通信前端一次适配多框架复用Agent ↔ ServiceAgent Protocol / Chat Completions无缝融入现有微服务架构这套协议体系的核心设计哲学是让 Agent 像微服务一样被治理像网页一样被交互像 API 一样被调用。对于正在构建多智能体系统的团队建议按以下优先级逐步接入先接入 AG-UI让前端快速可视化调试再暴露 Agent Protocol打通内部系统集成最后启用 A2A Nacos构建跨团队、跨语言的智能体协作网络
返回列表