É possível usar a API Data Engineering Agent, acessada por
geminidataanalytics.googleapis.com, para criar, modificar e gerenciar pipelines de dados
para carregar e processar dados no BigQuery. A API usa o protocolo A2A, que permite usar comandos de linguagem natural para gerar e editar pipelines de dados de acordo com suas necessidades de engenharia de dados.
Para mais informações sobre o agente de engenharia de dados, consulte Usar o agente de engenharia de dados para criar e modificar pipelines de dados.
Saiba como e quando o Gemini para Google Cloud usa seus dados.
Antes de começar
Antes de usar a API Data Engineering Agent, siga as etapas nestas seções.
Ativar APIs
Verifique se você ativou as APIs e tem as permissões necessárias. Para mais informações, consulte Ativar as APIs necessárias.
Instalar bibliotecas de cliente
Instale as seguintes bibliotecas de cliente:
Para mais informações, consulte Protocolo Agent2Agent (A2A).
Extensões A2A compatíveis
O agente de engenharia de dados é compatível com as seguintes extensões A2A, algumas das quais são necessárias ao interagir com ele.
| Nome da extensão | Requisito | Descrição | URI |
|---|---|---|---|
GcpResource |
Obrigatório | O ID do recurso Google Cloud em que o agente opera. Isso é obrigatório para cada solicitação. | https://geminidataanalytics.googleapis.com/a2a/extensions/gcpresource/v1 |
ConversationToken |
Opcional | Uma extensão para o histórico de conversas multiturno como um token de conversa opaco. Essa extensão é necessária para que as conversas multiturno continuem de um estado anterior. Para continuar, copie o valor do token de conversa no campo de metadados da resposta anterior do agente e inclua-o no campo de metadados da próxima solicitação ao agente. |
https://geminidataanalytics.googleapis.com/a2a/extensions/conversationtoken/v1 |
MessageLevel |
Opcional | O nível de mensagem para controle de visibilidade do cliente sobre atualizações de mensagens. O agente que oferece suporte a essa extensão anexa o messageLevel a cada message para controle de visibilidade do cliente. |
https://geminidataanalytics.googleapis.com/a2a/extensions/messagelevel/v1 |
Finish Reason |
Opcional | Uma extensão que indica o motivo da interrupção do agente. Quando DEADLINE_EXCEEDED é retornado, o cliente retoma a tarefa de onde parou com o token de conversa retornado na resposta nos metadados. |
https://geminidataanalytics.googleapis.com/a2a/extensions/finishreason/v1 |
Ativar a extensão A2A
Para ativar a extensão A2A, o cliente precisa incluir o cabeçalho A2A-Extensions na solicitação HTTP ao agente. O valor é uma lista separada por vírgulas de
URIs de extensão para ativação.
A extensão GcpResource precisa estar ativada para interagir com a API A2A do agente de engenharia de dados.
O exemplo a seguir mostra uma solicitação HTTP para ativar a extensão A2A.
POST /v1/a2a/projects/{project}/locations/{location}/agents/dataengineeringagent/v1/message:stream HTTP/1.1 Host: geminidataanalytics.googleapis.com Content-Type: application/json Authorization: Bearer $(gcloud auth print-access-token) A2A-Extensions: https://geminidataanalytics.googleapis.com/a2a/extensions/messagelevel/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/instruction/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/gcpresource/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/pipelinecontext/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/conversationtoken/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/finishreason/v1 Content-Length: 869 { "request": { "messageId": "0ad14bfa-8d17-48ce-8669-52a856129a66", "role": "ROLE_USER", "contextId": "test-context-id", "content": [{ "text": "hi" }] }, "metadata": { "https://geminidataanalytics.googleapis.com/a2a/extensions/conversationtoken/v1": "cmVxdWVzdGNvbnZlcnNhdGlvbnRva2Vu", "https://geminidataanalytics.googleapis.com/a2a/extensions/gcpresource/v1": { "gcpResourceId": "projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}" }, "https://geminidataanalytics.googleapis.com/a2a/extensions/instruction/v1": { "agentInstructions": [{ "definition": "Always use uppercase for SQL keywords.", "name": "style_guide.md" }] } }, "tenant": "projects/{project}/locations/{location}/agents/dataengineeringagent" }
A resposta pode ser semelhante a esta.
HTTP/1.1 200 OK Content-Type: application/json A2A-Extensions: https://geminidataanalytics.googleapis.com/a2a/extensions/messagelevel/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/instruction/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/gcpresource/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/pipelinecontext/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/conversationtoken/v1, https://geminidataanalytics.googleapis.com/a2a/extensions/finishreason/v1 Transfer-Encoding: chunked { "statusUpdate": { "status": { "state": "TASK_STATE_COMPLETED", "timestamp": "example-timestamp" }, "final": true, "metadata": { "https://geminidataanalytics.googleapis.com/a2a/extensions/conversationtoken/v1": "Y29udmVyc2F0aW9udG9rZW4=", "https://geminidataanalytics.googleapis.com/a2a/extensions/finishreason/v1": "FINISHED" } } }
Principais operações da API
A API fornece os seguintes endpoints principais para usar o agente de engenharia de dados:
| Operação | Método HTTP | Endpoint | Descrição |
|---|---|---|---|
| Acessar card do agente | GET | /v1/a2a/{tenant=projects/*/locations/*/agents/dataengineeringagent}/v1/card |
Recupera as informações do card do agente. |
| Enviar mensagem de streaming | POST | /v1/a2a/{tenant=projects/*/locations/*/agents/dataengineeringagent}/v1/message:stream |
Um método de streaming para enviar um comando ao agente e receber respostas de streaming. A seguinte permissão é necessária: geminidataanalytics.locations.useDataEngineeringAgent. |
| Enviar mensagem | POST | /v1/a2a/{tenant=projects/*/locations/*/agents/dataengineeringagent}/v1/message:send |
Um método unário para enviar um comando ao agente e receber uma resposta síncrona. Isso pode ser útil para validação rápida ou perguntas de uma única rodada. A seguinte permissão é necessária: geminidataanalytics.locations.useDataEngineeringAgent. |
Outros recursos
Para descrições detalhadas de métodos, endpoints e definições de tipo para estruturas de solicitação e resposta, consulte a referência da API REST do agente de engenharia de dados.