Recherche · mzone-arena · Stand 17. Oktober 2026

Jev-Klasse: Die ersten System-One-Modelle sind da — und man kann sie heute betreiben

Kurzfassung: Ja. Seit dem 15. September 2026 gibt es mit Jev von TypeSafe AI den ersten Vertreter einer neuen Modellklasse, die nicht schreibt, sondern entscheidet. Innerhalb von Tagen ist daraus eine ganze Familie geworden: gehostet und proprietär auf der einen Seite, als offene Gewichte zum Selbstbetreiben auf der anderen. Dieser Bericht klärt, was tatsächlich existiert, was unabhängig gemessen ist, wo die Grenzen liegen — und er enthält eine vollständige Einrichtung samt Beispiel-Aufruf und Antwort für beide Wege.

Frage
Gibt es die ersten Jev-/System-One-Modelle, und lassen sie sich nutzen?
Antwort
Ja — gehostet (Jev, Early Access) und als offene Gewichte (u. a. Kev) sofort selbst hostbar.
Belege
Herstellerdoku, Wikipedia, Simon Willison, TechCrunch/Register/Forbes, Kev-Repo, JevBench, unabhängige Klassifikations-Benchmarks
Vorarbeiten im MZP
„Das Gehirn der ersten Ebene“, Laufzeitsicht und Sequenzdiagramm zu Jev

1 · Kurzantwort

Die Frage hat zwei Teile, und beide sind mit ja zu beantworten — mit einer wichtigen Einschränkung beim Zugang.

  1. F1existiert
    Jev ist real und live. TypeSafe AI (San Francisco, 2024 gegründet, 40 Mio. $ Seed von DCVC) hat Jev am 15. September 2026 in Early Access gestartet. Aktuell ist jev-1.14.0 (seit 14. Oktober 2026); der Alias jev-latest zeigt auf jev-1.13.0.
  2. F2Kategorie
    „System One“ ist inzwischen eine Klasse, kein Einzelmodell. Neben Jev gibt es über ein Dutzend offener Nachbauten derselben Schnittstelle — u. a. Kev, Laya, SemIf/OpenJev, NanoJev, jevlike, Von. AINews zählte bereits zwei Tage nach dem Start sechs Klone; die Liste awesome-jev führt mehr als ein Dutzend.
  3. F3Zugang
    Jev selbst ist proprietär, gehostet und noch nicht allgemein offen. Zugang über Warteliste/Early Access und API-Key aus der TypeSafe-Konsole. Wer heute ohne Warteliste arbeiten will, nimmt ein offenes Modell wie Kev — gleiche Wire-API, lokal betreibbar.
  4. F4Qualitätslücke
    Die offene Klasse reproduziert die Schnittstelle schnell, die Genauigkeit nur teilweise. Auf einem unabhängigen 49-Aufgaben-Benchmark steht Jev bei 0,966 Makro-Genauigkeit, der beste offene Kandidat bei 0,704. Nach Feintuning auf eigenen Labels sind die offenen Modelle aber konkurrenzfähig.
  5. F5nutzbar
    Nutzbar ist es heute. Beide Wege sind vollständig dokumentiert und mit Beispiel-Request/-Response belegt — Abschnitt 6 und 7. Der gehostete Weg ist ein POST /v1/systemone; der offene Weg ist ein Server auf dem eigenen Rechner, den dieselbe SDK ansprechen kann.

2 · Was ein System-One-Modell ist

Ein System-One-Modell ist ein diskriminatives Modell: es erzeugt keinen Text, sondern beantwortet typisierte Fragen zu einem Zustand. TypeSafe nennt die Fragearten Primitives:

CHOICE

Wähle eine Option aus einer ungeordneten Liste. Antwort: choice, probabilities, confidence. Bis zu 255 Optionen.

SCORE

Verorte den Zustand auf einer geordneten Skala. Antwort: score (positionstreu, darf zwischen Stufen liegen), legend, Verteilung, Konfidenz.

NOUL

