Feature-Flags

Owlat ist modular — jede in dieser Anleitung beschriebene Funktion lässt sich ein- oder ausschalten. Diese Seite ist die anwenderseitige Übersicht dazu.

Feature-Flags

Owlat wird als eine einzige Codebasis ausgeliefert, aber Sie entscheiden, welche Funktionen auf Ihrer Installation laufen. Marketing-Kampagnen, der Team-Posteingang, KI-Unterstützung, persönliche Post mit Postbox — jede davon ist eine Funktion, für die Sie sich aktiv entscheiden, und kein Produkt, auf das Sie sich von Anfang an festlegen müssen.

Manche Flags setzen Infrastruktur voraus

Die Versand-Flags (campaigns, transactional, automations) funktionieren nur mit einem konfigurierten Zustellanbieter (MTA, Resend oder SES) — ein verbundenes externes Postfach zählt nicht dazu. Die stimmigen Kombinationen und die von Owlat durchgesetzten Regeln finden Sie unter Betriebsmodi.

Diese Seite ist die Referenz für Betreiber. Zur zugrunde liegenden Mechanik (Single Source of Truth, Auflösung von Abhängigkeiten, Docker-Profile) siehe Feature-Flags — Entwicklerreferenz.

Wo Sie umschalten

Es gibt drei Stellen, an denen Sie ein Flag umlegen können: die Admin-Oberfläche, die Host-CLI und den Setup-Assistenten beim ersten Start.

Admin-Oberfläche

Einstellungen → Features im Dashboard. Jedes Flag hat eine Beschreibung, Hinweise auf Abhängigkeiten und einen Umschalter. Beim Deaktivieren eines Flags mit abhängigen Flags erscheint eine Bestätigung, die auflistet, was ebenfalls deaktiviert wird.

Setup-CLI

Auf einer VPS-Installation stellt der Host-Wrapper (scripts/owlat, installiert als owlat) die Flag-Befehle bereit:

# Turn one flag on or off:
owlat feature postbox on
owlat feature ai off

# Set a required env var, then apply:
owlat env LLM_API_KEY sk-...
owlat restart

Diese führen die containerisierte TS-CLI (owlat-setup) im Image wolvesdotink/setup aus. Jedes Umschalten schreibt das CLI-seitige Flag-Spiegelbild (.owlat-flags.json) neu, generiert docker-compose.override.yml neu, damit die richtigen Hintergrund-Worker ausgewählt werden, und weist Sie an, owlat restart auszuführen, um die Änderung anzuwenden.

Die innere CLI hat außerdem einen Befehl pack, um mehrere Flags auf einmal umzuschalten — er ist nur direkt über owlat-setup verfügbar, nicht über den owlat-Wrapper:

owlat-setup pack marketing on
owlat-setup pack emailClient on

Um den aktuellen Zustand einzusehen, lesen Sie .owlat-flags.json in Ihrem Installationsverzeichnis oder öffnen Sie Einstellungen → Features im Dashboard. Einen --show- oder Listen-Befehl gibt es nicht.

Setup-Assistent

Der Web-Assistent beim ersten Start (bereitgestellt vom Container wolvesdotink/setup, erreichbar über owlat setup oder den Einzeiler zur Installation) enthält den Schritt „Wählen Sie aus, was aktiviert werden soll“ (der erste Schritt nach dem Willkommensbildschirm), der die drei Feature-Pakete sowie jedes einzelne Flag nach Kategorie gruppiert präsentiert. Schalten Sie ein Paket um oder legen Sie Flags einzeln um; die Abhängigkeitskaskaden greifen dabei sofort. Sie können die Antworten jederzeit später über die Admin-Oberfläche oder die oben genannte CLI ändern.

Der ältere Assistent bash scripts/setup.sh (owlat setup --legacy) konfiguriert keine Feature-Flags — er behandelt nur den Deployment-Modus, Umgebungsvariablen und den E-Mail-Anbieter.

Feature-Pakete

Ein Paket ist lediglich eine Schaltfläche, die mehrere zusammengehörige Flags auf einmal umschaltet. Owlat bringt drei Pakete mit:

PaketFlagsSinnvoll, wenn
Marketingcampaigns, automations, transactionalSie Marketing-E-Mails und auslöserbasierte Abläufe versenden möchten.
E-Mail-Clientinbox, chat, postboxSie ein gemeinsames Team-Postfach, eine Chat-Oberfläche und persönliche Post (Postbox) möchten.
KIai, ai.agent, ai.autonomy, ai.knowledge, ai.knowledge.autoLink, ai.knowledge.graphRetrieval, ai.knowledge.analytics, ai.assistant, ai.visualizationsSie jede KI-Funktion auf einmal aktivieren möchten.

