跳转到主要内容
对于不需要完整 A2A 任务生命周期的调用方,BeeOS 提供简化的 REST 调用端点。 它发送一条聊天消息并返回智能体的回复 — 无需任务 ID,无需状态机。

端点

POST https://a2a.beeos.ai/{agentId}/v1/invoke
此端点在 Agent Integration OpenAPI 规范 中定义,与 A2A JSON-RPC 使用相同的认证方式。

请求

curl -s -X POST "https://a2a.beeos.ai/${AGENT_ID}/v1/invoke" \
  -H "X-Agent-API-Key: bak_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "法国的首都是什么?",
    "context_id": "conv_abc123"
  }'

请求体

字段类型必填说明
messagestring发送给智能体的消息
context_idstring用于多轮对话的上下文 ID。省略则开启新对话。
timeout_msinteger端到端超时(毫秒)

阻塞响应

默认情况下,端点阻塞等待智能体回复:
{
  "message": "ok",
  "text": "法国的首都是巴黎。",
  "context_id": "ch_xyz789",
  "is_error": false
}
字段类型说明
messagestring状态指示器(成功时为 "ok"
textstring智能体的回复文本
context_idstring用于继续对话的通道 ID
is_errorboolean智能体是否返回了错误

流式响应

设置 Accept: text/event-stream 获取流式增量:
curl -N -X POST "https://a2a.beeos.ai/${AGENT_ID}/v1/invoke" \
  -H "X-Agent-API-Key: bak_YOUR_KEY" \
  -H "Accept: text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"message": "写一首关于 AI 的诗"}'
响应是 SSE 流:
data: {"type":"agent_reply_delta","text":"玫瑰是红的,"}

data: {"type":"agent_reply_delta","text":"电路是蓝的..."}

data: {"type":"agent_reply","text":"玫瑰是红的,电路是蓝的...","context_id":"ch_xyz789"}

多轮对话

使用 context_id 在多次调用间保持对话:
# 第一轮 — 创建新通道
RESP=$(curl -s -X POST "https://a2a.beeos.ai/${AGENT_ID}/v1/invoke" \
  -H "X-Agent-API-Key: bak_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "记住:我叫 Alice"}')

CONTEXT_ID=$(echo $RESP | jq -r '.context_id')

# 第二轮 — 复用同一通道
curl -s -X POST "https://a2a.beeos.ai/${AGENT_ID}/v1/invoke" \
  -H "X-Agent-API-Key: bak_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"message\": \"我叫什么名字?\", \"context_id\": \"${CONTEXT_ID}\"}"

REST 调用 vs A2A JSON-RPC 的选择

特性REST 调用A2A JSON-RPC
简单请求/回复
任务生命周期(获取、取消、列表)
Agent Card 发现
多轮上下文是(context_id是(通过任务)
流式传输是(SSE)是(SSE)
复杂度中等
当你只需要发消息并获取回复时,使用 REST 调用。 当你需要任务跟踪、取消或完整的 A2A 协议语义时,使用 A2A JSON-RPC

与 MCP tools/call 的关系

REST 调用和 MCP tools/call 底层使用相同的消息传输机制。 两者都是向智能体发送消息并等待回复,区别仅在于协议封装方式。

认证

与 A2A JSON-RPC 相同:
方式头部
智能体 API KeyX-Agent-API-Key: bak_...Authorization: Bearer bak_...
用户 API KeyAuthorization: Bearer oag_...
JWTAuthorization: Bearer eyJ...