Startseite / Artikel / Praktische Hinweise: Die drei Ebenen von Google Cloud RAG – Vektorabfrage, RAG-Engine und Agentenabruf

Praktische Hinweise: Die drei Ebenen von Google Cloud RAG – Vektorabfrage, RAG-Engine und Agentenabruf

Schritt-für-Schritt-Anleitung zu den Praktischen Notizen: Die drei Ebenen von Google Cloud RAG – Vektorabfrage, RAG-Engine und Agentenabruf – inklusive Verträgen, Überprüfungen sowie vorgefertigten Code-Blöcken.

3958 Wörter

Nutzen Sie dies als für Operator zugängliche Neuformulierung der Ideen aus „The Three Tiers of Google Cloud RAG: Vector Search, RAG Engine, and Agent Retrieval“: klare Phasen, geordnete Codeabschnitte sowie Wiederherstellungshinweise, die auch bei Übergaben erhalten bleiben. Die Übersicht funktioniert am besten, wenn sie als messbarer Überblick betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein optimales Transkript, einen Fehlerfall sowie die Notizen zur Rücksetzung. Ziehen Sie kleine, testbare Einheiten vor großen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf einen verworrenen Ablauf.

Architektonische und Abstraktions-Ebenen

Für die Architektur- und Abstraktionsschichten sollten vor der Codeänderung Eingaben, der Verantwortliche für den jeweiligen Schritt sowie die Abbruchkriterien definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Betrachten Sie diese Phase als Vertrag zwischen den Eingaben und den validierten Ausgaben. Benennen Sie die Artefakte, definieren Sie Erfolgskontrollen und lehnen Sie stille, unvollständige Abschlüsse ab. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.

1. Vertex AI Vector Search (Level 1: Hochleistungsinfrastruktur)

Für Vertex AI Vector Search auf Niveau 1 (Hochleistungsinfrastruktur) sollten vor der Codeänderung Eingabedaten, Verantwortliche für die jeweiligen Schritte sowie Abbruchkriterien definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Neben den funktionalen Ergebnissen sollten auch Zeitaufzeichnungen sowie Kosten für Tokens oder Abfragen festgehalten werden. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Einsatzbereich von Demonstrationsumgebungen auf gemeinsam genutzte Umgebungen wechselt. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.

Kernarchitektur und Funktionsweise

Für die Kernarchitektur und -mechanik sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden. Operator:innen sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Die Konfiguration sollte außerhalb des Anwendungscode gespeichert werden. Umgebungsdateien, Geheimdatenspeicher sowie Feature-Flags sollten an einem Ort zusammengefasst sein, den Operator:innen überprüfen können, ohne den gesamten Ablauf durchzulesen. Zitieren Sie die Passagen, die tatsächlich die Antwort begründen. Ohne Zitate können Operator:innen nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden. Für die Kernarchitektur und -mechanik sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden. Operator:innen sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Ziehen Sie kleine, testbare Einheiten vor großen, komplexen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich verweisen und nicht auf einen verworrenen Ablauf.

e.

Der dreistufige ScaNN-Auswertungspfad

Beim Arbeiten am dreistufigen ScaNN-Auswertungspfad sollten Sie zunächst einen Vertrag aufstellen: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Betrachten Sie diese Stufe als Vertrag zwischen Eingaben und validierten Ausgaben. Benennen Sie die Ergebnisse, definieren Sie Erfolgskontrollen und lehnen Sie stille, teilweise abgeschlossene Prozesse ab. Messen Sie die Erinnerungsfähigkeit anhand eines festgelegten Fragebogens, bevor Sie Anfragen anpassen. Häufige Änderungen der Anfragen beheben selten eine schwache Auswertungsleistung.

Verteilte Infrastruktur: Innovationen im Vertex-Matching-Engine

Beim Arbeiten an „Distributed Infrastructure: Vertex Matching Engine Innovations“ sollten Sie zunächst den Vertrag festhalten: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Notieren Sie außerdem die Laufzeiten sowie die Kosten für Tokens oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Einsatzbereich von Demoumgebungen in gemeinsam genutzte Umgebungen wechselt. Messen Sie vor der Anpassung der Prompte die Trefferquote anhand einer festgelegten Fragestellung. Ein häufiges Wechseln der Prompts behebt in der Regel nicht ein schwaches Suchverhalten.

