Paket google-cloud-aiplatform mencakup AI Platform SDK for Python dan library klien Python Gemini Enterprise Agent Platform. Halaman ini mencakup kategori perubahan berikut dalam paket google-cloud-aiplatform:
Modul AI generatif berpindah 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.
Penataan ulang platform agen: Perubahan berikut dilakukan pada modul
agentplatformgoogle-cloud-aiplatform:- Mengganti nama
- Promosi ke level teratas
- Penghapusan penginisialisasi global
Untuk mempelajari cara bermigrasi ke struktur SDK baru, lihat Penataan ulang SDK Agent Platform.
Pemisahan
agentplatform:google-cloud-agentplatformkini menjadi distribusi ringan mandiri dan penginstalan yang direkomendasikan untuk beban kerja 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
Permukaan machine learning klasik (kumpulan data, pelatihan, model, prediksi, pelacakan, pipeline) didukung sepenuhnya, tidak terpengaruh oleh perubahan versi 2.0.1, dan tidak memiliki padanan dalam Google Gen AI SDK. Anda tetap dapat mengakses evaluasi, Agent Runtime, perintah, dan keahlian dengan menginstal google-cloud-aiplatform. google-cloud-aiplatform dan google-genai ada bersamaan dalam satu lingkungan, dan google-genai kini menjadi dependensi berat 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, tetapi ada alat yang setara dengan Google Gen AI SDK 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.0sehingga peningkatan versi dependensi yang tidak terkait tidak dapat menghapus modul di bawah Anda.Cari modul yang tidak digunakan lagi dalam kode Anda:
vertexai.generative_modelsvertexai.language_modelsvertexai.vision_modelsvertexai.cachingvertexai.tuning
Jika 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 dengan
-W error::UserWarninguntuk menemukan impor yang terlewat.Ganti
vertexai.init(...)dengangenai.Client(enterprise=True, project=..., location=...)eksplisit. Tetap gunakanvertexai.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 konfigurasi 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 menargetkan Gemini Developer API secara diam-diam, yang kemudian gagal pada kredensial default aplikasi atau memerlukan 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 untuknya.- 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.
Periksa kode Anda untuk menemukan perubahan diam-diam yang menyebabkan perilaku menyimpang tanpa error. Kode ini dikompilasi dan dijalankan, tetapi mengubah makna.
Perilaku Sebelum Setelah response.textpada respons yang diblokir atau kosongMeningkatkan ValueErrorMenampilkan Noneresponse.textdengan beberapa kandidatMeningkatkan ValueErrorMencatat peringatan, menampilkan kandidat pertama Penargetan klien vertexai.init()tersirat Agent PlatformMenghilangkan vertexai=Truesecara diam-diam 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 dicari terlebih dahulu. Setiaptry/except ValueErroryang di-wrap di sekitar.textmenjadi kode tidak aktif, dan setiap.textyang tidak dilindungi kini dapat menghasilkanNoneyang sebelumnya menampilkanstr: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 perujukan
- Embedding
- Penghitungan token
- Penyimpanan cache konteks
- Prediksi dan penyesuaian batch
Pembuatan teks
Untuk tugas pembuatan teks, semua argumen hanya berupa kata kunci. Panggilan posisional meningkatkan 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, tanda 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 bagian adalah objek respons lengkap dan atribut .text-nya terkadang 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 dihapus. Setiap panggilan asinkron berada di bawah client.aio.<module> dengan nama metode yang sama seperti rekan 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 mengambilcurated: 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 dilipat 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 dalam 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 digabungkan 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 satu kali saat membangunGenerativeModel. Sekarang,system_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=), hanya 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, teruskan Cloud Storage URI 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",
)
Panggilan fungsi dan perujukan
Perhatikan perubahan berikut untuk tugas panggilan fungsi dan perujukan:
- Alat akan berpindah 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 idiomatik dan tidak gagal jika bagian nol ternyata berupa teks. Penelusuran lama masih berfungsi.- Skema JSON Mentah ditentukan dalam
parameters_json_schema.types.Schemayang diketik ditentukan dalamparameters. - Sekarang Anda dapat meneruskan fungsi Python sebagai alat, dan panggilan fungsi otomatis diaktifkan secara default saat Anda meneruskan fungsi. Jika Anda mem-port 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 dalam 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 penyematan:
TextEmbeddingInputdihapus.task_typedantitlekini per permintaan, sehingga batch tugas campuran harus dibagi menjadi beberapa panggilan.- Jenis nilai yang ditampilkan diubah dari daftar langsung menjadi objek respons.
get_embeddings()sebelumnya menampilkanlist[TextEmbedding]secara langsung, sehingga pemanggil mengindeks daftar secara langsung (embeddings[0].values). Pada versi baru,embed_content()menampilkan objekEmbedContentResponseyang berisi daftar.embeddings, sehingga Anda harus mengaksesresponse.embeddings[0].values. Kolom sematan individual (.valuesdan.statistics) mempertahankan nama aslinya. auto_truncatetidak lagi ditetapkan secara default keTrue. Kolom baru ini ditetapkan secara default keunset. Jika Anda mengandalkan pemotongan senyap 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)
Menghitung token
Perhatikan perubahan berikut untuk tugas penghitungan token:
total_billable_charactersdihapus dan tidak ada penggantinya. Estimasi biaya apa pun yang didasarkan 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 penyiapan cache konteks:
- Jenis
ttlberubah 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 prediksi batch dan penyesuaian:
- 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 di-wrap. String
"gs://..."kosong akan 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",
),
)
Penataan ulang 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 beban kerja 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 jalur impor dan atribut:
Sebelumnya Baru client.agent_engines.createclient.runtimes.create(Men-deploy instance Agent Runtime di Gemini Enterprise Agent Platform, yang menyediakan Sesi bawaan, eksekusi kode Sandbox, dan konfigurasi memori konteks)
client.memory_banks.create(Membuat resource 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 inisialisasi untuk mengonfigurasi agen yang di-deploy akan rusak tanpa menampilkan 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.ClientmemancarkanFutureWarningpada instansiasi pertama:The vertexai.Client class is deprecated. Please use agentplatform.Client instead.vertexai.ragmemancarkanUserWarningpada waktu impor modul, bukan saat panggilan. Bermigrasi ke berikut ini:import agentplatform client = agentplatform.Client(project="your-project", location="global") client.rag.create_corpus(...)Memperbarui penanganan error seputar panggilan sesi dan
AdkApp. Metode sesi sinkron dan eksekusi agen streaming kini menampilkan error API yang mendasarinya. Pemanggil yang menangkap error umum yang di-wrap 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 refresh token dikelola di sisi klien.
Perhatikan bahwa modul
a2a.tasksdihapus tanpa penggantian.