Package a2a.v1

Índice

A2AService

O A2AService define a versão gRPC do protocolo A2A. Ele tem um formato um pouco diferente da versão JSONRPC para se adequar melhor ao AIP-127, quando apropriado. Os substantivos são AgentCard, Message, Task e TaskPushNotificationConfig.

  • As mensagens não são um recurso padrão. Portanto, não há uma interface get/delete/update/list, apenas métodos personalizados de envio e transmissão.
  • As tarefas têm uma interface "get" e métodos personalizados de cancelamento e inscrição.
  • TaskPushNotificationConfig é um recurso cujo pai é uma tarefa. Eles têm métodos get, list e create.
  • O AgentCard é um recurso estático com apenas um método "get".
CancelTask

rpc CancelTask(CancelTaskRequest) returns (Task)

Cancele uma tarefa do agente. Se for compatível, não haverá mais atualizações para a tarefa.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

CreateTaskPushNotificationConfig

rpc CreateTaskPushNotificationConfig(CreateTaskPushNotificationConfigRequest) returns (TaskPushNotificationConfig)

Defina uma configuração de notificação push para uma tarefa.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

DeleteTaskPushNotificationConfig

rpc DeleteTaskPushNotificationConfig(DeleteTaskPushNotificationConfigRequest) returns (Empty)

Exclui uma configuração de notificação push para uma tarefa.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

GetAgentCard

rpc GetAgentCard(GetAgentCardRequest) returns (AgentCard)

GetAgentCard retorna o card do agente.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

Permissões do IAM

Requer a seguinte permissão do IAM no recurso tenant:

  • discoveryengine.agents.get

Para mais informações, consulte a documentação do IAM.

GetTask

rpc GetTask(GetTaskRequest) returns (Task)

Recebe o estado atual de uma tarefa do agente.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

GetTaskPushNotificationConfig

rpc GetTaskPushNotificationConfig(GetTaskPushNotificationConfigRequest) returns (TaskPushNotificationConfig)

Recebe uma configuração de notificação push para uma tarefa.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

ListTaskPushNotificationConfig

rpc ListTaskPushNotificationConfig(ListTaskPushNotificationConfigRequest) returns (ListTaskPushNotificationConfigResponse)

Receba uma lista de notificações push configuradas para uma tarefa.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

SendMessage

rpc SendMessage(SendMessageRequest) returns (SendMessageResponse)

Envie uma mensagem para o agente. Essa é uma chamada de bloqueio que retorna a tarefa assim que ela é concluída ou uma LRO, se solicitado.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

SendStreamingMessage

rpc SendStreamingMessage(SendMessageRequest) returns (StreamResponse)

"SendStreamingMessage" é uma chamada de streaming que retorna um fluxo de eventos de atualização de tarefas até que a tarefa esteja em um estado interrompido ou terminal.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

TaskSubscription

rpc TaskSubscription(TaskSubscriptionRequest) returns (StreamResponse)

"TaskSubscription" é uma chamada de streaming que retorna um fluxo de eventos de atualização de tarefas. Isso anexa o fluxo a uma tarefa em andamento. Se a tarefa estiver concluída, o fluxo vai retornar a tarefa concluída (como GetTask) e fechar o fluxo.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

APIKeySecurityScheme

Campos
description

string

Descrição desse esquema de segurança.

location

string

Local da chave de API. Os valores válidos são "query", "header" ou "cookie".

name

string

Nome do parâmetro de cabeçalho, consulta ou cookie a ser usado.

AgentCapabilities

Define o conjunto de atributos A2A compatíveis com o agente.

Campos
streaming

bool

Se o agente vai oferecer suporte a respostas de streaming

push_notifications

bool

Se o agente pode enviar notificações push para o webhook do cliente

extensions[]

AgentExtension

Extensões compatíveis com este agente.

AgentCard

O AgentCard transmite informações importantes: - Detalhes gerais (versão, nome, descrição, usos) - Habilidades: um conjunto de ações/soluções que o agente pode realizar - Modalidades/tipos de conteúdo padrão compatíveis com o agente. - Requisitos de autenticação. Próximo ID: 19

Campos
protocol_version

string

A versão do protocolo A2A compatível com este agente.

name

string

Um nome do agente legível por humanos. Exemplo: "Agente de receitas"

description

string

Uma descrição do domínio de ação/espaço de solução do agente. Exemplo: "Agente que ajuda os usuários com receitas e culinária".

url

string

Um URL para o endereço em que o agente está hospedado. Isso representa o endpoint preferido declarado pelo agente.

preferred_transport

string

O transporte do endpoint preferido. Se estiver vazio, o padrão será JSONRPC.

