第二章:协议规范¶
协议基础¶
JSON-RPC 2.0¶
A2A 基于 JSON-RPC 2.0 协议:
// 请求
{
"jsonrpc": "2.0",
"method": "tasks/send",
"params": {
"id": "task-123",
"message": {
"role": "user",
"parts": [{"text": "Hello"}]
}
},
"id": 1
}
// 响应
{
"jsonrpc": "2.0",
"result": {
"id": "task-123",
"status": {"state": "completed"},
"artifacts": [{"text": "Hi there!"}]
},
"id": 1
}
核心方法¶
tasks/send¶
发送任务给 Agent:
{
"jsonrpc": "2.0",
"method": "tasks/send",
"params": {
"id": "task-123",
"sessionId": "session-456",
"message": {
"role": "user",
"parts": [{"text": "Analyze this data"}]
}
},
"id": 1
}
tasks/get¶
获取任务状态:
tasks/cancel¶
取消任务:
传输方式¶
HTTP¶
curl -X POST https://agent.example.com/a2a \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tasks/send","params":{...},"id":1}'
SSE¶
const eventSource = new EventSource('https://agent.example.com/a2a/tasks/task-123/stream')
eventSource.onmessage = (event) => {
console.log(JSON.parse(event.data))
}
小结¶
协议规范要点:
- JSON-RPC 2.0:请求/响应格式
- 核心方法:tasks/send、tasks/get、tasks/cancel
- 传输方式:HTTP、SSE
下一章我们将学习消息格式。