Package a2a.v1

Índice

A2AService

A2AService define la versión de gRPC del protocolo A2A. Tiene una forma ligeramente diferente a la versión de JSONRPC para adaptarse mejor a AIP-127, cuando corresponda. Los sustantivos son AgentCard, Message, Task y TaskPushNotificationConfig.

  • Los mensajes no son un recurso estándar, por lo que no hay una interfaz de get/delete/update/list, solo métodos personalizados de envío y transmisión.
  • Las tareas tienen una interfaz get y métodos personalizados de cancelación y suscripción.
  • TaskPushNotificationConfig es un recurso cuyo elemento superior es una tarea. Tienen métodos get, list y create.
  • AgentCard es un recurso estático que solo tiene un método get.
CancelTask

rpc CancelTask(CancelTaskRequest) returns (Task)

Cancela una tarea del agente. Si se admite, no se deben esperar más actualizaciones de la tarea.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

CreateTaskPushNotificationConfig

rpc CreateTaskPushNotificationConfig(CreateTaskPushNotificationConfigRequest) returns (TaskPushNotificationConfig)

Establece una configuración de notificaciones push para una tarea.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

DeleteTaskPushNotificationConfig

rpc DeleteTaskPushNotificationConfig(DeleteTaskPushNotificationConfigRequest) returns (Empty)

Borra la configuración de una notificación push para una tarea.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

GetAgentCard

rpc GetAgentCard(GetAgentCardRequest) returns (AgentCard)

GetAgentCard devuelve la tarjeta del agente.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

Permisos de IAM

Se requiere el siguiente permiso de IAM en el recurso tenant:

  • discoveryengine.agents.get

Para obtener más información, consulta la documentación de IAM.

GetTask

rpc GetTask(GetTaskRequest) returns (Task)

Obtén el estado actual de una tarea del agente.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

GetTaskPushNotificationConfig

rpc GetTaskPushNotificationConfig(GetTaskPushNotificationConfigRequest) returns (TaskPushNotificationConfig)

Obtiene la configuración de notificaciones push para una tarea.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

ListTaskPushNotificationConfig

rpc ListTaskPushNotificationConfig(ListTaskPushNotificationConfigRequest) returns (ListTaskPushNotificationConfigResponse)

Obtén una lista de las notificaciones push configuradas para una tarea.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

SendMessage

rpc SendMessage(SendMessageRequest) returns (SendMessageResponse)

Enviar un mensaje al agente Esta es una llamada de bloqueo que devolverá la tarea una vez que se complete o una LRO si se solicita.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

SendStreamingMessage

rpc SendStreamingMessage(SendMessageRequest) returns (StreamResponse)

SendStreamingMessage es una llamada de transmisión que devolverá un flujo de eventos de actualización de tareas hasta que la tarea se encuentre en un estado interrumpido o final.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

TaskSubscription

rpc TaskSubscription(TaskSubscriptionRequest) returns (StreamResponse)

TaskSubscription es una llamada de transmisión que devolverá un flujo de eventos de actualización de tareas. Esto adjunta la transmisión a una tarea existente en proceso. Si la tarea se completó, la transmisión devolverá la tarea completada (como GetTask) y cerrará la transmisión.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.serving.readwrite

Para obtener más información, consulta Authentication Overview.

APIKeySecurityScheme

Campos
description

string

Es la descripción de este esquema de seguridad.

location

string

Ubicación de la clave de API. Los valores válidos son "query", "header" o "cookie".

name

string

Es el nombre del parámetro de encabezado, consulta o cookie que se usará.

AgentCapabilities

Define el conjunto de funciones de A2A que admite el agente.

Campos
streaming

bool

Si el agente admitirá respuestas de transmisión

push_notifications

bool

Si el agente puede enviar notificaciones push al webhook del cliente

extensions[]

AgentExtension

Extensiones compatibles con este agente.

AgentCard

