Stream message request
Stream Message Request (Client)
1. Description
This hook is called when the observed client agent sends a message to server agent to initiate a new interaction or to continue an existing one AND subsribes to real-time updates for the task through A2A protocol.
This hook must be used before the observed agent sends the A2A-compliant message to server agent.
2. Method
3. Reponse
The response is an AOSSuccessResponse
object.
Decision | Behavior |
---|---|
allow |
The observed agent should send the A2A-compliant message to the target agent. |
deny |
The A2A-compliant message should be blocked and not sent to the target agent. |
modify |
The observed agent should send the A2A message with the modified content found in modifiedRequest field. |
4. A2A payload
json
{
"jsonrpc": "2.0",
"id": 2,
"method": "message/stream",
"params": {
"message": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "write a long paper describing the attached pictures"
},
{
"kind": "file",
"file": {
"mimeType": "image/png",
"data": "<base64-encoded-content>"
}
}
],
"messageId": "bbb7dee1-cf5c-4683-8a6f-4114529da5eb"
},
"configuration": {
"acceptedOutputModes": [],
"pushNotificationConfig": {
"url": "https://agent.notifications.com/webhooks/1234567"
}
},
"metadata": {}
}
}
5. AOS payload
json
{
"jsonrpc": "2.0",
"id": "56e55ffd-fe11-4c64-b7c9-ddc936dbaed2",
"method": "message/stream",
"params": {
"payload":{
"jsonrpc": "2.0",
"id": 2,
"method": "message/stream",
"params": {
"message": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "write a long paper describing the attached pictures"
},
{
"kind": "file",
"file": {
"mimeType": "image/png",
"data": "<base64-encoded-content>"
}
}
],
"messageId": "bbb7dee1-cf5c-4683-8a6f-4114529da5eb"
},
"configuration": {
"acceptedOutputModes": [],
"pushNotificationConfig": {
"url": "https://agent.notifications.com/webhooks/1234567"
}
},
"metadata": {}
}
},
"reasoning": "I will deelegate this request to the specialized agent.",
"context": {
"from": {
"agent": {
"name": "Content generator",
"url": "https://cooking-assistant.openai.com/api/v1",
"instructions": "You are a helpful assistant that can answer questions and help with tasks.",
"version": "1.0.0",
"provider": {
"name": "OpenAI",
"url": "https://openai.com"
}
},
"role": "client"
},
"to": {
"agent": {
"url": "https://api.story.com/v1",
"name": "Story teller",
"version": "1.0.0"
},
"role": "server"
}
}
}
}
Stream Message Request (Server)
1. Description
This hook is called when the observed server agent receves stream message request from a client agent.
This hook must be used before the observed agent processes the A2A-compliant message.
2. Method
3. Reponse
The response is an AOSSuccessResponse
object.
Decision | Behavior |
---|---|
allow |
The observed agent should process the A2A-compliant message. |
deny |
The A2A-compliant message should be ignored and not processed by the server agent. |
modify |
The observed agent should process the A2A message with the modified content found in modifiedRequest field. |
4. A2A payload
json
{
"jsonrpc": "2.0",
"id": 2,
"method": "message/stream",
"params": {
"message": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "write a long paper describing the attached pictures"
},
{
"kind": "file",
"file": {
"mimeType": "image/png",
"data": "<base64-encoded-content>"
}
}
],
"messageId": "bbb7dee1-cf5c-4683-8a6f-4114529da5eb"
},
"configuration": {
"acceptedOutputModes": [],
"pushNotificationConfig": {
"url": "https://agent.notifications.com/webhooks/1234567"
}
},
"metadata": {}
}
}
5. AOS payload
json
{
"jsonrpc": "2.0",
"id": "56e55ffd-fe11-4c64-b7c9-ddc936dbaed2",
"method": "message/stream",
"params": {
"payload":{
"jsonrpc": "2.0",
"id": 2,
"method": "message/stream",
"params": {
"message": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "write a long paper describing the attached pictures"
},
{
"kind": "file",
"file": {
"mimeType": "image/png",
"data": "<base64-encoded-content>"
}
}
],
"messageId": "bbb7dee1-cf5c-4683-8a6f-4114529da5eb"
},
"configuration": {
"acceptedOutputModes": [],
"pushNotificationConfig": {
"url": "https://agent.notifications.com/webhooks/1234567"
}
},
"metadata": {}
}
},
"context": {
"from": {
"agent": {
"name": "Content generator",
"url": "https://cooking-assistant.openai.com/api/v1",
"version": "1.0.0",
},
"role": "client"
},
"to": {
"agent": {
"url": "https://api.story.com/v1",
"name": "Story teller",
"instruction": "You are a very creative story teller.",
"provider": {
"name": "AzureAIFoundry",
"url": "https://ai.azure.com"
},
"version": "1.0.0"
},
"role": "server"
}
}
}
}