链载Ai

标题: 构建开放智能体生态:AgentScope 如何用 A2A 协议与 Nacos 打通协作壁垒? [打印本页]

作者: 链载Ai    时间: 3 小时前
标题: 构建开放智能体生态:AgentScope 如何用 A2A 协议与 Nacos 打通协作壁垒?

AgentScope 基于 A2A 协议与 Nacos Agent Registry,实现智能体的统一发现、治理与跨生态协作。

随着企业逐步落地 AI 应用架构,从原来测试 POC workflow/简单 Agent 开始逐步构建生产级可用 Agent,真正解决线上问题,构建 Agent 在企业是面相全员提升效率的路径,不再是简单业务流程面临问题更加复杂,可能企业就会遇到如下挑战:

A2A(Agent-to-Agent)协议正是为解决这些问题而生。它是 Google 提出一套面向分布式多 Agent 互联互通的开放标准,定义了统一的消息结构和能力描述,让不同语言、不同框架、不同运行时上的 Agent 都能被发现、被调用、被编排。基于 A2A,Agent 之间可以在不共享代码、不耦合底层实现的前提下,完成文本对话、thinking、多模态内容、工具调用等丰富交互,真正实现“一次定义,处处可用”。

Agent 跨语言、跨框架调用最佳实践




Cloud Native

AgentScope是阿里巴巴推出的一款以开发者为核心,专注于多智能体开发的开源框架。它的核心目标是解决智能体在构建、运行和管理中的难题,提供一套覆盖“开发、部署、监控”全生命周期的生产级解决方案。

AgentScope最新版本中,我们全面支持 A2A 协议,并集成 Nacos 作为 A2A Registry 的默认实现,构建了一套从开发到部署的完整分布式多智能体协作体系,让智能体协作从“单打独斗”走向“开放互联”。

在 AgentScope 中使用 A2A




Cloud Native


1. AgentScope:连接外部 A2A 网络,像调用本地 Agent 一样简单

AgentScope 提供统一的 A2A 对接能力,我们可以像调用本地工具一样自然地调用远端 A2A Agent,实现跨语言、跨框架的协同,告别繁琐的协议适配工作:

通过A2AAgent以及AgentCardResolver,我们可以按名称、分组或标签从 A2A Registry 中发现并调用其他 Agent,实现跨团队、跨项目甚至跨语言的智能体复用。基于 A2A Registry,智能体拥有统一的服务发现与治理能力,可与现有配置中心、网关、熔断限流及安全体系协同,为大规模分布式智能体应用打好底座。

以下示例展示如何使用NacosAgentCardResolver从 Nacos Registry 中发现并调用 Agent:

ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 24px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-align: left;line-height: 1.98;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">注意在对应版本以上使用 demo,Python(AgentScopev1.0.11、AgentScope Runtimev1.0.4)和Java(AgentScopev1.0.6,AgentScope Runtimev1.0.0

Python 代码示例

ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 24px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-align: left;line-height: 1.98;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">查看详细文档:https://doc.agentscope.io/zh_CN/tutorial/task_a2a.html

fromagentscope.agentimportA2AAgentfromagentscope.a2aimportNacosAgentCardResolverfromagentscope.messageimportMsg#PythonAgentScopev1.0.11以上#创建NacosAgentCardResolvernacos_resolver=NacosAgentCardResolver(remote_agent_name="my-remote-agent",#Nacos中注册的智能体名称nacos_client_config=ClientConfig(server_addresses="http://localhost:8848",#Nacos服务器地址#其他可选配置项),)#使用Resolver创建A2AAgent,通过名称从Nacos发现Agentagent=A2AAgent(agent_card=awaitnacos_resolver.get_agent_card())

Java 代码示例

ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 16px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-align: left;line-height: 1.98;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">查看详细文档:https://java.agentscope.io/zh/task/a2a.html

使用NacosAgentCardResolver从 Nacos Registry 中发现 Agent:

importio.agentscope.agent.A2AAgent;importio.agentscope.extensions.a2a.nacos.NacosAgentCardResolver;importjava.util.Properties;importcom.alibaba.nacos.api.PropertyKeyConst;importcom.alibaba.nacos.api.ai.AiFactory;importcom.alibaba.nacos.api.ai.AiServiceropertiesproperties=newProperties();properties.put(PropertyKeyConst.SERVER_ADDR,"localhost:8848");//其他可选配置项AiServiceaiService=AiFactory.createAiService(properties);NacosAgentCardResolveragentCardResolver=newNacosAgentCardResolver(aiService);A2AAgentagent=A2AAgent.builder().name("MyAgent").agentCardResolver(agentCardResolver).build();

Nacos 3.0 作为智能体注册中心,其在生产环境中久经验证的服务发现与配置管理能力,能够助力企业构建统一的智能体服务治理平台。

2. AgentScope Runtime:暴露 A2A Agent 服务,启动即注册

AgentScope Runtime 提供统一的 A2A 服务暴露能力,帮助我们把本地 Agent 应用包装成符合 A2A 规范的服务端点。通过 A2A 协议适配器,应用在启动时会自动完成:

以下示例展示如何在 Runtime 层使用 Nacos Registry 进行服务注册:

Python 代码示例

ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-align: left;line-height: 1.98;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">查看详细文档:https://runtime.agentscope.io/zh/a2a_registry.html

方式一:参数配置

在构造AgentApp时,通过 A2A 配置扩展字段a2a_config参数的registry字段指定 Registry 实例或列表:

fromagentscope_runtime.engine.appimportAgentAppfromagentscope_runtime.engine.deployers.adapter.a2aimport(AgentCardWithRuntimeConfig,)fromagentscope_runtime.engine.deployers.adapter.a2a.nacos_a2a_registryimport(NacosRegistry,)fromv2.nacosimportClientConfigBuilder#创建NacosRegistry实例registry=NacosRegistry(nacos_client_config=ClientConfigBuilder().server_address("nacos-server:8848")#其他可选配置项.build())app=AgentApp(app_name="TestAgent",app_description="TestAgent",#在a2a_config中配置registrya2a_config=AgentCardWithRuntimeConfig(registry=registry),)

方式二:使用环境变量配置

环境变量可以通过.env文件或系统环境变量设置:

#.env文件示例A2A_REGISTRY_ENABLED=trueA2A_REGISTRY_TYPE=nacosNACOS_SERVER_ADDR=localhost:8848#其他可选配置项

Java 代码示例

ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-align: left;line-height: 1.98;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">查看详细文档:https://java.agentscope.io/zh/task/a2a.html

在最新版本的 Java AgentScope 中,应用可以直接暴露 A2A 服务,只有在需要使用 Sandbox 时,才需要使用 Runtime。

对于非最新版本,Java 开发者可以将 AgentScope Agent 无缝融入现有的 Spring Boot 基础设施体系。通过引入spring-boot-starter-agentscope-runtime-a2a-nacos依赖,应用在启动时会自动暴露 A2A 服务并注册到 Nacos Registry。

Maven 依赖配置

<dependency><groupId>io.agentscope</groupId><artifactId>spring-boot-starter-agentscope-runtime-a2a-nacos</artifactId><version>1.0.3</version></dependency>

application.yaml 配置

agentscope:a2a:server:card:description:"基于A2A协议的Java智能体"providerrganization:您的组织名称url:https://your-organization.comnacos:server-addr{NACOS_SERVER_ADDRESS:127.0.0.1:8848}#其他可选配置项

通过上述配置,Spring Boot 应用在启动时会自动:

得益于这一机制,AgentScope 应用启动即完成在 Nacos 的 A2A Agent 注册,为后续的发现、路由、灰度与监控奠定基础。对于已经大规模采用 Java 技术栈的团队,这意味着智能体服务能自然长在同一套基础设施上,大幅降低引入成本与运维负担。

总结




Cloud Native

AgentScope 全面支持 A2A 协议和 Nacos Agent Registry,标志着智能体从“单点能力”迈向“开放互联生态”的关键一步,为企业构建统一的智能体管理平台,助力大规模 Agent 化落地:

未来,我们会继续围绕 A2A 与 Registry 深耕,在发现与路由、版本与灰度、安全与访问控制等方向迭代,让面向生产的智能体应用更稳、更易用。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5