Beim Umschalten eines Pakets durchläuft jedes enthaltene Flag die normale Abhängigkeitskaskade, sodass Sie nicht in einen ungültigen Zustand geraten können.

Abhängigkeiten und Kaskaden

Manche Flags setzen andere voraus. Die Regeln:

  • Das Aktivieren eines abhängigen Flags aktiviert automatisch dessen Voraussetzungen. Wer ai.agent aktiviert, aktiviert damit auch ai und inbox.
  • Das Deaktivieren eines Flags deaktiviert alles, was davon abhing. Das Deaktivieren von ai kaskadiert auf ai.agent, ai.autonomy, ai.knowledge (samt der Unter-Flags ai.knowledge.autoLink, ai.knowledge.graphRetrieval, ai.knowledge.analytics), ai.assistant und ai.visualizations.
FlagSetzt vorausHinweise
campaigns.archivecampaignsArchivlinks benötigen Kampagnen
inbox.codeTasksinbox, ai.agentBenötigt den Posteingang und den KI-Agenten
ai.agentai, inboxDer Agent klassifiziert Posteingangs-Mail und entwirft Antworten
ai.autonomyai, ai.agentAutonomie erweitert den Agenten
ai.knowledgeai
ai.visualizationsai
Das bloße `ai`-Flag steuert auch die KI im Postbox-Posteingang

Das oberste Flag ai (nicht ai.agent) steuert die gesamte beratende KI von Postbox, sowohl beim Lesen als auch beim Verfassen:

  • Thread zusammenfassen und Antworten vorschlagen in einem geöffneten Thread
  • Automatische Thread-Zusammenfassungen — der zwischengespeicherte einzeilige Zusammenfassungsstreifen bei langen Threads
  • Zu diesem Thread fragen — fundierte Fragen und Antworten zur geöffneten Konversation
  • Meeting-Absichts-Chip — „Antwort entwerfen?“ bei einer in Prosa formulierten Terminanfrage
  • Ghost-Text-Autovervollständigung — Inline-Vorschläge im Composer, die per Tab übernommen werden
  • Tonalität umschreiben — eine Auswahl umschreiben (kürzer / freundlicher / förmlich / Grammatik korrigieren / übersetzen)
  • Schreibstimme — „KI-Entwürfe personalisieren“, damit Vorschläge wie Ihre gesendeten Mails klingen
  • Die Frage-Zusammenfassungen und die Dringlichkeitsbewertung der Antwort-Warteschlange sowie die KI-Verfeinerung mehrdeutiger Absender im Smart Inbox

Schalten Sie ai aus, und all das entfällt (die jeweils deterministischen Anteile funktionieren, sofern vorhanden, weiterhin). Für jede dieser Funktionen gibt es zusätzlich einen Schalter pro Benutzer in den Postbox-Einstellungen, und die Aktionen sind pro Benutzer ratenbegrenzt. Die Ausgabe ist immer beratend — sie wird nie automatisch versendet. Wie bei jeder KI benötigen Sie einen konfigurierten LLM-Anbieter (LLM_API_KEY).

Was sich beim Aktivieren eines Flags ändert

Das Umschalten eines Flags hat drei konkrete Auswirkungen:

  1. Die Oberfläche blendet ein oder aus: Navigationseinträge in der Seitenleiste, Einstellungsbereiche und Onboarding-Aufgaben für die Funktion.
  2. Hintergrund-Worker starten oder stoppen — allerdings nur auf den Pfaden über den Assistenten und die CLI. Jedes Flag kann Docker-Compose-Profile deklarieren. Beispiele: postboxpersonal-mail; mail.externalexternal-mail; scan.filesclamav; inbox.codeTasksinbox-codetasks; aiai. Der Setup-Assistent und die Befehle owlat feature/owlat-setup pack berechnen die aktive Profilmenge neu und generieren docker-compose.override.yml neu, sodass ein owlat restart den Worker tatsächlich startet oder stoppt. Das Umschalten eines Flags in der Admin-Oberfläche persistiert das Flag lediglich in apps/api (instanceSettings.featureFlags); es generiert das Override nicht neu und startet keine Container neu. Um einen Worker vom Dashboard aus hoch- oder herunterzufahren, führen Sie den passenden owlat feature-Befehl (oder den Assistenten) erneut auf dem Host aus und anschließend owlat restart.
  3. Erforderliche Umgebungsvariablen werden sichtbar gemacht. Manche Flags benötigen zusätzliche Umgebungsvariablen (z. B. erfordert ai die Variablen LLM_PROVIDER und LLM_API_KEY; scan.urls erfordert GOOGLE_SAFE_BROWSING_API_KEY; analytics.posthog erfordert POSTHOG_API_KEY und POSTHOG_HOST). Der Setup-Assistent fragt sie ab. Die Admin-Oberfläche kann Ihre .env nicht lesen und blockiert das Umschalten daher nicht — sie zeigt ein Hinweismodal, das Sie daran erinnert, welche Variablen Sie mit owlat env <KEY> <VALUE> setzen sollten (danach owlat restart).