Ist diese Aussage wahr? Antwort: noul, eine Wahrscheinlichkeit zwischen 0 und 1 (Bernoulli, daher der Name).

PARALLEL

Alle Fragen eines Aufrufs werden gleichzeitig ausgewertet. Zehn Fragen statt einer kosten kaum mehr Zeit — nur zusätzliche (billige) Eingabe-Token. Fragen sind untereinander unabhängig.

Der entscheidende Unterschied zu einem LLM: Es gibt keinen Freitext, den man parsen oder reparieren müsste. Die Ausgabe ist auf die vorab deklarierten Optionen beschränkt — laut TypeSafe „kann nicht halluzinieren“ im Sinne von: keine Typfehler, keine erfundenen Kategorien. Der Preis dafür ist, dass das Modell keine Begründung liefert: Man bekommt eine Zahl, keinen Grund.

Trainiert wird nicht mit RLHF oder verifizierbaren Belohnungen, sondern mit RLCD (Reinforcement Learning for Calibrated Decisions): Das Modell wird darauf optimiert, ehrliche Wahrscheinlichkeiten auszugeben. Anspruch: hohe Konfidenz bedeutet hohe Trefferquote — die Grundlage dafür, Schwellen im Code zu setzen und nur sichere Fälle zu automatisieren.

3 · Landschaft: was es gibt

3.1 Verlauf

  1. 2026-09-15
    TypeSafe AI startet Jev in Early Access (Jev 1.13), zeitgleich 40 Mio. $ Seed.
  2. 2026-09-16…18
    Erste offene Nachbauten in Tagen; Presse berichtet (Register, TechCrunch, Forbes). Laya (convaiinnovations) erscheint am 18. September.
  3. 2026-09-19…23
    JevBench v1 erscheint; llm-typesafe (22. September) verbindet Jev mit der LLM-CLI; die Kev-Familie mit vier Größen etabliert sich als belastbarster offener Kandidat.
  4. 2026-10-14
    Jev 1.14 als Preview (Alias jev-preview), optional „Long context“ bis 262k Token.

3.2 Die wichtigsten Vertreter

Generisch (jedes Modell): Eingang state, Ausgang typisierte Antworten — die Schnittstelle ist faktisch standardisiert (POST /v1/systemone).

ModellTräger / GrößeLizenz & BetriebGut für
Jev (TypeSafe)proprietär, gehostetproprietär, API-Key, Early Access/WartelisteReferenzqualität, sofortige Nutzung ohne eigene Hardware
KevQwen3.5/3.8 + LoRA, 0,8 B / 4 B / 9 B / 27 BApache-2.0, lokal (CUDA/MLX) oder Modal-CloudErsatz für einen gehosteten Jev-Aufruf — gleiche SDK, nur base_url ändern
LayaModernBERT-large 421 M (+ 322 M mehrsprachig)Apache-2.0, pip install laya, CPU-freundlichTriage auf schwacher Hardware, 100+ Sprachen — Basis zum Feintunen, kein Zero-Shot-Ersatz
SemIf (früher OpenJev)eingefrorenes Qwen3.5-4B, nur LogitsMITein bereits gehostetes Modell wiederverwenden
NanoJevQwen3-0.6B + Entscheidungs-KöpfeMITEchtzeit-Regelkreise (Spiele/Steuerung)
jevlikeTrainer, Byte-Encoder oder fremder EncoderMITeigene Optionslisten auf dem Laptop trainieren
VonModernBERT-Large 395 MApache-2.0führt die offene Klasse im unabhängigen Benchmark an
OpenJev / openjev-sglangDiffusionGemma 26B-A4B / Qwen3.6-35B-A3Boffen, GPU-intensivEntscheidungen über Bilder (OpenJev) bzw. B200-Klasse

Sternzahlen der offenen Repos sind ein Aufmerksamkeitsmaß, nicht ein Genauigkeitsmaß: Laya lag Ende September bei über 19.000 Sternen, Von bei rund 550 — und führt trotzdem den unabhängigen Vergleich an.