La tarjeta de agente transmite información clave: - Detalles generales (versión, nombre, descripción, usos) - Habilidades: Conjunto de acciones o soluciones que el agente puede realizar - Modalidades predeterminadas o tipos de contenido compatibles con el agente. - Requisitos de autenticación Next ID: 19

Campos
protocol_version

string

Es la versión del protocolo A2A que admite este agente.

name

string

Es el nombre del agente legible por humanos. Ejemplo: "Agente de recetas"

description

string

Es una descripción del dominio de acción o el espacio de solución del agente. Ejemplo: "Agente que ayuda a los usuarios con recetas y cocina".

url

string

Es una URL a la dirección en la que se aloja el agente. Representa el extremo preferido según lo declaró el agente.

preferred_transport

string

Es el transporte del extremo preferido. Si está vacío, el valor predeterminado es JSONRPC.

additional_interfaces[]

AgentInterface

Anuncio de los transportes adicionales admitidos. El cliente puede usar cualquiera de los transportes admitidos.

provider

AgentProvider

Es el proveedor de servicios del agente.

version

string

Es la versión del agente. Ejemplo: "1.0.0"

documentation_url

string

Es una URL que proporciona documentación adicional sobre el agente.

capabilities

AgentCapabilities

Es el conjunto de capacidades de A2A que admite el agente.

security_schemes

map<string, SecurityScheme>

Son los detalles del esquema de seguridad que se usan para la autenticación con este agente.

security[]

Security

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Requisitos de seguridad para comunicarse con el agente. Esta lista se puede ver como una operación OR de operaciones AND. Cada objeto de la lista describe un conjunto posible de requisitos de seguridad que deben estar presentes en una solicitud. Esto permite especificar, por ejemplo, que "los llamadores deben usar OAuth O una clave de API Y mTLS". Ejemplo: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

default_input_modes[]

string

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Es el conjunto de modos de interacción que admite el agente en todas las habilidades. Este parámetro se puede anular por habilidad. Se definen como tipos de MIME.

default_output_modes[]

string

Son los tipos de MIME admitidos como resultados de este agente.

skills[]

AgentSkill

Las habilidades representan una unidad de capacidad que un agente puede realizar. Esto puede parecer algo abstracto, pero representa un conjunto más específico de acciones en las que es muy probable que el agente tenga éxito.

supports_authenticated_extended_card

bool

Indica si el agente admite proporcionar una tarjeta de agente extendida cuando el usuario se autentica, es decir, si la tarjeta de .well-known es diferente de la tarjeta de GetAgentCard.

signatures[]

AgentCardSignature

Son las firmas web JSON calculadas para esta AgentCard.

icon_url

string

Es una URL opcional a un ícono del agente.

AgentCardSignature

AgentCardSignature representa una firma JWS de un AgentCard. Sigue el formato JSON de una firma web JSON (JWS) de RFC 7515.

Campos
protected

string

Obligatorio. Es el encabezado JWS protegido para la firma. Siempre es un objeto JSON codificado en base64url. Obligatorio.

signature

string

Obligatorio. Es la firma calculada, codificada en base64url. Obligatorio.

header

Struct

Son los valores del encabezado JWS no protegido.

AgentExtension

Es una declaración de una extensión compatible con un agente.

Campos
uri

string

Es el URI de la extensión. Ejemplo: "https://developers.google.com/identity/protocols/oauth2"

description

string

Es una descripción de cómo este agente usa la extensión. Ejemplo: "Autenticación de Google OAuth 2.0"

required

bool

Indica si el cliente debe cumplir con requisitos específicos de la extensión. Ejemplo: false

params

Struct

Es la configuración opcional de la extensión.

AgentInterface

Define información de transporte adicional para el agente.

Campos
url

string

Es la URL en la que se encuentra esta interfaz.

transport

string

El transporte admitió esta URL. Es una cadena de formulario abierto que se puede extender fácilmente para muchos protocolos de transporte. Los principales que se admiten oficialmente son JSONRPC, gRPC y HTTP+JSON.

tenant

string

Es el arrendatario que se establecerá en la solicitud cuando se llame al agente. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

