Menyiapkan Bank Memori

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:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. 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:

    • 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"
      

    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:

    • AGENT_ENGINE_NAME: Nama Agent Engine. Harus dalam format projects/.../locations/.../reasoningEngines/.... Lihat region yang didukung untuk Bank Memori.

    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:

    • 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
      

    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:

    • AGENT_ENGINE_NAME: Nama Agent Engine. Harus dalam format projects/.../locations/.../reasoningEngines/.... Lihat region yang didukung untuk Bank Memori.

    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: 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.
    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:

    • 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.

    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:

    • 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".
    • 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.

    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:

    • EMBEDDING_MODEL: Model embedding teks Google yang akan digunakan untuk penelusuran kesamaan, dalam format projects/{project}/locations/{location}/publishers/google/models/{model}.
    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:

    • LLM_MODEL: Model LLM Google yang akan digunakan untuk mengekstrak dan menggabungkan kenangan, dalam format projects/{project}/locations/{location}/publishers/google/models/{model}.
    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:

    • TTL Default: TTL akan diterapkan ke semua operasi yang membuat atau memperbarui memori, termasuk UpdateMemory, CreateMemory, dan GenerateMemories.

      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.

    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:

    • STAGING_BUCKET: Bucket Cloud Storage Anda yang akan digunakan untuk menyiapkan Runtime Agent Engine.

    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}"
    

    Langkah berikutnya