Ferramentas OpenAPI e Integration Connectors

Pode usar as funcionalidades do Agent Assist juntamente com APIs e origens de dados externas. Google Cloud oferece ferramentas OpenAPI e Integration Connectors para facilitar as suas integrações do Agent Assist.

Ferramentas da OpenAPI

As ferramentas OpenAPI permitem a ligação entre as funcionalidades do Agent Assist e as APIs externas. Esta ligação permite que as funcionalidades do Agent Assist leiam e escrevam informações de várias origens. Para criar uma ferramenta OpenAPI, tem de fornecer um esquema OpenAPI que descreva as APIs externas com as quais quer estabelecer ligação.

Ferramenta Integration Connectors

Use conetores de integração para se ligar Google Cloud a várias origens de dados. As ferramentas de conetor permitem que as funcionalidades do Agent Assist usem conetores de integração para ler e escrever nessas origens de dados.

Antes de começar

Para configurar o ambiente de criação de ferramentas OpenAPI e Integration Connectors, introduza o ID do projeto e a região e, de seguida, execute o seguinte código.

CLOUDSDK_CORE_PROJECT=YOUR_PROJECT_ID
REGION=YOUR_REGION
API_VERSION=v2beta1
API_ENDPOINT=https://${REGION}-dialogflow.googleapis.com/${API_VERSION}

function gcurl () {
        curl -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "X-Goog-User-Project: ${CLOUDSDK_CORE_PROJECT}" -H "Content-Type: application/json; charset=utf-8" "$@"
}

Crie uma ferramenta OpenAPI

Para usar uma ferramenta OpenAPI, tem de pedir primeiro a respetiva criação e guardar o nome do recurso da ferramenta.

Passo 1: peça para criar uma ferramenta

Siga estes passos para pedir a criação de uma ferramenta OpenAPI.

  1. Personalize o código da seguinte forma:
    1. Num único projeto, use um valor tool_key que seja exclusivo entre todas as suas ferramentas.
    2. Introduza o seu próprio esquema OpenAPI no campo open_api_spec.text_schema.
  2. Execute o seguinte código personalizado.

    $ cat > create-tool-request.json << EOF
    {
      "tool_key": "UNIQUE_KEY",
      "description": "TOOL_DESCRIPTION",
      "display_name": "TOOL_DISPLAY_NAME",
      "open_api_spec": {
        "text_schema": "Your-Schema"
      }
    }
    EOF

    $ gcurl -X POST ${API_ENDPOINT}/projects/${CLOUDSDK_CORE_PROJECT}/locations/${REGION}/tools -d @create-tool-request.json | tee create-tool-response.json

Se for bem-sucedido, a API devolve a ferramenta recém-criada, que contém o nome do recurso, conforme mostrado no exemplo seguinte.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/tools/Tool-ID",
  "toolKey": "UNIQUE_KEY",
  "description": "TOOL_DESCRIPTION",
  "createTime": "2025-06-02T18:11:38.999174724Z",
  "updateTime": "2025-06-02T18:11:38.999174724Z",
  "displayName": "TOOL_DISPLAY_NAME",
  "openApiSpec": {
    "textSchema": "Your-Schema"
  }
}

Passo 2: guarde o nome do recurso da ferramenta

Guarde o nome do recurso da ferramenta numa variável de ambiente para utilização posterior. Segue-se um modelo de exemplo para a variável de ambiente do recurso da ferramenta.

TOOL_RESOURCE=$(cat create-tool-response.json | jq .name | tr -d '"')

Preparador de IA com uma ferramenta da OpenAPI

Pode usar uma ferramenta OpenAPI com a funcionalidade AI coach para aceder a informações adicionais fora do Google Cloud. Essas informações externas podem ser usadas para gerar sugestões que ajudam os agentes do centro de contacto.

Passo 1: crie um gerador

O exemplo seguinte cria um gerador com a variável de ambiente do recurso da ferramenta.

$ cat > create-generator-request.json << _EOF_
{"agent_coaching_context":{"instructions":[{"agent_action":"help customer by using the tool to find information from library of congress","condition":"The customer asks about library of congress","description":"agent coaching test","display_name":"Search for information"}],"overarching_guidance":"Help customer with questions"},"description":"prober-generate-suggestions-with-agent-coaching-generator","inference_parameter":{"max_output_tokens":256,"temperature":0},"tools":["${TOOL_RESOURCE}"],"trigger_event":"CUSTOMER_MESSAGE"}
_EOF_

$ gcurl -X POST ${API_ENDPOINT}/projects/${CLOUDSDK_CORE_PROJECT}/locations/${REGION}/generators -d @create-generator-request.json | tee create-generator-response.json

_EOF_

$ gcurl -X POST ${API_ENDPOINT}/projects/${CLOUDSDK_CORE_PROJECT}/locations/${REGION}/generators -d @create-generator-request.json | tee create-generator-response.json