additional_interfaces[]

AgentInterface

Anúncio de outros transportes compatíveis. O cliente pode usar qualquer um dos transportes compatíveis.

provider

AgentProvider

O provedor de serviços do agente.

version

string

A versão do agente. Exemplo: "1.0.0"

documentation_url

string

Um URL para fornecer mais documentação sobre o agente.

capabilities

AgentCapabilities

Conjunto de recursos A2A compatível com o agente.

security_schemes

map<string, SecurityScheme>

Os detalhes do esquema de segurança usados para autenticar com esse agente.

security[]

Security

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Requisitos de segurança para entrar em contato com o agente. Essa lista pode ser vista como um OR de ANDs. Cada objeto na lista descreve um possível conjunto de requisitos de segurança que precisam estar presentes em uma solicitação. Isso permite especificar, por exemplo, "os autores da chamada precisam usar o OAuth OU uma chave de API E o mTLS". Exemplo: 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 O conjunto de modos de interação que o agente aceita em todas as habilidades. Isso pode ser substituído por habilidade. Definidos como tipos MIME.

default_output_modes[]

string

Os tipos MIME aceitos como saídas desse agente.

skills[]

AgentSkill

As habilidades representam uma unidade de capacidade que um agente pode realizar. Isso pode ser um pouco abstrato, mas representa um conjunto mais focado de ações em que o agente tem alta probabilidade de sucesso.

supports_authenticated_extended_card

bool

Se o agente oferece um card estendido quando o usuário está autenticado. Ou seja, o card de .well-known é diferente do card de GetAgentCard.

signatures[]

AgentCardSignature

Assinaturas da Web JSON calculadas para este AgentCard.

icon_url

string

Um URL opcional para um ícone do agente.

AgentCardSignature

AgentCardSignature representa uma assinatura JWS de um AgentCard. Isso segue o formato JSON de uma assinatura da Web JSON (JWS) RFC 7515.

Campos
protected

string

Obrigatório. O cabeçalho JWS protegido para a assinatura. Esse valor é sempre um objeto JSON codificado em base64url. Obrigatório.

signature

string

Obrigatório. A assinatura calculada, codificada em base64url. Obrigatório.

header

Struct

Os valores de cabeçalho JWS não protegidos.

AgentExtension

Uma declaração de uma extensão compatível com um agente.

Campos
uri

string

O URI da extensão. Exemplo: "https://developers.google.com/identity/protocols/oauth2"

description

string

Uma descrição de como o agente usa essa extensão. Exemplo: "Autenticação do OAuth 2.0 do Google"

required

bool

Se o cliente precisa seguir requisitos específicos da extensão. Exemplo: false

params

Struct

Configuração opcional para a extensão.

AgentInterface

Define informações de transporte adicionais para o agente.

Campos
url

string

O URL em que essa interface é encontrada.

transport

string

O transporte aceitou este URL. Essa é uma string de formulário aberto, fácil de estender para muitos protocolos de transporte. Os principais com suporte oficial são JSONRPC, GRPC e HTTP+JSON.

tenant

string

Locatário a ser definido na solicitação ao chamar o agente. Experimental, ainda pode mudar para a versão 1.0.

AgentProvider

Representa informações sobre o provedor de serviços de um agente.

Campos
url

string

Exemplo de URL de referência dos provedores: "https://ai.google.dev"

organization

string

O nome da organização do provedor. Exemplo: "Google"

AgentSkill

"AgentSkill" representa uma unidade de ação/solução que o agente pode realizar. Isso pode ser considerado um tipo de solução altamente confiável que um agente pode ser encarregado de fornecer. Os agentes têm autonomia para escolher como e quando usar habilidades específicas, mas os clientes precisam ter confiança de que, se a habilidade for definida, essa unidade de ação poderá ser realizada de maneira confiável.

Campos
id

string

Identificador exclusivo da habilidade no agente.

name

string

Um nome legível para a habilidade.

description

string

Uma descrição legível por humanos (ou LLM) dos detalhes e comportamentos da habilidade.

tags[]

string

Um conjunto de tags para a habilidade melhorar a categorização/utilização. Exemplo: ["cooking", "customer support", "billing"]

examples[]

string

Um conjunto de consultas de exemplo que essa habilidade foi projetada para responder. Esses exemplos ajudam o autor da chamada a entender como criar solicitações para o agente e alcançar metas específicas. Exemplo: ["Preciso de uma receita de pão"]

input_modes[]

string

Possíveis modalidades de entrada compatíveis.

output_modes[]

string

Possíveis modalidades de saída produzidas

security[]

