Outils OpenAPI et Integration Connectors

Vous pouvez utiliser les fonctionnalités d'Agent Assist avec des API et des sources de données externes. Google Cloud fournit des outils OpenAPI et des Integration Connectors pour faciliter vos intégrations Agent Assist.

Outils OpenAPI

Les outils OpenAPI permettent la connexion entre les fonctionnalités d'Assistance de l'agent et les API externes. Cette connexion permet aux fonctionnalités d'Agent Assist de lire et d'écrire des informations provenant de plusieurs sources. Pour créer un outil OpenAPI, vous devez fournir un schéma OpenAPI qui décrit les API externes auxquelles vous souhaitez vous connecter.

Outil Integration Connectors

Utilisez Integration Connectors pour vous connecter Google Cloud à différentes sources de données. Les outils de connecteur permettent aux fonctionnalités d'Assistance de l'agent d'utiliser Integration Connectors pour lire et écrire ces sources de données.

Avant de commencer

Pour configurer l'environnement afin de créer des outils OpenAPI et Integration Connectors, saisissez l'ID de votre projet et votre région, puis exécutez le code suivant.

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" "$@"
}

Créer un outil OpenAPI

Pour utiliser un outil OpenAPI, vous devez d'abord demander sa création et enregistrer le nom de ressource de l'outil.

Étape 1 : Demander à créer un outil

Pour demander à créer un outil OpenAPI, procédez comme suit.

  1. Personnalisez le code comme suit :
    1. Dans un même projet, utilisez une valeur tool_key unique pour tous vos outils.
    2. Saisissez votre propre schéma OpenAPI dans le champ open_api_spec.text_schema.
  2. Exécutez le code personnalisé suivant.

    $ 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

Si l'opération réussit, l'API renvoie l'outil nouvellement créé, qui contient le nom de ressource, comme indiqué dans l'exemple suivant.

{
  "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"
  }
}

Étape 2 : Enregistrez le nom de ressource de l'outil

Enregistrez le nom de ressource de l'outil dans une variable d'environnement pour une utilisation ultérieure. Voici un exemple de modèle pour la variable d'environnement de ressource d'outil.

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

Coach IA avec un outil OpenAPI

Vous pouvez utiliser un outil OpenAPI avec la fonctionnalité Coach IA pour accéder à des informations supplémentaires en dehors de Google Cloud. Ces informations externes peuvent ensuite être utilisées pour générer des suggestions qui aident les agents du centre de contact.

Étape 1 : Créez un générateur

L'exemple suivant crée un générateur avec la variable d'environnement de ressource d'outil.

$ 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

Vous devriez recevoir une réponse semblable à l'exemple suivant de générateur de coach 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"
  ]
}

Enregistrer le nom de ressource du générateur

Enregistrez-le en tant que variable d'environnement pour une utilisation ultérieure, comme dans l'exemple suivant.

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

Étape 2 : Créez un profil de conversation

Exécutez le code suivant pour créer un profil de conversation.

$ 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

Vous devriez obtenir une réponse semblable à la suivante.

{
  "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}"
}

Enregistrer le nom de ressource du profil de conversation

Enregistrez ce nom en tant que variable d'environnement, comme dans l'exemple suivant.

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

Étape 3 : Créez une conversation

Exécutez le code suivant pour créer une conversation.

$ 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

Vous devriez obtenir une réponse semblable à la suivante.

{
  "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"
    }
  }
}

Enregistrer le nom de ressource de la conversation

Enregistrez ce nom en tant que variable d'environnement pour une utilisation ultérieure. Votre variable doit se présenter comme suit.

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

Étape 4 : Créez un utilisateur final

Exécutez le code suivant pour créer un utilisateur 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

Vous devriez obtenir une réponse semblable à la suivante.

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

Enregistrer le nom de ressource de l'utilisateur final

Enregistrez le nom de ressource de l'utilisateur final en tant que variable d'environnement, comme suit.

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

Étape 5 : Créez un agent humain

Exécutez le code suivant pour créer un agent humain.

$ 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

Vous devriez obtenir une réponse semblable à la suivante.

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

Enregistrer le nom de ressource de l'agent humain

Enregistrez le nom de ressource de l'agent humain en tant que variable d'environnement, comme suit.

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

Étape 6 : Envoyer du texte au coach IA

Exécutez le code suivant pour envoyer du texte au coach IA avec la méthode 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

Étape 7 : Validez l'appel d'outil

Exécutez le code suivant pour vérifier l'appel d'outil.

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

Vous devriez obtenir une réponse semblable à la suivante.

[
  {
    "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"
    }
  }
]

Étape 8 : (Facultatif) Supprimez les ressources

Pour supprimer les ressources que vous avez créées lors des étapes précédentes, exécutez le code suivant.

Profil de conversation

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

Générateur

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

Outil OpenAPI

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

Créer un outil Integration Connectors

Vous pouvez configurer Integration Connectors à l'aide de la console Google Cloud . Procédez comme suit pour créer un outil Connecteurs d'intégration Agent Assist basé sur un connecteur BigQuery.

Étape 1 : Créer un outil de connecteur BigQuery

Avant de créer un outil Integration Connectors, accédez à la consoleGoogle Cloud et créez un outil BigQuery Integration Connectors.

Étape 2 : Demander à créer l'outil Integration Connectors

Exécutez le code suivant pour demander à créer un outil. Pour le champ connector_spec.name, utilisez le nom de ressource de votre connecteur 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

Vous devriez obtenir une réponse semblable à celle-ci :

{
  "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"
}

Étapes suivantes

Pour obtenir la liste complète des outils Integration Connectors compatibles avec Agent Assist, consultez la liste des outils du connecteur Dialogflow.