Deve receber uma resposta semelhante ao seguinte exemplo de um gerador de treinadores de IA.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/generators/Generator-ID",
  "description": "example-generator",
  "inferenceParameter": {
    "maxOutputTokens": 256,
    "temperature": 0
  },
  "triggerEvent": "CUSTOMER_MESSAGE",
  "createTime": "2025-06-02T18:30:51.021461728Z",
  "updateTime": "2025-06-02T18:30:51.021461728Z",
  "agentCoachingContext": {
    "instructions": [
      {
        "displayName": "Search for information",
        "condition": "The customer asks about library of congress",
        "agentAction": "help customer by using the tool to find information from library of congress"
      }
    ],
    "version": "1.5",
    "overarchingGuidance": "Help customer with questions"
  },
  "tools": [
    "projects/Your-Project-ID/locations/Your-Region/tools/Tool-ID"
  ]
}

Guarde o nome do recurso do gerador

Guarde-o como uma variável de ambiente para utilização posterior, como no exemplo seguinte.

GENERATOR_RESOURCE=$(cat create-generator-response.json | jq .name | tr -d '"')

Passo 2: crie um perfil de conversa

Execute o seguinte código para criar um perfil de conversa.

$ cat > create-conversation-profile-request.json << _EOF_
{"displayName":"prober-generate-suggestions-with-agent-coaching-generator","humanAgentAssistantConfig":{"humanAgentSuggestionConfig":{"generators":["${GENERATOR_RESOURCE}"]}}}
_EOF_

$ gcurl -X POST ${API_ENDPOINT}/projects/${CLOUDSDK_CORE_PROJECT}/locations/${REGION}/conversationProfiles -d @create-conversation-profile-request.json | tee create-conversation-profile-response.json

Deve receber uma resposta semelhante à seguinte.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/conversationProfiles/Conversation-Profile-ID",
  "displayName": "prober-generate-suggestions-with-agent-coaching-generator",
  "humanAgentAssistantConfig": {
    "humanAgentSuggestionConfig": {
      "generators": [
        "projects/Your-Project-ID/locations/Your-Region/generators/Generator-ID"
      ]
    }
  },
  "languageCode": "en-US",
  "createTime": "2025-06-02T18:40:39.940318Z",
  "updateTime": "2025-06-02T18:40:39.940318Z",
  "projectNumber": "${project_number}"
}

Guarde o nome do recurso do perfil de conversa

Guarde este nome como uma variável de ambiente, como no exemplo seguinte.

CONVERSATION_PROFILE_RESOURCE=$(cat create-conversation-profile-response.json | jq .name | tr -d '"')

Passo 3: crie uma conversa

Execute o seguinte código para criar uma conversa.

$ cat > create-conversation-request.json << _EOF_
{"conversationProfile":"${CONVERSATION_PROFILE_RESOURCE}"}
_EOF_

$ gcurl -X POST ${API_ENDPOINT}/projects/${CLOUDSDK_CORE_PROJECT}/locations/${REGION}/conversations -d @create-conversation-request.json | tee create-conversation-response.json

Deve receber uma resposta semelhante à seguinte.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/conversations/Conversation-ID",
  "lifecycleState": "IN_PROGRESS",
  "conversationProfile": "projects/Your-Project-ID/locations/Your-Region/conversationProfiles/Conversation-Profile-ID",
  "startTime": "2025-06-02T18:43:40.818123Z",
  "conversationStage": "HUMAN_ASSIST_STAGE",
  "source": "ONE_PLATFORM_API",
  "initialConversationProfile": {
    "name": "projects/Your-Project-ID/locations/Your-Region/conversationProfiles/Conversation-Profile-ID",
    "displayName": "prober-generate-suggestions-with-agent-coaching-generator",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "generators": [
          "projects/Your-Project-ID/locations/Your-Region/generators/Generator-ID"
        ]
      }
    },
    "languageCode": "en-US"
  },
  "projectNumber": "${project_number}",
  "initialGeneratorContexts": {
    "projects/Your-Project-ID/locations/Your-Region/generators/Generator-ID": {
      "generatorType": "AGENT_COACHING",
      "generatorVersion": "1.5"
    }
  }
}

Nome do recurso da conversa guardada

Guarde este nome como uma variável de ambiente para utilização posterior. A variável deve ter o seguinte formato.

CONVERSATION_RESOURCE=$(cat create-conversation-response.json | jq .name | tr -d '"') 

Passo 4: crie um utilizador final

Execute o seguinte código para criar um utilizador final.

$ cat > create-end-user-request.json << _EOF_
{"role":"END_USER"}
_EOF_

$ gcurl -X POST ${API_ENDPOINT}/${CONVERSATION_RESOURCE}/participants -d @create-end-user-request.json | tee create-end-user-response.json

Deve receber uma resposta semelhante à seguinte.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/conversations/Conversation-ID/participants/End-User-Participant-ID",
  "role": "END_USER"
}

Guarde o nome do recurso do utilizador final

Guarde o nome do recurso do utilizador final como uma variável de ambiente, como a seguinte.

END_USER_RESOURCE=$(cat create-end-user-response.json | jq .name | tr -d '"')

Passo 5: crie um agente humano

Execute o seguinte código para criar um agente humano.

$ cat > create-human-agent-request.json << _EOF_
{"role":"HUMAN_AGENT"}
_EOF_