Security

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Esquemas de segurança necessários para o agente usar essa habilidade. Assim como em AgentCard.security, essa lista representa um OR lógico de objetos de requisito de segurança. Cada objeto é um conjunto de esquemas de segurança que precisam ser usados juntos (um AND lógico). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

Artefato

Os artefatos são o contêiner dos resultados de tarefas concluídas. Elas são semelhantes às mensagens, mas são o resultado de uma tarefa, e não uma comunicação ponto a ponto.

Campos
artifact_id

string

Identificador exclusivo (por exemplo, UUID) do artefato. Ele precisa ser exclusivo em uma tarefa.

name

string

Um nome legível para o artefato.

description

string

Uma descrição legível do artefato, opcional.

parts[]

Part

O conteúdo do artefato.

metadata

Struct

Metadados opcionais incluídos com o artefato.

extensions[]

string

Os URIs das extensões presentes ou que contribuíram para este artefato.

AuthenticationInfo

Define detalhes de autenticação usados para notificações push.

Campos
schemes[]

string

Esquemas de autenticação compatíveis, por exemplo, Basic, Bearer etc.

credentials

string

Credenciais opcionais

AuthorizationCodeOAuthFlow

Campos
authorization_url

string

O URL de autorização a ser usado nesse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

token_url

string

O URL do token a ser usado para esse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refresh_url

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map<string, string>

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

CancelTaskRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

name

string

O nome do recurso da tarefa a ser cancelada. Formato: tasks/{task_id}

ClientCredentialsOAuthFlow

Campos
token_url

string

O URL do token a ser usado para esse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refresh_url

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map<string, string>

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

CreateTaskPushNotificationConfigRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

parent

string

Obrigatório. O recurso de tarefa principal para essa configuração. Formato: tasks/{task_id}

config_id

string

Obrigatório. O ID da nova configuração.

config

TaskPushNotificationConfig

Obrigatório. A configuração a ser criada.

DataPart

"DataPart" representa um blob estruturado. Geralmente, é um payload JSON.

Campos
data

Struct

DeleteTaskPushNotificationConfigRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

name

string

O nome do recurso da configuração a ser excluída. Formato: tasks/{task_id}/pushNotificationConfigs/{config_id}

FilePart

"FilePart" representa as diferentes maneiras de fornecer arquivos. Se os arquivos forem pequenos, o envio direto dos bytes será aceito usando file_with_bytes. Se o arquivo for grande, o agente vai ler o conteúdo conforme apropriado diretamente da fonte "file_with_uri".

Campos
mime_type

string

name

string

Campo de união file.

file pode ser apenas de um dos tipos a seguir:

file_with_uri

string

file_with_bytes

bytes

GetAgentCardRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

GetTaskPushNotificationConfigRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

name

string

O nome do recurso da configuração a ser recuperada. Formato: tasks/{task_id}/pushNotificationConfigs/{config_id}

GetTaskRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

name

string

Obrigatório. O nome do recurso da tarefa. Formato: tasks/{task_id}

history_length

int32

O número de mensagens mais recentes do histórico da tarefa a serem recuperadas.

HTTPAuthSecurityScheme

Campos
description

string

Descrição desse esquema de segurança.

scheme

string

O nome do esquema de autenticação HTTP a ser usado no cabeçalho de autorização, conforme definido na RFC7235. Os valores usados PRECISAM ser registrados no registro de esquema de autenticação da IANA. O valor não diferencia maiúsculas de minúsculas, conforme definido na RFC7235.

bearer_format

string

Uma dica para o cliente identificar como o token de portador é formatado. Os tokens de portador geralmente são gerados por um servidor de autorização. Portanto, essas informações são principalmente para fins de documentação.

ImplicitOAuthFlow

Campos
authorization_url

string

O URL de autorização a ser usado nesse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refresh_url

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map<string, string>

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

ListTaskPushNotificationConfigRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

parent

string

O recurso de tarefa principal. Formato: tasks/{task_id}

page_size

int32

Para a AIP-158, esses campos estão presentes. Normalmente não é usado/necessário. O número máximo de configurações a serem retornadas. Se não for especificado, todas as configurações serão retornadas.

page_token

string

Um token de página recebido de uma chamada ListTaskPushNotificationConfigRequest anterior. Forneça isso para recuperar a página subsequente. Ao paginar, todos os outros parâmetros fornecidos para ListTaskPushNotificationConfigRequest precisam corresponder à chamada que forneceu o token da página.

ListTaskPushNotificationConfigResponse

Campos
configs[]

TaskPushNotificationConfig

A lista de configurações de notificações push.

next_page_token

string