AgentProvider

Representa información sobre el proveedor de servicios de un agente.

Campos
url

string

URL de referencia de los proveedores. Ejemplo: "https://ai.google.dev"

organization

string

Nombre de la organización del proveedor. Ejemplo: "Google"

AgentSkill

AgentSkill representa una unidad de acción o solución que el agente puede realizar. Se puede considerar como un tipo de solución altamente confiable que se le puede encargar a un agente. Los agentes tienen autonomía para elegir cómo y cuándo usar habilidades específicas, pero los clientes deben tener la certeza de que, si se define la habilidad, esa unidad de acción se puede realizar de manera confiable.

Campos
id

string

Es el identificador único de la habilidad dentro de este agente.

name

string

Es un nombre legible para la habilidad.

description

string

Es una descripción legible por humanos (o por LLM) de los detalles y el comportamiento de la habilidad.

tags[]

string

Es un conjunto de etiquetas para que la skill mejore la categorización o el uso. Ejemplo: ["cocina", "asistencia al cliente", "facturación"]

examples[]

string

Es un conjunto de preguntas de ejemplo que esta skill está diseñada para responder. Estos ejemplos deberían ayudar a la persona que llama a comprender cómo formular solicitudes al agente para alcanzar objetivos específicos. Ejemplo: [“Necesito una receta de pan”]

input_modes[]

string

Son las modalidades de entrada posibles que se admiten.

output_modes[]

string

Modalidades de salida posibles que se producen

security[]

Security

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Esquemas de seguridad necesarios para que el agente aproveche esta habilidad. Al igual que en el objeto AgentCard.security general, esta lista representa un OR lógico de los objetos de requisitos de seguridad. Cada objeto es un conjunto de esquemas de seguridad que se deben usar juntos (un AND lógico). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

Artefacto

Los artefactos son el contenedor de los resultados de las tareas completadas. Son similares a los mensajes, pero están diseñados para ser el resultado de una tarea, a diferencia de la comunicación de punto a punto.

Campos
artifact_id

string

Es el identificador único (p.ej., UUID) del artefacto. Debe ser único al menos dentro de una tarea.

name

string

Es un nombre legible para el artefacto.

description

string

Es una descripción legible del artefacto (opcional).

parts[]

Part

Es el contenido del artefacto.

metadata

Struct

Son los metadatos opcionales incluidos con el artefacto.

extensions[]

string

Son los URIs de las extensiones que están presentes en este artefacto o que contribuyeron a él.

AuthenticationInfo

Define los detalles de autenticación que se usan para las notificaciones push.

Campos
schemes[]

string

Esquemas de autenticación admitidos, p. ej., Basic, Bearer, etc.

credentials

string

Credenciales opcionales

AuthorizationCodeOAuthFlow

Campos
authorization_url

string

Es la URL de autorización que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

token_url

string

Es la URL del token que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refresh_url

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map<string, string>

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

CancelTaskRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

name

string

Es el nombre del recurso de la tarea que se cancelará. Formato: tasks/{task_id}

ClientCredentialsOAuthFlow

Campos
token_url

string

Es la URL del token que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refresh_url

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map<string, string>

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

CreateTaskPushNotificationConfigRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

parent

string

Obligatorio. Es el recurso de tarea principal para esta configuración. Formato: tasks/{task_id}

config_id

string

Obligatorio. ID de la configuración nueva.

config

TaskPushNotificationConfig

Obligatorio. Es la configuración que se creará.

DataPart

DataPart representa un blob estructurado. Por lo general, se trata de una carga útil de JSON.

Campos
data

Struct

DeleteTaskPushNotificationConfigRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

name

string

Es el nombre del recurso de la configuración que se borrará. Formato: tasks/{task_id}/pushNotificationConfigs/{config_id}

FilePart

FilePart representa las diferentes formas en que se pueden proporcionar los archivos. Si los archivos son pequeños, se admite la transferencia directa de bytes a través de file_with_bytes. Si el archivo es grande, el agente debe leer el contenido según corresponda directamente desde la fuente file_with_uri.

