Close httplib2 connections.
stream(body=None, x__xgafv=None)
SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.
close()
Close httplib2 connections.
stream(body=None, x__xgafv=None)
SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.
Args:
body: object, The request body.
The object takes the form of:
{ # /////////// Request Messages ///////////
"configuration": { # Configuration of a send message request. # Configuration for the send request.
"acceptedOutputModes": [ # The output modes that the agent is expected to respond with.
"A String",
],
"blocking": True or False, # If true, the message will be blocking until the task is completed. If false, the message will be non-blocking and the task will be returned immediately. It is the caller's responsibility to check for any task updates.
"historyLength": 42, # The maximum number of messages to include in the history. if 0, the history will be unlimited.
"pushNotification": { # Configuration for setting up push notifications for task updates. # A configuration of a webhook that can be used to receive updates
"authentication": { # Defines authentication details, used for push notifications. # Information about the authentication to sent with the notification
"credentials": "A String", # Optional credentials
"schemes": [ # Supported authentication schemes - e.g. Basic, Bearer, etc
"A String",
],
},
"id": "A String", # A unique identifier (e.g. UUID) for this push notification.
"token": "A String", # Token unique for this task/session
"url": "A String", # Url to send the notification too
},
},
"message": { # Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id. # Required. The message to send to the agent.
"content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
"contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
"extensions": [ # The URIs of extensions that are present or contributed to this Message.
"A String",
],
"messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
"metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
"a_key": "", # Properties of the object.
},
"role": "A String", # A role for the message.
"taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
},
"metadata": { # Optional metadata for the request.
"a_key": "", # Properties of the object.
},
"tenant": "A String", # Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # The stream response for a message. The stream should be one of the following sequences: If the response is a message, the stream should contain one, and only one, message and then close If the response is a task lifecycle, the first response should be a Task object followed by zero or more TaskStatusUpdateEvents and TaskArtifactUpdateEvents. The stream should complete when the Task if in an interrupted or terminal state. A stream that ends before these conditions are met are
"artifactUpdate": { # TaskArtifactUpdateEvent represents a task delta where an artifact has been generated.
"append": True or False, # Whether this should be appended to a prior one produced
"artifact": { # Artifacts are the container for task completed results. These are similar to Messages but are intended to be the product of a task, as opposed to point-to-point communication. # The artifact itself
"artifactId": "A String", # Unique identifier (e.g. UUID) for the artifact. It must be at least unique within a task.
"description": "A String", # A human readable description of the artifact, optional.
"extensions": [ # The URIs of extensions that are present or contributed to this Artifact.
"A String",
],
"metadata": { # Optional metadata included with the artifact.
"a_key": "", # Properties of the object.
},
"name": "A String", # A human readable name for the artifact.
"parts": [ # The content of the artifact.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
},
"contextId": "A String", # The id of the context that this task belongs too
"lastChunk": True or False, # Whether this represents the last part of an artifact
"metadata": { # Optional metadata associated with the artifact update.
"a_key": "", # Properties of the object.
},
"taskId": "A String", # The id of the task for this artifact
},
"message": { # Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id.
"content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
"contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
"extensions": [ # The URIs of extensions that are present or contributed to this Message.
"A String",
],
"messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
"metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
"a_key": "", # Properties of the object.
},
"role": "A String", # A role for the message.
"taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
},
"statusUpdate": { # TaskStatusUpdateEvent is a delta even on a task indicating that a task has changed.
"contextId": "A String", # The id of the context that the task belongs to
"final": True or False, # Whether this is the last status update expected for this task.
"metadata": { # Optional metadata to associate with the task update.
"a_key": "", # Properties of the object.
},
"status": { # A container for the status of a task # The new status of the task.
"message": { # Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id. # A message associated with the status.
"content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
"contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
"extensions": [ # The URIs of extensions that are present or contributed to this Message.
"A String",
],
"messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
"metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
"a_key": "", # Properties of the object.
},
"role": "A String", # A role for the message.
"taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
},
"state": "A String", # The current state of this task
"timestamp": "A String", # Timestamp when the status was recorded. Example: "2023-10-27T10:00:00Z"
},
"taskId": "A String", # The id of the task that is changed
},
"task": { # Task is the core unit of action for A2A. It has a current status and when results are created for the task they are stored in the artifact. If there are multiple turns for a task, these are stored in history.
"artifacts": [ # A set of output artifacts for a Task.
{ # Artifacts are the container for task completed results. These are similar to Messages but are intended to be the product of a task, as opposed to point-to-point communication.
"artifactId": "A String", # Unique identifier (e.g. UUID) for the artifact. It must be at least unique within a task.
"description": "A String", # A human readable description of the artifact, optional.
"extensions": [ # The URIs of extensions that are present or contributed to this Artifact.
"A String",
],
"metadata": { # Optional metadata included with the artifact.
"a_key": "", # Properties of the object.
},
"name": "A String", # A human readable name for the artifact.
"parts": [ # The content of the artifact.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
},
],
"contextId": "A String", # Unique identifier (e.g. UUID) for the contextual collection of interactions (tasks and messages). Created by the A2A server.
"history": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions from a task.
{ # Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id.
"content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
"contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
"extensions": [ # The URIs of extensions that are present or contributed to this Message.
"A String",
],
"messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
"metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
"a_key": "", # Properties of the object.
},
"role": "A String", # A role for the message.
"taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
},
],
"id": "A String", # Unique identifier (e.g. UUID) for the task, generated by the server for a new task.
"metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value object to store custom metadata about a task.
"a_key": "", # Properties of the object.
},
"status": { # A container for the status of a task # The current status of a Task, including state and a message.
"message": { # Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id. # A message associated with the status.
"content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
{ # Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).
"data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
"data": {
"a_key": "", # Properties of the object.
},
},
"file": { # FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
"fileWithBytes": "A String",
"fileWithUri": "A String",
"mimeType": "A String",
"name": "A String",
},
"metadata": { # Optional metadata associated with this part.
"a_key": "", # Properties of the object.
},
"text": "A String",
},
],
"contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
"extensions": [ # The URIs of extensions that are present or contributed to this Message.
"A String",
],
"messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
"metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
"a_key": "", # Properties of the object.
},
"role": "A String", # A role for the message.
"taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
},
"state": "A String", # The current state of this task
"timestamp": "A String", # Timestamp when the status was recorded. Example: "2023-10-27T10:00:00Z"
},
},
}