Um token, que pode ser enviado como page_token para recuperar a próxima página. Se esse campo for omitido, não haverá páginas subsequentes.

Mensagem

Uma mensagem é uma unidade de comunicação entre o cliente e o servidor. Ele está associado a um contexto e, opcionalmente, a uma tarefa. Como o servidor é responsável pela definição do contexto, ele sempre precisa fornecer um context_id nas mensagens. O cliente pode fornecer o context_id se souber o contexto a que a mensagem deve ser associada. Da mesma forma para task_id, exceto que o servidor decide se uma tarefa é criada e se o task_id deve ser incluído.

Campos
message_id

string

O identificador exclusivo (por exemplo, UUID) da mensagem. Isso é obrigatório e criado pelo criador da mensagem.

context_id

string

O ID de contexto da mensagem. Isso é opcional e, se definido, a mensagem será associada ao contexto especificado.

task_id

string

O ID da tarefa da mensagem. Isso é opcional e, se definido, a mensagem será associada à tarefa especificada.

role

Role

Uma função para a mensagem.

content[]

Part

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.

metadata

Struct

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Quaisquer metadados opcionais a serem fornecidos com a mensagem.

extensions[]

string

Os URIs das extensões presentes ou que contribuíram para esta mensagem.

MutualTlsSecurityScheme

Campos
description

string

Descrição desse esquema de segurança.

OAuth2SecurityScheme

Campos
description

string

Descrição desse esquema de segurança.

flows

OAuthFlows

Um objeto que contém informações de configuração para os tipos de fluxo compatíveis.

oauth2_metadata_url

string

URL dos metadados do servidor de autorização oauth2 RFC8414. O TLS é obrigatório.

OAuthFlows

Campos

Campo de união flow.

flow pode ser apenas de um dos tipos a seguir:

authorization_code

AuthorizationCodeOAuthFlow

client_credentials

ClientCredentialsOAuthFlow

implicit

ImplicitOAuthFlow

password

PasswordOAuthFlow

OpenIdConnectSecurityScheme

Campos
description

string

Descrição desse esquema de segurança.

open_id_connect_url

string

URL conhecido para descobrir os metadados do provedor [[OpenID-Connect-Discovery]].

Parte

Uma parte representa um contêiner para uma seção de conteúdo de comunicação. As partes podem ser puramente textuais, algum tipo de arquivo (imagem, vídeo etc.) ou um blob de dados estruturados (ou seja, JSON).

Campos
metadata

Struct

Metadados opcionais associados a esta parte.

Campo de união part.

part pode ser apenas de um dos tipos a seguir:

text

string

file

FilePart

data

DataPart

PasswordOAuthFlow

Campos
token_url

string

O URL do token a ser usado para esse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refresh_url

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map<string, string>

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

PushNotificationConfig

Configuração para definir notificações push de atualizações de tarefas.

Campos
id

string

Um identificador exclusivo (por exemplo, UUID) para essa notificação push.

url

string

URL para enviar a notificação

token

string

Token exclusivo para esta tarefa/sessão.

authentication

AuthenticationInfo

Informações sobre a autenticação a ser enviada com a notificação.

Papel

Tipos enumerados
ROLE_UNSPECIFIED
ROLE_USER A função USER se refere à comunicação do cliente com o servidor.
ROLE_AGENT A função AGENT se refere à comunicação do servidor com o cliente.

Segurança

Campos
schemes

map<string, StringList>

SecurityScheme

Campos

Campo de união scheme.

scheme pode ser apenas de um dos tipos a seguir:

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

Configuração de uma solicitação de mensagem de envio.

Campos
accepted_output_modes[]

string

Os modos de saída que o agente deve usar para responder.

push_notification

PushNotificationConfig

Uma configuração de webhook que pode ser usada para receber atualizações

history_length

int32

O número máximo de mensagens a serem incluídas no histórico. Se for 0, o histórico será ilimitado.

blocking

bool

Se for verdadeiro, a mensagem vai bloquear até que a tarefa seja concluída. Se for "false", a mensagem não será bloqueadora, e a tarefa será retornada imediatamente. É responsabilidade do autor da chamada verificar se há atualizações de tarefas.

SendMessageRequest

///////// Solicitações de mensagem ///////////

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

request

Message

Obrigatório. A mensagem a ser enviada ao agente.

configuration

SendMessageConfiguration

Configuração da solicitação de envio.

metadata

Struct

Metadados opcionais para a solicitação.

SendMessageResponse

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

Campos

Campo de união payload.

payload pode ser apenas de um dos tipos a seguir:

task

Task

msg

Message

StreamResponse

