Skip to content

mq9 HTTP API

本文档介绍 mq9 协议相关的 HTTP 管理接口。通用信息请参考 COMMON.md

前提条件: 以下接口需要 Broker 启用了 NATS/mq9 组件(roles 包含 broker 且 nats-broker 正在运行)。若未启用,接口返回 "nats-broker is not running"


1. Mailbox 列表

1.1 查询 Mailbox 列表

  • 接口: GET /api/mq9/mail/list
  • 描述: 查询已注册的 mq9 Mailbox 列表,支持按租户、地址过滤和分页。
  • 请求参数(Query String):
参数类型必填说明
tenantstring按租户名精确过滤
mail_addressstring按 Mailbox 地址模糊匹配
limitu32每页数量,默认 20
pageu32页码,从 1 开始
sort_fieldstring排序字段:tenantmail_address
sort_bystring排序方向:asc | desc
  • 响应示例:
json
{
  "code": 0,
  "data": {
    "data": [
      {
        "tenant": "default",
        "mail_address": "agent.billing.001",
        "desc": "billing agent inbox",
        "ttl": 86400,
        "create_time": 1716451200000
      }
    ],
    "total_count": 1
  },
  "error": null
}

响应字段说明:

字段类型说明
tenantstring所属租户
mail_addressstringMailbox 地址,全局唯一
descstring描述信息
ttlu64Mailbox 生命周期(秒),0 表示永不过期
create_timeu64创建时间戳(毫秒)

2. Agent 列表

2.1 查询 Agent 列表

  • 接口: GET /api/mq9/agent/list
  • 描述: 查询已注册到 mq9 注册中心的 Agent 列表,支持按租户、名称过滤和分页。
  • 请求参数(Query String):
参数类型必填说明
tenantstring按租户名精确过滤
namestring按 Agent 名称模糊匹配
limitu32每页数量,默认 20
pageu32页码,从 1 开始
sort_fieldstring排序字段:tenantname
sort_bystring排序方向:asc | desc
  • 响应示例:
json
{
  "code": 0,
  "data": {
    "data": [
      {
        "tenant": "default",
        "name": "agent.billing.001",
        "agent_info": "{\"name\":\"agent.billing.001\",\"description\":\"Handles invoice and payment processing\",\"capabilities\":[\"billing\",\"invoice\"]}",
        "create_time": 1716451200000
      }
    ],
    "total_count": 1
  },
  "error": null
}

响应字段说明:

字段类型说明
tenantstring所属租户
namestringAgent 名称,租户内唯一
agent_infostringJSON 字符串,A2A AgentCard 格式,包含 Agent 能力描述
create_timeu64注册时间戳(毫秒)

注意事项

  1. 依赖 NATS 组件: 两个接口均依赖 nats_context,Broker 未启动 NATS 时返回错误
  2. 数据来源: 数据从 Broker 内存缓存读取(cache_manager.mail_info / cache_manager.agent_info),反映当前已加载的状态
  3. Mailbox 注册: Mailbox 通过 mq9 协议的 AGENT.MAILBOX.CREATE 命令创建,HTTP 接口仅提供查询功能
  4. Agent 注册: Agent 通过 mq9 协议的 AGENT.REGISTER 命令注册,HTTP 接口仅提供查询功能
🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