尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Nexent A2A 协议集成指南:发现、调用与管理外部协作 Agent
人工智能AI AgentAgent 编排低代码AI 技能RAG【免费下载链接】nexentNexent 是一个开源智能体SDK和平台能够将描述流程的自然语言转化为完整的多模态服务 —— 无需编排无需复杂拖拉拽。基于 MCP 工具生态系统构建Nexent 提供灵活的模型集成、可扩展的数据处理和强大的知识库管理。我们的目标很简单将数据、模型和工具整合到一个智能中心中让任何人都能轻松地将 Nexent 集成到项目中使日常工作流程更智能、更互联。项目地址https://gitcode.com/ModelEngine/nexent点击查看免费下载本指南以 Nexent 开源仓库的 Agent 集成文档 为主线系统讲解如何通过 A2AAgent-to-Agent协议将第三方平台开发的 Agent 接入 Nexent使其成为当前 Agent 的协作者参与工作流。读完本文你将掌握 Agent Card 的字段含义、URL 与 Nacos 两种发现方式、调用协议与认证配置、以及将外部 Agent 设为协作者后的完整调用链路。A2A 协议与核心概念A2AAgent-to-Agent是一个开放协议用于打通不同平台、不同技术栈的 AI Agent 之间的互操作。通过 A2ANexent 可以标准化通信统一 Agent 的发现与调用机制不再依赖各家私有接口能力抽象Agent 只需声明自身能力Skills调用方无需理解其内部实现细节跨平台协作不同厂商的 Agent 可以无缝协作共同完成复杂任务。A2A 协议在 Nexent 中的落地形态可以从源码结构看得很清楚仓库同时实现了客户端角色backend/services/a2a_client_service.py发现并调用外部 Agent与服务端角色backend/services/a2a_server_service.py把 Nexent 自身的 Agent 以 A2A 端点暴露出去详见 A2A 发布指南。本指南聚焦客户端集成方向。A2A 协议核心概念概念说明Agent CardAgent 的元数据描述文件包含名称、描述、端点地址、能力声明等是发现机制的入口Task任务实体代表一次对 Agent 的调用Message消息支持同步与流式两种模式SkillAgent 提供的具体能力清单供调用方了解其擅长什么在代码层面这些概念被建模为 Pydantic 模型定义在 backend/consts/a2a_models.pyA2AAgentCardAgent Card 结构、A2ATask/A2ATaskStatus任务与状态、A2AMessage消息、A2AAgentSkill技能、A2AAgentCapabilities能力声明含 streaming、pushNotifications、protocolVersion 等字段。发现外部 A2A Agent 的两种方式Nexent 支持两种外部 A2A Agent 的发现方式发现方式适用场景前置条件URL 发现已知目标 Agent 的 Agent Card 地址Agent Card URL 可访问Nacos 发现批量发现注册在 Nacos 中的 AgentNacos 服务正常运行两种方式最终都会走 A2AClientService 的discover_from_url/discover_from_nacos方法拉取 Agent Card → 解析出名称、描述、端点 URL、协议版本、流式能力、安全方案等 → 缓存并落库ag_a2a_external_agent_t表见 backend/database/db_models.py。Agent Card 缓存默认 TTL 为 24 小时DEFAULT_CACHE_TTL_HOURS 24见 backend/database/a2a_agent_db.py。方法一URL 发现当你已知目标 Agent 的 Agent Card 地址时使用 URL 发现即可完成接入。Agent Card 示例A2A 1.0 规范一个符合 A2A 1.0 规范的 Agent Card 长这样{ name: data-analysis-agent, description: Professional data analysis assistant that can perform statistical analysis, generate charts, and interpret data trends, url: https://agent.example.com/nb/a2a/agent-123, version: 1.0.0, capabilities: { streaming: true, pushNotifications: false }, skills: [ { id: statistical-analysis, name: Statistical Analysis, description: Perform descriptive and inferential statistics }, { id: chart-generation, name: Chart Generation, description: Generate various types of charts based on data } ], endpoints: { http: https://agent.example.com/nb/a2a/agent-123 } }需要说明的是这是文档给出的兼容示例。从源码看Nexent 解析时优先读取A2A 1.0 标准的supportedInterfaces数组每个接口含protocolBinding、url、protocolVersion其次才回退到endpoints、provider.url、顶层url字段——这一优先级逻辑实现在A2AClientService._extract_agent_urlbackend/services/a2a_client_service.py测试用例 test/backend/services/test_a2a_client_service.py 对每种回退路径都有覆盖。因此对外提供 Agent Card 时建议优先使用supportedInterfaces声明端点。Agent Card 的securitySchemes与securityRequirements字段会被原样缓存用于后续的调用认证配置。URL 发现操作步骤进入Agent 开发→协作者 Agent页面在外部 A2A Agent标签页点击添加外部 Agent选择URL 发现标签页填写 Agent Card 地址例如https://example.com/.well-known/agent.json如需要认证填写自定义请求头JSON 格式{Authorization: Bearer token}点击发现按钮系统拉取到 Agent 信息后展示 Agent 详情确认无误后点击添加到列表注意事项自定义请求头仅用于拉取与刷新 Agent Card不会用于后续的 Agent 调用。这一设计在源码中有明确体现agent_card_headers字段的注释即为Headers used only to retrieve and refresh the Agent Cardbackend/database/db_models.py且discover_from_url的文档字符串特别说明custom_headersNone表示保留既有配置、{}表示显式清空backend/services/a2a_client_service.py。再次发现同一 URL 时请求头留空会保留现有配置填写{}则会清空。URL 发现的底层流程POST /a2a/client/discover/url接口backend/apps/a2a_client_app.py会执行以下链路通过A2AHttpClient.get_json拉取 Agent Card。该客户端默认超时 300 秒、请求级重试最多 3 次且采用指数退避RETRY_BACKOFF_FACTOR 0.5请求头固定携带A2A-Version: 1.0backend/utils/a2a_http_client.py解析 Agent ID依次尝试agent_id/id/endpoint_id/name都没有则用name url 哈希兜底生成解析端点 URL、协议版本与流式能力并同步securitySchemes/securityRequirements调用a2a_agent_db.create_external_agent_from_url落库已存在则按source_url tenant_id更新见 backend/database/a2a_agent_db.py任何失败都会包装为AgentDiscoveryError返回明确错误信息。方法二Nacos 发现如果目标 Agent 已注册到 Nacos 服务发现平台可以使用 Nacos 发现实现批量接入。操作步骤进入Agent 开发→协作者 Agent页面在外部 A2A Agent标签页点击添加外部 Agent选择Nacos 发现标签页首次使用时配置 Nacos 连接信息配置项说明示例Nacos 服务地址Nacos 服务地址http://127.0.0.1:8848命名空间 IDNacos 命名空间可选dev分组名称服务分组名默认 DEFAULT_GROUPDEFAULT_GROUP用户名/密码Nacos 访问凭据可选nacos/nacos点击保存配置填写要扫描的 Agent 服务名点击扫描系统从 Nacos 获取匹配的 Agent 列表勾选需要的 Agent点击添加前置条件Nacos 服务正常运行目标 Agent 已正确注册到 Nacos服务元数据中包含 Agent Card 地址Nacos 发现的底层实现从源码看Nacos 发现并非简单读取注册中心元数据而是先查注册信息、再回源拉取 Agent Card的两段式流程_discover_single_from_nacosbackend/services/a2a_client_service.py通过NacosClient.query_a2a_agent调用 Nacos 专用 A2A 端点/nacos/v3/admin/ai/a2a查询 Agentbackend/utils/nacos_client.py获取agent_url与元数据依次尝试/.well-known/agent-card.json、/.well-known/agent.json、/.well-known/agent-1.0.json、/agent-card.json、/agent.json等常见路径回源拉取 Agent Card顺序即源码中的尝试顺序若拿到 Card则以其supportedInterfaces、description、securitySchemes等为准覆盖 Nacos 元数据拉取失败则降级使用 Nacos 接口信息并记录告警日志通过create_external_agent_from_nacos落库以nacos_config_id nacos_agent_name tenant_id作为唯一键做更新。Nacos 连接配置本身独立存储ag_a2a_nacos_config_t表见 backend/database/db_models.py其中密码字段在库中加密存储POST /a2a/client/nacos-configs/test-connection接口backend/apps/a2a_client_app.py支持在保存配置前先验证 Nacos 连通性。管理已发现的外部 Agent在外部 A2A Agent 列表中你可以对每个已发现的 Agent 执行以下操作查看 Agent 详情点击 Agent 卡片查看完整信息名称、描述、版本URL 端点支持的能力列表Skills调用协议支持情况测试 Agent点击测试按钮向 Agent 发送测试消息验证其是否正常工作。与 Agent 聊天点击聊天按钮打开聊天窗口与 Agent 进行实时交互测试。该能力对应POST /a2a/client/agents/{external_agent_id}/chat接口backend/apps/a2a_client_app.py它会将用户文本构造成 A2A 协议的消息格式message_id、role: ROLE_USER、parts数组后调用call_agent。配置调用协议点击协议配置按钮为该 Agent 选择调用协议协议说明适用场景HTTP JSONREST 风格 API 调用通用场景JSON-RPCJSON-RPC 2.0 协议调用标准化 RPC 调用协议选择在底层有两层影响backend/services/a2a_client_service.py端点 URL 后缀HTTP JSON 协议下同步调用会追加/message:send、流式调用追加/message:streamJSON-RPC 协议则直接使用 Agent Card 中的端点请求体格式JSON-RPC 使用标准信封{jsonrpc: 2.0, id: 1, method: SendMessage, params: {message: ...}}HTTP JSON 则直接发送{message: ...}。切换协议时update_external_agent_protocol还会根据supportedInterfaces中对应protocolBindinghttp-json-rpc/rest/grpc等自动同步端点 URLbackend/database/a2a_agent_db.py。配置认证如果 Agent Card 声明了securitySchemes和securityRequirements点击Agent 认证填写认证信息。支持的认证方式Bearer TokenAPI KeyHeader / QueryBasic Auth配置时注意同一安全要求requirement下的所有字段必须一起填写。调用时_build_security_request_parts会按 Card 声明的方案把凭据放入对应的 Header、Query 参数或 Cookie 中backend/services/a2a_client_service.py凭据以security_credentials存储且 API 只暴露已配置的 scheme ID、不暴露值backend/database/a2a_agent_db.py。若调用返回 HTTP 401服务端会提示请检查已配置的安全凭据。刷新 Agent 信息Agent 信息变更后点击刷新重新拉取最新 Agent Card。刷新逻辑refresh_agent_card对两种来源的处理不同backend/services/a2a_client_service.pyURL 来源重新 GETsource_url拉取最新 Card 并更新缓存Nacos 来源改为请求{base_url}/health健康检查端点通过则标记为可用并刷新缓存时间戳。刷新失败时会把 Agent 的is_available置为False并记录check_result后续调用会直接拒绝不可用 Agent。移除 Agent点击移除将 Agent 从发现列表中删除。底层是逻辑删除delete_flag Y见 backend/database/a2a_agent_db.py因此重复添加同一 Agent 不会产生脏数据。将外部 Agent 设为协作者发现并配置好外部 Agent 后可以将其设为当前 Agent 的协作者让主 Agent 在任务中按需调度它。操作步骤在Agent 开发页面进入协作者 Agent配置在外部 A2A Agent列表中点击选中目标 AgentAgent 出现在已选协作者 Agent列表中保存 Agent 配置协作调用示例当主 Agent 需要执行特定任务时它会调用协作者 Agent用户帮我分析这些销售数据并生成周报 主 Agent 分析任务后决定 - 调用数据分析 Agent执行统计计算 - 调用图表生成 Agent生成可视化图表 - 汇总结果生成最终报告协作关系的底层实现协作者关系在数据库中通过ag_a2a_external_agent_relation_t表建模见 backend/database/db_models.py对应POST /a2a/client/relations接口的add_external_agent_relationbackend/apps/a2a_client_app.py。查询某 Agent 的可用协作者时query_external_sub_agents会同时过滤关系启用与外部 Agent 可用两个条件backend/database/a2a_agent_db.py确保主 Agent 只会调度到可用状态的外部协作者。实战示例集成 DataAgent A2A AgentDataAgent 是一个支持 A2A 协议的 Agent 平台下面演示将其集成到 Nexent 的完整流程。1. 部署 DataAgent参照 DataAgent 文档以 A2A 服务模式启动注意当前 Nexent 不支持需要认证的 Agent启动时不要设置 auth-token。2. 获取 Agent Card 地址DataAgent 以 A2A 模式启动后其 Agent Card 地址为http://IP:9999/.well-known/agent-card.json3. 在 Nexent 中添加选择URL 发现填写 URLhttp://IP:9999/.well-known/agent-card.json点击发现添加成功后将调用协议配置为HTTP JSON将协议设为 HTTP JSON 后Nexent 对 DataAgent 的同步调用实际会指向http://IP:9999/message:send由_build_endpoint_url自动拼接请求体为{message: {...}}格式。4. 测试并使用添加成功后先测试 Agent 响应、确认运行正常再将其设为协作者投入使用。常见问题FAQQAgent 发现失败怎么办确认 Agent Card URL 可访问检查网络连通性与防火墙配置确认 Agent 服务正常运行确认认证信息正确另外可以留意服务端日志A2AHttpClient对超时、空响应、HTTP 5xx 等场景都会记录明确的错误原因例如空响应会提示Agent 可能不可达、仍在处理中或端点 URL 不正确backend/utils/a2a_http_client.py。Q如何选择调用协议HTTP JSON大多数场景首选兼容性更好JSON-RPC仅当 Agent 明确要求使用 JSON-RPC 协议时Q如何开发一个符合 A2A 规范的 Agent可以参考本仓库的服务端实现 backend/services/a2a_server_service.py 与 A2A 发布指南Nexent 自身发布 A2A Agent 后会提供 Agent Card URL形如/nb/a2a/{endpoint_id}/.well-known/agent-card.json、REST 端点/message:send、/message:stream与 JSON-RPC 端点/v1方法SendMessage/SendStreamingMessage/GetTask可以作为实现参考的样板。相关资源添加外部 A2A Agent 详细指南 — 页面级操作说明A2A 发布指南 — 将 Nexent 自身 Agent 发布为 A2A 端点A2A 客户端服务实现 — 发现与调用外部 Agent 的核心服务A2A HTTP 客户端 — 带重试与 SSE 流式解析的 HTTP 客户端A2A 数据模型 — Agent Card / Task / Message / Skill 的 Pydantic 定义A2A 客户端 API — 全部 REST 端点定义A2A 客户端服务测试 — 端点解析、协议路径、安全凭据等单元测试赞分享人工智能AI AgentAgent 编排低代码AI 技能RAG【免费下载链接】nexentNexent 是一个开源智能体SDK和平台能够将描述流程的自然语言转化为完整的多模态服务 —— 无需编排无需复杂拖拉拽。基于 MCP 工具生态系统构建Nexent 提供灵活的模型集成、可扩展的数据处理和强大的知识库管理。我们的目标很简单将数据、模型和工具整合到一个智能中心中让任何人都能轻松地将 Nexent 集成到项目中使日常工作流程更智能、更互联。项目地址https://gitcode.com/ModelEngine/nexent点击查看免费下载相关推荐Nexent Agent 智能体接入指南通过 A2A 协议发现与协作调用外部 AgentNexent Agent 智能体接入指南通过 A2A 协议发现与协作调用外部 Agent Nexent 通过 A2AAgent to Agent协议 支持AI AgentAI 应用后端前端大模型RAGNexent 外部 A2A Agent 接入实战从 Agent Card 发现到协作智能体调用Nexent 外部 A2A Agent 接入实战从 Agent Card 发现到协作智能体调用 A2AAgent to Agent是连接不同技术栈、不同平AI AgentAI 应用后端前端大模型RAGNexent A2A Agent 发布与调用实战指南将智能体以 A2A 1.0 协议开放给外部系统Nexent A2A Agent 发布与调用实战指南将智能体以 A2A 1.0 协议开放给外部系统 Nexent 支持把已发布的 Agent 直接以 A2A人工智能AI AgentAgent 编排低代码AI 技能RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Git工作流实战指南:从GitHub Flow到TBD的演进路径