Campos
mime_type

string

name

string

Campo de unión file.

file puede ser una de las siguientes opciones:

file_with_uri

string

file_with_bytes

bytes

GetAgentCardRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

GetTaskPushNotificationConfigRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

name

string

Es el nombre del recurso de la configuración que se recuperará. Formato: tasks/{task_id}/pushNotificationConfigs/{config_id}

GetTaskRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

name

string

Obligatorio. Es el nombre del recurso de la tarea. Formato: tasks/{task_id}

history_length

int32

Es la cantidad de mensajes más recientes del historial de la tarea que se recuperarán.

HTTPAuthSecurityScheme

Campos
description

string

Es la descripción de este esquema de seguridad.

scheme

string

Nombre del esquema de autenticación HTTP que se usará en el encabezado de autorización, como se define en RFC7235. Los valores que se usen DEBEN registrarse en el registro de esquemas de autenticación de IANA. El valor no distingue mayúsculas de minúsculas, como se define en RFC7235.

bearer_format

string

Es una sugerencia para que el cliente identifique el formato del token de portador. Los tokens de portador suelen generarse en un servidor de autorización, por lo que esta información se proporciona principalmente con fines de documentación.

ImplicitOAuthFlow

Campos
authorization_url

string

Es la URL de autorización que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refresh_url

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map<string, string>

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

ListTaskPushNotificationConfigRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

parent

string

Es el recurso de la tarea principal. Formato: tasks/{task_id}

page_size

int32

Para la AIP-158, estos campos están presentes. Por lo general, no se usa ni es necesario. Es la cantidad máxima de configuraciones que se devolverán. Si no se especifica, se devolverán todos los parámetros de configuración.

page_token

string

Es un token de página que se recibió de una llamada a ListTaskPushNotificationConfigRequest anterior. Proporciona esto para recuperar la página siguiente. Cuando se pagina, todos los demás parámetros proporcionados a ListTaskPushNotificationConfigRequest deben coincidir con la llamada que proporcionó el token de la página.

ListTaskPushNotificationConfigResponse

Campos
configs[]

TaskPushNotificationConfig

Es la lista de configuraciones de notificaciones push.

next_page_token

string

Un token, que se puede enviar como page_token para recuperar la página siguiente. Si se omite este campo, no habrá páginas siguientes.

Mensaje

Un mensaje es una unidad de comunicación entre el cliente y el servidor. Se asocia con un contexto y, de manera opcional, con una tarea. Dado que el servidor es responsable de la definición del contexto, siempre debe proporcionar un context_id en sus mensajes. De manera opcional, el cliente puede proporcionar el context_id si conoce el contexto con el que se asociará el mensaje. De manera similar para task_id, excepto que el servidor decide si se crea una tarea y si se incluye el task_id.

Campos
message_id

string

Es el identificador único (p.ej., UUID) del mensaje. Este campo es obligatorio y lo crea el creador del mensaje.

context_id

string

Es el ID de contexto del mensaje. Este campo es opcional y, si se configura, el mensaje se asociará con el contexto determinado.

task_id

string

Es el ID de la tarea del mensaje. Este parámetro es opcional y, si se configura, el mensaje se asociará con la tarea determinada.

role

Role

Es un rol para el mensaje.

content[]

Part

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content es el contenedor del contenido del mensaje.

metadata

Struct

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Es cualquier metadato opcional que se puede proporcionar junto con el mensaje.

extensions[]

string

Son los URIs de las extensiones que están presentes en este mensaje o que contribuyeron a él.

MutualTlsSecurityScheme

Campos
description

string

Es la descripción de este esquema de seguridad.

OAuth2SecurityScheme

Campos
description

string

Es la descripción de este esquema de seguridad.

flows

OAuthFlows

Objeto que contiene información de configuración para los tipos de flujo admitidos

oauth2_metadata_url

string

Es la URL de los metadatos del servidor de autorización de oauth2 RFC8414. Se requiere TLS.

