AI AgentAI 应用后端前端大模型RAG【免费下载链接】nexentNexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles — unified tools, skills, memory, and orchestration with built-in constraints, feedback loops, and control planes.项目地址https://gitcode.com/gh_mirrors/ne/nexent点击查看免费下载A2AAgent-to-Agent协议正成为跨平台智能体协作的事实标准。Nexent 支持把平台上已发布的智能体一键暴露为符合 A2A 1.0 规范的 Agent供外部系统通过标准 REST 或 JSON-RPC 协议发现、认证并调用。本文以官方用户指南 a2a-publish.md 为核心骨架结合仓库中northbound_base_app.py、a2a_server_service.py等源码实现完整讲解发布流程、五个核心端点、认证方式与版本管理让读者能够独立完成一次「发布 → 发现 → 调用」的全链路实战。A2A 协议与 Nexent 的对接定位A2A 是 Google 主导推动的智能体互操作协议通过标准的 Agent Card 描述文件与 REST/JSON-RPC 调用端点让来自不同平台的 Agent 可以互相发现和协作。Nexent 将这一能力落地为A2A Server模式平台内部智能体可被发布为对外可调用的 A2A Agent外部系统通过Agent Card发现 Agent 的能力描述名称、描述、技能、端点地址通过 REST 风格 API 或 JSON-RPC 2.0 发起同步、流式调用并查询任务状态。从源码结构看这一能力由三层组成北向入口层路由统一注册在/nb/a2a前缀之下见 northbound_base_app.py服务编排层A2AServerService负责端点注册、Agent Card 生成、任务生命周期管理见 a2a_server_service.py协议适配层A2AAgentAdapter负责 A2A 消息格式与 Nexent 内部 Agent 请求格式的双向转换见 a2a_agent_adapter.py。发布为 A2A Agent操作步骤在智能体开发页面按照以下步骤完成发布在智能体开发中创建或编辑 Agent完成 Agent 配置并保存配置项可参考 agent-configuration.md点击「发布」按钮在发布选项中勾选「发布为 A2A Agent」确认发布。发布成功后系统会展示该 A2A Agent 的完整调用信息信息项说明Endpoint IDA2A Agent 的唯一标识符后续所有调用 URL 的核心路径参数Agent Card URLAgent 发现端点外部系统通过此地址获取 Agent 描述协议版本A2A 协议版本当前为 1.0REST 端点基于 REST 风格的 API 端点JSON-RPC 端点基于 JSON-RPC 2.0 协议的调用端点在 Agent 列表中点击最左侧的图标可以随时查看该 A2A Agent 的调用详情从实现角度看勾选「发布为 A2A Agent」本质上是为智能体创建一条 A2A Server 注册记录is_enabled True并为该智能体生成唯一 Endpoint ID形如a2a_{agent_id}_{8位随机hex}见 a2a_agent_db.py。平台内部还提供了管理用的启停接口需用户登录态、仅内部使用见 a2a_server_app.py。调用方式一REST API发布后的 A2A Agent 同时支持 REST 与 JSON-RPC 两种协议可按需选择。先看 REST 风格的四个核心操作对应实现位于 northbound_base_app.py# 1. 获取 Agent Card用于 Agent 发现 GET /nb/a2a/{endpoint_id}/.well-known/agent-card.json # 2. 发送同步消息 POST /nb/a2a/{endpoint_id}/message:send Content-Type: application/json { message: { role: user, content: 请帮我完成某个任务 } } # 3. 发送流式消息SSE POST /nb/a2a/{endpoint_id}/message:stream Content-Type: application/json { message: { role: user, content: 请帮我完成某个任务 } } # 4. 获取任务状态 GET /nb/a2a/{endpoint_id}/tasks/{task_id}其中message:send为同步调用服务端会等待任务完成后一次性返回结果内部经由handle_message_send转发到运行时见 a2a_server_service.pymessage:stream则以text/event-stream形式返回 SSE 事件流事件包含taskStatusUpdateTASK_STATE_WORKING→TASK_STATE_COMPLETED/TASK_STATE_FAILED与taskArtifact等类型GET tasks/{task_id}用于轮询异步任务的状态与结果。REST 错误码映射从 test_northbound_base_app.py 与路由实现可以看到REST 端点的异常映射为端点不存在HTTP 404EndpointNotFoundError端点存在但 A2A Server 未启用HTTP 503AgentNotEnabledError任务不存在HTTP 404TaskNotFoundError其他异常HTTP 500。Agent Card 的 HTTP 缓存GET .well-known/agent-card.json返回时携带Cache-Control: public, max-age3600与ETag响应头客户端可据此做条件请求If-None-Match命中则返回 304这就是官方文档「Agent Card 信息会被缓存刷新间隔为 1 小时」的底层实现见 northbound_base_app.py。调用方式二JSON-RPC 2.0JSON-RPC 调用统一走/nb/a2a/{endpoint_id}/v1端点支持SendMessage、SendStreamingMessage、GetTask三个方法见 northbound_base_app.pyPOST /nb/a2a/{endpoint_id}/v1 Content-Type: application/json # 发送同步消息 { jsonrpc: 2.0, method: SendMessage, params: { message: { role: user, content: 请帮我完成某个任务 } }, id: 1 } # 发送流式消息 { jsonrpc: 2.0, method: SendStreamingMessage, params: { message: { role: user, content: 请帮我完成某个任务 } }, id: 2 } # 获取任务状态 { jsonrpc: 2.0, method: GetTask, params: { taskId: task_abc123 }, id: 3 }JSON-RPC 的响应同样采用标准信封格式成功返回{jsonrpc:2.0,result:...,id:...}失败返回{jsonrpc:2.0,error:{code:...},id:...}。从源码可知其错误码约定错误码含义对应异常-32601Method not found / Endpoint not foundEndpointNotFoundError-32001Task not foundTaskNotFoundError-32004Unsupported operation如任务已终止UnsupportedOperationError-32603Internal error其他异常其中SendStreamingMessage会将内部事件逐条包装为 JSON-RPC 信封后以 SSE 输出data: {...}\n\n见 northbound_base_app.py。GetTask的params中使用taskId字段且要求该任务确实存在且属于当前调用者否则返回任务不存在或鉴权失败相关实现见 a2a_server_service.py。关于消息中的 taskId从协议适配层可以看出Nexent 对任务有三种处理策略见 a2a_server_service.py携带客户端taskId要求该任务存在且未处于终态COMPLETED/FAILED/CANCELED否则返回任务不存在或操作不支持携带contextId/history/ 客户端taskId之一的复杂请求服务端自动生成新的task_xxx任务并持久化均未携带的简单请求直接执行不创建任务记录。本地开发与部署路径前缀不同部署形态下北向 A2A 入口的完整地址前缀不同部署方式路径前缀Dockerhttp://localhost:5013/nb/a2aKuberneteshttp://localhost:30013/nb/a2a生产环境替换为服务器域名或公网 IP即完整调用地址形如http://localhost:5013/nb/a2a/{endpoint_id}/message:send。Kubernetes 部署下使用 NodePort30013暴露北向服务生产环境则使用域名或公网 IP并将请求经网关转发至北向服务。以上端口为仓库部署脚本约定的默认值实际以部署配置为准。认证方式调用 A2A Agent 与调用 Nexent 北向 API 使用同一套认证体系即在请求头中携带 API KeyAuthorization: Bearer {access_key}API Key 的生成入口为个人信息 → 生成 API 密钥。从源码看北向上下文NorthboundContext在进入各 A2A 路由前会先解析Authorization头并解析出token_id、user_id、tenant_id这些身份信息随后贯穿任务创建、执行与查询的鉴权链路。若任务查询者与任务创建者不一致get_task会直接拒绝访问见 a2a_server_service.py。版本管理与 Agent Card 缓存已发布的 A2A Agent 不可修改如需变更只能发布新版本重新发布后外部系统通过刷新后的 Agent Card 获取最新信息名称、描述、技能、端点Agent Card 存在 HTTP 层缓存Cache-Control: max-age36001 小时同时提供 ETag 做条件校验缓存期内重复请求会命中 304数据库侧对已发现的外部 Agent Card 也有缓存机制默认 TTL 为 24 小时DEFAULT_CACHE_TTL_HOURS 24见 a2a_agent_db.py。因此在发布新版本后调用方如需立即感知变化应等待 Agent Card 缓存过期刷新或通过带If-None-Match的条件请求获取新卡片。常见问题FAQQ1普通发布和 A2A 发布可以同时开启吗可以。发布时既保留默认开放的北向 RESTful API又勾选「发布为 A2A Agent」即可同时支持普通北向调用与 A2A 协议两种调用方式。Q2A2A 调用返回 401 错误确认请求头中包含有效的Authorization字段且access_key正确。注意access_key需在「个人信息 → 生成 API 密钥」中创建并复制且请求头格式必须为Authorization: Bearer {access_key}。Q3如何更新已发布的 A2A Agent重新发布 Agent 版本即可。新版本会通过刷新后的 Agent Card 暴露给调用方由于 Agent Card 存在约 1 小时缓存外部系统刷新后即可获取最新信息。深入阅读对接外部第三方 A2A AgentURL 发现 / Nacos 发现 / 协议与鉴权配置a2a-external.md北向发布整体说明agents-publish.mdAgent 配置与开发总览agent-development.md核心实现路由层 northbound_base_app.py、服务层 a2a_server_service.py、协议模型 a2a_models.py测试参考test_northbound_base_app.py、test_a2a_server_service_registration.py赞分享AI AgentAI 应用后端前端大模型RAG【免费下载链接】nexentNexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles — unified tools, skills, memory, and orchestration with built-in constraints, feedback loops, and control planes.项目地址https://gitcode.com/gh_mirrors/ne/nexent点击查看免费下载相关推荐Nexent Agent 发布实战Northbound RESTful API 与 A2A 1.0 双通道对外集成指南Nexent Agent 发布实战Northbound RESTful API 与 A2A 1.0 双通道对外集成指南 Agent 开发完成之后如何让外部业AI AgentAI 应用后端前端大模型RAGNexent 外部 A2A Agent 接入实战从 Agent Card 发现到协作智能体调用Nexent 外部 A2A Agent 接入实战从 Agent Card 发现到协作智能体调用 A2AAgent to Agent是连接不同技术栈、不同平AI AgentAI 应用后端前端大模型RAGNexent Agent 智能体接入指南通过 A2A 协议发现与协作调用外部 AgentNexent Agent 智能体接入指南通过 A2A 协议发现与协作调用外部 Agent Nexent 通过 A2AAgent to Agent协议 支持AI AgentAI 应用后端前端大模型RAG上一篇Cloudflare Skills Turnstile Spin一键完成从验证码组件到服务端校验的反爬自动化全流程下一篇davinci-resolve-mcp源码结构导览Operation Envelope、执行追踪与内核架构设计创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考