Anwendungsfallbeispiele für Google Vector Search in der Produktion

Beim Arbeiten an Produktivnutzungsfallstudien für Google Vector Search sollte man zunächst den Vertrag festhalten: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort zusammengefasst sein, den Betreiber ohne das Durchlesen des gesamten Systems überprüfen können. Messen Sie die Recall-Rate anhand eines festgelegten Fragekatalogs, bevor Sie die Anfragen anpassen. Eine häufige Änderung der Anfragen löst in der Regel kein schwaches Suchverhalten aus. Beim Arbeiten an Produktivnutzungsfallstudien für Google Vector Search sollte man zunächst den Vertrag festhalten: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Ziehen Sie kleine, testbare Einheiten vor großen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich verweisen und nicht auf ein verworrenes Ablaufschema.

1. Echtzeit-Multimodaler E-Commerce und visuelle Katalogsuche

  1. Echtzeit-Multimodaler E-Commerce und visuelle Katalogsuche funktionieren am besten, wenn sie als messbare Größe betrachtet werden. Erfassen Sie vor der Erweiterung des Umfangs ein optimales Ergebnis, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Betrachten Sie diese Phase als Vertrag zwischen den Eingaben und den validierten Ausgaben. Benennen Sie die Ergebnisse, definieren Sie Erfolgskriterien und lehnen Sie stille, unvollständige Ergebnisse ab. Trennen Sie die Strategie zur Aufteilung in Teile von der Suchstrategie. Ein Änderungs an einer sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.

2. Erstellung von Milliarden an Kandidaten für Empfehlungssysteme

  1. Die Erstellung von Kandidaten in Milliardenhöhe für Empfehlungssysteme funktioniert am besten, wenn sie als messbare Größe betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein gelungenes Beispiel, einen Fehlerfall sowie die Notizen zur Rücksetzung. Notieren Sie die Laufzeiten sowie die Kosten für Tokens oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Prozess von einer Demo in gemeinsam genutzte Umgebungen übergeht. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zur Abrufung. Ein Änderungsbedarf bei einer dieser Strategien sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.

3. Clusterung von Finanzbetrug und Cyber-Anomalien in Echtzeit

  1. Das Clustering von Finanzbetrug und Cyber-Anomalien in Echtzeit funktioniert am besten, wenn es als messbare Struktur betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein „goldenes Transkript“, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems prüfen können. Trennen Sie die Chunking-Strategie von der Abrufstrategie. Ein Änderung in einer sollte nicht zwangsläufig zu einem Neuschreiben der anderen führen, wenn sich die Qualitätsmetriken ändern.
  2. Das Clustering von Finanzbetrug und Cyber-Anomalien in Echtzeit funktioniert am besten, wenn es als messbare Struktur betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein „goldenes Transkript“, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Ziehen Sie kleine, testbare Einheiten vor umfangreichen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzelne Verantwortung verweisen und nicht auf ein verworrenes Ablaufverfahren.

Code: Indexerstellung, Streameing und Abfragen

Für Code: Indexerstellung, Streameing und Abfragen sollten die Eingaben, der Verantwortliche für den jeweiligen Schritt sowie die Abbruchkriterien vor der Änderung des Codes definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Betrachten Sie diese Phase als Vertrag zwischen den Eingaben und den validierten Ausgaben. Benennen Sie die Artefakte, definieren Sie Erfolgskontrollen und lehnen Sie stille, unvollständige Abschlüsse ab. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken bei der Indexierung unterscheiden.

package main

import (
 "context"
 "fmt"
 "log"

 aiplatform "cloud.google.com/go/aiplatform/apiv1"
 aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb"
 "google.golang.org/api/option"
)

