Halaman ini memperkenalkan pengambilan agentic dan menjelaskan cara menggunakannya dengan metode jawaban streaming.
Tentang pengambilan agentic
Pengambilan agentic yang digunakan dengan metode jawaban streaming dapat memperoleh hasil yang lebih baik untuk kasus penggunaan tertentu, misalnya, untuk mengaktifkan pengambilan multi-pass untuk aplikasi dengan beberapa penyimpanan data atau untuk menyesuaikan pembuatan jawaban untuk berbagai class kueri.
Penggunaan pengambilan agentic akan menambah kompleksitas pada aplikasi Anda, tetapi sebagai gantinya, Anda akan memiliki kontrol yang lebih besar atas hasilnya.
Penelusuran Agen menyertakan agen yang telah ditentukan yang dapat Anda gunakan untuk menyesuaikan perilaku mesin telusur. Hal ini memungkinkan lebih banyak penyesuaian daripada yang tersedia melalui UI Konfigurasi aplikasi atau metode jawaban streaming tanpa pengambilan agentic.
Penelusuran gabungan dengan dan tanpa pengambilan agentic
Pengambilan agentic sangat berguna untuk aplikasi penelusuran gabungan. Tanpa pengambilan agentic, penelusuran menggunakan fan-out satu kali yang mengkueri semua penyimpanan data Anda sekaligus. Sebaliknya, pengambilan agentic memungkinkan penelusuran multi-pass. Agen merencanakan dan menjalankan penelusuran secara berurutan, memilih alat terbaik untuk setiap langkah. Agen dapat menggabungkan hasil dari beberapa penyimpanan data Penelusuran Agen dan menggunakan alat seperti Google Penelusuran dan Google Maps.
Misalnya, Anda memiliki penyimpanan data terpisah untuk kebijakan perusahaan global dan detail kantor regional. Pengguna bertanya: "Apa saja aturan kepatuhan untuk kantor Tokyo kita?":
Tanpa pengambilan agentic: Mengkueri penyimpanan kebijakan dan penyimpanan kantor regional secara bersamaan dengan string kueri lengkap. Hal ini dapat menampilkan hasil yang terfragmentasi.
Dengan pengambilan agentic: Agen merencanakan eksekusi. Pertama-tama, agen mengambil detail tentang kantor Tokyo dari penyimpanan regional. Kemudian, dengan menggunakan konteks tertentu tersebut, agen melakukan penelusuran kedua yang ditargetkan di penyimpanan kebijakan.
Agen menyintesis temuan ini menjadi satu jawaban yang koheren dan lebih akurat.
Pengambilan agentic juga memungkinkan Anda melakukan kueri penelusuran multi-giliran (pertanyaan lanjutan) di aplikasi penelusuran gabungan. Tanpa pengambilan agentic, penelusuran multi-giliran hanya berfungsi dengan aplikasi penyimpanan data tunggal. Untuk mempertahankan konteks percakapan di beberapa giliran, Anda dapat menggabungkan pengambilan agentic dengan sesi Platform Agen.
Klasifikasi kueri kustom
Metode jawaban dan jawaban streaming menyediakan dua jenis klasifikasi kueri: ADVERSARIAL_QUERY dan NON_ANSWER_SEEKING_QUERY.
Pengambilan agentic memungkinkan Anda menentukan jenis klasifikasi tambahan agar sesuai dengan alur kerja bisnis Anda. Sistem menggunakan pengklasifikasi untuk menentukan intent pengguna dan merutekan permintaan ke konfigurasi agen yang sesuai.
Misalnya, dari kueri, Anda menentukan bahwa intent kueri adalah untuk melacak pesanan dan Anda telah menentukan klasifikasi TRACK_ORDER. Daripada menjalankan penelusuran umum di semua penyimpanan data Anda, sistem akan memuat agen khusus yang dilengkapi dengan alat dan data yang diperlukan untuk mengambil status pengiriman.
Cara mengaktifkan dan menggunakan pengambilan agentic
Ada dua cara untuk mengaktifkan pengambilan agentic:
Agen jawaban Google yang telah ditentukan: Jika sudah memiliki aplikasi penelusuran di Penelusuran Agen, Anda dapat mengaktifkan pengambilan agentic dengan menetapkan
enable_agent_invocation=truedalam permintaan API saat mengirim kueri ke aplikasi. Dalam hal ini, Anda mempertahankan konfigurasi penayangan penelusuran yang ada.Aplikasi mode AI kustom: Saat membuat aplikasi Penelusuran Agen, Anda menentukan jenis konfigurasi penayangan yang berbeda, yaitu konfigurasi penayangan
default_agent_answer. Konfigurasi ini juga dapat disebut sebagai mesin mode AI kustom karena "aplikasi" dan "mesin" digunakan secara bergantian di Penelusuran Agen.
Sebelum memulai
Sebelum dapat menggunakan pengambilan agentic, lakukan hal berikut:
Menyiapkan mesin penalaran untuk sesi multi-giliran
Untuk mempertahankan konteks percakapan di beberapa giliran, Anda harus membuat Agent Runtime di Platform Agen Gemini Enterprise mesin (juga disebut mesin penalaran).
Saat membuat permintaan streamAnswer, Anda akan meneruskan nama resource Agent Runtime sebagai kolom reasoningEngine pada permintaan streamAnswer.
Aktifkan Platform Agen di project Anda Google Cloud .
Buat instance Agent Runtime (juga disebut mesin penalaran) menggunakan Agent Engine REST API (atau Agent Development Kit). Instance ini menghosting sesi yang digunakan oleh metode
streamAnswer.Nama resource instance memiliki format:
projects/PROJECT_NUMBER/locations/LOCATION_ID/reasoningEngines/REASONING_ENGINE_ID
Berikan akses agen layanan Discovery Engine ke mesin penalaran dengan memberikan peran
roles/aiplatform.reasoningEngineServiceAgentke akun layanan Discovery Engine:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
dengan
PROJECT_NUMBERadalah nomor project yang menghosting mesin penalaran. Izin ini memungkinkan backend jawaban streaming membuat, membaca, dan menambahkan peristiwa ke sesi atas nama Anda.Tinjau kuota yang berlaku. Sesi yang didukung oleh Agent Runtime menggunakan kuota dari Agent Platform API. Kuota yang menarik adalah:
aiplatform.googleapis.com/session_write_requests— membuat, menghapus, atau memperbarui sesi Agent Runtime per menit.aiplatform.googleapis.com/session_event_append_requests— menambahkan peristiwa ke sesi Agent Runtime per menit.
Untuk mengetahui informasi selengkapnya, lihat kuota Agent Engine Platform Agen Gemini Enterprise.
Catat nama resource Agent Runtime karena Anda harus meneruskannya sebagai kolom
reasoningEnginepada permintaanstreamAnswer.
Opsional: Menyiapkan aplikasi mode AI kustom
Secara default, pengambilan agentic menggunakan agen jawaban Google yang telah ditentukan. Agen ini mengklasifikasikan kueri ke dalam intent DEFAULT_ANSWER_SEEKING dan DO_NOT_ANSWER.
Anda dapat membuat aplikasi mode AI kustom jika ingin menyesuaikan alat atau menambahkan dukungan untuk class intent kueri baru. Setiap intent kustom (atau frame) mendeklarasikan kondisi saat agen mengklasifikasikan kueri ke dalam intent dan petunjuk serta alat yang digunakan agen untuk menanganinya.
Buat mesin melalui metode REST dengan blok.
engines.createengine_config.answer_agentKonfigurasi disusun sebagai berikut:
engine { name: "YOUR_AI_MODE_ENGINE" display_name: "YOUR_AI_MODE_ENGINE_DISPLAY_NAME" engine_config { answer_agent { frames { vertical_intent: "YOUR_CUSTOM_INTENT" vertical_intent_prompt { instructions: "Instructions for when to classify a user query as YOUR_CUSTOM_INTENT." } initial_prompt { instructions: "Instructions for the agent on how to process a user query classified as YOUR_CUSTOM_INTENT." tools { discovery_engine_search_tool_config { serving_config: "YOUR_SEARCH_SERVING_CONFIG_1" page_size: 10 } tool_description: "This tool can help search corpus 1." } tools { discovery_engine_search_tool_config { serving_config: "YOUR_SEARCH_SERVING_CONFIG_2" page_size: 10 } tool_description: "This tool can help search corpus 2." } } } } } } engine_id: "SAMPLE_MULTI_SEARCH_RETRIEVAL"
Setelah membuat mesin, kirimkan permintaan melalui konfigurasi penayangan
default_agent_answer:projects/*/locations/*/collections/*/engines/YOUR_AI_MODE_ENGINE/servingConfigs/default_agent_answer
Untuk mendapatkan bantuan dalam mendesain atau mendaftarkan aplikasi mode AI kustom, hubungi dukungan.
Streaming jawaban menggunakan pengambilan agentic
Perintah berikut menunjukkan cara memanggil metode jawaban streaming answer dengan pengambilan agentic yang diaktifkan. Mirip dengan output tanpa pengambilan agentic, panggilan ini melakukan streaming jawaban yang dihasilkan dalam bentuk serangkaian respons JSON.
Jika telah menyiapkan mesin penalaran, sertakan nama resourcenya di kolom reasoningEngine untuk mempertahankan sesi di beberapa giliran.
REST
Untuk menelusuri dan mendapatkan hasil dengan jawaban yang dihasilkan secara streaming, lakukan hal berikut:
Jalankan perintah curl berikut:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/SERVING_CONFIG_ID:streamAnswer" \ -d '{ "query": { "text": "QUERY" }, "session": "SESSION", "enableAgentInvocation": true, "userPseudoId": "USER_PSEUDO_ID", "reasoningEngine": "projects/PROJECT_NUMBER/locations/LOCATION_ID/reasoningEngines/REASONING_ENGINE_ID" }'Ganti kode berikut:
PROJECT_ID: ID project Anda. Google CloudAPP_ID: ID aplikasi Penelusuran Agen yang ingin Anda kueri.SERVING_CONFIG_ID: untuk menggunakan aplikasi mode AI kustom, tetapkan nilai ini kedefault_agent_answer. Untuk menggunakan agen jawaban Google yang telah ditentukan, tetapkan nilai ini kedefault_search.PROJECT_NUMBER: nomor project yang menghosting mesin penalaran.QUERY: string teks bebas yang berisi pertanyaan atau kueri penelusuran.SESSION: jika melanjutkan percakapan multi-giliran, ini adalah nama resource sesi yang ditampilkan dalam respons giliran sebelumnya, misalnya,projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID. Jika tidak melanjutkan percakapan, tetapkan nilai ini ke-, tanda hubung.USER_PSEUDO_ID: ID unik yang digunakan untuk melacak pengunjung.LOCATION_ID: lokasi mesin penalaran Anda, misalnyaus-central1.REASONING_ENGINE_ID: ID instance Agent Engine yang Anda buat.
Python
Untuk mengetahui informasi selengkapnya, lihat Agent Search Python API dokumentasi referensi.
Untuk melakukan autentikasi ke Penelusuran Agen, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menggunakan klien Discovery Engine Python (v1alpha) untuk memanggil stream_answer_query dengan
pemanggilan agen diaktifkan. Teruskan kolom reasoning_engine untuk sesi multi-giliran.
from google.api_core.client_options import ClientOptions from google.cloud import discoveryengine_v1alpha def run_stream_answer_query(): PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "global" # or a specific region COLLECTION_ID = "default_collection" ENGINE_ID = "YOUR_ENGINE_ID" # Use "default_search" for the predefined Google answer agent, or # "default_agent_answer" if you have configured a custom AI_MODE app. SERVING_CONFIG_ID = "default_search" USER_ID = "user-id" QUERY_TEXT = "YOUR_QUERY_TEXT" REASONING_ENGINE_ID = "YOUR_REASONING_ENGINE_ID" # Use "-" to start a new session, or pass the sessionId returned in # the previous turn's response to continue an existing session. SESSION_ID = "-" SESSION_REF = ( f"projects/{PROJECT_ID}/locations/{LOCATION}/collections/" f"{COLLECTION_ID}/engines/{ENGINE_ID}/sessions/{SESSION_ID}" ) SERVING_CONFIG_ENGINE = ( f"projects/{PROJECT_ID}/locations/{LOCATION}/collections/" f"{COLLECTION_ID}/engines/{ENGINE_ID}/servingConfigs/{SERVING_CONFIG_ID}" ) REASONING_ENGINE = ( f"projects/{PROJECT_ID}/locations/{LOCATION}/" f"reasoningEngines/{REASONING_ENGINE_ID}" ) client_options = ClientOptions( api_endpoint="discoveryengine.googleapis.com" ) client = discoveryengine_v1alpha.ConversationalSearchServiceClient( client_options=client_options ) request = discoveryengine_v1alpha.AnswerQueryRequest( query=discoveryengine_v1alpha.Query(text=QUERY_TEXT), serving_config=SERVING_CONFIG_ENGINE, user_pseudo_id=USER_ID, enable_agent_invocation=True, session=SESSION_REF, reasoning_engine=REASONING_ENGINE, ) print(f"Starting StreamAnswerQuery agentic session with: {request}") stream = client.stream_answer_query(request) try: for response in stream: print(f"Received response: {response}") except Exception as e: print(f"Error during streaming: {e}") if __name__ == "__main__": run_stream_answer_query()
Mendapatkan versi pratinjau Discovery Engine SDK
Discovery Engine SDK memudahkan interaksi dengan Google Cloud layanan dari aplikasi Anda. SDK ini membantu penanganan error dan autentikasi, serta menyediakan fitur seperti percobaan ulang otomatis, penanganan penomoran halaman, dan pengelolaan operasi yang berjalan lama.
Karena fitur pengambilan agentic berada dalam daftar yang diizinkan, SDK yang Anda perlukan untuk menggunakan fitur ini berbeda dengan library klien Discovery Engine yang tersedia secara umum.
Untuk mendapatkan versi pratinjau Discovery Engine SDK, lakukan hal berikut:
Hubungi dukungan untuk mendapatkan akses ke folder Google Drive SDK pratinjau.
Download paket untuk bahasa Anda.
Perubahan API
Karena fitur ini berada dalam daftar yang diizinkan, dokumentasi referensi API di halaman metode jawaban streaming tidak menampilkan semua kolom yang tersedia dan diperlukan untuk menggunakan pengambilan agentic dengan metode jawaban streaming. Kolom yang tidak ada didokumentasikan sebagai berikut.
Kolom isi permintaan
enableAgentInvocation(boolean) — Tetapkantrueuntuk beralih ke pemrosesan agentic dengan konfigurasi penayangan penelusuran yang ada. Kolom ini bersifat opsional jika Anda menentukan konfigurasi penayangananswer_agentdengan aplikasi mode AI kustom.reasoningEngine(string) — Nama resource Agent Runtime yang menghosting sesi agen, diformat sebagaiprojects/*/locations/*/reasoningEngines/*.
Kolom respons
Jika pengambilan agentic diaktifkan, setiap yang dihasilkan
Answer.Reference menyertakan:
queries(string berulang) — Daftar kueri yang dikeluarkan agen untuk menghasilkan referensi.
Layanan sesi
REST API layanan Sesi tidak mendukung metode
create atau update. Namun, API ini mendukung metode lainnya:
list, get, dan delete.
RPC API layanan Sesi tidak mendukung operasi Update atau
Create pada resource sesi yang digunakan untuk percakapan multi-giliran.
Namun, API ini mendukung layanan lainnya: Operasi List, Get, dan Delete pada resource sesi yang digunakan untuk percakapan multi-giliran.