Skip to content

Agent 发布 ​

Nexent 支持将 Agent 智能体发布为外部可调用的服务,发布后可以通过标准化的方式与外部业务系统集成。本文档介绍两种发布方式:

发布方式说明适用场景
普通发布发布后通过北向 RESTful API 调用 Agent与业务系统深度集成,实现工作流自动化
A2A 发布发布为符合 A2A 1.0 规范的 Agent跨平台 Agent 协作、支持 A2A 协议的外部系统调用

🚀 方式一:普通发布(北向 RESTful API) ​

普通发布是指将 Agent 发布到平台后,外部业务系统通过 Nexent 提供的北向 RESTful API 与 Agent 通信,支持流式响应、附件上传、会话管理等能力。

发布步骤 ​

  1. 进入 智能体开发 页面,创建或编辑 Agent
  2. 完成 Agent 配置并保存
  3. 点击「发布」按钮
  4. 在发布选项中确认默认发布(不勾选 A2A)
  5. 确认发布,生成 API Key 后即可调用

获取 API Key ​

发布成功后,需要为调用方生成 API Key:

  1. 登录 Nexent 平台
  2. 进入「个人信息」页面
  3. 点击「生成 API 密钥」
  4. 复制生成的 Access Key

调用示例 ​

bash
curl -X POST "https://your-nexent-domain.com/nb/v1/chat/run" \
  -H "Authorization: Bearer your-access-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_name": "general-assistant",
    "query": "你好,请介绍一下你自己"
  }'

接口能力概览 ​

接口方法说明
/nb/v1/chat/runPOST启动对话(流式响应)
/nb/v1/chat/stop/{conversation_id}GET停止对话
/nb/v1/chat/attachments/uploadPOST上传对话附件
/nb/v1/conversationsGET列出对话
/nb/v1/conversations/{conversation_id}GET获取对话历史
/nb/v1/generate_titlePOST生成对话标题
/nb/v1/conversations/{conversation_id}/titlePUT更新对话标题

完整的接口定义、请求/响应示例、错误码说明,请参阅 调用 Agent 北向 API。

本地开发注意事项 ​

部署方式路径前缀
Docker 部署替换为 http://localhost:5013/nb/v1
Kubernetes 部署替换为 http://localhost:30013/nb/v1
生产环境替换为实际服务器域名或公网 IP

🌐 方式二:发布为 A2A Agent ​

将已发布的 Agent 进一步暴露为 A2A 服务,供外部系统通过 A2A 1.0 协议发现并调用。

发布步骤 ​

  1. 进入 智能体开发 页面,创建或编辑 Agent
  2. 完成 Agent 配置并保存
  3. 点击「发布」按钮
  4. 在发布选项中勾选「发布为 A2A Agent」
  5. 确认发布

获取调用信息 ​

发布成功后,系统显示 A2A Agent 的调用信息:

信息项说明
Endpoint IDA2A Agent 的唯一标识符
Agent Card URLAgent 发现端点,外部系统通过此地址获取 Agent 描述
协议版本A2A 协议版本,当前为 1.0
REST 端点基于 REST 风格的 API 端点
JSON-RPC 端点基于 JSON-RPC 2.0 协议的调用端点

调用示例 ​

REST API ​

bash
# 获取 Agent Card
GET /nb/a2a/{endpoint_id}/.well-known/agent-card.json

# 发送同步消息
POST /nb/a2a/{endpoint_id}/message:send
Content-Type: application/json

{
  "message": {
    "role": "user",
    "content": "请帮我分析这份销售数据"
  }
}

# 发送流式消息(SSE)
POST /nb/a2a/{endpoint_id}/message:stream
Content-Type: application/json

{
  "message": {
    "role": "user",
    "content": "请帮我分析这份销售数据"
  }
}

JSON-RPC 2.0 ​

bash
POST /nb/a2a/{endpoint_id}/v1
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "SendMessage",
  "params": {
    "message": {
      "role": "user",
      "content": "请帮我分析这份销售数据"
    }
  },
  "id": 1
}

本地开发注意事项 ​

  • Docker 部署:路径前缀 /nb/a2a 替换为 http://localhost:5013/nb/a2a
  • Kubernetes 部署:路径前缀 /nb/a2a 替换为 http://localhost:30013/nb/a2a
  • 生产环境:替换为实际服务器域名或公网 IP 地址

🔒 认证与安全 ​

调用认证 ​

两种发布方式的调用均需要在请求头中携带认证信息:

http
Authorization: Bearer {access_key}

access_key 在平台的「个人信息」中通过「生成 API 密钥」获取。

安全建议 ​

  1. 保护 API Key:不要在代码中硬编码,定期轮换
  2. 限制访问:仅授权可信系统访问调用端点
  3. 监控日志:启用调用日志记录,便于审计
  4. 数据隔离:注意不要将敏感数据发送给不受控的调用方

🏷️ 版本管理 ​

发布版本 ​

  • Agent 可以发布多个版本,每次发布生成一个新版本
  • 已发布的版本不可修改,确保调用方获得一致的体验

版本更新 ​

  1. 修改 Agent 配置
  2. 发布新版本(按需选择发布方式)
  3. 外部系统可通过新版 Agent Card 获取更新(A2A 场景)

Agent Card 缓存 ​

  • Agent Card 信息会被缓存(A2A 场景)
  • 刷新间隔为 1 小时
  • 如需立即更新,需要重新发布 Agent

❓ 常见问题 ​

Q: 普通发布和 A2A 发布可以同时开启吗? ​

可以。在发布时既默认开放北向 RESTful API,又勾选「发布为 A2A Agent」,即可同时支持两种调用方式。

Q: A2A 调用返回 401 错误 ​

确认请求头中包含有效的 Authorization 字段,且 access_key 正确。

Q: 如何更新已发布的 A2A Agent? ​

重新发布 Agent 版本,更新后的信息会通过刷新后的 Agent Card 暴露。

Q: 北向 API 接口的详细参数在哪里? ​

请参阅 调用 Agent 北向 API 获取完整的接口参数、请求/响应示例与错误码说明。

🔗 相关资源 ​