func main() {
 ctx := context.Background()
 projectID := "my-enterprise-gcp-project"
 location := "us-central1"

 // 1. Initialize Vertex AI Match Client (Vector Search Query Service)
 matchClient, err := aiplatform.NewMatchClient(ctx)
 if err != nil {
  log.Fatalf("failed to create vertex match client: %v", err)
 }
 defer matchClient.Close()

 indexEndpointPath := fmt.Sprintf(
  "projects/%s/locations/%s/indexEndpoints/product_catalog_endpoint_id",
  projectID, location,
 )
 deployedIndexID := "product_catalog_deployed_v1"

 // 2. Construct 768-dimensional Query Embedding Vector
 queryVector := make([]float32, 768)
 queryVector[0] = 0.032
 queryVector[1] = -0.108
 queryVector[2] = 0.449

 // 3. Build Nearest Neighbor Request with Boolean & Numeric Restricts
 req := &aiplatformpb.FindNeighborsRequest{
  IndexEndpoint:   indexEndpointPath,
  DeployedIndexId: deployedIndexID,
  Queries: []*aiplatformpb.FindNeighborsRequest_Query{
   {
    Datapoint: &aiplatformpb.IndexDatapoint{
     DatapointId:   "query_req_001",
     FeatureVector: queryVector,
     Restricts: []*aiplatformpb.IndexDatapoint_Restriction{
      {
       Namespace: "category",
       AllowList: []string{"electronics", "audio"},
      },
      {
       Namespace: "brand",
       AllowList: []string{"sony", "bose"},
      },
     },
     NumericRestricts: []*aiplatformpb.IndexDatapoint_NumericRestriction{
      {
       Namespace: "price",
       Value: &aiplatformpb.IndexDatapoint_NumericRestriction_ValueFloat{
        ValueFloat: 350.0,
       },
       Op: aiplatformpb.IndexDatapoint_NumericRestriction_LESS_EQUAL,
      },
      {
       Namespace: "in_stock",
       Value: &aiplatformpb.IndexDatapoint_NumericRestriction_ValueInt{
        ValueInt: 1,
       },
       Op: aiplatformpb.IndexDatapoint_NumericRestriction_EQUAL,
      },
     },
    },
    NeighborCount: 5,
   },
  },
  ReturnFullDatapoint: false,
 }

 // 4. Execute Sub-Millisecond Vector Similarity Search
 resp, err := matchClient.FindNeighbors(ctx, req)
 if err != nil {
  log.Fatalf("failed to execute find neighbors: %v", err)
 }

 if len(resp.NearestNeighbors) > 0 {
  fmt.Printf("Retrieved %d nearest neighbors:\n", len(resp.NearestNeighbors[0].Neighbors))
  for _, neighbor := range resp.NearestNeighbors[0].Neighbors {
   fmt.Printf("Datapoint ID: %s | Distance: %.4f\n", neighbor.Datapoint.DatapointId, neighbor.Distance)
  }
 }
}

2. Vertex AI RAG Engine (Level 2: Gemanagtes Middleware)

Für den Vertex AI RAG Engine (Level 2: Gemanagtes Middleware) sollten vor der Codeänderung Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden. Die Betreiber sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Zeiten sowie Kosten für Token oder Abfragen sollten neben den funktionalen Ergebnissen aufgezeichnet werden. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Einsatzbereich von einer Demo-Umgebung in gemeinsam genutzte Umgebungen wechselt. Zitieren Sie die Passagen, die tatsächlich der Grundlage für die Antwort waren. Ohne Zitate können die Betreiber nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.

Kernarchitektur und Mechanismen

Für die Kernarchitektur und -mechanik sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden. Operator:innen sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Die Konfiguration sollte außerhalb des Anwendungscode gespeichert werden. Umgebungsdateien, Geheimdatenspeicher sowie Feature-Flags sollten an einem Ort zusammengefasst sein, den Operator:innen überprüfen können, ohne den gesamten Ablauf durchzulesen. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können Operator:innen nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden. Für die Kernarchitektur und -mechanik sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden. Operator:innen sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Ziehen Sie kleine, testbare Einheiten vor großen, komplexen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich verweisen und nicht auf einen verworrenen Ablauf.

e.

Noch ein architektonischer Vorteil: Einsetzbare Vector-Datenbank-Backends