A resposta de stream para uma mensagem. O fluxo precisa ser uma das seguintes sequências: se a resposta for uma mensagem, o fluxo vai conter uma, e apenas uma, mensagem e será fechado. Se a resposta for um ciclo de vida de tarefa, a primeira resposta será um objeto "Task" seguido por zero ou mais "TaskStatusUpdateEvents" e "TaskArtifactUpdateEvents". O stream será concluído quando a tarefa estiver em um estado interrompido ou terminal. Um stream que termina antes de atender a essas condições é

Campos

Campo de união payload.

payload pode ser apenas de um dos tipos a seguir:

task

Task

msg

Message

status_update

TaskStatusUpdateEvent

artifact_update

TaskArtifactUpdateEvent

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

Campos
list[]

string

Tarefa

A tarefa é a unidade principal de ação para A2A. Ele tem um status atual e, quando os resultados são criados para a tarefa, eles são armazenados no artefato. Se houver várias interações para uma tarefa, elas serão armazenadas no histórico.

Campos
id

string

Identificador exclusivo (por exemplo, UUID) da tarefa, gerado pelo servidor para uma nova tarefa.

context_id

string

Identificador exclusivo (por exemplo, UUID) da coleta contextual de interações (tarefas e mensagens). Criado pelo servidor A2A.

status

TaskStatus

O status atual de uma tarefa, incluindo estado e uma mensagem.

artifacts[]

Artifact

Um conjunto de artefatos de saída para uma tarefa.

history[]

Message

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED O histórico de interações de uma tarefa.

metadata

Struct

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Um objeto de chave-valor para armazenar metadados personalizados sobre uma tarefa.

TaskArtifactUpdateEvent

"TaskArtifactUpdateEvent" representa um delta de tarefa em que um artefato foi gerado.

Campos
task_id

string

O ID da tarefa para este artefato.

context_id

string

O ID do contexto a que essa tarefa pertence

artifact

Artifact

O próprio artefato

append

bool

Se isso deve ser anexado a um produzido anteriormente

last_chunk

bool

Se isso representa a última parte de um artefato

metadata

Struct

Metadados opcionais associados à atualização do artefato.

TaskPushNotificationConfig

Campos
name

string

O nome do recurso da configuração. Formato: tasks/{task_id}/pushNotificationConfigs/{config_id}

push_notification_config

PushNotificationConfig

Os detalhes da configuração de notificação push.

TaskState

O conjunto de estados em que uma tarefa pode estar.

Tipos enumerados
TASK_STATE_UNSPECIFIED
TASK_STATE_SUBMITTED Representa o status que reconhece que uma tarefa foi criada.
TASK_STATE_WORKING Representa o status de uma tarefa que está sendo processada ativamente.
TASK_STATE_COMPLETED Representa o status de uma tarefa concluída. Esse é um estado terminal
TASK_STATE_FAILED Representa o status de uma tarefa concluída, mas com falha. Esse é um estado terminal
TASK_STATE_CANCELLED Representa o status de uma tarefa que foi cancelada antes de ser concluída. Esse é um estado terminal.
TASK_STATE_INPUT_REQUIRED Representa o status em que a tarefa precisa de informações para ser concluída. Esse é um estado interrompido.
TASK_STATE_REJECTED Representa o status em que o agente decidiu não realizar a tarefa. Isso pode ser feito durante a criação inicial da tarefa ou depois que um agente determinar que não pode ou não vai continuar. Esse é um estado terminal.
TASK_STATE_AUTH_REQUIRED Representa o estado em que é necessária alguma autenticação do cliente upstream. A autenticação deve ser feita fora da banda. Portanto, esse não é um estado interrompido ou terminal.

TaskStatus

Um contêiner para o status de uma tarefa

Campos
state

TaskState

O estado atual da tarefa

update

Message

Uma mensagem associada ao status.

timestamp

Timestamp

Carimbo de data/hora em que o status foi registrado. Exemplo: "2023-10-27T10:00:00Z"

TaskStatusUpdateEvent

TaskStatusUpdateEvent é um evento delta em uma tarefa que indica que ela mudou.

Campos
task_id

string

O ID da tarefa que foi alterada

context_id

string

O ID do contexto a que a tarefa pertence

status

TaskStatus

O novo status da tarefa.

final

bool

Se esta é a última atualização de status esperada para essa tarefa.

metadata

Struct

Metadados opcionais a serem associados à atualização da tarefa.

TaskSubscriptionRequest

Campos
tenant

string

Locatário opcional, fornecido como um parâmetro de caminho. Experimental, ainda pode mudar para a versão 1.0.

name

string

O nome do recurso da tarefa a ser inscrita. Formato: tasks/{task_id}