Git工作流实战指南:从GitHub Flow到TBD的演进路径

1. 这不是教科书里的 Git,而是我每天在终端里敲出来的版本控制逻辑 “基于 Git 的版本控制工作流”——这八个字听起来像极了某门大学选修课的结课报告标题。但如果你真在团队里维护过三个以上长期迭代的项目,就会发现:Git 本身只是个工具&a…

📅 2026/10/15 23:41:17
工程化思路重做军训总结PPT:从交差到决策依据

工程化思路重做军训总结PPT:从交差到决策依据

简介:这份PPT资源面向企业行政、人力资源及培训管理者,聚焦企业军训活动的完整复盘与经验沉淀,可用于年度军训总结汇报、活动方案优化及团队建设参考。压缩包内共1个pptx文件,约4.71MB,以幻灯片形式呈现,结…

📅 2026/10/15 23:41:17
Unity C#入门:从零基础到独立开发文字小游戏

Unity C#入门:从零基础到独立开发文字小游戏

1. 为什么一个做游戏的人,绕不开C#这道坎很多人第一次打开Unity,是被“拖拖拽拽就能做游戏”这句话吸引进来的。场景搭好了,素材摆上去了,点一下运行,角色站在那儿一动不动——因为没人告诉它该动。Unity本身是个空壳舞…