Beim Umgang mit dem Thema „Noch ein architektonischer Vorteil: Einsetzbare Vector-Datenbank-Backends“ sollten Sie zunächst einen Vertrag aufstellen: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Betrachten Sie diese Phase als Vertrag zwischen Eingaben und validierten Ausgaben. Benennen Sie die Artefakte, definieren Sie Erfolgskontrollen und lehnen Sie stille, teilweise abgeschlossene Abläufe ab. Messen Sie die Recall-Rate anhand eines festgelegten Fragekatalogs, bevor Sie die Prompts anpassen. Häufige Anpassungen der Prompts beheben selten ein schwaches Suchverhalten.

Warum diese entkoppelte Architektur eine Revolution darstellt

Beim Durcharbeiten von „Warum diese entkoppelte Architektur ein Game-Changer ist“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsignal sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Notieren Sie die Laufzeiten sowie die Kosten für Token oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Einsatzbereich von einer Demo in gemeinsame Umgebungen wechselt. Messen Sie die Trefferquote anhand einer festgelegten Fragestellung, bevor Sie die Anfragen anpassen. Ein häufiges Wechseln der Anfragemuster behebt in der Regel nicht ein schwaches Suchsystem.

Anwendungsfall in der Produktion: Assistent für Unternehmens-HR-Richtlinien und regulatorische Konformität

Beim Arbeiten am Produktionsfall „Enterprise HR Policy and Regulatory Compliance Assistant“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems überprüfen können. Messen Sie die Trefferquote anhand eines festgelegten Fragebogens, bevor Sie die Prompts anpassen. Ein häufiges Wechseln der Prompts behebt selten ein schwaches Suchverhalten. Beim Arbeiten am Produktionsfall „Enterprise HR Policy and Regulatory Compliance Assistant“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Ziehen Sie kleine, testbare Einheiten vor großen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Lösung hinweisen.

eine übersichtliche Struktur anstelle eines verworrenen Ablaufs.

Code: Grounded Generation mit Vertex RAG Store

Code: Grounded Generation mit Vertex RAG Store funktioniert am besten, wenn er als messbare Struktur betrachtet wird. Erfassen Sie ein optimales Beispiel, einen Fehlerfall sowie eine Notiz zur Rücksetzung, bevor Sie den Umfang erweitern. Betrachten Sie diese Phase als Vertrag zwischen Eingaben und validierten Ausgaben. Benennen Sie die Ergebnisse, definieren Sie Erfolgskriterien und lehnen Sie stille, unvollständige Ergebnisse ab. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zur Informationsabrufung. Ein Änderungs an einer sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.

package main

import (
 "context"
 "fmt"
 "log"

 "google.golang.org/genai"
)

func main() {
 ctx := context.Background()
 projectID := "my-enterprise-gcp-project"
 location := "us-central1"

 // 1. Initialize Google GenAI Client with Vertex AI Backend
 client, err := genai.NewClient(ctx, &genai.ClientConfig{
  Project:  projectID,
  Location: location,
  Backend:  genai.BackendVertexAI,
 })
 if err != nil {
  log.Fatalf("failed to initialize genai client: %v", err)
 }

 // 2. Reference the Managed RAG Corpus Resource
 // (Corpus can be backed by RagManagedDb, Vertex Vector Search, Weaviate, or Pinecone)
 ragCorpusResource := fmt.Sprintf(
  "projects/%s/locations/%s/ragCorpora/enterprise_hr_policies_corpus",
  projectID, location,
 )

 // 3. Configure Grounding Tool with Vertex RAG Store and Semantic Reranking
 config := &genai.GenerateContentConfig{
  Tools: []*genai.Tool{
   {
    Retrieval: &genai.Retrieval{
     VertexRagStore: &genai.VertexRagStore{
      RagResources: []*genai.VertexRagStoreRagResource{
       {RagCorpus: ragCorpusResource},
      },
      SimilarityTopK:          genai.Ptr(int64(3)),
      VectorDistanceThreshold: genai.Ptr(0.5),
     },
    },
   },
  },
 }

 // 4. Generate Grounded Response with Gemini 3.5 Flash
 prompt := "Summarize our international meal reimbursement policy and specify receipt requirements."
 result, err := client.Models.GenerateContent(ctx, "gemini-3.5-flash", genai.Text(prompt), config)
 if err != nil {
  log.Fatalf("failed to generate grounded content: %v", err)
 }

 // 5. Output Synthesized Text and Inspect Verifiable Grounding Supports
 fmt.Println("--- Grounded Answer from Gemini ---")
 fmt.Println(result.Text())

 if len(result.Candidates) > 0 && result.Candidates[0].GroundingMetadata != nil {
  meta := result.Candidates[0].GroundingMetadata
  fmt.Printf("\nGrounding supports detected: %d\n", len(meta.GroundingSupports))
  for _, support := range meta.GroundingSupports {
   if support.Segment != nil {
    fmt.Printf("Segment: %q (Grounded by chunks: %v)\n", support.Segment.Text, support.GroundingChunkIndices)
   }
  }
 }
}

