Dengan menggunakan alat, Anda dapat menghubungkan playbook ke sistem eksternal. Sistem ini dapat menambah pengetahuan playbook dan memberdayakannya untuk menjalankan tugas yang kompleks secara efisien.
Anda dapat menggunakan alat bawaan atau membuat alat yang disesuaikan dengan kebutuhan Anda.
Pengujian alat
Setelah membuat alat, Anda dapat menggunakan fitur pengujian alat untuk memverifikasi bahwa alat tersebut berfungsi. Saat melihat alat, klik tombol Test di atas panel alat. Tindakan ini akan membuka alat untuk input di simulator. Berikan input alat, lalu klik View Output untuk memverifikasi output alat yang benar.
Anda juga dapat menggunakan fitur pengujian alat saat menambahkan alat ke contoh.
Alat bawaan
Alat bawaan dihosting oleh Google. Anda dapat mengaktifkan alat ini di agen tanpa perlu konfigurasi manual.
Alat bawaan yang didukung adalah:
Code Interpreter: Alat pihak pertama Google yang menggabungkan kemampuan pembuatan kode dan eksekusi kode serta memungkinkan Anda melakukan berbagai tugas, termasuk analisis data, visualisasi data, pemrosesan teks, dan menyelesaikan persamaan atau masalah pengoptimalan.
Agen Anda dioptimalkan untuk menentukan cara dan waktu alat ini harus dipanggil, tetapi Anda dapat memberikan contoh tambahan agar sesuai dengan kasus penggunaan Anda.
Contoh skema:
{
"toolUse": {
"tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/df-code-interpreter-tool",
"action": "generate_and_execute",
"inputParameters": [
{
"name": "generate_and_execute input",
"value": "4 + 4"
}
],
"outputParameters": [
{
"name": "generate_and_execute output",
"value": {
"output_files": [
{
"name": "",
"contents": ""
}
],
"execution_result": "8",
"execution_error": "",
"generated_code": "GENERATED_CODE"
}
}
]
}
}
Alat OpenAPI
Agen dapat terhubung ke API eksternal menggunakan alat OpenAPI dengan menyediakan skema OpenAPI. Secara default, agen akan memanggil API atas nama Anda.
Anda dapat menguji apakah alat telah disiapkan dengan benar menggunakan fitur Alat pengujian yang tersedia di halaman alat. Fitur ini juga tersedia dalam tampilan contoh saat Anda menambahkan pemanggilan alat ke contoh.
Atau, Anda dapat menjalankan alat OpenAPI di sisi klien.
Contoh skema:
openapi: 3.0.0
info:
title: Simple Pets API
version: 1.0.0
servers:
- url: 'https://api.pet-service-example.com/v1'
paths:
/pets/{petId}:
get:
summary: Return a pet by ID.
operationId: getPet
parameters:
- in: path
name: petId
required: true
description: Pet id
schema:
type: integer
responses:
200:
description: OK
/pets:
get:
summary: List all pets
operationId: listPets
parameters:
- name: petName
in: query
required: false
description: Pet name
schema:
type: string
- name: label
in: query
description: Pet label
style: form
explode: true
required: false
schema:
type: array
items:
type: string
- name: X-OWNER
in: header
description: Optional pet owner provided in the HTTP header
required: false
schema:
type: string
- name: X-SESSION
in: header
description: Dialogflow session id
required: false
schema:
$ref: "@dialogflow/sessionId"
responses:
'200':
description: An array of pets
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
post:
summary: Create a new pet
operationId: createPet
requestBody:
description: Pet to add to the store
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
responses:
'201':
description: Pet created
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
components:
schemas:
Pet:
type: object
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
owner:
type: string
label:
type: array
items:
type: string
Anda dapat menggunakan referensi skema internal @dialogflow/sessionId sebagai
jenis skema parameter. Dengan jenis skema parameter ini, ID sesi Dialogflow CX untuk percakapan saat ini diberikan sebagai nilai parameter.
Contoh:
- name: X-SESSION
in: header
description: Dialogflow session id
required: false
schema:
$ref: "@dialogflow/sessionId"
Batasan alat OpenAPI
Batasan berikut berlaku:
- Jenis parameter yang didukung adalah
path,query, danheader. Jenis parametercookietidak didukung. - Parameter yang ditentukan oleh skema OpenAPI mendukung jenis data berikut:
string,number,integer,boolean, danarray. Jenisobjecttidak didukung. - Anda tidak dapat menentukan parameter kueri di editor contoh konsol.
- Isi permintaan dan respons harus kosong atau menggunakan format
application/json.
Pembuatan skema alat OpenAPI
Saat Anda memberikan skema, klik Use Gemini untuk membuat skema menggunakan AI generatif.
Berikan detail berikut untuk memandu pembuatan:
- URL permintaan.
- Metode HTTP, seperti GET atau POST.
- Contoh input.
- Contoh output.
- Perintah teks yang menjelaskan alat.
Setelah membuat skema, Anda dapat mengeditnya sesuai kebutuhan dan menambahkan URL serta metode tambahan secara manual.
Autentikasi API alat OpenAPI
Anda dapat menggunakan opsi autentikasi berikut saat memanggil API eksternal.
Autentikasi Agen Layanan Dialogflow CX
Dialogflow CX dapat membuat token ID menggunakan Agen Layanan Dialogflow CX. Token ditambahkan di header HTTP otorisasi saat Dialogflow CX memanggil API eksternal.
Anda dapat menggunakan token ID untuk mengakses fungsi Cloud Run dan layanan Cloud Run setelah memberikan peran roles/cloudfunctions.invoker dan roles/run.invoker ke service-agent-project-number@gcp-sa-dialogflow..
Jika layanan Cloud Run Functions dan Cloud Run berada dalam project resource yang sama, Anda tidak memerlukan izin Identity and Access Management (IAM) tambahan untuk memanggilnya.
Autentikasi akun layanan
Akun layanan dapat mengautentikasi permintaan alat ke Google API mana pun yang mendukungnya.
Buat akun layanan, jika Anda belum memilikinya. Karena akun layanan adalah akun utama, Anda dapat memberinya peran untuk mengakses resource dalam project Anda, seperti yang dapat Anda lakukan untuk akun utama lainnya. Anda dapat menggunakan email akun layanan untuk membuat token akses yang Anda kirim di header Authorization permintaan alat.
Jika Anda mengonfigurasi alat untuk menggunakan akun layanan, Anda harus memiliki izin berikut:
roles/iam.serviceAccountUser
Agar Dialogflow CX dapat membuat token, berikan izin berikut kepada Agen Layanan Dialogflow CX:
roles/iam.serviceAccountTokenCreator
Akun layanan juga harus memiliki izin untuk mengakses layanan yang menghosting alat.
Autentikasi kunci API
- Anda dapat mengonfigurasi autentikasi kunci API dengan memberikan nama kunci, lokasi permintaan (header atau string kueri), dan kunci API agar Dialogflow CX meneruskan kunci API dalam permintaan.
- Sebaiknya berikan kunci API Anda menggunakan Secret Manager.
- Setelah 15 Agustus 2025, agen yang diekspor tidak akan lagi berisi kunci API nilai mentah.
OAuth
Alur kredensial klien OAuth didukung untuk autentikasi server ke server:
- Anda dapat menggunakan alur ini jika Generative AI App Builder adalah pemilik resource dan Anda tidak memerlukan otorisasi pengguna akhir.
- Anda harus mengonfigurasi client ID, rahasia klien, dan endpoint token dari penyedia OAuth di Dialogflow CX.
- Sebaiknya berikan rahasia klien Anda menggunakan Secret Manager. Agen yang diekspor tidak berisi rahasia klien nilai mentah setelah 15 Agustus 2025.
- Dialogflow CX menukar token akses OAuth dari penyedia OAuth dan meneruskannya di header otorisasi permintaan.
Token Pemilik
- Anda dapat mengonfigurasi autentikasi Bearer untuk meneruskan token Bearer secara dinamis dari klien. Token ini disertakan dalam header otorisasi permintaan.
- Saat menyiapkan autentikasi alat, Anda dapat menetapkan parameter sesi
untuk bertindak sebagai token Bearer. Misalnya, gunakan
$session.params.<parameter-name-for-token>untuk menentukan token. Saat runtime, tetapkan token Bearer ke parameter sesi:
DetectIntentRequest { ... query_params { parameters { <parameter-name-for-token>: <the-auth-token> } } ... }Jika Anda perlu mengonfigurasi token statis, bukan mengambil token dari parameter sesi, sebaiknya berikan token Anda menggunakan Secret Manager. Setelah 15 Agustus 2025, agen yang diekspor tidak akan berisi token Bearer nilai mentah.
Autentikasi TLS bersama
- Untuk mengetahui informasi selengkapnya, lihat Autentikasi TLS bersama.
- Sertifikat klien kustom didukung. Anda dapat menyiapkan sertifikat klien di tingkat agen di tab Security di setelan agen.
- Sertifikat (format PEM) dan kunci pribadi (format PEM) adalah kolom wajib diisi. Setelah ditetapkan, sertifikat klien ini akan digunakan selama mutual TLS untuk semua alat dan webhook.
Sertifikat CA kustom
- Untuk mengetahui informasi selengkapnya, lihat Sertifikat CA kustom.
Autentikasi Secret Manager
Jika menggunakan OAuth, kunci API, atau token pemilik, Anda dapat menyimpan kredensial sebagai secret menggunakan Secret Manager.
Autentikasi alat Anda menggunakan secret dengan mengikuti langkah-langkah berikut:
- Buat secret Anda jika Anda belum memilikinya.
- Berikan peran Secret Manager Secret Accessor
(
roles/secretmanager.secretAccessor) kepada Dialogflow Service Agent pada secret baru. - Salin kredensial Anda ke papan klip.
- Tambahkan versi secret baru
ke secret Anda. Tempelkan kredensial Anda sebagai nilai secret.
- Hilangkan karakter newline di akhir nilai Secret.
- Salin nama versi secret yang baru saja Anda tambahkan. Format namanya adalah
projects/{project_id}/secrets/{secret_id}/versions/{version_id}. - Buka layar edit alat, lalu:
- Jika Anda menggunakan OAuth, pilih OAuth sebagai Authentication type, lalu klik Secret version di bagian Client secret dan tempelkan nama versi rahasia ke kotak input Secret version.
- Jika Anda menggunakan kunci API, pilih API key sebagai Authentication type, lalu klik Secret version di bagian API key. Tempel nama versi secret ke kotak input Secret version.
- Jika Anda menggunakan Token pemilik, pilih Bearer token sebagai Authentication type, lalu klik Secret version di bagian Bearer token. Tempelkan nama versi secret ke kotak input Secret version.
- Klik Simpan.
Akses jaringan pribadi alat OpenAPI
Alat OpenAPI terintegrasi dengan akses jaringan pribadi Direktori Layanan untuk terhubung ke target API di jaringan VPC Anda. Hal ini menjaga traffic tetap berada dalam jaringan Google Cloud dan menerapkanIAM danKontrol Layanan VPC.
Untuk menyiapkan alat OpenAPI yang menargetkan jaringan pribadi:
- Ikuti Konfigurasi jaringan pribadi Direktori Layanan untuk mengonfigurasi jaringan VPC dan endpoint Direktori Layanan Anda.
- Pastikan akun layanan
Dialogflow CX Service Agent
dengan alamat berikut ada untuk project agen Anda:
Berikan peran IAM berikut kepada akun layanan Dialogflow CX Service Agent:service-agent-project-number@gcp-sa-dialogflow.
servicedirectory.viewerproject Direktori Layananservicedirectory.pscAuthorizedServiceproject jaringan
- Sediakan Service Directory Service beserta skema OpenAPI dan informasi autentikasi opsional saat Anda membuat alat.
Akses parameter sesi alat OpenAPI
Input alat OpenAPI berasal dari percakapan pengguna dengan LLM menggunakan skema sebagai panduan. Dalam beberapa situasi, input mungkin perlu diambil dari parameter sesi yang dikumpulkan selama alur atau disediakan sebagai input parameter kueri bersama dengan input pengguna.
Anda dapat menentukan parameter sesi yang perlu diteruskan sebagai input menggunakan format berikut:
parameters:
- in: query
name: petId
required: true
description: Pet id
schema:
type: integer
x-agent-input-parameter: petId # Reads from the $session.params.petId
- in: header
name: X-other
schema:
type: string
x-agent-input-parameter: $request.payload.header # Reads from the header specified in the request payload input
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
x-agent-input-parameter: petName # Reads from the $session.params.petName
description: Name of the person to greet (optional).
breed:
type: string
description: Breed of the pet.
Jika parameter sesi tersebut tidak tersedia, input yang dihasilkan LLM akan diteruskan ke alat.
Nilai default alat OpenAPI
Anda dapat menggunakan skema OpenAPI untuk menentukan nilai default. Nilai default ini hanya berlaku jika nilai input yang dihasilkan LLM atau nilai input berbasis parameter sesi tidak tersedia untuk parameter atau properti tersebut.
Anda dapat menentukan nilai default sebagai bagian dari skema sebagai berikut:
parameters:
- in: query
name: zipcode
required: true
description: Zip code to search for
schema:
type: integer
default: 94043
requestBody:
content:
application/json:
schema:
type: object
properties:
breed:
type: string
description: Breed of the pet.
page_size:
type: integer
description: Number of pets to return.
default: 10
Jika tidak ada nilai yang dihasilkan LLM, nilai parameter sesi, atau nilai default, input tidak akan ditentukan.
Alat penyimpanan data
Untuk mengetahui informasi selengkapnya tentang cara menggunakan alat penyimpanan data dengan playbook, lihat alat penyimpanan data.
Alat konektor
Alat konektor memungkinkan Anda mengonfigurasi agen untuk melakukan tindakan menggunakan koneksi yang dikonfigurasi di Integration Connectors. Setiap alat konektor dikonfigurasi dengan satu koneksi dan satu atau beberapa tindakan. Anda dapat membuat beberapa alat untuk satu koneksi guna mengelompokkan berbagai tindakan yang akan digunakan oleh agen Anda.
Alat konektor mendukung Jenis konektor berikut:
- AlloyDB untuk PostgreSQL
- Asana
- Azure AD (Entra ID)
- BigQuery
- Box
- Cloud Search
- Cloud Spanner
- Cloud SQL - MySQL
- Cloud SQL - PostgreSQL
- Cloud SQL - SQL Server
- Cloud Storage
- Cloud Translation
- Confluence
- Couchbase
- DocuSign
- Dropbox
- Dynamics 365
- Elasticsearch
- Enterprise License Manager
- Firestore
- FreshBooks
- FTP
- GitHub
- Gmail
- Google Analytics
- Google Kalender
- Google Classroom
- Google Cloud Natural Language
- Google Kontak
- Google Dokumen
- Google Formulir
- Google Spreadsheet
- Google Slide
- Greenplum
- Jira Cloud
- Jira Service Management
- Kintone
- Magento
- Mailchimp
- MariaDB
- Meta Ads
- Microsoft Teams
- Senin
- MongoDB (versi 2)
- Neo4j
- OneDrive
- Oracle DB (versi 2)
- PayPal
- PostgreSQL
- Salesforce
- Salesforce Marketing Cloud
- SAP HANA
- SAP SuccessFactors
- ServiceNow
- SharePoint
- Shopify (versi 1)
- Slack
- Stripe
- Trello
- WordPress
- Workday
- Zendesk
Anda dapat menggunakan contoh untuk membantu agen menggunakan alat konektor secara efektif dengan menunjukkan cara memanggil alat dan menggunakan respons.
Membuat koneksi
Untuk membuat koneksi dan menghubungkannya ke agen Anda, buka Tools > Create, pilih jenis alat Connector dan jenis konektor yang Anda pilih, lalu klik Create Connection. Tindakan ini akan membuka pembuatan Integration Connectors dengan beberapa kolom yang telah diisi otomatis.
Atau, Anda dapat membuka Integration Connectors dan mengikuti petunjuk untuk membuat koneksi.
Tindakan konektor
Anda dapat menyediakan dua jenis tindakan untuk agen Anda untuk setiap alat konektor. Untuk mengetahui informasi selengkapnya, lihat Entity, operasi, dan tindakan.
Operasi CRUD entitas:
Setiap koneksi memiliki entity yang sesuai dengan objek sumber data tersebut (untuk BigQuery, ini adalah tabel; untuk Salesforce, ini adalah objek, seperti
OrderatauCase).Anda dapat melakukan operasi CRUD pada setiap entity:
- Create: Memvalidasi dan membuat entity dengan nilai kolom yang ditentukan.
- List: Penelusuran instance entity berbasis filter.
- Update: Metode berbasis filter untuk mengubah nilai kolom entity.
- Delete: Menghapus entity.
- Get: Mengambil satu entity menggunakan entityId.
Untuk mengetahui informasi selengkapnya tentang operasi CRUD entity, lihat dokumentasi Connectors.
Tindakan khusus konektor:
Banyak Konektor mendukung tindakan
ExecuteCustomQuery, yang memungkinkan Anda menjalankan kueri SQL terhadap sumber data, tempat setiap entity sumber data dapat direferensikan sebagai tabel. Untuk mengetahui informasi selengkapnya, lihat daftar konektor yang didukung.
Tindakan tambahan berbeda-beda berdasarkan jenis konektor. Misalnya, lihat tindakan konektor BigQuery atau tindakan konektor Salesforce.
Mengonfigurasi kolom input/output untuk operasi CRUD
Dengan memilih kolom input atau output tertentu untuk tindakan alat konektor, Anda dapat membatasi kompleksitas tindakan ini untuk agen.
Misalnya, jika Anda hanya perlu membuat entity dengan subset kolomnya, mengonfigurasi kumpulan kolom ini dalam tindakan akan menyederhanakan tindakan untuk agen.
Menentukan sekumpulan kolom output akan mengurangi ukuran respons alat untuk mengurangi batas token. Hal ini memungkinkan agen menangani output dengan hanya mengekspos kolom yang relevan.
Autentikasi
Jika koneksi yang Anda gunakan mengizinkan pengabaian autentikasi, konfigurasikan alat untuk meneruskan kredensial dari parameter sesi yang ditentukan.
Isi kredensial ini di parameter sesi. Alat ini kemudian meneruskannya secara otomatis ke sumber data untuk autentikasi saat memanggil tindakan.
Alat fungsi
Jika Anda memiliki kemampuan yang dapat diakses oleh kode klien, tetapi tidak dapat diakses oleh alat OpenAPI, Anda dapat menggunakan alat fungsi. Sisi klien selalu menjalankan alat fungsi, bukan agen.
Prosesnya adalah sebagai berikut:
- Kode klien Anda mengirimkan permintaan deteksi intent.
- Agen mendeteksi bahwa alat fungsi diperlukan, dan respons intent deteksi berisi nama alat beserta argumen input. Sesi ini dijeda hingga permintaan deteksi intent lain diterima dengan hasil alat.
- Kode klien Anda memanggil alat.
- Kode klien Anda mengirimkan permintaan deteksi intent lain yang memberikan hasil alat sebagai argumen output.
Contoh berikut menunjukkan skema input dan output alat fungsi:
{
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, for example, San Francisco, CA"
}
},
"required": [
"location"
]
}
{
"type": "object",
"properties": {
"temperature": {
"type": "number",
"description": "The temperature"
}
}
}
Contoh berikut menunjukkan permintaan dan respons intent deteksi awal menggunakan REST:
HTTP method and URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
{
"queryInput": {
"text": {
"text": "what is the weather in Mountain View"
},
"languageCode": "en"
}
}
{
"queryResult": {
"text": "what is the weather in Mountain View",
"languageCode": "en",
"responseMessages": [
{
"source": "VIRTUAL_AGENT",
"toolCall": {
"tool": "<tool-resource-name>",
"action": "get-weather-tool",
"inputParameters": {
"location": "Mountain View"
}
}
}
]
}
}
Contoh berikut menunjukkan permintaan deteksi intent kedua yang memberikan hasil alat:
{
"queryInput": {
"toolCallResult": {
"tool": "<tool-resource-name>",
"action": "get-weather-tool",
"outputParameters": {
"temperature": 28.0
}
},
"languageCode": "en"
}
}
Eksekusi sisi klien
Anda dapat menjalankan alat OpenAPI dan penyimpanan data di sisi klien, seperti alat fungsi, dengan menerapkan penggantian API saat berinteraksi dengan sesi.
Contoh:
DetectIntentRequest {
...
query_params {
playbook_state_override {
playbook_execution_mode: ALWAYS_CLIENT_EXECUTION
}
}
...
}
Prosesnya adalah sebagai berikut:
- Kode klien Anda mengirimkan permintaan deteksi intent yang menentukan eksekusi klien.
- Agen mendeteksi bahwa alat diperlukan, dan respons deteksi intent berisi nama alat beserta argumen input. Sesi ini dijeda hingga permintaan deteksi intent lain diterima dengan hasil alat.
- Kode klien Anda memanggil alat.
- Kode klien Anda mengirimkan permintaan deteksi intent lain yang memberikan hasil alat sebagai argumen output.