OAuthFlows

Campos

Campo de unión flow.

flow puede ser una de las siguientes opciones:

authorization_code

AuthorizationCodeOAuthFlow

client_credentials

ClientCredentialsOAuthFlow

implicit

ImplicitOAuthFlow

password

PasswordOAuthFlow

OpenIdConnectSecurityScheme

Campos
description

string

Es la descripción de este esquema de seguridad.

open_id_connect_url

string

Es la URL conocida para descubrir los metadatos del proveedor de [[OpenID-Connect-Discovery]].

Parte

Part representa un contenedor para una sección de contenido de comunicación. Las partes pueden ser puramente textuales, algún tipo de archivo (imagen, video, etc.) o un BLOB de datos estructurados (es decir, JSON).

Campos
metadata

Struct

Son los metadatos opcionales asociados a esta parte.

Campo de unión part.

part puede ser una de las siguientes opciones:

text

string

file

FilePart

data

DataPart

PasswordOAuthFlow

Campos
token_url

string

Es la URL del token que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refresh_url

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map<string, string>

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

PushNotificationConfig

Es la configuración para establecer notificaciones push sobre actualizaciones de tareas.

Campos
id

string

Es un identificador único (p.ej., UUID) para esta notificación push.

url

string

URL a la que se enviará la notificación

token

string

Token único para esta tarea o sesión

authentication

AuthenticationInfo

Es la información sobre la autenticación que se enviará con la notificación.

Rol

Enums
ROLE_UNSPECIFIED
ROLE_USER El rol USER se refiere a la comunicación del cliente al servidor.
ROLE_AGENT El rol AGENT hace referencia a la comunicación del servidor al cliente.

Seguridad

Campos
schemes

map<string, StringList>

SecurityScheme

Campos

Campo de unión scheme.

scheme puede ser una de las siguientes opciones:

api_key_security_scheme

APIKeySecurityScheme

http_auth_security_scheme

HTTPAuthSecurityScheme

oauth2_security_scheme

OAuth2SecurityScheme

open_id_connect_security_scheme

OpenIdConnectSecurityScheme

mtls_security_scheme

MutualTlsSecurityScheme

SendMessageConfiguration

Es la configuración de una solicitud de mensaje.

Campos
accepted_output_modes[]

string

Son los modos de salida con los que se espera que responda el agente.

push_notification

PushNotificationConfig

Es la configuración de un webhook que se puede usar para recibir actualizaciones.

history_length

int32

Es la cantidad máxima de mensajes que se incluirán en el historial. Si es 0, el historial será ilimitado.

blocking

bool

Si es verdadero, el mensaje bloqueará la ejecución hasta que se complete la tarea. Si es falso, el mensaje no bloqueará la tarea y se devolverá de inmediato. Es responsabilidad del llamador verificar si hay actualizaciones de tareas.

SendMessageRequest

///////// Request Messages ///////////

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

request

Message

Obligatorio. Es el mensaje que se enviará al agente.

configuration

SendMessageConfiguration

Es la configuración de la solicitud de envío.

metadata

Struct

Son metadatos opcionales para la solicitud.

SendMessageResponse

////// Response Messages ///////////

Campos

Campo de unión payload.

payload puede ser una de las siguientes opciones:

task

Task

msg

Message

StreamResponse

Es la respuesta de transmisión para un mensaje. La transmisión debe ser una de las siguientes secuencias: Si la respuesta es un mensaje, la transmisión debe contener un solo mensaje y, luego, cerrarse. Si la respuesta es un ciclo de vida de la tarea, la primera respuesta debe ser un objeto Task seguido de cero o más objetos TaskStatusUpdateEvent y TaskArtifactUpdateEvent. La transmisión debe completarse cuando la tarea se encuentre en un estado interrumpido o terminal. Las transmisiones que finalizan antes de que se cumplan estas condiciones

Campos

Campo de unión payload.

payload puede ser una de las siguientes opciones:

task

Task

msg

Message

status_update

TaskStatusUpdateEvent