📅 2026/10/15 23:41:17
MORE NEWS

更多资讯

📰

源SQL怎么写与目标库怎么执行:KFS异构DDL重构机制

在某大型医院的数据同步项目中,260条同步链路同时运行,源端涉及Oracle、MySQL、SQL Server、KES V8R6、Vastbase等10多种数据库,并持续向目标库汇聚数据。 在这样的环境里,把数据同步过去并不难。真正让链路“卡住”的&#xff0c…

📰

wiremix音频路由实战:分步教你切换播放设备、输入端口与默认Profile

【免费下载链接】wiremix Simple TUI audio mixer for PipeWire 项目地址: https://gitcode.com/gh_mirrors/wi/wiremix 点击查看 免费下载 wiremix 是一个面向 PipeWire 的简单 TUI 音频混音器:它不仅能调节音量,还能把音频流在设备与应用之…

📰

C++第二章课后题全拆解:数据类型、运算符与表达式求值

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

一键把论文PDF变成可编辑PPT?paper-ppt-agent 学术演示文稿生成工具完整指南

【免费下载链接】paper-ppt-agent Generate editable PPT decks from paper PDFs or LaTeX sources 项目地址: https://gitcode.com/gh_mirrors/pa/paper-ppt-agent 点击查看 免费下载 还在为整理论文汇报 PPT 熬夜排版吗?paper-ppt-agent 是一款基于多…

📰

Java版飞翔的小鸟源码解析:Swing游戏循环与碰撞检测实战

简介:这是一份面向Java初学者与游戏开发爱好者的「飞翔的小鸟」完整源码工程,适合想通过经典小游戏理解面向对象设计与游戏循环机制的开发者练手。压缩包共32个文件,约139KB,包含5个java源文件、6个class编译文件,以及…

📰

tiktok-5.6B-videos × Pandas/Polars/DuckDB:10招高效分析1TB+ Parquet大规模数据

数据集大数据社交 【免费下载链接】tiktok-5.6B-videos 项目地址: https://ai.gitcode.com/hf_mirrors/datasocial/tiktok-5.6B-videos 点击查看 免费下载 tiktok-5.6B-videos 是一个包含 56 亿条 TikTok 视频记录的开源数据集,以 148 个月度 Parquet 文…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