Alle Flags

FlagKategorieStandardWas es aktiviert
campaignsVersandAnMarketing-Kampagnen an Kontakte und Segmente
campaigns.archiveVersandAnÖffentliche „Im Browser ansehen“-Links
transactionalVersandAnProgrammatischer Versand über die API
automationsVersandAusMehrstufige, auslöserbasierte Workflows
inboxEmpfangAusGemeinsamer Team-Posteingang mit Threading
inbox.codeTasksEmpfangAusExtraktion von Fehlerberichten aus eingehender Mail
chatEmpfangAusEchtzeit-Chat neben dem Posteingang
postboxEmpfangAusPersönliche Postfächer mit IMAP/SMTP
mail.externalEmpfangAusEin eigenes externes Gmail-/Fastmail-/Firmenpostfach eines Benutzers über IMAP+SMTP verbinden (keine Versanddomain erforderlich)
aiKIAusHauptschalter (benötigt LLM-Anbieter)
ai.agentKIAusKlassifizieren + Antworten entwerfen
ai.autonomyKIAusDer Agent versendet ohne menschliche Freigabe
ai.knowledgeKIAusSemantischer Wissensgraph
ai.knowledge.autoLinkKIAusVom LLM abgeleitete typisierte Kanten zwischen Einträgen (zusätzlich zum stets aktiven regelbasierten Linker); erfordert ai.knowledge
ai.knowledge.graphRetrievalKIAusSuchergebnisse entlang der Graphkanten erweitern, bevor Entwürfe fundiert werden (Notausschalter); erfordert ai.knowledge
ai.knowledge.analyticsKIAusCron für Zentralität/Cluster + Wissensgraph-Dashboard; erfordert ai.knowledge
ai.assistantKIAusKI-Assistent mit mehreren Gesprächsrunden, Streaming und Tool-Calling + @assistant-Antworten im Team-Chat
ai.visualizationsKIAusDashboards aus Diagrammen, die per natürlichsprachlichem Prompt entstehen
webhooksIntegrationenAusAusgehende Ereigniszustellung
formsIntegrationenAnEinbettbare Anmelde-/Erfassungsformulare
imports.mailchimpIntegrationenAusMailchimp-Import mit einem Klick
imports.stripeIntegrationenAusSynchronisation von Stripe-Kunden
imports.mandrillIntegrationenAusÜbernahme der Mandrill-Sperrliste
scan.contentSicherheitAnPrüfung auf Spam / Phishing / Homoglyphen vor dem Versand
scan.filesSicherheitAnClamAV-Malware-Scan für Anhänge
scan.urlsSicherheitAusURL-Reputation über Google Safe Browsing
analytics.posthogZustellbarkeitAusPostHog-Produktanalyse
domains.verificationZustellbarkeitAnPrüfschranke für SPF/DKIM/DMARC-Validierung
domains.dkimRotationZustellbarkeitAnGeplante Rotation der DKIM-Schlüssel
Manche geflaggten Verhaltensweisen sind noch nicht vollständig live

Einige Flags steuern Funktionen, deren Oberfläche zwar ausgeliefert ist, deren tiefergehende Automatisierung aber noch nicht durchgängig verdrahtet ist:

  • ai.autonomy — die Agentenkonfiguration (automatische Antwort, Konfidenzschwelle, Tonalität, Signatur, Tageslimit) ist real, aber für abgestufte Autonomieregeln und die Autonomie-Rückkopplungsschleife gibt es noch keine produktiven Aufrufer. Siehe KI-Agent & Autonomie.
  • inbox.codeTasks — Code-Aufgaben lassen sich manuell anlegen und verwalten, aber die automatische Erstellung einer Aufgabe aus einer eingehenden E-Mail ist nicht verdrahtet. Siehe Code-Aufgaben.

Im Zweifelsfall

Sie können ein Flag jederzeit aktivieren, sich umsehen, entscheiden, dass es nichts für Sie ist, und es wieder deaktivieren — in beide Richtungen entstehen keine Migrationskosten. Daten, die zu einer Funktion gehören (Postfächer, Kampagnen, Automationen), bleiben beim Deaktivieren eines Flags erhalten; beim erneuten Aktivieren ist der Zugriff wiederhergestellt.

Flags der gehosteten Cloud (billing.stripe, multiTenancy, tier.autoProvision) sind im Self-Host-Modus ausgeblendet und erscheinen nicht in der Admin-Oberfläche.