$ gcurl -X POST ${API_ENDPOINT}/${CONVERSATION_RESOURCE}/participants -d @create-human-agent-request.json | tee create-human-agent-response.json

Deve receber uma resposta semelhante à seguinte.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/conversations/Conversation-IDHuman-Agent-Participant-ID",
  "role": "HUMAN_AGENT"
}

Guarde o nome do recurso do agente humano

Guarde o nome do recurso do agente humano como uma variável de ambiente, como a seguinte.

HUMAN_AGENT_RESOURCE=$(cat create-human-agent-response.json | jq .name | tr -d '"')

Passo 6: envie texto para o coach de IA

Execute o seguinte código para enviar texto ao preparador de IA com o método AnalyzeContent.

cat > analyze-content-1-request.json << _EOF_
{"text_input":{"languageCode":"en-US","text":"Can you search library of congress for the latest trends"}}
_EOF_

gcurl -X POST "${API_ENDPOINT}/${END_USER_RESOURCE}:analyzeContent" -d @analyze-content-1-request.json | tee analyze-content-1-response.json

Passo 7: valide a chamada de ferramenta

Execute o seguinte código para validar a chamada de ferramenta.

cat analyze-content-1-response.json| jq ".humanAgentSuggestionResults[0].generateSuggestionsResponse.generatorSuggestionAnswers[0].generatorSuggestion.toolCallInfo"

Deve receber uma resposta semelhante à seguinte.

[
  {
    "toolCall": {
      "tool": "projects/Your-Project-ID/locations/Your-Region/tools/Tool-ID",
      "action": "search",
      "inputParameters": {
        "q": "latest trends",
        "fo": "json",
        "tool_description": "A generic search endpoint that might be available across various LoC APIs. The structure of the results will vary.\n",
        "at": "trending_content"
      },
      "createTime": "2025-06-02T18:56:53.882479179Z"
    },
    "toolCallResult": {
      "tool": "projects/Your-Project-ID/locations/Your-Region/tools/MjM0NTU3NDk2MTM5NTAwNzQ4OQ",
      "action": "search",
      "content": ""}]}",
      "createTime": "2025-06-02T18:56:54.289367086Z"
    }
  }
]

Passo 8: (opcional) elimine recursos

Para eliminar os recursos que criou nos passos anteriores, execute o seguinte código.

Perfil de conversa

gcurl -X DELETE ${API_ENDPOINT}/${CONVERSATION_PROFILE_RESOURCE}

Gerador

gcurl -X DELETE ${API_ENDPOINT}/${GENERATOR_RESOURCE}

Ferramenta OpenAPI

gcurl -X DELETE ${API_ENDPOINT}/${TOOL_RESOURCE}

Crie uma ferramenta Integration Connectors

Pode configurar conetores de integração através da Google Cloud consola. Siga estes passos para criar uma ferramenta de conetores de integração do Agent Assist com base num conetor do BigQuery.

Passo 1: crie uma ferramenta de conetor do BigQuery

Antes de criar uma ferramenta Integration Connectors, aceda à Google Cloud consola e crie um Integration Connectors do BigQuery.

Passo 2: peça a criação da ferramenta Integration Connectors

Execute o seguinte código para pedir a criação de uma ferramenta. Para o campo connector_spec.name, use o nome do recurso do conetor do BigQuery.

cat > create-connector-tool-request.json << _EOF_
{
  "tool_key": "order_tool",
  "description": "order bigquery connector tool",
  "display_name": "order bigquery connector tool",
  "connector_spec": {
    "name": "projects/Your-Project-ID/locations/Your-Region/connections/Your-Connector-ID",
    "actions": [
                             {
                               "entityOperation": {
                                 "entityId": "Orders",
                                 "operation": "LIST"
                               }
                             }, {
                               "entityOperation": {
                                 "entityId": "Orders",
                                 "operation": "GET"
                               }
                             }
                           ]
  }
}
_EOF_


gcurl -X POST ${API_ENDPOINT}/projects/${CLOUDSDK_CORE_PROJECT}/locations/${REGION}/tools -d @create-connector-tool-request.json | tee create-connector-tool-response.json

Deve receber uma resposta semelhante à seguinte.

{
  "name": "projects/Your-Project-ID/locations/Your-Region/tools/Tool-ID",
  "toolKey": "order_tool",
  "description": "order bigquery connector tool",
  "createTime": "2025-06-03T19:29:55.896178942Z",
  "updateTime": "2025-06-03T19:29:55.896178942Z",
  "connectorSpec": {
    "name": "projects/Your-Project-ID/locations/Your-Region/connections/order-bigquery-connector",
    "actions": [
      {
        "entityOperation": {
          "entityId": "Orders",
          "operation": "LIST"
        }
      },
      {
        "entityOperation": {
          "entityId": "Orders",
          "operation": "GET"
        }
      }
    ]
  },
  "displayName": "order bigquery connector tool"
}

O que se segue?

Para ver uma lista completa das ferramentas do Integration Connectors que o Agent Assist suporta, consulte a lista de ferramentas do Dialogflow Connector.