3. Vertex AI Agent Retrieval (Level 3: Autonomes Reasoning)

  1. Vertex AI Agent Retrieval (Level 3: Autonomous Reasoning) funktioniert am besten, wenn es als messbare Größe betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein optimales Beispiel, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Erfassen Sie außerdem die Laufzeiten sowie die Kosten für Tokens oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Einsatzbereich von Demoumgebungen auf gemeinsam genutzte Umgebungen wechselt. Legen Sie Budgets für Tokens pro Turnus und pro Sitzung fest. Agentenbasierte Tools erweitern den Kontext stark; feste Obergrenzen verhindern, dass Demos zu unerwarteten Rechnungen werden.

Kernarchitektur und wesentliche Eigenschaften

Core Architecture and Key Attributes funktionieren am besten, wenn sie als messbare Größe betrachtet werden. Erfassen Sie ein „goldenes Transkript“, einen Fehlerfall sowie eine Notiz zum Rollback, bevor Sie den Umfang erweitern. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreuer ohne das Durchlesen des gesamten Systems überprüfen können. Trennen Sie die Chunking-Strategie von der Abrufstrategie. Ein Änderung in einer sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern. Core Architecture and Key Attributes funktionieren am besten, wenn sie als messbare Größe betrachtet werden. Erfassen Sie ein „goldenes Transkript“, einen Fehlerfall sowie eine Notiz zum Rollback, bevor Sie den Umfang erweitern. Ziehen Sie kleine, testbare Einheiten vor großen, komplexen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich verweisen und nicht auf einen verworrenen Ablauf.

Wichtige Eigenschaften der Vertex AI Agent Retrieval

Für die Schlüsselattribute von Vertex AI Agent Retrieval sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Betrachten Sie diese Phase als Vertrag zwischen den Eingaben und den validierten Ausgaben. Benennen Sie die Artefakte, definieren Sie Erfolgskontrollen und lehnen Sie stille, teilweise abgeschlossene Abläufe ab. Zitieren Sie die Passagen, die tatsächlich die Antwort begründen. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.

Produktionsfall: Autonomer SRE DevOps-Incident-Resolution-Agent

Für den Produktivnutzfall: Ein autonomer SRE-DevOps-Incident-Resolution-Agent – definieren Sie die Eingabedaten, den Verantwortlichen für jeden Schritt sowie die Abbruchkriterien, bevor Sie Code ändern. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Erfassen Sie die Laufzeiten sowie die Kosten für Token oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Weg von einer Demo-Umgebung in gemeinsam genutzte Umgebungen wechselt. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.

Code: Erstellung eines autonomen Agents mit Google ADK

Für den Code: Beim Erstellen eines autonomen Agenten mit Google ADK sollten die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien vor dem Ändern des Codes definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Die Konfiguration sollte außerhalb des Anwendungscode gespeichert werden. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort zusammengefasst sein, den die Operator überprüfen können, ohne den gesamten Ablauf durchzulesen. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden. Für den Code: Beim Erstellen eines autonomen Agenten mit Google ADK sollten die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien vor dem Ändern des Codes definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Ziehen Sie kleine, testbare Einheiten vor großen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Lösung hinweisen.

Klarheit statt eines verworrenen Ablaufs.

package main

