Paket google-cloud-aiplatform mencakup Agent Platform SDK untuk Python
dan library klien Python Agent Platform. Halaman ini membahas
kategori perubahan berikut dalam paket google-cloud-aiplatform:
Modul AI generatif dipindahkan ke Google Gen AI SDK: Modul AI generatif berikut dalam paket
vertexaitidak digunakan lagi dan dimigrasikan ke Google Gen AI SDK (google-genai):vertexai.generative_modelsvertexai.language_modelsvertexai.vision_modelsvertexai.cachingvertexai.tuning
Untuk mempelajari cara memigrasikan modul yang tidak digunakan lagi ke Google Gen AI SDK, lihat Memindahkan modul AI Generatif ke Google Gen AI SDK.
Restrukturisasi platform agen: Perubahan berikut dilakukan pada modul
agentplatformdarigoogle-cloud-aiplatform:- Mengganti nama
- Promosi ke tingkat atas
- Penghapusan penginisialisasi global
Untuk mempelajari cara bermigrasi ke struktur SDK baru, lihat Restrukturisasi SDK Agent Platform.
Pemisahan
agentplatform:google-cloud-agentplatformkini menjadi distribusi mandiri yang ringan dan merupakan penginstalan yang direkomendasikan untuk workload agen. Jika Anda hanya membangun agen, instalgoogle-cloud-agentplatform, yang tidak berisi modul AI generatif. Modulagentplatformmencakup integrasi umum seperti[adk],[a2a],[agent_engines],[langchain],[ag2],[llama_index],[evaluation],[bigquery],[live], dan[all].
Yang tidak terpengaruh
Platform machine learning klasik (set data, pelatihan, model, prediksi, pelacakan, pipeline) didukung sepenuhnya, tidak terpengaruh oleh perubahan versi 2.0.1, dan tidak memiliki padanan di Google Gen AI SDK. Anda masih dapat mengakses evaluasi, Agent Runtime, perintah, dan keahlian dengan menginstal google-cloud-aiplatform. google-cloud-aiplatform dan google-genai berdampingan dalam satu lingkungan, dan google-genai kini menjadi dependensi tetap google-cloud-aiplatform:
import agentplatform
client = agentplatform.Client(project="my-project", location="global")
# client.evals client.prompts
# client.prompt_optimizer client.datasets client.skills
vertexai.batch_prediction tidak dihentikan penggunaannya, tetapi ada Google Gen AI SDK yang setara dan merupakan alat yang direkomendasikan.
Memindahkan modul AI Generatif ke Google Gen AI SDK
Jika Anda menggunakan modul AI generatif dalam paket google-cloud-aiplatform, gunakan rekomendasi berikut untuk bermigrasi ke Google Gen AI SDK (google-genai):
Tetapkan
google-cloud-aiplatform < 2.0.0agar peningkatan dependensi yang tidak terkait tidak dapat menghapus modul di bawah Anda.Telusuri modul yang tidak digunakan lagi dalam kode Anda:
vertexai.generative_modelsvertexai.language_modelsvertexai.vision_modelsvertexai.cachingvertexai.tuning
Jika Anda mengimpor salah satu modul Python yang terpengaruh, Anda akan menerima peringatan penghentian penggunaan berikut:
UserWarning: This feature is deprecated as of June 24, 2025 and will be removed on June 24, 2026. For details, see https://cloud.google.com/vertex-ai/generative-ai/docs/deprecations/genai-vertexai-sdk.Jalankan suite pengujian Anda dengan
-W error::UserWarninguntuk menemukan impor yang terlewat.Ganti
vertexai.init(...)dengangenai.Client(enterprise=True, project=..., location=...)eksplisit. Pertahankanvertexai.init()jika Anda juga menggunakan platform machine learning klasik.Sebelum
# pip install google-cloud-aiplatform import vertexai from vertexai.generative_models import GenerativeModel vertexai.init(project="my-project", location="us-central1") # Model identity and config are bound at construction time. model = GenerativeModel("gemini-2.5-flash")Setelah
# pip install google-genai from google import genai from google.genai import types client = genai.Client( enterprise=True, project="my-project", location="global", )Atau konfigurasikan dari lingkungan:
export GOOGLE_GENAI_USE_ENTERPRISE=true export GOOGLE_CLOUD_PROJECT=my-project export GOOGLE_CLOUD_LOCATION=globalfrom google import genai client = genai.Client()Pertimbangan utama:
- Status global menjadi klien eksplisit.
vertexai.init()mengonfigurasi seluruh proses;genai.Client()adalah objek yang Anda teruskan. Dengangenai.Client(), Anda dapat menggunakan dua project atau region dalam satu proses. enterprise=Truewajib diisi. Jika Anda menghilangkannya, klien akan otomatis menargetkan Gemini Developer API, yang kemudian akan gagal pada kredensial default aplikasi atau meminta kunci API.- Nama model berpindah dari konstruksi ke setiap panggilan. Tidak ada objek model bind-once.
model=adalah argumen kata kunci yang diperlukan pada setiap panggilanclient.models.*. - Autentikasi tidak berubah. Kredensial default aplikasi masih berlaku, dan
credentials=menerimagoogle.auth.credentials.Credentialsdi kedua SDK. vertexai.init()juga membawa setelan non-generatif sepertistaging_bucket,experiment,encryption_spec_key_name,service_account,network.genai.Clienttidak memiliki padanan untuk keduanya.- Ejaan
enterprise=Trueyang lebih baru diterima mulaigoogle-genai2.20.0, tetapi versi lamavertexai=Trueberfungsi di setiap rilis dan merupakan pilihan yang lebih aman.
- Status global menjadi klien eksplisit.
Audit kode Anda untuk menemukan perubahan otomatis yang menyebabkan perilaku berbeda tanpa error. Kode ini dikompilasi dan dijalankan, tetapi mengubah makna.
Perilaku Sebelum Setelah response.textpada respons yang diblokir atau kosongMemunculkan ValueErrorMenampilkan Noneresponse.textdengan beberapa kandidatMemunculkan ValueErrorMencatat peringatan ke dalam log, menampilkan kandidat pertama Penargetan klien vertexai.init()Agent Platform tersiratMenghilangkan vertexai=Trueakan secara otomatis menargetkan Gemini Developer APIEmbedding auto_truncateSetelan defaultnya adalah TrueTidak disetel; default server berlaku Fungsi Python yang diteruskan sebagai alat Tidak didukung Dieksekusi secara otomatis oleh SDK system_instructionTerikat sekali pada model Harus diteruskan pada setiap panggilan Perubahan
response.textadalah perubahan yang harus ditelusuri terlebih dahulu. Setiaptry/except ValueErroryang digabungkan dengan.textakan menjadi kode mati, dan setiap.textyang tidak dilindungi kini dapat menghasilkanNone, sedangkanstrsebelumnya ditampilkan:if response.text is None: print( "blocked or empty:", response.prompt_feedback, response.candidates[0].finish_reason if response.candidates else None, )Tetap instal
google-cloud-aiplatformjika Anda menggunakan evaluasi, Agent Runtime, perintah, set data, keterampilan, dan seluruh platform machine learning klasik.Ubah panggilan ke versi baru. Mulai dengan penggantian nama mekanis, lalu lanjutkan dengan konsolidasi
config=.
Perubahan panggilan berbasis tugas
Lihat panggilan yang diubah berdasarkan tugas:
- Pembuatan teks
- Pembuatan streaming
- Pembuatan asinkron
- Sesi chat
- Konfigurasi, setelan keamanan, dan petunjuk sistem
- Input multimodal
- Pemanggilan fungsi dan grounding
- Embedding
- Penghitungan token
- Cache konteks
- Prediksi dan penyesuaian batch
Pembuatan teks
Untuk tugas pembuatan teks, semua argumen hanya berupa kata kunci. Panggilan posisi akan memunculkan TypeError.
Sebelum
model = GenerativeModel("gemini-2.5-flash")
response = model.generate_content("Why is the sky blue?")
print(response.text)
Setelah
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Why is the sky blue?",
)
print(response.text)
Pembuatan streaming
Untuk tugas pembuatan streaming, flag stream=True akan dihapus. Streaming kini menjadi metode terpisah yang menampilkan Iterator[types.GenerateContentResponse]. Gunakan if chunk.text: untuk memeriksa sebelum mengakses teks, karena setiap potongan adalah objek respons lengkap dan atribut .text-nya terkadang dapat berupa None.
Sebelum
stream = model.generate_content("Tell me a story in 300 words.", stream=True)
for chunk in stream:
print(chunk.text, end="")
Setelah
for chunk in client.models.generate_content_stream(
model="gemini-3.5-flash",
contents="Tell me a story in 300 words.",
):
if chunk.text:
print(chunk.text, end="")
Pembuatan asinkron
Untuk tugas pembuatan asinkron, akhiran nama metode _async telah dihapus. Setiap panggilan asinkron berada di bawah client.aio.<module> dengan nama metode yang sama dengan panggilan sinkronnya. Tutup klien dengan await client.aio.aclose(), atau gunakan async with genai.Client(...).aio as aclient:.
Sebelum
response = await model.generate_content_async("Why is the sky blue?")
async_stream = await model.generate_content_async("Why is the sky blue?", stream=True)
async for chunk in async_stream:
print(chunk.text, end="")
Setelah
response = await client.aio.models.generate_content(
model="gemini-3.5-flash",
contents="Why is the sky blue?",
)
# Note the `await` in front of the async iterator.
async for chunk in await client.aio.models.generate_content_stream(
model="gemini-3.5-flash",
contents="Tell me a story in 300 words.",
):
print(chunk.text, end="")
Sesi chat
Perhatikan perubahan berikut untuk tugas sesi chat:
- Chat dibuat dari klien, bukan dari objek model.
chat.history(properti) menjadichat.get_history()(metode). Metode baru ini menggunakancurated: bool = False. MeneruskanTruehanya akan menampilkan giliran yang dipertahankan, yang tidak memiliki padanan lama.client.aio.chats.create(...)menampilkanAsyncChatsecara langsung. Hanyasend_messagedansend_message_streamyang ditunggu.- Opsi per giliran diringkas menjadi satu argumen:
send_message(message, config=types.GenerateContentConfig(...)). Parameter pertama juga diganti namanya daricontentmenjadimessage. start_chat(response_validation=False)adalah metode baru yang tidak memiliki padanan di versi sebelumnya.
Sebelum
model = GenerativeModel("gemini-2.5-flash")
chat = model.start_chat()
print(chat.send_message("Tell me a story").text)
for content in chat.history:
print(content.role, content.parts)
Setelah
chat = client.chats.create(model="gemini-3.5-flash")
print(chat.send_message("Tell me a story").text)
for content in chat.get_history():
print(content.role, content.parts)
Konfigurasi, setelan keamanan, dan petunjuk sistem
Perhatikan perubahan berikut untuk tugas konfigurasi, setelan keamanan, dan petunjuk sistem:
Argumen berikut diciutkan menjadi satu
config=sebagai kolomGenerateContentConfig:generation_configsafety_settingstoolstool_configlabelssystem_instruction
dictbiasa berfungsi di mana pun jenis konfigurasi berfungsi.system_instructionberpindah dari konstruktor model ke konfigurasi per panggilan. Pada versi SDK sebelumnya,system_instructionditetapkan sekali saat mem-buildGenerativeModel. Sekarangsystem_instructionharus diteruskan pada setiap panggilan atau disertakan dalamclient.chats.create(config=...).Setelan keamanan berubah dari
dictmenjadilist. Misalnya,[types.SafetySetting(category=c, threshold=t) for c, t in old_dict.items()].Enum diterima sebagai string biasa dan dipaksa.
Nama kolom skalar tidak berubah:
temperature,top_p,top_k,candidate_count,max_output_tokens,stop_sequences,presence_penalty,frequency_penalty,seed,response_mime_type,response_schema,response_logprobs,logprobs.Kolom baru yang tidak memiliki padanan lama mencakup
thinking_config,cached_content,automatic_function_calling,http_options,media_resolution, danspeech_config.
Sebelum
from vertexai.generative_models import (
GenerativeModel, GenerationConfig, HarmCategory, HarmBlockThreshold,
)
model = GenerativeModel(
"gemini-2.5-flash",
system_instruction=["Talk like a pirate.", "Don't use rude words."],
)
response = model.generate_content(
contents="Why is the sky blue?",
generation_config=GenerationConfig(temperature=0, top_p=0.95, max_output_tokens=100),
safety_settings={
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_ONLY_HIGH,
},
)
Setelah
from google.genai import types
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Why is the sky blue?",
config=types.GenerateContentConfig(
system_instruction="Talk like a pirate. Don't use rude words.",
temperature=0,
top_p=0.95,
max_output_tokens=100,
safety_settings=[
types.SafetySetting(
category="HARM_CATEGORY_HATE_SPEECH",
threshold="BLOCK_MEDIUM_AND_ABOVE",
),
types.SafetySetting(
category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=types.HarmBlockThreshold.BLOCK_ONLY_HIGH,
),
],
),
)
Input multimodal
Perhatikan perubahan berikut untuk tugas input multimodal:
| Lama | Baru |
|---|---|
Part.from_uri(uri, mime_type), posisi diizinkan |
Part.from_uri(file_uri=, mime_type=), khusus kata kunci, parameter diganti namanya |
Part.from_data(data, mime_type) |
Part.from_bytes(data=, mime_type=), metode diganti namanya |
Part.from_text(text) |
Part.from_text(text=), hanya kata kunci |
Image.load_from_file(path) |
Tidak ada yang setara; buka file dan gunakan Part.from_bytes |
mime_typebersifat opsional ditypes.Part.from_uri()(disimpulkan di sisi server), tetapi tetap diperlukan ditypes.Part.from_bytes().client.files.upload(...)hanya didukung di Gemini Developer API. Untuk workload Agent Platform, terus teruskan URI Cloud Storage menggunakanfrom_uriatau byte inline menggunakanfrom_bytes.
Sebelum
from vertexai.generative_models import GenerativeModel, Part, Image
image = Image.load_from_file("image.jpg")
print(model.generate_content(["What is shown in this image?", image]).text)
image_part = Part.from_uri(
"gs://cloud-samples-data/generative-ai/image/scones.jpg",
mime_type="image/jpeg",
)
Setelah
from google.genai import types
# Image.load_from_file has no equivalent: read the bytes yourself.
with open("image.jpg", "rb") as f:
image = types.Part.from_bytes(data=f.read(), mime_type="image/jpeg")
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=["What is shown in this image?", image],
)
image_part = types.Part.from_uri(
file_uri="gs://cloud-samples-data/generative-ai/image/scones.jpg",
mime_type="image/jpeg",
)
Pemanggilan fungsi dan grounding
Perhatikan perubahan berikut untuk tugas grounding dan pemanggilan fungsi:
- Alat dipindahkan ke
config=. Tidak ada argumentools=pada panggilan atau pada objek model. Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())menjaditypes.Tool(google_search=types.GoogleSearch()). Metode factory menjadi kolom biasa.types.Tooljuga memiliki kolomgoogle_search_retrievalterpisah.response.function_callsadalah pengakses idiomatis dan tidak gagal saat bagian nol ternyata berupa teks. Penjelajahan lama masih berfungsi.- Skema JSON mentah ditentukan dalam
parameters_json_schema.types.Schemayang diketik ditentukan dalamparameters. - Anda kini dapat meneruskan fungsi Python sebagai alat, dan panggilan fungsi otomatis diaktifkan secara default saat Anda meneruskan fungsi. Jika Anda mem-porting loop alat manual dan meneruskan objek fungsi, SDK akan mulai mengeksekusi kode Anda. Nonaktifkan panggilan fungsi otomatis default dengan
automatic_function_calling=types.AutomaticFunctionCallingConfig(disable=True). Jenis alat baru berikut tidak memiliki padanan di versi sebelumnya:
code_execution,url_context,google_maps,computer_use,file_search,enterprise_web_search,mcp_servers.
Sebelum
from vertexai.generative_models import GenerativeModel, FunctionDeclaration, Tool, grounding
weather_tool = Tool(function_declarations=[
FunctionDeclaration(
name="get_current_weather",
description="Get the current weather in a given location",
parameters={
"type": "object",
"properties": {"location": {"type": "string"}},
"required": ["location"],
},
)
])
model = GenerativeModel("gemini-2.5-flash", tools=[weather_tool])
response = model.generate_content("What is the weather in Boston?")
call = response.candidates[0].content.parts[0].function_call
# Grounding
search_tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())
Setelah
from google.genai import types
weather_tool = types.Tool(function_declarations=[
types.FunctionDeclaration(
name="get_current_weather",
description="Get the current weather in a given location",
parameters_json_schema={
"type": "object",
"properties": {"location": {"type": "string"}},
"required": ["location"],
},
)
])
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="What is the weather in Boston?",
config=types.GenerateContentConfig(tools=[weather_tool]),
)
call = response.function_calls[0]
# Grounding
search_tool = types.Tool(google_search=types.GoogleSearch())
Embedding
Perhatikan perubahan berikut untuk tugas embedding:
TextEmbeddingInputdihapus.task_typedantitlekini bersifat per permintaan, sehingga batch tugas campuran harus dibagi menjadi beberapa panggilan.- Jenis nilai yang ditampilkan diubah dari daftar langsung menjadi objek respons.
get_embeddings()langsung menampilkanlist[TextEmbedding], sehingga pemanggil mengindeks daftar secara langsung (embeddings[0].values). Dalam versi baru,embed_content()menampilkan objekEmbedContentResponseyang berisi daftar.embeddings, sehingga Anda harus mengaksesresponse.embeddings[0].values. Kolom embedding individual (.valuesdan.statistics) mempertahankan nama aslinya. auto_truncatetidak lagi ditetapkan secara default keTrue. Kolom baru ditetapkan secara default keunset. Jika Anda mengandalkan pemotongan otomatis untuk input yang terlalu panjang, tetapkanauto_truncatesecara eksplisit.
Sebelum
from vertexai.language_models import TextEmbeddingModel, TextEmbeddingInput
model = TextEmbeddingModel.from_pretrained("gemini-embedding-001")
text_input = TextEmbeddingInput(
text="How do I get a driver's license?",
task_type="RETRIEVAL_DOCUMENT", # per input
title="Driver's License", # per input
)
embeddings = model.get_embeddings([text_input], output_dimensionality=3072, auto_truncate=True)
print(embeddings[0].values)
Setelah
from google.genai import types
response = client.models.embed_content(
model="gemini-embedding-2",
contents="How do I get a driver's license?",
config=types.EmbedContentConfig(
task_type="RETRIEVAL_DOCUMENT", # now per request
title="Driver's License", # now per request
output_dimensionality=3072,
auto_truncate=True,
),
)
print(response.embeddings[0].values)
Penghitungan token
Perhatikan perubahan berikut untuk tugas penghitungan token:
total_billable_charactersdihapus dan tidak memiliki pengganti. Setiap estimasi biaya yang dikunci padatotal_billable_charactersharus dikerjakan ulang (misalnya terhadaptotal_tokensatauresponse.usage_metadata) dari panggilan pembuatan.client.models.compute_tokens(...)ditambahkan untuk ID token dan potongan string.Penghitungan offline ditambahkan melalui
google.genai.local_tokenizer.LocalTokenizer.
Sebelum
model = GenerativeModel("gemini-2.5-flash")
response = model.count_tokens(["Why is the sky blue?"])
print(response.total_tokens)
print(response.total_billable_characters)
Setelah
response = client.models.count_tokens(
model="gemini-3.5-flash",
contents=["Why is the sky blue?"],
)
print(response.total_tokens)
print(response.cached_content_token_count)
Context caching
Perhatikan perubahan berikut untuk tugas cache konteks:
ttlmengubah jenis daridatetime.timedeltamenjadi string durasi seperti"86400s".- Metode objek resource menjadi panggilan modul klien.
updatemenampilkan objek baru, bukan mengubahnya di tempat.
Sebelum
import datetime
from vertexai.caching import CachedContent
cache = CachedContent.create(
model_name="gemini-2.5-flash",
system_instruction="Please answer my question formally",
contents=contents,
ttl=datetime.timedelta(days=1),
)
cache.update(ttl=datetime.timedelta(days=2))
cache.delete()
Setelah
from google.genai import types
cache = client.caches.create(
model="gemini-3.5-flash",
config=types.CreateCachedContentConfig(
contents=contents,
system_instruction="Please answer my question formally",
ttl="86400s",
),
)
cache = client.caches.update(
name=cache.name, config=types.UpdateCachedContentConfig(ttl="172800s")
)
client.caches.delete(name=cache.name)
Prediksi dan penyesuaian batch
Perhatikan perubahan berikut untuk tugas penyesuaian dan prediksi batch:
- Polling berbasis pengikatan ulang, bukan di tempat. Tidak ada
job.refresh()dan tidak adajob.has_ended. Ambil objek baru dariclient.batches.get(name=...)dan bandingkanjob.statedengan stringJOB_STATE_*. - Penggantian nama batch:
source_modelmenjadimodel,input_datasetmenjadisrc,output_uri_prefixmenjadiconfig.dest,job_display_namemenjadiconfig.display_name. - Kontrol bentuk mesin batch dihapus dan tidak memiliki padanan dalam versi SDK baru.
machine_type,accelerator_type,accelerator_count,starting_replica_count, danmax_replica_counttidak lagi menjadi kolomCreateBatchJobConfig. - Metode berikut diganti namanya:
sft.trainkeclient.tunings.tunesource_modelkebase_modeltrain_datasetketraining_datasetepochskeepoch_count
- Set data penyesuaian digabungkan. String
"gs://..."kosong menjaditypes.TuningDataset(gcs_uri=...). adapter_sizemengubah jenis dariintmenjadi string enum seperti"ADAPTER_SIZE_FOUR".
Sebelum
from vertexai.batch_prediction import BatchPredictionJob
from vertexai.tuning import sft
job = BatchPredictionJob.submit(
source_model="gemini-2.5-flash",
input_dataset="bq://my-project.my-dataset.my-table",
output_uri_prefix="bq://my-project.my-dataset.output",
)
while not job.has_ended:
job.refresh()
tuning_job = sft.train(
source_model="gemini-2.5-flash",
train_dataset="gs://bucket/train.jsonl",
epochs=1,
adapter_size=4,
)
Setelah
from google.genai import types
job = client.batches.create(
model="gemini-3.5-flash",
src="bq://my-project.my-dataset.my-table",
config=types.CreateBatchJobConfig(dest="bq://my-project.my-dataset.output"),
)
completed = {"JOB_STATE_SUCCEEDED", "JOB_STATE_FAILED", "JOB_STATE_CANCELLED", "JOB_STATE_PAUSED"}
while job.state not in completed:
job = client.batches.get(name=job.name)
tuning_job = client.tunings.tune(
base_model="gemini-3.5-flash",
training_dataset=types.TuningDataset(gcs_uri="gs://bucket/train.jsonl"),
config=types.CreateTuningJobConfig(
epoch_count=1,
adapter_size="ADAPTER_SIZE_FOUR",
),
)
Restrukturisasi Agent Platform SDK
Jika Anda menggunakan modul agentplatform dari google-cloud-aiplatform, gunakan rekomendasi berikut untuk bermigrasi ke struktur SDK baru:
google-cloud-agentplatformkini menjadi distribusi ringan mandiri dan penginstalan yang direkomendasikan untuk workload agen. Jika Anda tidak memerlukan platform machine learning klasik, alihkan penginstalan Anda daripip install google-cloud-aiplatformkepip install google-cloud-agentplatform.Gunakan tabel berikut untuk memperbarui impor dan jalur atribut:
Sebelumnya Baru client.agent_engines.createclient.runtimes.create(Men-deploy Agent Runtime di instance Gemini Enterprise Agent Platform, yang menyediakan Sesi Agent Platform bawaan, eksekusi kode Sandbox, dan konfigurasi memori konteks)
client.memory_banks.create(Membuat resource Agent Platform Memory Bank mandiri untuk mempertahankan, mengelola, dan mengambil memori di seluruh interaksi)client.agent_engines.sandboxesclient.sandboxesclient.agent_engines.sandboxes.snapshotsclient.sandboxes.snapshotsclient.agent_engines.sandboxes.templatesclient.sandboxes.templatesclient.agent_engines.sessionsclient.sessionsclient.agent_engines.sessions.eventsclient.sessions.eventsclient.agent_engines.runtimes.revisionsclient.runtimes.revisionsclient.agent_engines.memoriesclient.memory_banks.memoriesagentplatform.agent_engines.templatesagentplatform.frameworksPenginisialisasi global dihapus, dan framework agen tidak lagi membaca project dan lokasi dari status
aiplatform.init()atauvertexai.init(). Ganti konfigurasi yang berasal dari penginisialisasi dengan variabel lingkungan untuk apa pun yang berjalan di dalam framework agen. Kode yang mengandalkan penginisialisasi untuk mengonfigurasi agen yang di-deploy akan rusak secara otomatis, bukan memunculkan error.Perbarui situs panggilan
evals.run_inference(agent=...)untuk meneruskantypes.Runtime, karena SDK tidak lagi menerimatypes.AgentEngine.Buat perubahan berikut:
vertexai.Clientkeagentplatform.Clientvertexai.ragkeagentplatform.Client().rag
vertexai.ClientmemunculkanFutureWarningpada pembuatan instance pertama:The vertexai.Client class is deprecated. Please use agentplatform.Client instead.vertexai.ragmemunculkanUserWarningpada waktu impor modul, bukan saat panggilan. Migrasikan ke hal berikut:import agentplatform client = agentplatform.Client(project="your-project", location="global") client.rag.create_corpus(...)Memperbarui penanganan error seputar panggilan
AdkAppdan sesi. Metode sesi sinkron dan streaming agen yang berjalan kini menampilkan error API yang mendasarinya. Pemanggil yang menangkap error umum yang digabungkan tidak lagi cocok. Ganti penangkapan untuk pengecualian wrapper library generik dengangoogle.api_core.exceptions.GoogleAPICallError(atau error status tertentu sepertiResourceExhausteddanNotFound).Perbarui pemanggil klien atau middleware untuk menyertakan token akses OAuth pengguna pada setiap permintaan, karena token kini bersifat sementara dan tidak dipertahankan dengan status sesi. Pastikan pembaruan token dikelola di sisi klien.
Perhatikan bahwa modul
a2a.tasksdihapus tanpa pengganti.