Sebelum menggunakan Vertex AI Agent Engine Memory Bank, Anda harus menyiapkan lingkungan. Perhatikan bahwa meskipun Memory Bank adalah bagian dari Agent Engine, Anda tidak perlu men-deploy kode ke Agent Engine Runtime untuk menggunakan Memory Bank.
Menyiapkan project Google Cloud
Setiap project dapat diidentifikasi dengan dua cara: nomor project atau project ID. PROJECT_NUMBER
dibuat secara otomatis saat Anda
membuat project, sedangkan PROJECT_ID
dibuat oleh Anda,
atau siapa pun yang membuat project. Untuk menyiapkan project:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Jika Anda tidak menggunakan Vertex AI dalam mode ekspres, ikuti petunjuk di Mengautentikasi ke Vertex AI.
Jika Anda menggunakan Vertex AI dalam mode ekspres, siapkan autentikasi dengan menyetel kunci API di lingkungan:
os.environ["GOOGLE_API_KEY"] = "API_KEY"
PROJECT_ID
adalah project ID Anda.LOCATION
adalah salah satu wilayah yang didukung untuk Memory Bank.Membuat atau memperbarui instance Agent Engine: Saat membuat atau memperbarui instance, Anda dapat mengganti default Agent Engine untuk melakukan modifikasi berikut pada instance:
Tetapkan konfigurasi tentang cara Bank Memori membuat dan mengelola kenangan.
Deploy agen Anda ke Agent Engine Runtime.
- AGENT_ENGINE_NAME: Nama Agent Engine. Harus dalam format
projects/.../locations/.../reasoningEngines/...
. Lihat region yang didukung untuk Bank Memori. Tetapkan konfigurasi tentang cara Bank Memori membuat dan mengelola kenangan.
Deploy agen Anda ke Agent Engine Runtime.
agent_engine = client.agent_engines.create( # Optional. Set this argument if you want to deploy to Agent Engine Runtime. agent_engine=..., # Optional. Set this argument if you want to change the Memory Bank configuration. config=... )
Instance baru kosong hingga Anda membuat atau membuat kenangan.
Anda memerlukan nama Agent Engine untuk membaca atau menulis memori:
agent_engine_name = agent_engine.api_resource.name
- AGENT_ENGINE_NAME: Nama Agent Engine. Harus dalam format
projects/.../locations/.../reasoningEngines/...
. Lihat region yang didukung untuk Bank Memori. - Konfigurasi penyesuaian: Mengonfigurasi cara kenangan harus diekstrak dari data sumber.
- Konfigurasi penelusuran kesamaan: Mengonfigurasi model embedding yang digunakan untuk penelusuran kesamaan. Nilai defaultnya adalah
text-embedding-005
. - Konfigurasi pembuatan: Mengonfigurasi LLM mana yang digunakan untuk pembuatan memori. Nilai defaultnya adalah
gemini-2.0-flash-001
. - Konfigurasi TTL: Mengonfigurasi cara TTL ditetapkan secara otomatis untuk kenangan yang dibuat atau diperbarui. Defaultnya adalah tanpa TTL.
- Mengonfigurasi topik memori: Tentukan jenis informasi yang harus dipertimbangkan oleh Bank Memori sebagai informasi yang bermakna untuk dipertahankan. Hanya informasi yang sesuai dengan salah satu topik kenangan ini yang akan dipertahankan oleh Bank Memori.
- Memberikan contoh few-shot: Tunjukkan perilaku yang diharapkan untuk ekstraksi memori ke Bank Memori.
Topik terkelola: Label dan petunjuk ditentukan oleh Memory Bank. Anda hanya perlu memberikan nama topik terkelola. Misalnya,
Kamus
memory_topic = { "managed_memory_topic": { "managed_topic_enum": "USER_PERSONAL_INFO" } }
Berbasis kelas
from vertexai.types import ManagedTopicEnum from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic from vertexai.types import MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic memory_topic = MemoryTopic( managed_memory_topic=ManagedMemoryTopic( managed_topic_enum=ManagedTopicEnum.USER_PERSONAL_INFO ) )
Topik terkelola berikut didukung oleh Memory Bank:
- Informasi pribadi (
USER_PERSONAL_INFO
): Informasi pribadi yang signifikan tentang pengguna, seperti nama, hubungan, hobi, dan tanggal penting. Misalnya, "Saya bekerja di Google" atau "Ulang tahun pernikahan saya pada 31 Desember". - Preferensi pengguna (
USER_PREFERENCES
): Suka, tidak suka, gaya, atau pola yang dinyatakan atau tersirat. Misalnya, "Saya lebih suka tempat duduk di tengah". - Peristiwa percakapan utama dan hasil tugas (
KEY_CONVERSATION_DETAILS
): Pencapaian atau kesimpulan penting dalam dialog. Misalnya, "Saya memesan tiket pesawat untuk perjalanan pulang pergi antara JFK dan SFO. Saya berangkat pada 1 Juni 2025 dan kembali pada 7 Juni 2025." - Petunjuk mengingat / melupakan secara eksplisit (
EXPLICIT_INSTRUCTIONS
): Informasi yang secara eksplisit diminta pengguna kepada agen untuk diingat atau dilupakan. Misalnya, jika pengguna mengatakan "Ingat bahwa saya terutama menggunakan Python", Bank Memori akan membuat memori seperti "Saya terutama menggunakan Python".
- Informasi pribadi (
Topik kustom: Label dan petunjuk ditentukan oleh Anda saat menyiapkan instance Bank Memori. Informasi ini akan digunakan dalam perintah untuk langkah ekstraksi Bank Memori. Misalnya,
Kamus
memory_topic = { "custom_memory_topic": { "label": "business_feedback", "description": """Specific user feedback about their experience at the coffee shop. This includes opinions on drinks, food, pastries, ambiance, staff friendliness, service speed, cleanliness, and any suggestions for improvement.""" } }
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic from vertexai.types import MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic as CustomMemoryTopic memory_topic = MemoryTopic( custom_memory_topic=CustomMemoryTopic( label="business_feedback", description="""Specific user feedback about their experience at the coffee shop. This includes opinions on drinks, food, pastries, ambiance, staff friendliness, service speed, cleanliness, and any suggestions for improvement.""" ) )
Saat menggunakan topik kustom, sebaiknya berikan juga contoh sedikit tembakan yang menunjukkan cara mengekstrak kenangan dari percakapan Anda.
- EMBEDDING_MODEL: Model embedding teks Google yang akan digunakan untuk penelusuran kesamaan, dalam format
projects/{project}/locations/{location}/publishers/google/models/{model}
. - LLM_MODEL: Model LLM Google yang akan digunakan untuk mengekstrak dan menggabungkan kenangan, dalam format
projects/{project}/locations/{location}/publishers/google/models/{model}
. TTL Default: TTL akan diterapkan ke semua operasi yang membuat atau memperbarui memori, termasuk
UpdateMemory
,CreateMemory
, danGenerateMemories
.Kamus
memory_bank_config = { "ttl_config": { "default_ttl": f"TTLs" } }
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigTtlConfig as TtlConfig memory_bank_config = MemoryBankConfig( ttl_config=TtlConfig( default_ttl=f"TTLs" ) )
Ganti kode berikut:
- TTL: Durasi dalam detik untuk TTL. Untuk kenangan yang diperbarui, waktu habis masa berlaku yang baru dihitung (sekarang + TTL) akan menggantikan waktu habis masa berlaku Kenangan sebelumnya.
TTL terperinci (per operasi): TTL dihitung berdasarkan operasi mana yang membuat atau memperbarui Memori. Jika tidak ditetapkan untuk operasi tertentu, operasi tidak akan memperbarui waktu habis masa berlaku Memori.
Kamus
memory_bank_config = { "ttl_config": { "granular_ttl": { "create_ttl": f"CREATE_TTLs", "generate_created_ttl": f"GENERATE_CREATED_TTLs", "generate_updated_ttl": f"GENERATE_UPDATED_TTLs" } } }
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigTtlConfig as TtlConfig from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfig as GranularTtlConfig memory_bank_config = MemoryBankConfig( ttl_config=TtlConfig( granular_ttl_config=GranularTtlConfig( create_ttl=f"CREATE_TTLs", generate_created_ttl=f"GENERATE_CREATED_TTLs", generate_updated_ttl=f"GENERATE_UPDATED_TTLs", ) ) )
Ganti kode berikut:
- CREATE_TTL: Durasi dalam detik untuk TTL kenangan yang dibuat menggunakan
CreateMemory
. - GENERATE_CREATED_TTL: Durasi dalam detik untuk TTL kenangan yang dibuat menggunakan
GeneratedMemories
. - GENERATE_UPDATED_TTL: Durasi dalam detik untuk TTL kenangan yang diperbarui menggunakan
GeneratedMemories
. Waktu habis masa berlaku yang baru dihitung (sekarang + TTL) akan menggantikan waktu habis masa berlaku Memori sebelumnya.
- CREATE_TTL: Durasi dalam detik untuk TTL kenangan yang dibuat menggunakan
- STAGING_BUCKET: Bucket Cloud Storage Anda yang akan digunakan untuk menyiapkan Runtime Agent Engine.
Mendapatkan peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menggunakan Vertex AI Agent Engine, minta administrator Anda untuk memberi Anda peran IAM Vertex AI User (roles/aiplatform.user
) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Jika Anda membuat permintaan ke Memory Bank dari agen yang di-deploy di Google Kubernetes Engine atau Cloud Run, pastikan akun layanan Anda memiliki izin yang diperlukan. Agen Layanan Reasoning Engine sudah memiliki izin yang diperlukan untuk membaca dan menulis memori, sehingga permintaan keluar dari Runtime Agent Engine seharusnya sudah memiliki izin untuk mengakses Bank Memori.
Menyiapkan lingkungan Anda
Bagian ini mengasumsikan bahwa Anda telah menyiapkan lingkungan pengembangan Python, atau menggunakan runtime dengan lingkungan pengembangan Python (seperti Colab).
Menginstal library
Instal Vertex AI SDK:
pip install google-cloud-aiplatform>=1.104.0
Autentikasi
Petunjuk autentikasi bergantung pada apakah Anda menggunakan Vertex AI dalam mode ekspres:
Menyiapkan klien Vertex AI SDK
Jalankan kode berikut untuk menyiapkan klien Vertex AI SDK:
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
)
di mana
Mengonfigurasi instance Agent Engine untuk Bank Memori
Untuk mulai menggunakan Memory Bank, Anda memerlukan instance Agent Engine terlebih dahulu.
Anda dapat melakukan salah satu hal berikut:
Menggunakan instance yang ada
Jika Anda tidak perlu mengubah instance Agent Engine yang ada, jalankan perintah berikut untuk mengonfigurasi instance untuk Memory Bank:
agent_engine = client.agent_engines.get(name="AGENT_ENGINE_NAME")
Ganti kode berikut:
Anda dapat menggunakan instance di lingkungan apa pun, termasuk Google Kubernetes Engine dan Cloud Run. Untuk memulai, Anda memerlukan nama Agent Engine yang mengidentifikasi Bank Memori dan izin yang memadai untuk memanggil Bank Memori.
Membuat atau mengupdate instance
Buat
Bank Memori diaktifkan secara default saat Anda membuat instance Agent Engine. Membuat Agent Engine baru tanpa Runtime hanya memerlukan waktu beberapa detik.
agent_engine = client.agent_engines.create()
Anda juga dapat mengganti default Agent Engine saat membuat instance Agent Engine untuk melakukan modifikasi berikut:
Perbarui
Anda dapat memperbarui instance Agent Engine yang ada jika ingin memperbarui Agent Engine sambil tetap mempertahankan memori yang disimpan dalam instance. Anda dapat melakukan update seperti mengubah konfigurasi Bank Memori atau men-deploy agen ke Runtime Agent Engine.
agent_engine = client.agent_engines.update(
# If you have an existing AgentEngine, you can access the name using `agent_engine.api_resource.name`.
name="AGENT_ENGINE_NAME",
# Optional. Set this argument if you want to deploy to Agent Engine Runtime.
agent_engine=...,
# Optional. Set this argument if you want to change the Memory Bank configuration.
config=...
)
Ganti kode berikut:
Menetapkan konfigurasi Bank Memori Anda
Anda dapat mengonfigurasi Bank Memori untuk menyesuaikan cara kenangan dibuat dan dikelola. Jika konfigurasi tidak diberikan, Bank Memori akan menggunakan setelan default untuk setiap jenis konfigurasi.
Konfigurasi Bank Memori ditetapkan saat membuat atau mengupdate instance Agent Engine Anda:
client.agent_engines.create(
...,
config={
"context_spec": {
"memory_bank_config": memory_bank_config
}
}
)
# Alternatively, update an existing Agent Engine's Memory Bank config.
agent_engine = client.agent_engines.update(
name=agent_engine.api_resource.name,
config={
"context_spec": {
"memory_bank_config": memory_bank_config
}
}
)
Anda dapat mengonfigurasi setelan berikut untuk instance Anda:
Konfigurasi penyesuaian
Jika ingin menyesuaikan cara kenangan diekstrak dari data sumber, Anda dapat mengonfigurasi perilaku ekstraksi kenangan saat menyiapkan instance Agent Engine. Ada dua tuas yang dapat Anda gunakan untuk penyesuaian:
Anda dapat mengonfigurasi perilaku yang berbeda untuk tingkat cakupan yang berbeda secara opsional. Misalnya, topik yang bermakna untuk memori tingkat sesi mungkin tidak bermakna untuk memori tingkat pengguna (di beberapa sesi). Untuk mengonfigurasi perilaku untuk subset kenangan tertentu, tetapkan kunci cakupan konfigurasi penyesuaian. Hanya permintaan GenerateMemories
yang menyertakan kunci cakupan tersebut yang akan menggunakan konfigurasi tersebut. Anda juga dapat mengonfigurasi perilaku default (berlaku untuk semua set kunci cakupan) dengan menghilangkan kolom scope_key
. Konfigurasi ini akan berlaku untuk semua permintaan yang tidak memiliki konfigurasi yang sama persis dengan kunci cakupan untuk konfigurasi penyesuaian lainnya.
Misalnya, user_level_config
hanya akan berlaku untuk permintaan GenerateMemories
yang menggunakan kunci cakupan user_id
secara persis (yaitu scope={"user_id": "123"}
tanpa kunci tambahan). default_config
akan berlaku untuk permintaan lainnya:
Kamus
user_level_config = {
"scope_keys": ["user_id"],
"memory_topics": [...],
"generate_memories_examples": [...]
}
default_config = {
"memory_topics": [...],
"generate_memories_examples": [...]
}
config = {
"customization_configs": [
user_level_config,
default_config
]
}
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfig as CustomizationConfig
user_level_config = CustomizationConfig(
scope_keys=["user_id"],
memory_topics=[...],
generate_memories_examples=[...]
)
Mengonfigurasi topik memori
"Topik memori" mengidentifikasi informasi yang dianggap penting oleh Bank Memori dan oleh karena itu harus dipertahankan sebagai kenangan yang dihasilkan. Bank Memori mendukung dua jenis topik memori:
Dengan penyesuaian, Anda dapat menggunakan kombinasi topik memori apa pun. Misalnya, Anda dapat menggunakan subset topik memori terkelola yang tersedia:
Kamus
{
"memory_topics": [
"managed_memory_topic": { "managed_topic_enum": "USER_PERSONAL_INFO" },
"managed_memory_topic": { "managed_topic_enum": "USER_PREFERENCES" }
]
}
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfig as CustomizationConfig
from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic
from vertexai.types import MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic
from vertexai.types import ManagedTopicEnum
CustomizationConfig(
memory_topics=[
MemoryTopic(
managed_memory_topic=ManagedMemoryTopic(
managed_topic_enum=ManagedTopicEnum.USER_PERSONAL_INFO)
),
MemoryTopic(
managed_memory_topic=ManagedMemoryTopic(
managed_topic_enum=ManagedTopicEnum.USER_PREFERENCES)
),
]
)
Anda juga dapat menggunakan kombinasi topik terkelola dan kustom (atau hanya menggunakan topik kustom):
Kamus
{
"memory_topics": [
"managed_memory_topic": { "managed_topic_enum": "USER_PERSONAL_INFO" },
"custom_memory_topic": {
"label": "Jargon",
"description": """Specific user feedback about their experience at
the coffee shop. This includes opinions on drinks, food, pastries, ambiance,
staff friendliness, service speed, cleanliness, and any suggestions for
improvement."""
}
]
}
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfig as CustomizationConfig
from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic
from vertexai.types import MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic as CustomMemoryTopic
from vertexai.types import MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic
from vertexai.types import ManagedTopicEnum
CustomizationConfig(
memory_topics=[
MemoryTopic(
managed_memory_topic=ManagedMemoryTopic(
managed_topic_enum=ManagedTopicEnum.USER_PERSONAL_INFO)
),
MemoryTopic(
custom_memory_topic=CustomMemoryTopic(
label="business_feedback",
description="""Specific user feedback about their experience at
the coffee shop. This includes opinions on drinks, food, pastries, ambiance,
staff friendliness, service speed, cleanliness, and any suggestions for
improvement."""
)
)
]
)
Contoh few-shot
Contoh few-shot memungkinkan Anda mendemonstrasikan perilaku ekstraksi memori yang diharapkan ke Bank Memori. Misalnya, Anda dapat memberikan contoh percakapan input dan memori yang diharapkan diekstrak dari percakapan tersebut.
Sebaiknya selalu gunakan contoh sedikit dengan topik kustom agar Bank Memori dapat mempelajari perilaku yang diinginkan. Few-shot bersifat opsional saat menggunakan topik terkelola karena Bank Memori menentukan contoh untuk setiap topik. Tunjukkan percakapan yang tidak diharapkan menghasilkan kenangan dengan memberikan daftar generated_memories
kosong.
Misalnya, Anda dapat memberikan contoh sedikit tembakan yang menunjukkan cara mengekstrak masukan tentang bisnis Anda dari pesan pelanggan:
Kamus
example = {
"conversationSource": {
"events": [
{
"content": {
"role": "model",
"parts": [{ "text": "Welcome back to The Daily Grind! We'd love to hear your feedback on your visit." }] }
},
{
"content": {
"role": "user",
"parts": [{ "text": "Hey. The drip coffee was a bit lukewarm today, which was a bummer. Also, the music was way too loud, I could barely hear my friend." }] }
}
]
},
"generatedMemories": [
{
"fact": "The user reported that the drip coffee was lukewarm."
},
{
"fact": "The user felt the music in the shop was too loud."
}
]
}
Berbasis kelas
from google.genai.types import Content, Part
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExample as GenerateMemoriesExample
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSource as ConversationSource
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSourceEvent as ConversationSourceEvent
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleGeneratedMemory as ExampleGeneratedMemory
example = GenerateMemoriesExample(
conversation_source=ConversationSource(
events=[
ConversationSourceEvent(
content=Content(
role="model",
parts=[Part(text="Welcome back to The Daily Grind! We'd love to hear your feedback on your visit.")]
)
),
ConversationSourceEvent(
content=Content(
role="user",
parts=[Part(text= "Hey. The drip coffee was a bit lukewarm today, which was a bummer. Also, the music was way too loud, I could barely hear my friend.")]
)
)
]
),
generated_memories=[
ExampleGeneratedMemory(
fact="The user reported that the drip coffee was lukewarm."
),
ExampleGeneratedMemory(
fact="The user felt the music in the shop was too loud."
)
]
)
Anda juga dapat memberikan contoh percakapan yang tidak boleh menghasilkan kenangan yang dibuat dengan memberikan daftar kosong untuk output yang diharapkan (generated_memories
):
Kamus
example = {
"conversationSource": {
"events": [
{
"content": {
"role": "model",
"parts": [{ "text": "Good morning! What can I get for you at The Daily Grind?" }] }
},
{
"content": {
"role": "user",
"parts": [{ "text": "Thanks for the coffee." }] }
}
]
},
"generatedMemories": []
}
Berbasis kelas
from google.genai.types import Content, Part
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExample as GenerateMemoriesExample
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSource as ConversationSource
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSourceEvent as ConversationSourceEvent
example = GenerateMemoriesExample(
conversation_source=ConversationSource(
events=[
ConversationSourceEvent(
content=Content(
role="model",
parts=[Part(text="Welcome back to The Daily Grind! We'd love to hear your feedback on your visit.")]
)
),
ConversationSourceEvent(
content=Content(
role="user",
parts=[Part(text= "Thanks for the coffee!")]
)
)
]
),
generated_memories=[]
)
Konfigurasi penelusuran kemiripan
Konfigurasi penelusuran kemiripan mengontrol model embedding mana yang digunakan oleh instance Anda untuk penelusuran kemiripan. Penelusuran kesamaan digunakan untuk mengidentifikasi memori mana yang harus menjadi kandidat untuk penggabungan dan untuk pengambilan memori berbasis penelusuran kesamaan. Jika konfigurasi ini tidak disediakan, Bank Memori akan menggunakan text-embedding-005
sebagai model default.
Jika Anda memperkirakan percakapan pengguna akan menggunakan bahasa selain bahasa Inggris, gunakan model yang mendukung beberapa bahasa, seperti gemini-embedding-001
atau text-multilingual-embedding-002
, untuk meningkatkan kualitas pengambilan.
Kamus
memory_bank_config = {
"similarity_search_config": {
"embedding_model": "EMBEDDING_MODEL",
}
}
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfig as SimilaritySearchConfig
memory_bank_config = MemoryBankConfig(
similarity_search_config=SimilaritySearchConfig(
embedding_model="EMBEDDING_MODEL"
)
)
Ganti kode berikut:
Konfigurasi pembuatan
Konfigurasi pembuatan mengontrol LLM mana yang digunakan untuk membuat kenangan, termasuk mengekstrak kenangan dan menggabungkan kenangan baru dengan kenangan yang ada.
Memory Bank menggunakan gemini-2.0-flash-001
sebagai model default.
Kamus
memory_bank_config = {
"generation_config": {
"model": "LLM_MODEL",
}
}
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigGenerationConfig as GenerationConfig
memory_bank_config = MemoryBankConfig(
generation_config=GenerationConfig(
model="LLM_MODEL"
)
)
Ganti kode berikut:
Konfigurasi time to live (TTL)
Konfigurasi TTL mengontrol cara Memory Bank menetapkan waktu habis masa berlaku memori secara dinamis. Setelah waktu habis masa berlakunya, kenangan tidak akan tersedia untuk diambil dan akan dihapus.
Jika konfigurasi tidak diberikan, waktu habis masa berlaku tidak akan ditetapkan secara dinamis untuk kenangan yang dibuat atau diperbarui, sehingga kenangan tidak akan habis masa berlakunya kecuali jika waktu habis masa berlakunya ditetapkan secara manual.
Ada dua opsi untuk konfigurasi TTL:
Men-deploy agen dengan memori ke Agent Engine
Meskipun Bank Memori dapat digunakan di runtime apa pun, Anda juga dapat menggunakan Bank Memori dengan Agent Engine Runtime untuk membaca dan menulis memori dari agen yang di-deploy.
Untuk men-deploy agen dengan Memory Bank di Vertex AI Agent Engine Runtime, pertama-tama siapkan lingkungan Anda untuk runtime Agent Engine. Kemudian, siapkan agen Anda untuk di-deploy di Agent Engine Runtime dengan integrasi memori. Agen yang di-deploy harus melakukan panggilan untuk membaca dan menulis memori sesuai kebutuhan.
AdkApp
Jika Anda menggunakan template Agent Development Kit Agent Engine, agen akan menggunakan VertexAiMemoryBankService
secara default saat di-deploy ke Agent Engine Runtime. Artinya, alat Memori ADK membaca memori dari Bank Memori.
from google.adk.agents import Agent
from vertexai.preview.reasoning_engines import AdkApp
# Develop an agent using the ADK template.
agent = Agent(...)
adk_app = AdkApp(
agent=adk_agent,
...
)
# Deploy the agent to Agent Engine Runtime.
agent_engine = client.agent_engines.create(
agent_engine=adk_app,
config={
"staging_bucket": "STAGING_BUCKET",
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
# Optional.
**context_spec
}
)
# Update an existing Agent Engine to add or modify the Runtime.
agent_engine = client.agent_engines.update(
name=agent_engine.api_resource.name,
agent_engine=adk_app,
config={
"staging_bucket": "STAGING_BUCKET",
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
# Optional.
**context_spec
}
)
Ganti kode berikut:
Untuk mengetahui informasi selengkapnya tentang penggunaan Bank Memori dengan ADK, lihat Panduan memulai dengan Agent Development Kit.
Agen kustom
Anda dapat menggunakan Memory Bank dengan agen kustom yang di-deploy di Agent Engine Runtime. Dalam hal ini, agen Anda harus mengatur panggilan ke Bank Memori untuk memicu panggilan pembuatan memori dan pengambilan memori.
Jika ingin menggunakan instance Agent Engine yang sama untuk Memory Bank dan Agent Engine Runtime, Anda dapat membaca variabel lingkungan GOOGLE_CLOUD_PROJECT
, GOOGLE_CLOUD_LOCATION
,GOOGLE_CLOUD_AGENT_ENGINE_ID
untuk menyimpulkan nama Agent Engine dari lingkungan:
project = os.environ.get("GOOGLE_CLOUD_PROJECT")
location = os.environ.get("GOOGLE_CLOUD_LOCATION")
agent_engine_id = os.environ.get("GOOGLE_CLOUD_AGENT_ENGINE_ID")
agent_engine_name = f"projects/{project}/locations/{location}/reasoningEngines/{agent_engine_id}"