Men-deploy agen
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Untuk men-deploy agen di Vertex AI Agent Engine, pilih antara dua metode utama:
Men-deploy dari objek agen: Ideal untuk pengembangan interaktif di lingkungan seperti Colab, yang memungkinkan deployment objek local_agent dalam memori. Metode ini paling cocok untuk agen dengan struktur yang tidak berisi komponen kompleks yang tidak dapat diserialisasi.
Men-deploy dari file sumber: Metode ini cocok untuk alur kerja otomatis seperti pipeline CI/CD dan alat Infrastructure as Code seperti Terraform, sehingga memungkinkan deployment yang sepenuhnya deklaratif dan otomatis. Agen ini men-deploy agen Anda langsung dari kode sumber lokal dan tidak memerlukan bucket Cloud Storage.
Anda dapat membuat konfigurasi opsional berikut untuk agen:
Tentukan persyaratan paket
Berikan kumpulan paket yang diperlukan oleh agen untuk deployment. Kumpulan
paket dapat berupa daftar item yang akan diinstal oleh pip, atau jalur ke
file yang mengikuti Format File Persyaratan.
Gunakan praktik terbaik berikut:
Sematkan versi paket Anda untuk build yang dapat direproduksi. Paket umum yang perlu
dipantau mencakup berikut ini: google-cloud-aiplatform,
cloudpickle, langchain, langchain-core,
langchain-google-vertexai, dan pydantic.
Minimalkan jumlah dependensi di agen Anda. Hal ini mengurangi jumlah perubahan yang menyebabkan gangguan saat memperbarui dependensi dan agen Anda.
Jika agen tidak memiliki dependensi, Anda dapat menyetel requirements
ke None:
requirements=None
Jika agen menggunakan template khusus framework, Anda harus menentukan versi SDK yang diimpor (seperti 1.112.0) saat mengembangkan agen.
Anda dapat menyertakan file atau direktori lokal yang berisi file sumber Python
lokal yang diperlukan. Dibandingkan dengan persyaratan paket,
cara ini memungkinkan Anda menggunakan utilitas pribadi yang telah dikembangkan yang tidak tersedia
di PyPI atau GitHub.
Jika agen tidak memerlukan paket tambahan, Anda dapat menetapkan
extra_packages ke None:
extra_packages=None
Anda juga dapat melakukan hal berikut dengan extra_packages:
Sertakan satu file (seperti agents/agent.py):
extra_packages=["agents/agent.py"]
Sertakan kumpulan file di seluruh direktori (misalnya,
agents/):
extra_packages=["agents"]# directory that includes agents/agent.py
requirements=["google-cloud-aiplatform[agent_engines,adk]","cloudpickle==3.0","python_package.whl",# install from the whl file that was uploaded]extra_packages=["path/to/python_package.whl"]# bundle the whl file for uploading
Menentukan variabel lingkungan
Jika ada variabel lingkungan yang bergantung pada agen Anda, Anda dapat
menentukannya dalam argumen env_vars=. Jika agen tidak bergantung pada variabel lingkungan apa pun, Anda dapat menyetelnya ke None:
env_vars=None
Untuk menentukan variabel lingkungan, ada beberapa opsi berbeda yang tersedia:
Anda juga perlu mengikuti petunjuk di Menyiapkan identitas dan izin untuk agen Anda
untuk memberikan izin Secret Manager Secret Accessor
(roles/secretmanager.secretAccessor) kepada agen Anda.
Menentukan kontrol resource yang disesuaikan
Anda dapat menentukan kontrol resource runtime untuk agen, seperti jumlah minimum dan maksimum instance aplikasi, batas resource untuk setiap container, dan konkurensi untuk setiap container.
min_instances: Jumlah minimum instance aplikasi yang harus tetap berjalan setiap saat, dengan rentang [0, 10]. Nilai default adalah 1.
max_instances: Jumlah maksimum instance aplikasi yang
dapat diluncurkan untuk menangani peningkatan traffic, dengan rentang [1, 1000].
Nilai defaultnya adalah 100. Jika VPC-SC atau PSC-I diaktifkan, rentang yang dapat diterima adalah [1, 100].
resource_limits: Batas resource untuk setiap container. Hanya
tombol cpu dan memory yang didukung. Nilai defaultnya adalah {"cpu": "4", "memory": "4Gi"}.
Nilai yang didukung untuk cpu hanyalah 1, 2, 4, 6, dan
8. Untuk mengetahui informasi selengkapnya, lihat
Mengonfigurasi alokasi CPU.
Satu-satunya nilai yang didukung untuk memory adalah 1Gi, 2Gi, ...
32Gi.
container_concurrency: Serentak untuk setiap server agen dan
container. Nilai yang direkomendasikan adalah 2 * cpu + 1. Nilai defaultnya adalah 9.
remote_agent=client.agent_engines.create(agent=local_agent,config={"min_instances":1,"max_instances":10,"resource_limits":{"cpu":"4","memory":"8Gi"},"container_concurrency":9,# ... other configs})
Anda dapat menentukan opsi build untuk agen, seperti skrip penginstalan yang akan dijalankan saat membangun image container agen. Hal ini berguna untuk menginstal
dependensi sistem (misalnya, gcloud cli, npx) atau
penyiapan kustom lainnya. Skrip dijalankan dengan izin root.
Untuk menggunakan skrip penginstalan, buat direktori bernama
installation_scripts dan tempatkan skrip shell Anda di dalam
direktori:
Artefak penyiapan akan ditimpa jika sesuai dengan
folder yang ada di bucket Cloud Storage.
Jika perlu, Anda dapat menentukan folder Cloud Storage untuk artefak penyiapan. Anda dapat menyetel gcs_dir_name ke None jika Anda
tidak keberatan jika file di folder default berpotensi ditimpa:
gcs_dir_name=None
Untuk menghindari penimpaan file (seperti untuk lingkungan yang berbeda seperti
pengembangan, staging, dan produksi), Anda dapat menyiapkan folder yang sesuai,
dan menentukan folder untuk melakukan staging artefak di dalamnya:
gcs_dir_name="dev"# or "staging" or "prod"
Jika ingin atau perlu menghindari tabrakan, Anda dapat membuat uuid acak:
importuuidgcs_dir_name=str(uuid.uuid4())
Tentukan nama tampilan
Anda dapat menyetel nama tampilan untuk resource ReasoningEngine:
description="""An agent that has access to tools for looking up the exchange rate.If you run into any issues, please contact the dev team."""
Menentukan label
Anda dapat menetapkan label resource ReasoningEngine
sebagai kamus pasangan string nilai kunci. Berikut adalah contohnya:
labels={"author":"username","version":"latest"}
Mengonfigurasi identitas agen default
Anda dapat menyediakan agen yang di-deploy ke Vertex AI Agent Engine dengan identitas unik saat membuat agen. Identitas ini terkait dengan ID resource agen Vertex AI Agent Engine dan tidak bergantung pada framework agen yang Anda gunakan untuk mengembangkan agen:
Untuk melakukannya, tentukan email akun layanan kustom Anda sebagai
service_account saat membuat atau memperbarui instance Agent Engine, misalnya:
# Create a new instanceclient.agent_engines.create(agent=local_agent,config={"service_account":"my-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)# Update an existing instanceresource_name="projects/{project_id}/locations/{location}/reasoningEngines/{reasoning_engine_id}"client.agent_engines.update(name=resource_name,agent=local_agent,config={"service_account":"my-new-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)
NETWORK_ATTACHMENT adalah nama atau jalur lengkap
lampiran jaringan Anda. Jika lampiran jaringan dibuat di project
(seperti project host VPC Bersama) yang berbeda dengan tempat Anda menggunakan
Agent Engine, Anda perlu meneruskan jalur lengkap lampiran jaringan.
DOMAIN_SUFFIX adalah nama DNS zona Cloud DNS pribadi yang Anda buat saat menyiapkan Peering DNS pribadi.
TARGET_PROJECT adalah project yang menghosting jaringan
VPC. Project ini dapat berbeda dengan project Network Attachment.
TARGET_NETWORK adalah nama jaringan VPC.
Anda dapat mengonfigurasi beberapa agen untuk menggunakan lampiran jaringan bersama tunggal atau lampiran jaringan khusus yang unik. Untuk menggunakan lampiran
jaringan bersama, berikan lampiran jaringan yang sama di
psc_interface_config untuk setiap agen yang Anda buat.
Mengonfigurasi kunci enkripsi yang dikelola pelanggan
Anda dapat menggunakan kunci kustom untuk mengenkripsi data agen Anda saat tidak digunakan. Lihat Kunci enkripsi yang dikelola pelanggan (CMEK) Agent Engine untuk mengetahui detail selengkapnya.
Untuk mengonfigurasi kunci kustom (CMEK) untuk agen, Anda harus memberikan
nama resource kunci ke parameter encryption_spec saat
membuat instance Agent Engine.
# The fully qualified key namekms_key_name="projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"remote_agent=client.agent_engines.create(agent=local_agent,config={"encryption_spec":{"kms_key_name":kms_key_name},# ... other parameters},)
Buat instance AgentEngine
Bagian ini menjelaskan cara membuat instance AgentEngine untuk men-deploy agen.
Untuk men-deploy agen di Vertex AI Agent Engine, Anda dapat memilih salah satu metode berikut:
Men-deploy dari objek agen untuk pengembangan interaktif.
Men-deploy dari file sumber untuk alur kerja otomatis berbasis file.
Dari objek agen
Untuk men-deploy agen di Vertex AI, gunakan client.agent_engines.create untuk
meneruskan objek local_agent beserta konfigurasi opsional:
dependencies.tar.gz file tar yang berisi paket tambahan.
Paket diupload ke Cloud Storage (di folder yang sesuai) untuk melakukan staging artefak.
Cloud Storage URI untuk setiap artefak ditentukan dalam
PackageSpec.
Layanan Vertex AI Agent Engine menerima permintaan dan membangun container serta memulai server HTTP di backend.
Latensi deployment bergantung pada total waktu yang diperlukan untuk menginstal paket yang diperlukan. Setelah di-deploy, remote_agent sesuai dengan instance
local_agent yang berjalan di Vertex AI dan dapat dikueri atau
dihapus.
Objek remote_agent sesuai dengan class AgentEngine yang berisi atribut berikut:
remote_agent.api_resource dengan informasi tentang agen yang di-deploy.
Anda juga dapat memanggil agent.operation_schemas() untuk menampilkan daftar operasi
yang didukung agen. Lihat Mencantumkan operasi yang didukung untuk mengetahui detailnya.
Untuk men-deploy dari file sumber di Vertex AI, gunakan client.agent_engines.create dengan memberikan source_packages, entrypoint_module, entrypoint_object, dan class_methods dalam kamus konfigurasi, beserta konfigurasi opsional lainnya. Dengan metode ini, Anda tidak perlu meneruskan objek agen atau bucket Cloud Storage.
source_packages (Wajib, list[str]): Daftar jalur file atau direktori lokal yang akan disertakan dalam deployment. Ukuran total file dan direktori di source_packages tidak boleh melebihi 8 MB.
entrypoint_module (Wajib, str): Nama modul Python yang sepenuhnya memenuhi syarat yang berisi titik entri agen (misalnya, agent_dir.agent).
entrypoint_object (Wajib, str): Nama objek yang dapat dipanggil dalam entrypoint_module yang merepresentasikan aplikasi agen (misalnya, root_agent).
class_methods (Wajib, list[dict]): Daftar kamus yang menentukan metode yang diekspos oleh agen. Setiap kamus mencakup kolom name (Wajib), api_mode (Wajib), dan parameters. Lihat Mencantumkan operasi yang didukung untuk mengetahui informasi selengkapnya tentang metode untuk agen kustom.
Contoh:
"class_methods":[{"name":"method_name","api_mode":"",# Possible options are: "", "async", "async_stream", "stream", "bidi_stream""parameters":{"type":"object","properties":{"param1":{"type":"string","description":"Description of param1"},"param2":{"type":"integer"}},"required":["param1"]}}]```
requirements_file (Opsional, str): Jalur ke file persyaratan pip dalam jalur yang ditentukan di source_packages. Defaultnya adalah requirements.txt di direktori root sumber yang dipaketkan.
Deployment memerlukan waktu beberapa menit, dan selama proses tersebut, langkah-langkah berikut akan terjadi di latar belakang:
Vertex AI SDK membuat arsip tar.gz dari jalur yang ditentukan dalam source_packages.
Arsip ini dienkode dan dikirim langsung ke Vertex AI API.
Layanan Vertex AI Agent Engine menerima arsip, mengekstraknya, menginstal dependensi dari requirements_file (jika disediakan), dan memulai aplikasi agen menggunakan entrypoint_module dan entrypoint_object yang ditentukan.
Latensi deployment bergantung pada total waktu yang diperlukan untuk menginstal paket yang diperlukan. Setelah di-deploy, remote_agent sesuai dengan instance
aplikasi agen yang berjalan di Vertex AI dan dapat dikueri atau
dihapus.
Objek remote_agent sesuai dengan class AgentEngine yang berisi atribut berikut:
remote_agent.api_resource dengan informasi tentang agen yang di-deploy.
Anda juga dapat memanggil agent.operation_schemas() untuk menampilkan daftar operasi
yang didukung agen. Lihat Mencantumkan operasi yang didukung untuk mengetahui detailnya.
Berikut adalah contoh men-deploy agen dari file sumber:
fromgoogle.cloud.aiplatformimportvertexai# Example file structure:# /agent_directory# ├── agent.py# ├── requirements.txt# Example agent_directory/agent.py:# class MyAgent:# def ask(self, question: str) -> str:# return f"Answer to {question}"# root_agent = MyAgent()remote_agent=client.agent_engines.create(config={"display_name":"My Agent","description":"An agent deployed from a local source.","source_packages":["agent_directory"],"entrypoint_module":"agent_directory.agent","entrypoint_object":"root_agent","requirements_file":"requirements.txt","class_methods":[{"name":"ask","api_mode":"","parameters":{"type":"object","properties":{"question":{"type":"string"}},"required":["question"]}},],# Other optional configs:# "env_vars": {...},# "service_account": "...",})
(Opsional) Dapatkan ID resource agen
Setiap agen yang di-deploy memiliki ID unik. Anda dapat menjalankan perintah berikut
untuk mendapatkan nama resource agen yang di-deploy:
Setiap agen yang di-deploy memiliki daftar operasi yang didukung. Anda dapat menjalankan perintah
berikut untuk mendapatkan daftar operasi yang didukung oleh agen yang di-deploy:
remote_agent.operation_schemas()
Skema untuk setiap operasi adalah kamus yang mendokumentasikan informasi
metode untuk agen yang dapat Anda panggil. Kumpulan operasi yang didukung bergantung pada framework yang Anda gunakan untuk mengembangkan agen:
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-12-05 UTC."],[],[]]