Praxisregel. Wenn die Antwort eine Entscheidung ist, nimm ein System-One-Modell. Wenn die Antwort Text ist, nimm ein LLM. In echten Systemen laufen beide zusammen: LLM für offene Aufgaben, Entscheidungsmodell für die kleinen Weichen dazwischen.

4 · Wie ein Aufruf arbeitet

Ein Aufruf besteht aus zwei Feldern: state (String, Objekt oder Array von Strings) und questions (eine ID → Frage). Zu jeder Frage kommen type, instructions und — bei Choice/Score — criteria. Großes state wird einmal verarbeitet, jede Frage nur gegen den Ausschnitt, den ihre instructions benennen (Pfadschreibweise mit Backticks, z. B. `ticket.messages[0].text`).

Grenzen, die man kennen muss

GrößeWertKonsequenz
Kontext64k pro Anfrage / 32k pro Frage (Jev); mit Header bis 262kEin Request trägt beliebig viele Fragen, solange beide Grenzen passen.
Optionenbis 255 pro FrageBei sehr vielen Optionen wird zweistufig vorgegangen (erst scoren, dann wählen).
AbhängigkeitenkeineFragen sehen einander nicht. Wer eine Folgefrage braucht, macht einen zweiten Aufruf.
Ausgabenur Zahlen, kein TextKeine Begründung, keine Ausgabe zum Parsen — bewusst.

5 · Was unabhängig gemessen ist

Die Herstellerzahlen sind gut, aber Herstellerzahlen. Deshalb hier getrennt, was von wem kommt.

TYPSAFE (HERSTELLER)

70–500 ms Antwortzeit, 40–200× schneller und 40–400× billiger als Frontier-LLMs auf eigenen Workflows. Preis: 0,042 $ pro Mio. Eingabe-Token, Ausgabe gratis. Eigener Hinweis: Die Workflows stammen aus dem eigenen Team — mögliche Verzerrung.

KEV (OFFEN, SELBST VERMESSEN)

Auf neuen Quellen: Kev-27B 0,851 gegen Jev 0,857. Automatisierbar bei 5 % Fehlerbudget: 0,52–0,69 (Kev) gegen 0,70 (Jev). Kalibrierung: Kev-9B mit 2,4 % „selbstsicheren Fehlern“ besser als Jev mit 3,7 %.

UNABHÄNGIGER KLASSEN-VERGLEICH

49 Aufgaben, 869 Fälle: Jev 0,966, Von 0,704, GLiNER2 0,698, Laya 0,583 Makro-Genauigkeit. Das ist die Zahl, die man sich merken sollte: rund 26 Punkte out-of-domain-Lücke zwischen gehostet und offen.

WAHRNEHMUNG

Simon Willison: Jev ist „wirklich schnell und wirklich billig“, aber ein Rückfall in die Blackbox — man erhält nur eine Fließkommazahl, keinen Hinweis, welches Signal sie ausgelöst hat. Sein Rat: Bias und Evals ernster nehmen als bei LLM-Projekten.

Kalibrierung ehrlich lesen. Die Konfidenzformeln sind einfache Rechnungen über die Wahrscheinlichkeitsverteilung — keine gemessene Trefferquote. Wer Schwellen darauf setzt, muss die Temperatur an eigenen Labels nachjustieren (Kev liefert dafür je Prüfpunkt eine gefittete Temperatur mit).

6 · Setup-Anleitung

Es gibt zwei Wege. Sie teilen dieselbe Aufrufform; nur der Ziel-Server unterscheidet sich.

WEG A · GEHOSTET

Jev bei TypeSafe. Braucht einen API-Key aus der Konsole (Early Access/Warteliste). Wenig Aufwand, Referenzqualität, Daten gehen an den Anbieter.

WEG B · SELBST GEHOSTET

Kev offen. Keine Warteliste, keine Kosten pro Aufruf, Daten bleiben im Haus. Braucht Python 3.12/3.13, uv und je nach Größe GPU (0,8 B läuft auf dem Laptop).

Weg A · Jev (gehostet)

