Recurso: Task
Task 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.
| Representación JSON |
|---|
{ "id": string, "contextId": string, "status": { object ( |
| Campos | |
|---|---|
id |
Obligatorio. Es el identificador único (p.ej., UUID) de la tarea, que genera el servidor para una tarea nueva. |
contextId |
Identificador único (p.ej., UUID) para la colección contextual de interacciones (tareas y mensajes). |
status |
Obligatorio. Es el estado actual de un |
artifacts[] |
Es un conjunto de artefactos de salida para un |
history[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Es el historial de interacciones de un |
metadata |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Es un objeto clave/valor para almacenar metadatos personalizados sobre una tarea. |
TaskStatus
Es un contenedor para el estado de una tarea.
| Representación JSON |
|---|
{ "state": enum ( |
| Campos | |
|---|---|
state |
Obligatorio. Es el estado actual de esta tarea. |
message |
Es un mensaje asociado al estado. |
timestamp |
Es la marca de tiempo en formato ISO 8601 en la que se registró el estado. Ejemplo: "2023-10-27T10:00:00Z" Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
TaskState
Define los posibles estados del ciclo de vida de un Task.
| Enums | |
|---|---|
TASK_STATE_UNSPECIFIED |
La tarea se encuentra en un estado desconocido o indeterminado. |
TASK_STATE_SUBMITTED |
Indica que una tarea se envió y se confirmó correctamente. |
TASK_STATE_WORKING |
Indica que el agente está procesando una tarea de forma activa. |
TASK_STATE_COMPLETED |
Indica que una tarea finalizó correctamente. Este es un estado terminal. |
TASK_STATE_FAILED |
Indica que una tarea finalizó con un error. Este es un estado terminal. |
TASK_STATE_CANCELED |
Indica que se canceló una tarea antes de que se completara. Este es un estado terminal. |
TASK_STATE_INPUT_REQUIRED |
Indica que el agente requiere información adicional del usuario para continuar. Este es un estado interrumpido. |
TASK_STATE_REJECTED |
Indica 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 |
Indica que se requiere autenticación para continuar. Este es un estado interrumpido. |
Mensaje
Message es una unidad de comunicación entre el cliente y el servidor. Se puede asociar con un contexto o una tarea. En el caso de los mensajes del servidor, se debe proporcionar contextId y taskId solo si se creó una tarea. En el caso de los mensajes del cliente, ambos campos son opcionales, con la advertencia de que, si se proporcionan ambos, deben coincidir (el contextId debe ser el que se establece en la tarea). Si solo se proporciona taskId, el servidor inferirá contextId a partir de él.
| Representación JSON |
|---|
{ "messageId": string, "contextId": string, "taskId": string, "role": enum ( |
| Campos | |
|---|---|
messageId |
Obligatorio. Es el identificador único (p.ej., UUID) del mensaje. El creador del mensaje crea este elemento. |
contextId |
Es opcional. Es el ID de contexto del mensaje. Si se configura, el mensaje se asociará con el contexto determinado. |
taskId |
Es opcional. Es el ID de la tarea del mensaje. Si se configura, el mensaje se asociará con la tarea determinada. |
role |
Obligatorio. Identifica al remitente del mensaje. |
parts[] |
Obligatorio. Parts es el contenedor del contenido del mensaje. |
metadata |
Es opcional. Son los metadatos que se proporcionan junto con el mensaje. |
extensions[] |
Son los URIs de las extensiones que están presentes en este mensaje o que contribuyeron a él. |
referenceTaskIds[] |
Es una lista de IDs de tareas a las que hace referencia este mensaje para proporcionar contexto adicional. |
Rol
Define el remitente de un mensaje en la comunicación del protocolo A2A.
| Enums | |
|---|---|
ROLE_UNSPECIFIED |
El rol no se especifica. |
ROLE_USER |
El mensaje es del cliente al servidor. |
ROLE_AGENT |
El mensaje se envía del servidor al cliente. |
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).
| Representación JSON |
|---|
{ "metadata": { object }, "filename": string, "mediaType": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "text": string, "raw": string, "url": string, "data": value // End of mutually exclusive fields. } |
| Campos | |
|---|---|
metadata |
Opcional. Son los metadatos asociados a esta parte. |
filename |
Es un |
mediaType |
El |
| La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
text |
Es el contenido de cadena de la parte |
raw |
Es el contenido de bytes Es una cadena codificada en Base64. |
url |
Es un |
data |
|
| Fin de los campos mutuamente excluyentes. | |
Artefacto
Los artefactos representan los resultados de las tareas.
| Representación JSON |
|---|
{
"artifactId": string,
"name": string,
"description": string,
"parts": [
{
object ( |
| Campos | |
|---|---|
artifactId |
Obligatorio. Es el identificador único (p.ej., UUID) del artefacto. Debe ser único dentro de una tarea. |
name |
Es un nombre legible para el artefacto. |
description |
Es opcional. Es una descripción del artefacto legible por humanos. |
parts[] |
Obligatorio. Es el contenido del artefacto. Debe contener al menos una parte. |
metadata |
Es opcional. Son los metadatos incluidos con el artefacto. |
extensions[] |
Son los URIs de las extensiones que están presentes en este artefacto o que contribuyeron a él. |
Métodos |
|
|---|---|
|
Cancela una tarea en curso. |
|
Obtiene el estado más reciente de una tarea. |
|
Enumera las tareas que coinciden con el filtro especificado. |
|
Se suscribe a las actualizaciones de tareas que no están en un estado terminal. |