artifact_update

TaskArtifactUpdateEvent

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

Campos
list[]

string

Tarea

La tarea es la unidad de acción principal para A2A. Tiene un estado actual y, cuando se crean resultados para la tarea, se almacenan en el artefacto. Si hay varios turnos para una tarea, estos se almacenan en el historial.

Campos
id

string

Es el identificador único (p.ej., UUID) de la tarea, que genera el servidor para una tarea nueva.

context_id

string

Es el identificador único (p.ej., UUID) de la colección contextual de interacciones (tareas y mensajes). Es creado por el servidor A2A.

status

TaskStatus

Es el estado actual de una tarea, incluido el estado y un mensaje.

artifacts[]

Artifact

Es un conjunto de artefactos de salida para una tarea.

history[]

Message

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Es el historial de interacciones de una tarea.

metadata

Struct

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Un objeto clave/valor para almacenar metadatos personalizados sobre una tarea.

TaskArtifactUpdateEvent

TaskArtifactUpdateEvent representa un delta de tareas en el que se generó un artefacto.

Campos
task_id

string

ID de la tarea para este artefacto

context_id

string

ID del contexto al que pertenece esta tarea

artifact

Artifact

El artefacto en sí

append

bool

Indica si se debe agregar a una anterior ya producida.

last_chunk

bool

Indica si representa la última parte de un artefacto.

metadata

Struct

Son los metadatos opcionales asociados con la actualización del artefacto.

TaskPushNotificationConfig

Campos
name

string

El nombre del recurso de la configuración. Formato: tasks/{task_id}/pushNotificationConfigs/{config_id}

push_notification_config

PushNotificationConfig

Son los detalles de configuración de la notificación push.

TaskState

Es el conjunto de estados en los que puede estar una tarea.

Enums
TASK_STATE_UNSPECIFIED
TASK_STATE_SUBMITTED Representa el estado que confirma que se creó una tarea.
TASK_STATE_WORKING Representa el estado en el que una tarea se está procesando de forma activa.
TASK_STATE_COMPLETED Representa el estado en el que se finaliza una tarea. Este es un estado terminal.
TASK_STATE_FAILED Representa el estado de una tarea que se completó, pero falló. Este es un estado terminal.
TASK_STATE_CANCELLED Representa el estado de una tarea que se canceló antes de finalizar. Este es un estado terminal.
TASK_STATE_INPUT_REQUIRED Representa el estado que requiere información para completar la tarea. Este es un estado interrumpido.
TASK_STATE_REJECTED Representa el estado en el que el agente decidió no realizar la tarea. Esto se puede hacer durante la creación inicial de la tarea o más adelante, una vez que un agente haya determinado que no puede o no quiere continuar. Este es un estado terminal.
TASK_STATE_AUTH_REQUIRED Representa el estado que indica que se necesita alguna autenticación del cliente upstream. Se espera que la autenticación se realice fuera de banda, por lo que este no es un estado interrumpido o terminal.

TaskStatus

Es un contenedor para el estado de una tarea.

Campos
state

TaskState

Es el estado actual de esta tarea.

update

Message

Es un mensaje asociado al estado.

timestamp

Timestamp

Es la marca de tiempo en la que se registró el estado. Ejemplo: "2023-10-27T10:00:00Z"

TaskStatusUpdateEvent

TaskStatusUpdateEvent es un evento delta en una tarea que indica que esta cambió.

Campos
task_id

string

ID de la tarea que se cambió

context_id

string

ID del contexto al que pertenece la tarea

status

TaskStatus

Es el nuevo estado de la tarea.

final

bool

Indica si esta es la última actualización de estado esperada para esta tarea.

metadata

Struct

Son metadatos opcionales para asociar con la actualización de la tarea.

TaskSubscriptionRequest

Campos
tenant

string

Es el inquilino opcional, que se proporciona como un parámetro de ruta de acceso. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

name

string

Es el nombre del recurso de la tarea a la que se realizará la suscripción. Formato: tasks/{task_id}