1 · Key holen und setzen

# Key: https://console.typesafe.ai/keys
export TYPESAFE_API_KEY="dein-key"

2 · SDK installieren (Python ≥ 3.10)

python3 -m venv .venv
.venv/bin/pip install typesafe-sdk

3 · Erster Aufruf mit dem SDK

from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

ticket = "Our API integration started returning 500 errors about 20 minutes ago."

with TypeSafeClient(model="jev-latest") as client:   # liest TYPESAFE_API_KEY
    response = client.system_one(
        state=ticket,
        questions={
            "department": Choice(
                instructions="Which team should handle this",
                criteria={"billing": "Payment issues",
                          "technical": "Bugs or integration problems",
                          "sales": "Pricing or account questions"},
            ),
            "is_urgent": Noul(
                instructions="The message conveys urgency or time-sensitivity",
            ),
        },
    )

print(response.choices["department"].choice)   # technical
print(response.nouls["is_urgent"].noul)        # 0.99

Modelle und Preise: jev-latest → jev-1.13.0, jev-preview → jev-1.14.0. Aliasse wandern bei neuen Releases — wer Schwellen getunt hat, pinnt die Versions-ID.

Weg B · Kev (selbst gehostet, ohne Warteliste)

1 · Klonen und Abhängigkeiten installieren

# Python 3.12/3.13 und uv vorausgesetzt
git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve

2 · Server starten (Modell auswählen)

# Kev-4B: guter Standard (L40S/H100 oder 32-GB-Mac)
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009

# Leichtgewichte ohne GPU:  --run jaredpalmer/kev-0.8b  (4-GB-GPU oder Apple Silicon)
# Maximale Qualität:          --run jaredpalmer/kev-27b  (80-GB-GPU, bf16)
# Sicherheitsnetz:            --device cpu  |  --device cuda  |  --device mps

3 · Mit dem TypeSafe-SDK gegen den lokalen Server (nur base_url geändert)

from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

client = TypeSafeClient(
    api_key="local",                     # beliebig, solange KEV_API_KEY nicht gesetzt ist
    base_url="http://127.0.0.1:8009",
    model="kev-latest",
)
response = client.system_one(
    state="I was charged twice. Please fix this ASAP.",
    questions={
        "billing": Noul(instructions="Is this ticket about billing?"),
        "urgency": Score(instructions="How urgent is this ticket?",
                         criteria=["can wait", "this week", "today"]),
    },
)
print(response.nouls["billing"].noul)
print(response.scores["urgency"].score)

4 · Optional: eigener HTTPS-Endpunkt (Modal, ohne lokalen GPU-Rechner)

pip install modal==1.5.5 && modal setup
curl -LO https://raw.githubusercontent.com/jaredpalmer/kev/main/skills/kev-deploy/scripts/kev_serve.py
KEV_API_KEY=$(openssl rand -hex 24) modal deploy kev_serve.py
# -> https://<workspace>--kev-api.modal.run   (skaliert bei Leerlauf auf null)

Sicherheit. Beide Server sind standardmäßig offen. Vor jeder öffentlichen Erreichbarkeit KEV_API_KEY bzw. LAYA_API_KEY setzen, sonst kann jeder mit Netzwerkzugriff Entscheidungen stellen. Für Dauerbetrieb gibt es die Temperatur-/Kalibrierungsroutine: ein paar hundert eigene Beispiele lab, Temperatur nachfitten, Schwelle messen.

Die Befehle stammen aus den offiziellen Dokumentationen (TypeSafe Quickstart, Kev-README) und wurden für diesen Bericht nicht ausgeführt — es lag kein Early-Access-Key und keine GPU vor. Die Schnittstellenform ist über beide Quellen abgeglichen.

7 · Beispiel-Request und Beispiel-Response

Ein zusammenhängendes Beispiel: eine Support-Anfrage, drei Fragen (Choice + Score + Noul) in einem einzigen Aufruf.

Request · POST /v1/systemone

