Zum Inhalt springen

Demos ausführen

Das Repository greentic-demo liefert einen Katalog gebrauchsfertiger Demos. Jede davon ist ein vollständiges Bundle (Messaging-Provider, Flows, adaptive cards, MCP-Tools), verpackt als .gtpack und orchestriert durch zwei veröffentlichte Answer-Dokumente — eines für den Create-Wizard, eines für das Setup.

Sie müssen nichts von Hand scaffolden. Jede Demo wird mit denselben drei Befehlen gestartet.

  1. Erstellen Sie das Bundle mit dem veröffentlichten Create-Answers-Dokument:

    Terminal-Fenster
    gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/<demo>-create-answers.json

    Dadurch werden alle im Answers-Dokument referenzierten Packs heruntergeladen, Capability-Abhängigkeiten aufgelöst (z. B. wird state-memory automatisch hinzugezogen, wenn ein Messaging-Provider deklariert, dass er greentic:state/state-store benötigt) und ein lokales Bundle-Verzeichnis geschrieben.

  2. Konfigurieren Sie Provider mit dem veröffentlichten Setup-Answers-Dokument:

    Terminal-Fenster
    gtc setup ./<demo>-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/<demo>-setup-answers.json

    Das Setup erkennt den tatsächlichen Tenant aus dem Verzeichnis tenants/ des Bundles, speichert Secrets pro Provider und warnt Sie, wenn eine erforderliche Capability noch nicht erfüllt ist.

  3. Starten Sie die Runtime:

    Terminal-Fenster
    gtc start ./<demo>-bundle

    Beim Start validiert gtc start die Pack-Abhängigkeiten erneut, registriert Webhooks über die setup_webhook-WASM-op jedes Providers (und registriert sie automatisch neu, wenn sich Ihre Tunnel-URL ändert) und gibt die öffentlichen Ingress-Pfade aus (z. B. https://<tunnel>/v1/web/webchat/demo/).

Bevor Sie eine Demo ausführen, stellen Sie sicher, dass Sie Folgendes haben:

  • gtc CLI — siehe Installation
  • Eine öffentliche URL für Webhook-Provider — ngrok oder cloudflared (siehe Konfiguration der öffentlichen URL)
  • Provider-Zugangsdaten für jede Messaging- oder MCP-Integration eines Drittanbieters, die von der Demo verwendet wird (Slack-Tokens, Telegram-Bot-Token, Atlassian OAuth usw.) — das Setup-Answers-Dokument zeigt Ihnen, welche Secrets erforderlich sind

Die meisten Demos können nur mit WebChat GUI plus state-memory ausgeführt werden und benötigen keine externen Konten.

Jede Release von greentic-demo veröffentlicht eine .gtpack, eine *-create-answers.json und eine *-setup-answers.json in der latest release. Setzen Sie die Demo-ID in die drei oben gezeigten Befehle ein.

Die minimale Greentic-Erfahrung. Eine Begrüßungskarte, eine Info-Karte und eine einfache Echo-Interaktion — nützlich als Smoke-Test dafür, dass Ihre Toolchain, Ihr Tunnel und Ihr WebChat-Frontend End-to-End funktionieren.

  • Kanäle: WebChat GUI
  • Externe Dienste: keine
  • Demo-ID: quickstart
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/deep-research-demo-create-answers.json
gtc setup ./deep-research-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/deep-research-demo-setup-answers.json
gtc start ./deep-research-demo-bundle

Interaktiver Mitarbeiter-Onboarding-Wizard mit Aufgabenverfolgung, Dokumentensammlung und Bereitstellung von Zugriffsrechten. Behält den Session-Status über mehrere Schritte hinweg bei.

  • Kanäle: WebChat GUI (erforderlich), Slack (optional)
  • Externe Dienste: keine erforderlich (Status wird im Speicher gehalten)
  • Demo-ID: hr-onboarding
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/hr-onboarding-create-answers.json
gtc setup ./hr-onboarding-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/hr-onboarding-setup-answers.json
gtc start ./hr-onboarding-demo-bundle

IT-Helpdesk-Assistent, integriert mit Jira über Atlassian OAuth und MCP-Tools — Tickets erstellen, Status prüfen, Wissensdatenbank durchsuchen, eskalieren.

  • Kanäle: WebChat GUI
  • Externe Dienste: Atlassian / Jira (OAuth-Zugangsdaten in setup-answers)
  • Demo-ID: helpdesk-itsm
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/helpdesk-itsm-create-answers.json
gtc setup ./helpdesk-itsm-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/helpdesk-itsm-setup-answers.json
gtc start ./helpdesk-itsm-demo-bundle

Sales-Assistent, verbunden mit Salesforce über OAuth und MCP — Lead-Qualifizierung, Pipeline-Visualisierung, Deal-Tracking, Terminplanung.

  • Kanäle: WebChat GUI
  • Externe Dienste: Salesforce (OAuth-Zugangsdaten in setup-answers)
  • Demo-ID: sales-crm
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/sales-crm-create-answers.json
gtc setup ./sales-crm-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/sales-crm-setup-answers.json
gtc start ./sales-crm-demo-bundle

Bestands- und Supply-Chain-Assistent — Lagerprüfungen, Auftragsverfolgung, Warnungen bei niedrigem Bestand, Freigabe-Workflow für Nachbestellungen, Lieferantenverzeichnis.

  • Kanäle: WebChat GUI (erforderlich), Slack (optional)
  • Externe Dienste: keine erforderlich
  • Demo-ID: supply-chain
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/supply-chain-create-answers.json
gtc setup ./supply-chain-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/supply-chain-setup-answers.json
gtc start ./supply-chain-demo-bundle

Ein Red-Button-Event-Szenario — ein Webhook-Ingress löst einen Flow aus, der zufällig einen Branch auswählt, optional einen HTTP-Endpunkt aufruft, lokales Audio abspielt und einen Better-Stack-Incident erstellt.

  • Kanäle: event-getrieben (keine Chat-Oberfläche erforderlich)
  • Externe Dienste: Better Stack
  • Demo-ID: redbutton
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/redbutton-create-answers.json
gtc setup ./redbutton-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/redbutton-setup-answers.json
gtc start ./redbutton-demo-bundle --ngrok on

Lösen Sie den Flow aus mit:

Terminal-Fenster
curl -X POST http://127.0.0.1:8080/v1/events/ingress/webhook/demo/default \
-H 'content-type: application/json' \
-d '{"source":"red-button","pressed":true}'

Eine umfangreichere Bundle-Komposition, die einen Terraform-Deploy-Provider zusammen mit Messaging, Events und State nutzt — nützlich zum Validieren von Cloud-Deployment-Integrationen.

  • Kanäle: WebChat GUI
  • Externe Dienste: Terraform-kompatibler Cloud-Provider (in setup-answers konfiguriert)
  • Demo-ID: cloud-deploy-demo
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/cloud-deploy-demo-create-answers.json
gtc setup ./cloud-deploy-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/cloud-deploy-demo-setup-answers.json
gtc start ./cloud-deploy-demo-bundle

Ein Wetter-Assistent, der aktuelle Bedingungen und Vorhersagen über WeatherAPI mittels eines MCP-Tools abruft und das Ergebnis dann als adaptive cards rendert.

  • Kanäle: WebChat GUI
  • Externe Dienste: API key von weatherapi.com
  • Demo-ID: weather-mcp-demo
Terminal-Fenster
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/weather-mcp-demo-create-answers.json
gtc setup ./weather-mcp-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/weather-mcp-demo-setup-answers.json
gtc start ./weather-mcp-demo-bundle

Die drei Befehle sehen einfach aus, aber jeder davon führt einen nicht trivialen Teil der Plattform aus.

  • Löst das App-Pack der Demo (*.gtpack) auf — entweder aus GitHub Releases heruntergeladen oder aus OCI bezogen, wie im Answers-Dokument deklariert.
  • Materialisiert den Bundle-Workspace (bundle.yaml, packs/, tenants/).
  • Führt Capability-basierte Abhängigkeitsauflösung aus. Provider-Packs deklarieren required_capabilities; der Wizard fügt automatisch passende state-memory-, state-redis-, OAuth-Packs usw. hinzu, sodass Sie sich nicht merken müssen, wovon jeder Provider abhängt.
  • Berücksichtigt Capability-Flags wie greentic.cap.bundle_assets.read.v1, greentic.cap.webchat.oauth.v1, greentic.cap.webchat.i18n.v1 und greentic.cap.webchat.embed.v1 — sie entscheiden, ob der Wizard Bundle-weite Assets, OAuth-Provider-Konfiguration, Locale-Dateien und Embed-Snippets scaffoldet.
  • Erkennt den tatsächlichen Tenant automatisch aus bundle/tenants/ (damit Secrets unter dem korrekten Tenant-URI geschrieben werden).
  • Validiert Abhängigkeits-Capabilities für alle Packs im Bundle und warnt, wenn etwas fehlt.
  • Speichert jeden Wert aus dem Answers-Dokument im Secrets Store unter secrets://{env}/{tenant}/{team}/{provider}/{key}, sodass Provider Zugangsdaten zur Laufzeit lesen können, ohne dass Sie sie erneut eingeben müssen.
  • Lädt das Bundle, mountet jedes Pack und startet HTTP-Ingress-Adapter.
  • Prüft Pack-Abhängigkeiten über den Capability-Index erneut und zeigt erfüllte/fehlende Capabilities an.
  • Ruft die setup_webhook-WASM-op jedes Providers auf, wenn sich die öffentliche Tunnel-URL ändert — die erneute Webhook-Registrierung erfolgt nun automatisch.
  • Gibt öffentliche Routenpfade aus (zum Beispiel die WebChat-URL), sodass Sie sie sofort in einem Browser öffnen können.

Die meisten Webhook-gebundenen Demos funktionieren mit jedem Tunnel. Wählen Sie einen:

Terminal-Fenster
gtc start ./<demo>-bundle --ngrok on

Setup nach dem Rotieren eines Secrets erneut ausführen

Abschnitt betitelt „Setup nach dem Rotieren eines Secrets erneut ausführen“
Terminal-Fenster
gtc setup ./<demo>-bundle --answers <updated-setup-answers.json>

gtc setup ist idempotent. Es überschreibt Secrets an Ort und Stelle und führt die provider-spezifischen Setup-Flows erneut aus.

Terminal-Fenster
gtc wizard --answers <create-answers.json> --dry-run
gtc setup ./<demo>-bundle --dry-run

Beide Befehle unterstützen --dry-run, um die Ausgabe in der Vorschau anzuzeigen, ohne das Dateisystem oder den Secrets Store zu verändern.

Terminal-Fenster
gtc stop ./<demo>-bundle

Dadurch werden der Runner und alle Hilfsprozesse (Tunnel) beendet, die gtc start gestartet hat.

Wizard meldet, dass eine Capability nicht erfüllt ist

Abschnitt betitelt „Wizard meldet, dass eine Capability nicht erfüllt ist“

Aktualisieren Sie das Create-Answers-Dokument so, dass es ein Pack enthält, das die fehlende Capability bereitstellt. Für greentic:state/state-store funktioniert entweder state-memory (kein Setup) oder state-redis (erfordert eine Redis-Instanz). Die meisten Demos deklarieren diese Abhängigkeit bereits, sodass der Wizard sie automatisch hinzufügt.

Stellen Sie sicher, dass der Tenant des Bundles mit dem Tenant in der WebChat-URL übereinstimmt. gtc setup erkennt den Bundle-Tenant jetzt automatisch. Wenn Sie das Setup vor diesem Fix ausgeführt haben, führen Sie es nach einem gtc wizard erneut aus, um das Bundle-Layout zu aktualisieren.

Prüfen Sie, ob das Secret, das Ihr Provider benötigt, in der Answers-Datei vorhanden ist (z. B. bot_token, slack_configuration_token, ms_bot_app_password). Führen Sie gtc setup mit dem aktualisierten Dokument erneut aus und starten Sie danach gtc start neu.

Standardmäßig gibt ngrok bei jedem Neustart eine neue URL aus. Der Webhook-Updater erkennt die Änderung beim Start und ruft die setup_webhook-op jedes Providers auf, damit die neue URL upstream registriert wird. Für lang laufende Demos sollten Sie jedoch ein Upgrade auf eine reservierte Domain in Betracht ziehen.

  • gtc wizard — vollständige Referenz für Create-Answers-Dokumente und Capability-Flags
  • gtc setup — Provider-Konfiguration, Zugangsdaten und Verwendung von dry-run
  • gtc start — Runtime-Optionen, Tunnel und Observability
  • Bundle-Assets — wie das von WebChat-Skins verwendete Asset-Overlay funktioniert
  • Multi-Tenancy — wie Tenant-Isolation mit Secrets und Ingress zusammenspielt