Capstone: ein echter End-to-End-Workflow mit Gemini
Wir bauen eine realistische Lösung von Anfang bis Ende: einen Competitive-Intelligence-Assistenten, der jeden Morgen Ihre Branche liest, Ihre Wettbewerber beobachtet und ein mit Quellen belegtes Briefing in ein Google Doc legt, bevor Sie Ihren Kaffee ausgetrunken haben. Wir treffen die Architekturentscheidungen offen und begründet, damit Sie die Domäne austauschen kkDie durchschnittliche Zahl neuer Nutzer, die jeder bestehende Nutzer über Empfehlungen generiert. Über 1,0 verstärkt sich das Wachstum selbst und wird exponentiell.Vollständige Definition ansehen →önnen (Legal, Sales, Research, Recruiting) und das Grundgerüst wiederverwenden.
Bei einem Capstone geht es mehr um die Entscheidungen als um die Demo: welche Modellstufe, wo die Arbeit läuft, wie Fakten aktuell bleiben und was das Ganze auslöst. Wenn diese Punkte stimmen, übersteht der Workflow den Kontakt mit der Realität.
Das Szenario und die Rahmenbedingungen
Der Assistent hat an jedem Werktag um 7:00 Uhr vier Aufgaben:
- Die neuesten Nachrichten und Ankündigungen zu drei benannten Wettbewerbern abrufen.
- Alle PDFs oder Slide Decks lesen, die Sie gestern in einem Drive-Ordner abgelegt haben (Preislisten, Analystenberichte).
- Ein einseitiges Briefing mit Quellen zusammenstellen.
- Es an ein fortlaufendes Doc „Competitive Intel“ anhängen und Ihnen die Highlights per E-Mail schicken.
Rahmenbedingungen, die das Design bestimmen:
- Fakten müssen aktuell und zitierbar sein, nicht halluziniert. Das erzwingt Grounding.
- Die Inputs sind gemischt: Webtext, PDFs, Bilder von Charts. Das erzwingt native Multimodalität.
- Der Workflow muss unbeaufsichtigt nach Zeitplan laufen. Damit scheidet die Chat-App als Engine aus.
- Ein Nicht-Engineer in Ihrem Team soll den Prompt anpassen können. Das verlagert einen Teil der Logik in Richtung Workspace.
Entscheidung 1: Wo läuft das?
Es gibt drei echte Orte für Gemini-Arbeit, und sie sind nicht austauschbar.
- Die Gemini-App und Gems sind für die interaktive Nutzung gedacht. Ein Gem ist eine gespeicherte, instruierte Version von Gemini (eine wiederverwendbare PersonaPersonaEine halb fiktive, forschungsbasierte Darstellung Ihres idealen Kunden: seine Ziele, Frustrationen, Verhaltensweisen und Entscheidungskriterien.Vollständige Definition ansehen → mit festen Anweisungen und Dateien). Ideal für „eine Frage an meinen Research-Assistenten“, nutzlos als Cron-Job um 7 Uhr, weil niemand da ist, der Enter drückt.
- Gemini in Google Workspace läuft *innerhalb* von Docs, Sheets, Gmail und Drive. Hier liegt der Output, und hier kann Apps Script ihn unter Ihrem Workspace-Konto automatisieren.
- Die Gemini API (über Google AI Studio für Prototypen oder Vertex AI für die Produktion) ist die programmierbare Engine: Modellaufrufe, Grounding, strukturierter Output, Scheduling.
Die saubere Aufteilung für dieses Capstone: Apps Script ist der Orchestrator und die Integrationsschicht für Workspace; die Gemini API übernimmt das anspruchsvolle Reasoning und das Grounding. Apps Script bringt einen eingebauten Scheduler mit (zeitgesteuerte Trigger), nativen Zugriff auf Drive/Docs/Gmail und einen Ort, an dem Teammitglieder den Prompt lesen können. Die APIAPIApplication Programming Interface: eine standardisierte Schnittstelle, über die Anwendungen kommunizieren und Daten austauschen, ohne die interne Funktionsweise der jeweils anderen zu kennen.Vollständige Definition ansehen → gibt Ihnen Kontrolle über das Modell, die Ihre Workspace-Oberfläche nicht bietet, etwa die Grounding-Konfiguration und JSON-Schemas.
Wäre das ein größerer, mehrstufiger Agent mit Tool-Nutzung und Gedächtnis, würden Sie stattdessen zum [Agent Development Kit (ADK)](https://google.github.io/adk-docs/) auf Vertex AI greifen. Auf diese Grenzlinie kommen wir zurück.
Entscheidung 2: Welche Modellstufe?
Sie haben die Stufen Pro und Flash (aktuell die Generation Gemini 3). Der Reflex, überall das größte Modell einzusetzen, ist teuer und langsam. Teilen Sie nach Aufgabe auf.
- Flash für volumenstarke, latenzkritische Arbeit vom Typ „lesen und extrahieren“: jede Nachricht überfliegen, Kernfakten aus einem PDF ziehen. Günstig und schnell, und die Aufgabe verlangt kein schweres Reasoning.
- Pro für den finalen Syntheseschritt: Quellen gewichten, Widersprüche erkennen, das Briefing schreiben. Das ist ein Aufruf pro Tag, das stärkere Modell kostet also fast nichts, und der Qualitätssprung zählt.
Dieses zweistufige Muster (Flash für den Fan-out, Pro für das finale Urteil) ist der wirksamste einzelne Kostenhebel in produktiver Gemini-Arbeit. **Entscheiden Sie die Stufe pro *Aufgabe*, nicht pro *Projekt***.
Modell-IDs ändern sich schneller als Lektionen. Ältere 2.5-Modelle stehen auf Googles Abkündigungsplan. Prüfen Sie daher auf der Modellseite die aktuellen stabilen IDs und halten Sie sie in einer einzigen Config-Konstante, statt sie im Code zu verstreuen.
Entscheidung 3: Wie bleiben Fakten aktuell?
Trainingsdaten sind per Definition veraltet, deshalb nutzt der Schritt für Wettbewerbernachrichten Grounding mit Google Search. Grounding weist das Modell an, echte Suchen auszuführen und Antworten zu liefern, die an Live-Ergebnisse gebunden sind, mit Zitationsmetadaten, die Sie als Links darstellen können.
Sie aktivieren es als Tool im Request. Hier ist der zentrale Syntheseaufruf in Python mit dem `google-genai` SDK, mit aktiviertem Search Grounding:
from google import genai
from google.genai import types
PRO_MODEL = "gemini-3-pro-preview" # aktuelle ID auf der Modellseite prüfen
FLASH_MODEL = "gemini-3-flash-preview"
client = genai.Client() # liest GEMINI_API_KEY aus der Umgebung
grounding = types.Tool(google_search=types.GoogleSearch())
resp = client.models.generate_content(
model=PRO_MODEL,
contents=(
"Summarize this week's announcements, pricing changes, and "
"product launches for Acme, Globex, and Initech. Flag anything "
"that affects our positioning. Cite every claim."
),
config=types.GenerateContentConfig(
tools=[grounding],
),
)
print(resp.text)
# resp.candidates[0].grounding_metadata enthält die Quell-URLsBeachten Sie, dass es keine temperature-Einstellung gibt. Bei älteren Modellen hätten Sie sie für Analysearbeit auf etwa 0.3 gesenkt. Googles Empfehlung für Gemini 3 lautet, die Temperatur auf dem Standardwert 1.0 zu lassen, weil niedrigere Werte zu Schleifen oder schlechterem Output führen können. Steuern Sie die Präzision stattdessen über den Prompt („cite every claim“, „say 'no change' if nothing happened“).
Die grounding_metadata in der Response enthalten die belegenden Links, sodass Ihr Briefing jede Aussage mit einer Fußnote versehen kann. Diese Zitationsspur macht den Output vertrauenswürdig genug, um ihn an eine Führungskraft weiterzuleiten. Die aktuelle Struktur der Metadaten finden Sie in der Grounding-Dokumentation.
Entscheidung 4: Umgang mit multimodalen Inputs
Der Drive-Ordner kann die PDF-Preisliste eines Wettbewerbers enthalten und einen Screenshot einer Preistabelle aus einem Webinar. Sie lassen darauf kein separates OCR laufen. Gemini ist nativ multimodal: Übergeben Sie das PDF und das Bild direkt im selben Request, und das lange Kontextfenster erlaubt Ihnen, mehrere vollständige Dokumente auf einmal mitzugeben, statt sie in Chunks zu zerlegen.
An dieser Stelle des Workflows brauchen Sie *kein* RAGRAGVerfahren, mit dem ein KI-Modell aus Ihren eigenen Dokumenten antwortet, indem es relevante Passagen abruft, bevor es eine Antwort erzeugt.Vollständige Definition ansehen →. RAG lohnt sich, wenn Ihr Korpus deutlich größererDas Verhältnis von Interaktionen (Likes, Kommentare, Shares) zur Reichweite eines Inhalts. Zeigt, wie stark die Zielgruppe reagiert, gemessen an der Zahl der Personen, die den Inhalt gesehen haben.Vollständige Definition ansehen → ist als das Kontextfenster. Für „die drei Dateien, die gestern jemand abgelegt hat“ ist es einfacher, günstiger zu bauen und ohne Qualitätsverlust, sie direkt in einen Long-Context-Prompt zu packen. Zu wissen, wann man die Retrieval-Schicht weglässt, ist eine Architekturkompetenz.
pdf = client.files.upload(file="reports/globex_pricing.pdf")
chart = client.files.upload(file="reports/webinar_chart.png")
extract = client.models.generate_content(
model=FLASH_MODEL,
contents=[
pdf, chart,
"Extract every price, tier name, and feature change. "
"Return JSON: {items: [{vendor, tier, price, note}]}.",
],
config=types.GenerateContentConfig(
response_mime_type="application/json",
),
)Achten Sie auf response_mime_type="application/json". Strukturierten Output statt Fließtext anzufordern ist das, was dem nächsten Schritt (dem Writer in Apps Script) erlaubt, das Ergebnis zuverlässig zu verarbeiten. Zwei weitere Gründe, warum hier Flash statt Pro läuft: Der Aufruf erfolgt einmal pro Datei, und Extraktion ist mechanisch.
🎬 [VIDEO: "MultimodalMultimodalKI, die mehrere Eingabe- und Ausgabeformate zugleich verarbeitet: Text, Bild, Audio, Video und Daten, statt nur eines Formats.Vollständige Definition ansehen → promptingpromptingPrompt Engineering ist die Praxis, Texteingaben so zu gestalten und zu verfeinern, dass große Sprachmodelle präzise, relevante und verlässliche Ergebnisse liefern.Vollständige Definition ansehen → with the Gemini API" - https://www.youtube.com/@GoogleDevelopers - Videos von Google for Developers zum Senden von PDFs und Bildern in einem einzigen Request und zum Auslesen der Response]
Entscheidung 5: Orchestrierung und Zeitplan
Jetzt wird alles verbunden. Der Scheduler ist ein zeitgesteuerter Trigger in Apps Script, der günstigste zuverlässige Cron, den Sie in Workspace ohnehin schon haben. Das Script ruft Ihren API-Endpoint auf (oder Gemini direkt über UrlFetchApp) und schreibt die Ergebnisse dann mit den nativen Services in Docs und Gmail.
Hier sitzt der Orchestrator in Apps Script. Er läuft um 7 Uhr, ruft Ihren Synthese-Service auf und hängt das Briefing an:
function dailyBriefing() {
const payload = { date: new Date().toISOString().slice(0, 10) };
const res = UrlFetchApp.fetch("https://your-service/brief", {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload),
});
const brief = JSON.parse(res.getContentText());
const doc = DocumentApp.openById("YOUR_DOC_ID").getBody();
doc.appendParagraph(brief.title).setHeading(DocumentApp.ParagraphHeading.HEADING2);
doc.appendParagraph(brief.summary);
brief.sources.forEach(s => doc.appendListItem(s.url));
GmailApp.sendEmail("you@company.com", "Daily Intel: " + brief.title, brief.summary);
}Den Trigger für 7 Uhr richten Sie einmal in der Apps-Script-Oberfläche unter Trigger ein oder programmatisch mit ScriptApp.newTrigger. Kein Server, um den Sie sich kümmern müssen, keine separate Rechnung für einen Scheduler. Wenn Sie das rein serverseitig betreiben wollen, lassen Sie den Python-Code auf Cloud Run mit Cloud Scheduler laufen; der Trade-off ist mehr Kontrolle über die Infrastruktur gegen mehr Einrichtungsaufwand.
Wissenscheck
1. Worin liegt laut der Lektion der eigentliche Wert eines Capstone-Projekts wie des Competitive-Intelligence-Assistenten?
2. Warum prägt die Anforderung, dass Fakten „aktuell und zitierbar“ sein müssen, das Design des Assistenten?
3. Wie sind in der Architektur des Capstones die Zuständigkeiten zwischen Apps Script und der Gemini API sauber aufgeteilt?
4. Wählen Sie ALLE Gründe aus, die die Lektion dafür nennt, dass die Gemini-Chat-App (oder ein Gem) die falsche Engine für diesen zeitgesteuerten Workflow ist.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE Aussagen aus, die die drei in der Lektion besprochenen „Orte“ für Gemini-Arbeit korrekt beschreiben.
Wählen Sie alle richtigen Antworten aus.
Die vollständige Architektur im Überblick
Lesen Sie den Datenfluss einmal von oben nach unten:
- Trigger um 7:00 Uhr (zeitgesteuerter Trigger in Apps Script) startet
dailyBriefing. - Ingest (Flash, multimodal): Jede neue Drive-Datei wird hochgeladen und in JSON extrahiert.
- Research (Pro, mit Grounding): Ein Aufruf mit Search Grounding sammelt aktuelle Wettbewerbernachrichten mit Quellenangaben.
- Synthese (Pro): Ein Aufruf kombiniert die extrahierten Fakten aus den Dateien und die belegten Nachrichten zu einem einseitigen Briefing, Output als JSON (
{title, summary, sources}). - Auslieferung (Workspace): Apps Script hängt das Briefing an das fortlaufende Doc an und verschickt die Zusammenfassung per E-Mail.
Die Modellstufen passen sauber zu den Schritten: Flash verteilt sich auf viele kleine Inputs, Pro übernimmt die zwei Aufrufe, die Urteilsvermögen erfordern. Grounding ist auf genau einen Schritt beschränkt. Den Extraktionsschritt grounden Sie nicht, weil diese Fakten aus den vorliegenden Dokumenten stammen, nicht aus dem Web. Grounding im falschen Schritt erhöht die Latenz und kann irrelevante Suchergebnisse einschleusen.
Wo jedes Tool seinen Platz verdient
- API + AI Studio: Prompts und Grounding wurden in AI Studio prototypisch entwickelt und dann als SDK-Code exportiert. Der Button „Get code“ in AI Studio ist der schnellste Weg von einem funktionierenden Prompt zu einem Script.
- Apps Script: der Scheduler, das Bindeglied zu Workspace und die eine Datei, die ein Teammitglied ohne Engineering-Hintergrund gefahrlos bearbeiten kann (den Briefing-Prompt und die Empfängerliste).
- Vertex AI / ADK: hier bewusst nicht eingesetzt. An dem Tag, an dem Sie Tools hinzufügen, zwischen denen das Modell wählt (Suche *und* ein interner CRMCRMCustomer Relationship Management: Software und Strategie, um Kundeninteraktionen über den gesamten Lifecycle zu steuern und zu analysieren.Vollständige Definition ansehen →-Lookup *und* eine Kalenderaktion), stellen Sie den Orchestrator auf ADK um und deployen auf Vertex AI. Das ist die Schwelle: Entscheidungen über mehrere Tools und Schritte gehören in ein Agent-Framework, nicht in selbstgebaute
if-Anweisungen.
Die Reihenfolge beim Bauen, die tatsächlich funktioniert
Bauen Sie nicht von oben nach unten. Bauen Sie zuerst die riskante Mitte.
- Bringen Sie in AI Studio den Synthese-Prompt mit Grounding von Hand in Form. Hier entscheidet sich die Qualität.
- Machen Sie die JSON-Extraktion auf Ihren echten PDFs zuverlässig. Echte Dateien bringen naive Prompts zum Scheitern.
- Erst dann packen Sie beides in Apps Script und fügen den Trigger hinzu.
Scheduling und das Schreiben ins Doc sind langweilig und zuverlässig. An den Modell-Prompts werden Sie zehnmal iterieren, also validieren Sie sie zuerst.
Worauf Sie in der Produktion achten sollten
- Quellenangaben, die nicht auflösen. Stellen Sie Grounding-URLs immer dar und klicken Sie jede Woche ein paar davon an. Ein Briefing mit toten Quellen ist schlechter als gar kein Briefing.
- Stille Fehler bei Dateitypen. Stellen Sie sicher, dass der Ingest-Schritt einen leeren Drive-Ordner und eine unlesbare Datei verkraftet, ohne den gesamten Lauf abzubrechen. Packen Sie jede Datei in ein eigenes try/catch.
- Prompt-Drift. Wenn ein Teammitglied den Prompt in Apps Script bearbeitet, kann das Output-Format den Doc-Writer kaputt machen. Behalten Sie die Anforderung des JSON-Schemas im Prompt und validieren Sie vor dem Schreiben.
- Abkündigung von Modellen. Google kündigt ältere Modell-IDs nach einem veröffentlichten Plan ab. Legen Sie sich eine Kalendererinnerung an, die Modellseite jedes Quartal zu prüfen, und tauschen Sie die Konstante aus, bevor Ihr Lauf um 7 Uhr Fehler liefert.
Key Takeaways
- Nach Aufgabe aufteilen, nicht nach Projekt. Nutzen Sie Flash für volumenstarke Extraktion und Pro für den einen oder die zwei Aufrufe, die echtes Urteilsvermögen brauchen. Das ist Ihr größter Hebel für Kosten und Latenz.
- Grounding auf den Schritt beschränken, der aktuelle Fakten braucht. Grounden Sie den Web-Research-Aufruf; grounden Sie nie Schritte, deren Fakten aus Dokumenten stammen, die Sie selbst geliefert haben.
- RAG weglassen, wenn langer Kontext reicht. Bei einer Handvoll Dokumenten pro Lauf packen Sie diese in einen multimodalen Long-Context-Prompt, statt eine Retrieval-Schicht zu bauen.
- Apps Script orchestriert Workspace, die API übernimmt das Reasoning. Sie bekommen einen kostenlosen Scheduler, nativen Zugriff auf Docs/Gmail und einen editierbaren Prompt für Nicht-Engineers, mit voller Kontrolle über das Modell dort, wo es zählt.
- Modell-IDs an einer Stelle halten und die Temperatur bei Gemini 3 auf dem Standardwert lassen. Steuern Sie die Präzision über den Prompt und aktualisieren Sie die ID, wenn Google ein Modell abkündigt.
- Erst auf ADK auf Vertex AI umsteigen, wenn Sie echte Multi-Tool-Agency brauchen. Selbstgebaute Schritte reichen, bis das Modell zwischen mehreren Tools wählen und sich über Läufe hinweg erinnern muss.
Häufige Fragen
Wie automatisieren Sie ein tägliches Briefing mit Gemini, ohne einen Server zu betreiben?
Nutzen Sie Apps Script als Orchestrator und die Gemini API als Reasoning-Engine. Apps Script bietet Ihnen einen zeitgesteuerten Trigger (einen kostenlosen Scheduler innerhalb von Workspace), direkten Zugriff auf Drive, Docs und Gmail und einen Ort, an dem auch jemand ohne Engineering-Hintergrund den Prompt bearbeiten kann. Die API übernimmt die Modellaufrufe, das Grounding und den strukturierten Output, die in der Workspace-Oberfläche nicht verfügbar sind.
Wann sollte ich Gemini Flash statt Gemini Pro verwenden?
Verwenden Sie Flash für Extraktionsaufgaben mit hohem Volumen, bei denen Latenz zählt (News überfliegen, Fakten aus einem PDF ziehen), und Pro für die ein oder zwei Aufrufe, die Urteilsvermögen erfordern, etwa Quellen gewichten und die abschließende Synthese schreiben. Legen Sie das Modell pro Aufgabe fest, nicht pro Projekt: Flash verteilt sich auf viele kleine Inputs, Pro trifft die finale Entscheidung. Da die Synthese nur einmal am Tag läuft, kostet das stärkere Modell dort so gut wie nichts.
Was ist Grounding mit Google Search in der Gemini API, und welcher Schritt sollte es nutzen?
Grounding mit Google Search weist Gemini an, echte Suchanfragen auszuführen und die Antwort an aktuelle Ergebnisse zu knüpfen. Zurück kommen Quellenangaben als Metadaten, die Sie als Links darstellen können. Sie aktivieren es als Tool im Request. Beschränken Sie es auf den Schritt, der aktuelle Fakten braucht, typischerweise den Aufruf für die Webrecherche. Ein Extraktionsschritt, dessen Fakten aus Dokumenten stammen, die Sie bereits mitgeliefert haben, wird durch Grounding langsamer und kann irrelevante Ergebnisse einbeziehen.
Brauche ich RAG, um PDFs mit Gemini zu analysieren, oder reicht Long Context?
Bei einer Handvoll Dokumenten pro Durchlauf reicht Long Context. Gemini ist nativ multimodal, Sie können also PDFs und Screenshots von Charts direkt im selben Request übergeben, ohne Chunking oder einen separaten OCR-Schritt. RAG lohnt sich, wenn Ihr Korpus deutlich größer ist als das Kontextfenster. Wenn Sie den Retrieval-Layer nicht brauchen und ihn weglassen, ist das einfacher, günstiger in der Umsetzung und kostet keine Genauigkeit.
Sollte ich bei Gemini 3 die Temperature für Analyseaufgaben senken?
Nein. Google empfiehlt für Gemini 3, die Temperature auf dem Standardwert 1.0 zu lassen, weil niedrigere Werte zu Schleifen oder schlechterem Output führen können. Bei älteren Modellen war das anders, dort war ein Wert um 0.3 für analytische Aufgaben üblich. Steuern Sie die Präzision stattdessen über den Prompt, mit Anweisungen wie "belege jede Aussage mit einer Quelle" oder "schreibe 'keine Änderung', wenn nichts passiert ist".
Ab wann sollte ein Gemini-Workflow auf ADK in Vertex AI umziehen?
Wechseln Sie zum Agent Development Kit auf Vertex AI, wenn das Modell zwischen mehreren Tools wählen und sich über mehrere Durchläufe hinweg etwas merken muss, zum Beispiel Suche plus Abfrage im internen CRM plus eine Kalenderaktion. Unterhalb dieser Schwelle sind selbst gebaute Schritte in Apps Script oder einem Python-Skript völlig in Ordnung. Entscheidungen über mehrere Tools und Schritte gehören in ein Agent-Framework und nicht in eine Kette von if-Abfragen.
Was Sie aus dieser Lektion umsetzen
Diese Maßnahmen sind im Playbook der Rolle zusammengefasst.
- Standardmäßig eine Flash-first-Kaskade nutzen und nur dort auf Pro eskalieren, wo Entscheidungen zählen