curl --fail-with-body --silent --show-error \
  https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "state": "Our API integration started returning 500 errors on every request about 20 minutes ago, and we can't process any customer orders until this is fixed.",
  "model": "jev-latest",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this",
      "criteria": {
        "billing": "Payment or subscription issues",
        "technical": "Bugs or integration problems",
        "sales": "Pricing or account questions"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "How frustrated the customer appears",
      "criteria": ["Calm, just stating facts",
                   "Frustrated but civil",
                   "Very angry, strong language"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "The message conveys urgency or time-sensitivity"
    }
  }
}
JSON

Response · 200 OK

{
  "model": "jev-1.13.0",
  "answers": {
    "department": {
      "type": "choice",
      "choice": "technical",
      "confidence": 1.0,
      "probabilities": { "technical": 1.0, "billing": 0.0, "sales": 0.0 }
    },
    "frustration": {
      "type": "score",
      "score": 0.67,
      "confidence": 0.5,
      "legend": { "0": "Calm, just stating facts",
                  "1": "Frustrated but civil",
                  "2": "Very angry, strong language" },
      "probabilities": { "0": 0.33, "1": 0.67, "2": 0.0 }
    },
    "is_urgent": { "type": "noul", "noul": 0.99 }
  },
  "usage": { "input_tokens": 428, "output_tokens": 73 }
}

Wie der Code das liest

if r.answers["is_urgent"].noul >= 0.9:            # klarer Fall   -> handeln
        route(r.answers["department"].choice)
elif r.answers["is_urgent"].noul >= 0.5:        # unsicher      -> LLM/Mensch fragen
        escalate_to_reviewer()
else:                                            # kein Stressfall -> normal
        queue_standard()

Zum Vergleich · Kev lokal (dieselbe Form, anderer Träger)

curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
  "state": "Shoes arrived two weeks late and in the wrong size. Also I see two charges on my card.",
  "model": "kev-latest",
  "questions": {
    "department":  {"type": "choice", "instructions": "Which team should handle this?",
                    "criteria": {"returns": "Exchanges, refunds, wrong or damaged items",
                                 "shipping": "Delivery status, delays, lost packages",
                                 "billing": "Charges, invoices, payment problems"}},
    "escalate":    {"type": "noul",  "instructions": "Does this need urgent human attention?"},
    "frustration": {"type": "score", "instructions": "How frustrated is the customer?",
                    "criteria": ["Calm", "Frustrated", "Very angry"]}
  }}'

# Beispielantwort Kev-4B (bf16, Apple M5)
# {
#   "model": "kev-latest",
#   "answers": {
#     "department":  { "type": "choice", "choice": "returns", "confidence": 0.21,
#                      "probabilities": { "returns": 0.47, "shipping": 0.28, "billing": 0.25 } },
#     "escalate":    { "type": "noul", "noul": 0.93 },
#     "frustration": { "type": "score", "score": 1.44, "confidence": 0.34,
#                      "legend": { "0": "Calm", "1": "Frustrated", "2": "Very angry" },
#                      "probabilities": { "0": 0.0, "1": 0.56, "2": 0.44 } }
#   },
#   "usage": { "input_tokens": 101, "output_tokens": 161 },
#   "latency_ms": 495
# }

Beachte den Unterschied in der Deutlichkeit: Bei Jev ist die Abteilung eindeutig (1,0), beim lokalen Modell ist sie uneindeutig (0,47). Genau dafür gibt es confidence: sichere Fälle automatisch, den Rest an einen Menschen.

8 · Was das für den MZP bedeutet

Der MZP ist selbst ein Ort, an dem Agenten viele kleine Entscheidungen treffen könnten, für die heute ein Sprachmodell aufgerufen wird. Drei Andockpunkte, bewusst als Hypothese formuliert, nicht als Ergebnis:

Nicht dafür geeignet. Alles Generative: Text, Code, Berichte, Zusammenfassungen, offene Fragen. Dafür bleibt es beim LLM. Das Entscheidungsmodell ist ein Komplement, kein Ersatz.

9 · Grenzen und Risiken

10 · Quellen