Bevor Sie mit der Speicherbank der Vertex AI Agent Engine arbeiten, müssen Sie Ihre Umgebung einrichten. Memory Bank ist zwar Teil von Agent Engine, Sie müssen Ihren Code aber nicht in der Agent Engine-Laufzeitumgebung bereitstellen, um Memory Bank zu verwenden.
Ihr Google Cloud -Projekt einrichten
Jedes Projekt kann auf zwei Arten identifiziert werden: über die Projektnummer oder die Projekt-ID. Die PROJECT_NUMBER
wird beim Erstellen des Projekts automatisch erstellt, während die PROJECT_ID
von Ihnen oder dem Ersteller des Projekts erstellt wird. So richten Sie ein Projekt ein:
- 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.
Wenn Sie Vertex AI nicht im Express-Modus verwenden, folgen Sie der Anleitung unter Bei Vertex AI authentifizieren.
Wenn Sie Vertex AI im Express-Modus verwenden, richten Sie die Authentifizierung ein, indem Sie den API-Schlüssel in der Umgebung festlegen:
os.environ["GOOGLE_API_KEY"] = "API_KEY"
PROJECT_ID
ist die Projekt-ID.LOCATION
ist eine der unterstützten Regionen für Memory Bank.Agent Engine-Instanz erstellen oder aktualisieren: Wenn Sie eine Instanz erstellen oder aktualisieren, können Sie die Standardeinstellungen von Agent Engine überschreiben, um die folgenden Änderungen an der Instanz vorzunehmen:
Konfigurieren Sie, wie Memory Bank Erinnerungen generiert und verwaltet.
Stellen Sie Ihren Agent in der Agent Engine-Laufzeit bereit.
- AGENT_ENGINE_NAME: Der Name der Agent Engine. Er sollte das Format
projects/.../locations/.../reasoningEngines/...
haben. Unterstützte Regionen für Memory Bank Konfigurieren Sie, wie Memory Bank Erinnerungen generiert und verwaltet.
- AGENT_ENGINE_NAME: Der Name der Agent Engine. Er sollte das Format
projects/.../locations/.../reasoningEngines/...
haben. Unterstützte Regionen für Memory Bank EMBEDDING_MODEL: Das Google-Texteinbettungsmodell, das für die Ähnlichkeitssuche verwendet werden soll, im Format
projects/{project}/locations/{location}/publishers/google/models/{model}
. Memory Bank verwendettext-embedding-005
als Standardmodell. Wenn Sie erwarten, dass Nutzerunterhaltungen in anderen Sprachen als Englisch stattfinden, verwenden Sie ein Modell, das mehrere Sprachen unterstützt, z. B.gemini-embedding-001
odertext-multilingual-embedding-002
, um die Qualität des Abrufs zu verbessern.LLM_MODEL: Das Google LLM-Modell, das zum Extrahieren und Konsolidieren von Erinnerungen verwendet werden soll, im Format
projects/{project}/locations/{location}/publishers/google/models/{model}
. Memory Bank verwendetgemini-2.0-flash-001
als Standardmodell.- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Ihre Region. Unterstützte Regionen für Memory Bank
- AGENT_ENGINE_ID: Die Agent Engine-ID, die für Memory Bank verwendet werden soll. Beispiel:
456
inprojects/my-project/locations/us-central1/reasoningEngines/456
.
Erforderliche Rollen abrufen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Vertex AI-Nutzer (roles/aiplatform.user
) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die Verwendung von Vertex AI Agent Engine benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Wenn Sie Anfragen an Memory Bank von einem Agent senden, der in Google Kubernetes Engine oder Cloud Run bereitgestellt wird, muss Ihr Dienstkonto die erforderlichen Berechtigungen haben. Der Reasoning Engine-Dienst-Agent hat bereits die erforderlichen Berechtigungen zum Lesen und Schreiben von Erinnerungen. Ausgehende Anfragen von Agent Engine Runtime sollten also bereits die Berechtigung für den Zugriff auf Memory Bank haben.
Umgebung einrichten
In diesem Abschnitt wird davon ausgegangen, dass Sie eine Python-Entwicklungsumgebung eingerichtet haben oder eine Laufzeit mit einer Python-Entwicklungsumgebung verwenden (z. B. Colab).
Bibliotheken installieren
Installieren Sie das Vertex AI SDK:
pip install google-cloud-aiplatform>=1.104.0
Authentifizierung
Die Authentifizierungsanleitung hängt davon ab, ob Sie Vertex AI im Express-Modus verwenden:
Vertex AI SDK-Client einrichten
Führen Sie den folgenden Code aus, um einen Vertex AI SDK-Client einzurichten:
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
)
Dabei gilt:
Agent Engine-Instanz konfigurieren
Wenn Sie Memory Bank verwenden möchten, benötigen Sie zuerst eine Agent Engine-Instanz.
Sie haben folgende Möglichkeiten:
Vorhandene Instanz verwenden
Wenn Sie eine vorhandene Agent Engine-Instanz nicht ändern müssen, führen Sie Folgendes aus, um die Instanz für Memory Bank zu konfigurieren:
agent_engine = client.agent_engines.get(name="AGENT_ENGINE_NAME")
Ersetzen Sie Folgendes:
Instanz erstellen oder aktualisieren
Wenn Sie eine Agent Engine-Instanz erstellen oder aktualisieren, können Sie die Standardeinstellungen von Agent Engine überschreiben, um die folgenden Änderungen vorzunehmen:
Erstellen
Memory Bank ist standardmäßig aktiviert, wenn Sie eine Agent Engine-Instanz erstellen. Sie können die Instanz in jeder Umgebung verwenden, einschließlich Google Kubernetes Engine und Cloud Run. Sie benötigen den Namen der Agent Engine, mit dem die Memory Bank identifiziert wird, und die Berechtigung zum Aufrufen der Memory Bank.
agent_engine = client.agent_engines.create()
Neue Instanzen sind leer, sofern Sie nicht zuerst Erinnerungen erstellen oder generieren.
Aktualisieren
Sie können eine vorhandene Agent Engine-Instanz aktualisieren, wenn Sie die Agent Engine aktualisieren und gleichzeitig die in der Instanz gespeicherten Erinnerungen beibehalten möchten. Sie können Änderungen vornehmen, z. B. die Konfiguration des Memory Bank ändern oder Ihren Agent in der Agent Engine-Laufzeitumgebung bereitstellen.
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.
agent_engine=...,
# Optional.
config=...
)
Ersetzen Sie Folgendes:
Memory Bank-Konfiguration festlegen
Sie können Ihre Memory Bank konfigurieren, um anzupassen, wie Erinnerungen generiert und verwaltet werden. Wenn die Konfiguration nicht angegeben ist, verwendet Memory Bank die Standardeinstellungen.
# Optional.
similarity_search_config = {
"similarity_search_config": {
"embedding_model": "EMBEDDING_MODEL",
}
}
# Optional
generation_config = {
"generation_config": {
"model": "LLM_MODEL",
}
}
context_spec = {
"context_spec": {
"memory_bank_config": {
**similarity_search_config,
**generation_config
}
}
}
# Create an Agent Engine with a Memory Bank Config.
agent_engine = client.agent_engines.create(
config={
# Optional.
**context_spec
}
)
Ersetzen Sie Folgendes:
Agent mit Arbeitsspeicher in Agent Engine bereitstellen
Memory Bank kann in jeder Laufzeit verwendet werden. Sie können Memory Bank aber auch mit der Agent Engine Runtime verwenden, um Erinnerungen aus Ihrem bereitgestellten Agent zu lesen und in ihn zu schreiben.
Wenn Sie einen Agent mit Memory Bank in der Vertex AI Agent Engine-Laufzeit bereitstellen möchten, müssen Sie zuerst Ihre Umgebung für die Agent Engine-Laufzeit einrichten. Bereiten Sie dann Ihren Agent für die Bereitstellung in der Agent Engine-Laufzeit mit Speicherintegration vor. Ihr bereitgestellter Agent sollte bei Bedarf Aufrufe zum Lesen und Schreiben von Erinnerungen ausführen.
AdkApp
Wenn Sie die Vorlage für das Agent Engine Agent Development Kit verwenden, nutzt der Agent standardmäßig VertexAiMemoryBankService
, wenn er in der Agent Engine-Laufzeitumgebung bereitgestellt wird. Das bedeutet, dass Ihr Agent automatisch die Memory Bank verwendet, um Erinnerungen zu verwalten.
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":
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
# Optional.
**context_spec
}
)
Bei der lokalen Ausführung verwendet die ADK-Vorlage standardmäßig InMemoryMemoryService
. Wenn Sie verschiedene Agent Engine-Instanzen für Erinnerungen und die Bereitstellung verwenden möchten oder eine AdkApp
mit Memory Bank lokal verwenden möchten, können Sie die von Memory Bank verwendete Instanz überschreiben:
def memory_bank_service_builder():
return VertexAiMemoryBankService(
project="PROJECT_ID",
location="LOCATION",
agent_engine_id="AGENT_ENGINE_ID"
)
adk_app = AdkApp(
agent=adk_agent,
# Override the default memory service.
memory_service_builder=memory_bank_service_builder
)
agent_engine = client.agent_engines.create(
agent_engine=adk_app,
config={
"staging_bucket":
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
# Optional.
**context_spec
}
)
Ersetzen Sie Folgendes:
Weitere Informationen zur Verwendung von Memory Bank mit dem ADK finden Sie im Schnellstart mit dem Agent Development Kit.
Benutzerdefinierter Agent
Sie können Memory Bank mit Ihrem benutzerdefinierten Agenten verwenden, der in der Agent Engine-Laufzeit bereitgestellt wird.
Wenn Sie dieselbe Agent Engine-Instanz sowohl für Memory Bank als auch für die Agent Engine-Laufzeit verwenden möchten, können Sie die Umgebungsvariablen GOOGLE_CLOUD_PROJECT
, GOOGLE_CLOUD_LOCATION
,GOOGLE_CLOUD_AGENT_ENGINE_ID
lesen, um den Namen der Agent Engine aus der Umgebung abzuleiten:
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}"