import (
 "context"
 "fmt"
 "log"

 "google.golang.org/adk/agent"
 "google.golang.org/adk/model"
 "google.golang.org/adk/runner"
 "google.golang.org/adk/tool"
 "google.golang.org/adk/tool/vertexsearch"
)

// TelemetryQueryParams defines input arguments for the structured telemetry tool.
type TelemetryQueryParams struct {
 ServiceName       string `json:"service_name" jsonschema:"description=The target microservice name (e.g. payment-gateway)"`
 TimeWindowMinutes int    `json:"time_window_minutes" jsonschema:"description=The lookback window in minutes"`
}

// TelemetryReport defines the structured metrics returned to the agent.
type TelemetryReport struct {
 Service          string  `json:"service"`
 TimeWindow       string  `json:"time_window"`
 ErrorRate        float64 `json:"error_rate_percentage"`
 DominantStatus   string  `json:"dominant_http_status"`
 RootDependency   string  `json:"root_downstream_dependency"`
 ActiveRestarts   int     `json:"active_pod_restarts"`
 Region           string  `json:"region"`
}

// QuerySystemTelemetry is a custom tool function registered with the ADK agent.
func QuerySystemTelemetry(ctx context.Context, params TelemetryQueryParams) (TelemetryReport, error) {
 // Simulated query against Cloud Spanner and BigQuery live telemetry
 return TelemetryReport{
  Service:        params.ServiceName,
  TimeWindow:     fmt.Sprintf("%dm", params.TimeWindowMinutes),
  ErrorRate:      14.8,
  DominantStatus: "504 Gateway Timeout",
  RootDependency: "auth-token-validator-v2",
  ActiveRestarts: 12,
  Region:         "us-central1",
 }, nil
}

func main() {
 ctx := context.Background()
 projectID := "my-enterprise-gcp-project"

 // 1. Create Structured Telemetry Function Tool using Google ADK
 telemetryTool, err := tool.NewFunction(
  "query_system_telemetry",
  "Queries Cloud Spanner and BigQuery for live microservice error rates and container health.",
  QuerySystemTelemetry,
 )
 if err != nil {
  log.Fatalf("failed to create telemetry tool: %v", err)
 }

 // 2. Configure Vertex AI Search Datastore Retrieval Tool in Google ADK
 datastoreResource := fmt.Sprintf(
  "projects/%s/locations/global/collections/default_collection/dataStores/sre-runbooks-datastore",
  projectID,
 )
 runbookTool, err := vertexsearch.NewDatastoreTool(vertexsearch.DatastoreConfig{
  Name:        "sre_runbook_search",
  Description: "Searches authoritative SRE incident runbooks, architecture specs, and standard operating procedures (SOPs).",
  DatastoreID: datastoreResource,
 })
 if err != nil {
  log.Fatalf("failed to create vertex search tool: %v", err)
 }

 // 3. Define Autonomous SRE Agent using Google ADK
 systemInstruction := `You are an expert Autonomous Site Reliability Engineering (SRE) Incident Agent.
When investigating production alerts:
1. Use query_system_telemetry to inspect live metrics and isolate the failing component.
2. Formulate a targeted search query with sre_runbook_search to find the exact recovery SOP.
3. Synthesize a comprehensive Incident Diagnosis Report containing:
   - Root cause analysis with telemetry evidence
   - Step-by-step remediation commands cited directly from the runbook
   - Actionable rollback or mitigation steps.`

 sreIncidentAgent, err := agent.New(agent.Config{
  Name:        "sre_incident_investigator",
  Model:       model.Gemini("gemini-3.5-flash"),
  Description: "Autonomous SRE agent that investigates telemetry, retrieves runbooks, and drafts mitigation plans.",
  Instruction: systemInstruction,
  Tools:       []tool.Tool{telemetryTool, runbookTool},
 })
 if err != nil {
  log.Fatalf("failed to initialize ADK agent: %v", err)
 }

 // 4. Execute Multi-Turn Autonomous Workflow with Google ADK Runner
 r := runner.NewInMemoryRunner(sreIncidentAgent)

 userIncidentPrompt := "CRITICAL ALERT: Payment service checkout latency spiked to 4500ms in us-central1. " +
  "Investigate the payment-gateway service, locate the relevant runbook, and recommend immediate remediation."

 response, err := r.Run(ctx, userIncidentPrompt)
 if err != nil {
  log.Fatalf("agent execution failed: %v", err)
 }

 fmt.Println("--- Agentic Incident Resolution Plan ---")
 fmt.Println(response.Text())
}

