Ein System-One-Modell hinzufügen: Wo eine typisierte Entscheidung ein LLM schlägt
AI Data Stream betreibt jetzt zwei Arten von Modellen. Frontier-LLMs führen weiter das Gespräch; Jev von TypeSafe AI trifft kleine, kalibrierte Entscheidungen in unter einer Sekunde. Was ein System-One-Modell ist, wie es sich von einem LLM unterscheidet und wie wir damit GA4s „Unassigned“-Eimer repariert haben.
AI Data Stream lief von Anfang an auf Frontier-Sprachmodellen: Claude, GPT, Gemini und DeepSeek, mit Ihren eigenen API-Schlüsseln. Sie schreiben die Analyse, führen die Tools aus und halten das Gespräch. Für diese Arbeit gibt es nichts Besseres.
Aber ein Analytics-Produkt steckt voller kleiner Entscheidungen, die keine Gespräche sind. Ist dieser Referrer ein KI-Assistent? Ist diese Phase die „gewonnen“-Phase? Ist dieses Suchergebnis für die Frage relevant? Jedes Mal, wenn wir für so eine Entscheidung ein LLM bemühten, zahlten wir eine vollständige Textgenerierung, warteten Sekunden, parsten Prosa oder JSON aus der Antwort und bekamen eine in Worte gefasste Konfidenz zurück, die wenig bedeutete. Und jedes Mal, wenn wir es nicht taten, schrieben wir eine Stichwortliste und hofften.
Diese Woche haben wir der App eine zweite Art von Modell hinzugefügt. Dieser Beitrag erklärt, was es ist, wie es sich von den Modellen unterscheidet, die Sie hier bereits nutzen, und wo es zuerst im Einsatz ist.
Was ein System-One-Modell ist
TypeSafe AI nennt seine Modelle „System One“, nach dem schnellen, intuitiven Denkmodus in Kahnemans Einteilung, im Gegensatz zum langsamen, bewussten Schlussfolgern. Ihr erstes Modell ist Jev, und sein Vertrag gleicht keiner LLM-API:
- Sie senden einen State: einen String oder ein JSON-Objekt, das die Situation beschreibt.
- Sie senden eine Map typisierter Fragen. Es gibt drei Typen. Ein Choice wählt eine Option aus einer Liste, die Sie definieren. Ein Noul antwortet mit Ja oder Nein. Ein Score ordnet den State auf geordneten Stufen ein, die Sie beschreiben.
- Sie erhalten typisierte Antworten mit Wahrscheinlichkeiten. Ein Choice liefert die vollständige Verteilung über Ihre Optionen plus eine Konfidenz. Ein Noul liefert die Wahrscheinlichkeit für Ja. Sonst nichts. Das Modell erzeugt nie Text.
Eine Anfrage sieht so aus:
{
"state": { "source": "perplexity", "medium": "(not set)", "ga4_channel": "Unassigned" },
"model": "jev-latest",
"questions": {
"channel": {
"type": "choice",
"instructions": "Which acquisition channel does this session source really belong to?",
"criteria": {
"ai_assistant": "An AI assistant, chatbot or AI search product",
"organic_search": "A web search engine result",
"self_referral": "The business's own domains or hosted pages",
"link_scanner_or_tool": "A link scanner, widget CDN or collaboration tool, not a human"
}
},
"is_ai": { "type": "noul", "instructions": "Is this source an AI product?" }
}
}
Und die Antwort:
{
"answers": {
"channel": {
"type": "choice",
"choice": "ai_assistant",
"probabilities": { "ai_assistant": 0.99, "organic_search": 0.01, "self_referral": 0.0, "link_scanner_or_tool": 0.0 },
"confidence": 0.99
},
"is_ai": { "type": "noul", "noul": 0.96 }
}
}
Wie sich das von einem LLM unterscheidet
Vier Unterschiede zählen in der Praxis.
Der Ausgabetyp. Ein LLM liefert einen String. Selbst im Modus für strukturierte Ausgabe liefert es einen String, der zufällig als JSON parsbar ist, und es kann trotzdem einen Wert in die Enumeration schreiben, den Sie nie definiert haben, oder eine Zahl mit falschem Vorzeichen. Jev liefert einen Wert aus der Menge, die Sie vorgegeben haben, oder eine Wahrscheinlichkeit. Es gibt keinen Parse-Schritt und keinen Pfad für ungültige Ausgaben. Das klingt klein, bis man die Retry-Logik für die andere Sorte Modell geschrieben hat.
Das Sampling. Ein LLM erzeugt seine Antwort Token für Token; zwanzig Zeilen zu klassifizieren heißt zwanzig sequenzielle Generierungen oder eine sehr lange. Jev wertet alle Fragen einer Anfrage parallel über den gemeinsamen State aus. Wir schicken zwanzig Zeilen und vierzig Fragen in einem Aufruf und bekommen vierzig Antworten zusammen zurück, in etwa einer Sekunde.
Die Konfidenz. Fragt man ein LLM, wie sicher es ist, schreibt es eine Zahl, die gut klingt. Jev wird per Reinforcement Learning auf kalibrierte Entscheidungen trainiert, seine Konfidenz ist also eine Statistik, auf die man einen Schwellenwert setzen kann. In unseren Tests kamen alle falschen Antworten mit einer Konfidenz unter 0,5 zurück und alle richtigen über 0,9. Dieser Abstand ist das ganze Produkt.
Kosten und Geschwindigkeit. Der von TypeSafe angekündigte Early-Access-Preis liegt bei 0,042 $ pro Million Eingabe-Tokens, die Ausgabe ist kostenlos. Neue Konten starten mit 5 $ Guthaben, und nach all unserer Entwicklung und unseren Tests über mehrere Projekte hinweg zeigt der Kontostand immer noch 4,98 $. Zu diesem Tarif kostet die Klassifizierung von 156 Traffic-Quellen weniger als einen halben Cent. Die Ende-zu-Ende-Latenz von unseren Servern lag bei 650 ms bis 1,2 s pro Anfrage. Zu diesem Preis fragt man nicht mehr, ob eine Entscheidung einen Modellaufruf wert ist.
Was es aufgibt, ist alles, wofür ein LLM da ist. Es kann seine Antwort nicht erklären, keine Zusammenfassung schreiben und kein Gespräch führen. Der Code muss den Ablauf besitzen und enge Fragen stellen; das Modell liefert Urteilsvermögen dort, wo gewöhnlicher Code eine Stichwortliste bräuchte.
Der erste Einsatzort: GA4s „Unassigned“-Eimer
Google Analytics 4 gruppiert Traffic mit Regeln über die Quell- und Medium-Strings in Standardkanäle. Die Regeln sind ordentlich, und dieses Jahr kam ein Kanal AI Assistant dazu. Aber eine Regel greift nur, wenn das erwartete Medium-Tag vorhanden ist. Auf einer unserer eigenen Websites, superyachtwatch.com, schrieb GA4 in den letzten 90 Tagen 510 Sitzungen dem Kanal AI Assistant zu und ließ weitere 23 in Unassigned liegen, als perplexity / (not set), copilot.com / (not set) und ein ungetaggtes chatgpt.com / (none). Über die getesteten Properties hinweg enthielt Referral die eigenen Subdomains und HubSpot-Vorschauseiten des Unternehmens, Link-Vorschauen von Microsoft Teams, Salesforce-Seiten, Link-in-Bio-Tools und Referrer-Spam, alles als echte externe Besucher gezählt.
Das mit Regeln zu beheben heißt, für jeden Kunden eine Liste jedes KI-Produkts, jedes Scanners und jedes Self-Referral-Musters zu pflegen. Es mit einem LLM zu beheben heißt, bei jeder Traffic-Abfrage eine mehrsekündige Generierung. Genau die Form von Problem, für die ein System-One-Modell gemacht ist.
Die Fragen. Für jede Zeile, die GA4 unter Referral oder Unassigned abgelegt hat, stellen wir einen Choice über eine Taxonomie mit sechzehn Optionen (KI-Assistent, Self-Referral, Link-Scanner oder Tool, Referrer-Spam, Branchen-Referral, sonstiger Referral, die Standardkanäle Suche, Social, Video, E-Mail und Display, offline oder Kampagnen-Tag, unbekannt) und einen Noul: Ist diese Quelle ein KI-Produkt? Der State enthält eine kurze Beschreibung der Property, denn „Self-Referral“ setzt voraus zu wissen, wessen Website es ist, plus die Zeilen selbst. Zwanzig Zeilen gehen in eine Anfrage, in den Anweisungen jeder Frage per Pfad referenziert.
Die Validierung. Bevor wir es einbauten, ließen wir 156 echte Quelle/Medium-Zeilen aus zwei Properties durchlaufen. Bei 116 stimmte es mit GA4 überein. Von den 40 Abweichungen war fast jede ein Fall, in dem GA4 aufgegeben hatte: KI-Assistenten in Unassigned, eigene Domains und Link-Scanner in Referral, Brave Search und ya.ru in Referral, ein Webmail-Host in Referral, QR-Codes und Kampagnenbezeichnungen in Unassigned. Drei Antworten waren falsch. Alle drei meldeten eine Konfidenz unter 0,5.
Die Designregeln, die daraus folgten.
- Nur Referral- und Unassigned-Zeilen werden gesendet.
google / organicbraucht keine zweite Meinung. - Unter 0,7 Konfidenz bleibt die GA4-Gruppierung bestehen und die Antwort des Modells wird nur als Vorschlag angehängt. GA4 bleibt für die Zeile die Quelle der Wahrheit.
- Jede Antwort wird 30 Tage pro Property, Quelle und Medium gecacht. Jeder Host wird einmal beurteilt; die zusätzliche Sekunde fällt nur bei der ersten Abfrage an.
- Ein Modellausfall, ein Timeout oder ein Rate-Limit ergibt ein Null-Ergebnis, nie einen Fehler. Die Zeile kommt genau so zurück, wie GA4 sie geliefert hat. Early-Access-APIs ändern ihre Limits ohne Vorwarnung, und wir degradieren lieber still, als eine Traffic-Abfrage scheitern zu lassen.
- Ändert sich die Taxonomie, ändert sich die Version des Cache-Schlüssels mit, damit alte Antworten gegen die neuen Optionen neu beurteilt werden. Das haben wir schon einmal getan, um
referrer_spamhinzuzufügen, nachdem eine Crawler-Service-Domain inother_referralgelandet war.
Das Ergebnis sind ein channel, ein is_ai_assistant-Flag und eine channel_confidence auf den Zeilen, die es brauchten, plus ein Statusblock, der sagt, ob die Klassifizierung gelaufen ist. Ihre KI kann das Flag summieren und Ihnen eine ehrliche KI-Traffic-Zahl geben.
Engineering-Notizen
Ein paar Dinge, die wir gelernt haben und die nicht in der Doku stehen.
Kandidaten gehören in die Kriterien, Belege in den State. Das Modell kann keine Option wählen, die Sie nicht angeboten haben; bei allem wie „welcher dieser vorhandenen Datensätze passt“ sind die Datensätze selbst die Choice-Optionen, und eine none-Option ist Pflicht. Der volle Text lebt im State, so indiziert, dass die Anweisungen darauf zeigen können.
Unabhängige Fragen zusammen stellen. Fragen in einer Anfrage sehen die Antworten der anderen nicht, teilen sich aber den State und laufen parallel. Spekulative Fragen sind billig: Stellen Sie die zweigspezifische Frage gleich mit und ignorieren Sie die Antwort, wenn der Zweig nicht genommen wird.
Konfidenz bezieht sich auf die Verteilung, nicht auf die Welt. Eine sichere falsche Antwort ist möglich, wenn die richtige Option in den Kriterien fehlt. Kalibrierung sagt Ihnen, dass das Modell sich unter den angebotenen Optionen sicher ist. Abdeckung ist Ihre Aufgabe.
Es ist ein Plattform-Schlüssel, kein BYOK. Anders als die LLMs in AI Data Stream läuft dieses Modell auf unserem Schlüssel, nicht auf Ihrem. Beim aktuellen Preis ist das die richtige Entscheidung, aber es ist auch der Grund, warum die Funktion eine Opt-in-Beta ist und kein Standard: Die Bedingungen sind Early Access, und wir wollen echte Nutzung sehen, bevor wir uns stärker darauf stützen.
Was als Nächstes kommt
Hat man erst einmal ein billiges, schnelles, kalibriertes Urteil, sieht man überall Einsatzorte dafür. Auf unserer Liste: das Reranking der Wissensdatenbank-Suche ohne Embedding-Abhängigkeit, die Prüfung, ob ein geplanter Bericht seinen Auftrag wirklich erfüllt, bevor er per E-Mail verschickt wird, und die Entscheidung, ob eine neue Team-Erinnerung eine bestehende dupliziert. Jedes davon ist eine Ein-Fragen-Integration mit derselben Fallback-Regel.
Die Traffic-Klassifizierung ist ab sofort als experimentelle Beta in den Pro- und Business-Tarifen verfügbar. Team-Inhaber können sie unter Team-Einstellungen → Beta-Funktionen einschalten, eine Traffic-Quellen-Abfrage mit und ohne vergleichen und uns sagen, wo das Modell eine Quelle falsch einordnet. Die Dokumentation von TypeSafe finden Sie unter docs.typesafe.ai, falls Sie das Modell direkt ausprobieren möchten.
Verwandte Artikel
Ihr KI-Analyst rechnet jetzt richtig (und verknüpft Ihre Datenquellen)
AI Data Stream speichert Ihre Analytics-Daten jetzt in privaten SQL-Tabellen und berechnet jede Summe, jeden Durchschnitt und jeden Vergleich per SQL — die Zahlen in Ihren Antworten sind exakt, nicht geschätzt.
Wie System-Prompts funktionieren – und warum sie für KI-Analytics entscheidend sind
Der System-Prompt entscheidet darüber, ob eine KI plausiblen Unsinn halluziniert oder verlässlich auf Ihren echten Daten basiert. Hier erfahren Sie, wie er funktioniert und wie gute Analytics-Prompts aussehen.
Bessere Fragen für KI-Analytics-Tools formulieren
Ungenaue Fragen liefern ungenaue Antworten – und bei BYOK-KI-Tools kosten sie auch mehr. So stellen Sie Ihrer Analytics-KI Fragen, die sie wirklich beantworten kann.