4. Entscheidungsrahmen: Die richtige Google RAG-Dienstwahl

Beim Arbeiten am 4. Entscheidungsrahmen: Die richtige Google RAG-Dienstwahl sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Betrachten Sie diese Phase als Vertrag zwischen Eingaben und validierten Ausgaben. Benennen Sie die Ergebnisse, definieren Sie Erfolgskontrollen und lehnen Sie stille, teilweise abgeschlossene Ergebnisse ab. Messen Sie die Erinnerungsfähigkeit anhand eines festgelegten Fragebogens, bevor Sie die Anfragen anpassen. Eine häufige Änderung der Anfragen behebt selten ein schwaches Abrufverhalten.

Vergleichsmatrix

Beim Arbeiten an der Vergleichsmatrix sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsindikator sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Notieren Sie die Laufzeiten sowie die Kosten für Tokens oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Weg von einer Demo in gemeinsame Umgebungen wechselt. Messen Sie die Trefferquote anhand eines festgelegten Fragebogens, bevor Sie die Anfragen anpassen. Ein häufiges Wechseln der Anfragemuster behebt selten ein schwaches Suchverhalten.

5. Zusammenfassung und architektonische Erkenntnisse

Beim Bearbeiten von 5. Zusammenfassung und architektonische Erkenntnisse sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems überprüfen können. Messen Sie die Trefferquote anhand eines festgelegten Fragekatalogs, bevor Sie die Prompts anpassen. Ein häufiges Wechseln der Prompts behebt selten ein schwaches Abrufverhalten. Beim Bearbeiten von 5. Zusammenfassung und architektonische Erkenntnisse sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Ziehen Sie kleine, testbare Einheiten vor großen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf ein verworrenes Ablaufverfahren.

Operative Checkliste

Beim Arbeiten an der Betriebskontrollliste sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Kontrollliste sorgt dafür, dass spätere Codeänderungen transparent bleiben.

Dokumentieren Sie gemeinsam den erfolgreichen Ablauf sowie den Wiederherstellungsprozess. Wiederholversuche, menschliche Kontrollen und die Handhabung von Fehlnachrichten gehören zum Produkt selbst, nicht zu späteren Optimierungen.

Messen Sie die Trefferquote anhand einer festgelegten Fragestellung, bevor Sie die Anfragenformulare anpassen. Eine häufige Änderung der Formulare behebt selten ein schwaches Suchsystem.

Halten Sie den Graphenzustand strukturiert und typisiert. Verschachtelte Datenstrukturen verbergen, welcher Knoten welches Feld geschrieben hat, und führen zu Unterbrechungen beim Fortsetzen der Verarbeitung.

Bewerten Sie Antworten in einer einzigen Interaktion sowie mehrstufige Abläufe getrennt voneinander. Die Aggregation der Chatbewertungen verschleiert Fehler im Tool-Loop-Prozess.

Schreiben Sie ein kurzes Handbuch: Wie man Schlüssel rotiert, wie man die Warteschlange leert und wie man den letzten Eingang rückgängig macht.

Vor der Einführung des Stacks sollten Versionen eingefroren werden, ein „goldener“ Transkript für den kritischen Pfad erstellt und die Rollback-Schritte bestätigt werden. Gemeinsam genutzte Umgebungen benötigen Rate Limits, Überprüfungen der Nutzerzuordnung sowie einen klaren Verantwortlichen für die Rotation von Geheimnissen. Man sollte langweilige Zuverlässigkeit vor cleveren, einmaligen Demonstrationen bevorzugen.

Batch-Hinweis für 331adf7ac401: Halten Sie die Anbieter-Schlüssel außerhalb des Repositories, legen Sie eine Obergrenze für Tokens pro Sitzung fest und speichern Sie die Transkripte neben den Evaluierungs-Dateien, damit spätere Modellwechsel vergleichbar bleiben.