← Alle Lessons | Der Stack hinter einer KI-App

Der Stack hinter einer KI-App

Schritt 1 von 8

Der Stack auf einen Blick

Eine moderne KI-App ist ein Stapel benannter Werkzeuge. Hier ist der ganze Stack, mit dem echte Apps gebaut werden, auf einen Blick.

Lesson-Header: der Querschnitt einer geschichteten Maschine, viele Lagen übereinander

Kein Zauber, ein Stapel Werkzeuge

Du chattest mit einer KI-App, und es fühlt sich an wie Magie. Es ist ein Stapel aus konkreten, benannten Werkzeugen, jedes mit einer Aufgabe. Diese Lesson nennt sie beim Namen, Schicht für Schicht, so wie eine echte App tatsächlich gebaut wird.

Wir gehen von der Oberfläche bis zu den Daten. An jeder Schicht steht das Werkzeug, was es tut und welche Alternativen es gibt. Kein Code, nur die Landkarte und die Namen, damit du am Ende deinen eigenen Stack zusammenstellen kannst.

💡
Offen gesagt: Das ist mein aktueller Stack, Stand 2026, nicht das einzig Richtige. Ich zeige ihn als ein durchdachtes Beispiel, dessen Teile zusammenpassen. An jeder Schicht nenne ich Alternativen, damit du am Ende deinen eigenen Stack zusammenstellst, statt meinen zu kopieren.
Schicht Die Werkzeuge
FundamentNext.js, React, TypeScript, Vercel, Tailwind + shadcn/ui
AI-ToolkitAI SDK, AI Gateway, AI Elements, Streamdown
AgentenAI-SDK-nativ oder Mastra, Werkzeuge, MCP
Kontext & MemoryGeschichteter Prompt, mem0
BackendNeon (Postgres) + Drizzle, Auth, Storage
Blick von außenToken- und Kosten-Messung, Logging, Evals
💡
Ein Ökosystem trägt hier die Hauptlast: der Vercel-AI-Stack aus AI SDK, Gateway, AI Elements und Streamdown. Vier Werkzeuge, die ineinandergreifen. Das ist das Herz, gleich in Step 3.
Takeaway
Regel #1: Eine KI-App ist ein Stapel benannter Werkzeuge. Du musst nicht alle selbst schreiben, aber du solltest wissen, welches Werkzeug welche Schicht abdeckt.
Schritt 2 von 8

Das Fundament

Bevor irgendetwas KI ist, braucht es eine App. Das Fundament ist normales, modernes Web-Handwerk.

Step-Header: das robuste Gehäuse einer Maschine, das solide Fundament

Die Basis, auf der alles steht, ist eine ganz normale moderne Web-App. Hier ist noch nichts KI-spezifisch. Wir gehen es kurz durch, damit klar ist, worauf die spannenden Schichten aufsetzen.

Werkzeug Rolle
Next.jsDas App-Framework: Seiten, API-Routen, Server und Client in einem
ReactDie UI-Bibliothek für die Oberfläche
TypeScriptTypsicherheit, fängt Fehler ab, bevor die App läuft
VercelDas Hosting, auf das Next.js zugeschnitten ist
Tailwind + shadcn/uiStyling und fertige, eigene UI-Bausteine

Ein Wort zu shadcn/ui, weil das Prinzip gleich wiederkommt: Es ist keine Bibliothek, die du importierst. Die Komponenten werden in deinen Code kopiert, sie gehören dir und du darfst sie ändern. Genau dieselbe Idee triffst du im nächsten Step bei AI Elements wieder.

💡
Diese Schicht ist austauschbar. Next.js auf Vercel ist eine starke, gut integrierte Wahl, aber die KI-Schichten darüber sitzen auf jedem modernen Framework. Das Fundament ist die am wenigsten KI-eigene Entscheidung im ganzen Stack.

Alternativen

Alternative Einordnung
TanStack StartFull-Stack-React auf Vite, maximale Typsicherheit beim Routing, nicht an Vercel gebunden
AstroContent-first (Blogs, Docs, Marketing). Genau das Fundament dieser Lessons
Remix / React RouterServer-zentriert, formschwere Apps, nah an Web-Standards
SvelteKitWenn du Svelte statt React fährst, sehr schlanke Bundles
HonoNicht das ganze Framework, sondern ein leichtes API-Framework für den Server-Teil. Läuft auf vielen Runtimes (auch Edge), Alternative zu den API-Routen von Next.js
Takeaway
Regel #2: Das Fundament ist normales Web-Handwerk. Next.js auf Vercel ist naheliegend, weil die KI-Schichten darüber genau für dieses Fundament gebaut sind.
Schritt 3 von 8

Das AI-Toolkit: vier Werkzeuge, die zusammenschnappen

Das Herz des Stacks ist ein Ökosystem aus vier Werkzeugen, die ineinandergreifen. Lern die vier, und du verstehst die meisten modernen KI-Apps.

Step-Header: mehrere präzise Werkzeuge, die zu einem Mechanismus zusammengesetzt werden

Das ist das Herzstück. Vier Werkzeuge aus einem Ökosystem, dem Vercel-AI-Stack, die füreinander gemacht sind. Wenn du diese vier verstehst, ergeben die meisten modernen KI-Apps plötzlich Sinn.

AI SDK: die Basis

Das AI SDK ist das Fundament der ganzen App-Schicht. Es gibt dir eine einheitliche Schnittstelle zu jedem Anbieter, sodass du das Modell wechseln kannst, ohne deinen Code umzuschreiben. Es liefert freien Text (streamen oder am Stück), strukturierte Ausgabe, die gegen ein Schema geprüft wird, das Aufrufen von Werkzeugen und den Agenten-Loop (mehr im nächsten Step). Auf der Oberfläche streamt sein Chat-Hook die Antwort Wort für Wort.

AI Gateway: ein Schlüssel für alle Anbieter

Das AI Gateway sitzt vor dem SDK. Statt fünf Schlüssel und fünf SDKs pro Anbieter zu jonglieren, nutzt du einen Schlüssel und schreibst das Modell als Text, etwa anthropic/claude-… oder openai/…. Dazu kommt Fallback, wenn ein Anbieter ausfällt, Lastverteilung und eine Stelle, an der du Verbrauch und Kosten siehst. Der Preis ist Durchreichung ohne Aufschlag. Optional, aber es räumt den Schlüssel-Wildwuchs weg.

AI Elements: die fertige Chat-Oberfläche

AI Elements ist ein Satz fertiger React-Komponenten für KI-Chats: Conversation, Message, PromptInput, Response, Reasoning, Sources. Wie bei shadcn/ui werden sie in deinen Code kopiert und gehören dir, keine Blackbox. Sie docken direkt an den Chat-Hook des AI SDK an. Du baust keine Chat-Oberfläche mehr von null.

Streamdown: streamende Antworten sauber rendern

Während die Antwort streamt, ist das Markdown ständig halbfertig: offene Code-Blöcke, hängendes Fett, kaputte Tabellen. Streamdown ist ein Ersatz für die übliche Markdown-Anzeige, genau dafür gebaut: Es schließt unfertige Teile sauber ab und härtet die Ausgabe ab (sichere Links und Bilder), mit Code-Highlighting, Mathe und Diagrammen eingebaut. Die Response-Komponente von AI Elements nutzt es unter der Haube.

Wie die vier zusammenschnappen

Werkzeug Job Schnappt an
AI SDKSpricht mit den Modellen, liefert den Chat-Hookdie Basis für alles
AI GatewayEin Schlüssel für viele Anbieter, Fallbacksitzt vor dem SDK
AI ElementsFertige Chat-Komponentendocken an den Chat-Hook an
StreamdownRendert streamendes Markdown sichersteckt in der Response von AI Elements
Das ist der Grund, warum dieser Stack so schnell von Idee zu App führt: Die vier sind aufeinander abgestimmt. Du klebst nicht vier fremde Bibliotheken zusammen, sie sind als Set gedacht und greifen ineinander.

Alternativen pro Werkzeug

Jedes der vier lässt sich tauschen. Das Set ist bequem, aber kein Zwang.

Werkzeug Alternativen
AI SDK (Abstraktion)Direkte Provider-SDKs oder LangChain.js. In Python ein eigenes Ökosystem, kein direktes Gegenstück
AI Gateway (Routing)OpenRouter (ein Schlüssel, hunderte Modelle), LiteLLM (Open-Source-Proxy, selbst gehostet), Portkey
AI Elements (UI)assistant-ui, CopilotKit, oder pur auf shadcn/ui bauen
Streamdown (Rendering)react-markdown mit Plugins selbst zusammenstellen
💡
Wichtig zu OpenRouter: Es ersetzt das Gateway, nicht das SDK. Du schreibst weiter AI-SDK-Code und lässt nur das Routing über OpenRouter laufen (es gibt dafür einen fertigen Anschluss). Ein Gateway und die SDK-Abstraktion sind zwei verschiedene Schichten.
Takeaway
Regel #3: Das Vercel-AI-Ökosystem ist das Herz: AI SDK (Basis), Gateway (Anbieter), AI Elements (UI), Streamdown (Rendering). Vier Werkzeuge, ein zusammenpassendes Set.
Schritt 4 von 8

Die Agenten-Schicht: AI-SDK-nativ oder Mastra

Ein Modell antwortet. Ein Agent handelt. Du baust ihn entweder direkt mit dem AI SDK oder mit einem Framework wie Mastra obendrauf.

Step-Header: ein Uhrwerk mit ausfahrbaren Werkzeug-Armen, ein Riemen läuft im Kreis

Du fragst: „Finde die neuesten Zahlen zu X und fass sie zusammen." Ein einfaches Modell würde aus seinem Training raten. Ein Agent sucht erst im Web, liest, und schreibt dann. Für diese Schicht hast du zwei konkrete Wege.

Weg 1: AI-SDK-nativ

Das AI SDK bringt den Agenten-Loop schon mit. Du gibst ihm Werkzeuge, es läuft die Schleife (Modell entscheidet, ruft ein Werkzeug, sieht das Ergebnis, entscheidet erneut), und du setzt eine Stopp-Bedingung, damit es nicht endlos kreist. Für einen Chatbot oder einen fokussierten Werkzeug-Agenten reicht das vollkommen.

⚠️
Das Stopp-Limit ist Pflicht. Ohne Stopp-Bedingung kann der Loop endlos kreisen und Tokens verbrennen. Das SDK setzt sogar von sich aus eine Obergrenze, sobald du ihm Werkzeuge gibst.

Weg 2: Mastra

Wenn du mehr brauchst als eine Schleife (mehrstufige Workflows mit Verzweigungen, strukturiertes Memory, RAG-Pipelines und Evals als feste Bausteine), greifst du zu Mastra. Das ist ein TypeScript-Agent-Framework, das auf dem AI SDK aufbaut und genau dieses Produktions-Gerüst drumherum ergänzt. Sechs Bausteine: Agenten, Workflows, Werkzeuge, Memory, RAG, Evals. Du wirfst das AI SDK nicht weg, Mastra sitzt obendrauf.

AI-SDK-nativ Mastra
Gut fürChatbot, fokussierter Werkzeug-AgentMulti-Step-Workflows, mehrere Agenten
Bringt mitLoop, Werkzeuge, Stopp-Limitzusätzlich Memory, RAG, Evals, Workflows
Aufwandwenig, alles selbst gefügtmehr Struktur, dafür fertige Bausteine

MCP: der Universal-Stecker für Werkzeuge

Beide Wege nutzen Werkzeuge, und MCP (Model Context Protocol) ist der Standard, um sie anzustecken. Stell es dir vor wie USB-C für KI-Werkzeuge: Eine Datenquelle oder ein Werkzeug, das als MCP-Server bereitsteht, kann jeder MCP-fähige Agent nutzen, ohne Sonderverkabelung. AI SDK und Mastra sind beide MCP-fähig. Ein Werkzeug einmal gebaut, überall einsteckbar.

Alternativen, vor allem in Python

Die beiden Wege oben sind TypeScript. Daneben gibt es ein ganzes Paralleluniversum, besonders in Python, wo die meisten Agent-Frameworks zu Hause sind.

Framework Ökosystem Stärke
LangChain / LangGraphPython (auch JS)Der Platzhirsch. LangGraph ist ein Orchestrierungs-Graph für zustandsbehaftete Workflows
Pydantic AIPythonTypsicher, im Stil von FastAPI, von den Pydantic-Machern
CrewAIPythonRollenbasierte Multi-Agent-Crews, schnell zum Prototyp
LlamaIndexPythonWenn RAG im Zentrum steht
LangGraph.js / VoltAgentTypeScriptGraph-Orchestrierung bzw. junges TS-Framework mit eigener Observability
Takeaway
Regel #4: Ein Agent ist ein Modell in einer Schleife mit Werkzeugen und Limit. Bau ihn direkt mit dem AI SDK, oder mit Mastra obendrauf, wenn du Workflows, Memory und Evals als Bausteine brauchst. Werkzeuge steckst du über MCP an.
Schritt 5 von 8

Kontext & Memory

Der Agent startet pro Nachricht fast bei null. Was er weiß, baut die App zusammen, und was er über Sessions behält, übernimmt eine eigene Schicht.

Step-Header: durchscheinende Briefing-Blätter werden unter einer Lampe übereinandergelegt

Der Agent nennt dich beim Namen und kennt dein Projekt. Es fühlt sich an, als würde er dich kennen. Tut er nicht. Die App stellt sein Wissen für jede Nachricht frisch zusammen, ein geschichteter Auftrag, bevor das Modell deine Frage überhaupt sieht.

Schicht im Auftrag Woher
Personafest definiert: wer der Agent ist
Werkzeugeaus der Agenten-Schicht
Memoryaus früheren Sessions
Projekt-Wissenaus den Projekt-Dateien
Deine Instruktionenvon dir
Die Fragedeine aktuelle Nachricht, ganz oben

Memory über Sessions: mem0

Der Kontext einer Nachricht ist weg, wenn der Chat endet. Für „erinnere dich nächste Woche an mich" brauchst du eine eigene Memory-Schicht. mem0 macht genau das: Es zieht wichtige Fakten über Nutzer und Verlauf heraus, speichert sie und holt die passenden in spätere Prompts zurück. Gibt es als Cloud oder selbst gehostet. Wer Mastra nutzt, bekommt Memory dort schon mitgeliefert, mem0 ist die eigenständige Variante.

Kontext ist der teuerste Hebel im ganzen Stack. Ein besseres Briefing schlägt oft einen Modellwechsel. Müll rein, Müll raus gilt hier doppelt. Wie du den Auftrag gut zusammenstellst, vertieft die Lesson Context Management.

Memory-Alternativen: von fertig bis selbstgebaut

Ansatz Werkzeuge Wann
Fertiger Dienstmem0, Zep, LettaExtraktion und Abruf out-of-the-box
Framework-MemoryMastra-MemoryWenn du ohnehin Mastra nutzt
Eigener Vektor-Storepgvector (in Postgres), Qdrant, ChromaMehr Kontrolle, den Abruf baust du selbst
DateibasiertJSON oder Markdown auf der PlatteDie kleinste Lösung, kein Embedding nötig
Takeaway
Regel #5: Kontext wird pro Nachricht gebaut. Memory ist die Schicht, die etwas über Sessions hinweg behält. mem0 ist das eigenständige Werkzeug dafür, Mastra bringt es mit.
Schritt 6 von 8

Das Backend: Daten, Auth, Storage

Gespräche, Nutzer und Dateien müssen irgendwo leben. Hier entscheidest du: alles aus einer Hand oder das beste Werkzeug pro Job.

Step-Header: ein massiver Messing-Tresor mit beschrifteten Fächern und einem schweren Schloss

Die Datenbank: Neon

Gespräche, Nutzer und Einstellungen leben in einer Datenbank. Neon ist serverless Postgres: Es fährt im Leerlauf auf null herunter, und sein Markenzeichen ist Branching wie bei Git, eine volle Kopie der Datenbank in Sekunden und für fast nichts (ideal für eine eigene Vorschau-Datenbank pro Änderung). Du sprichst mit ihr über ein ORM wie Drizzle, also typsichere Abfragen statt rohem SQL.

Auth: bündeln oder trennen

Wer kommt rein. Drei konkrete Wege. Gebündelt: Neon Auth (läuft unter der Haube auf Better Auth) speichert Nutzer und Sessions direkt in deinem Postgres, ein Dienst weniger. Eigener Anbieter: Logto, eine Open-Source-Alternative zu Auth0 (OIDC, Social-Login, SSO, MFA), selbst gehostet oder als Cloud. Selbst gebaut: mit Low-Level-Bausteinen wie arctic einen eigenen OIDC-Flow, mehr Kontrolle, mehr Arbeit.

Storage: für Dateien und Artefakte

Text gehört in Postgres, aber Dateien (Uploads, generierte Bilder, Dokumente) gehören in Objekt-Storage. Drei Optionen mit derselben Schnittstelle, du tauschst nur den Endpunkt: R2 (Cloudflare, keine Egress-Gebühren, gut wenn viel rausgeht), S3 (AWS, der reife Standard), MinIO (selbst gehostet, lokal oder im eigenen Netz). Neon hat zusätzlich Storage in einer frühen Phase, falls du es gebündelt willst.

Entscheidung Aus einer Hand Best-of-Breed
DatenbankNeonNeon
AuthNeon AuthLogto oder selbst (arctic)
StorageNeon Storage (früh)R2 / S3 / MinIO
💡
Bündeln vs. Best-of-Breed: Alles bei Neon spart Integration und Konten. Das stärkere Werkzeug pro Schicht (Neon plus Logto plus R2) gibt dir mehr Kontrolle und weniger Abhängigkeit. In der Praxis wird gemischt: Neon für die Daten, ein eigenes Auth, R2 fürs Storage.

Alternativen pro Schicht

Schicht Alternativen
DatenbankSupabase (Postgres), Turso/libSQL, PlanetScale, klassisches Postgres
Komplett-BackendSupabase oder Convex bündeln Datenbank, Auth, Storage und Realtime in einem
AuthClerk, Better Auth (Open-Source, steckt unter Neon Auth), Auth0, WorkOS, Auth.js, Supabase Auth
StorageVercel Blob, Supabase Storage, Backblaze B2
💡
Der Gegenentwurf zum Einzelteile-Backend: Plattformen wie Supabase oder Convex geben dir Datenbank, Auth und Storage aus einer Hand. Convex ist dabei kein Postgres, sondern ein eigenes reaktives Modell, das Realtime gleich mitbringt. Bequem und schnell, dafür stärker an eine Plattform gebunden.
Takeaway
Regel #6: Daten in Postgres (Neon), Dateien in Objekt-Storage (R2/S3/MinIO), Nutzer über Auth (gebündelt, Logto oder selbst). Die Leitfrage: aus einer Hand oder best-of-breed.
Schritt 7 von 8

Kosten & Evals: der Blick von außen

Jeder Schritt kostet Tokens. Ohne Messung fliegst du blind. Und eine Schicht lassen die meisten ganz weg.

Step-Header: ein Mess- und Kontrollpult mit Zeigern, das die Maschine überwacht

Die App läuft, alles wirkt gut. Dann kommt die Rechnung. Oder sie wird langsam schlechter, und niemand merkt es. Beides kommt aus derselben Lücke: Es wird nichts gemessen.

Kosten im Blick: Tokens und Caching

Jeder Modell-Aufruf und jeder Agenten-Schritt verbraucht Tokens, also Geld und Zeit. Du protokollierst Tokens, Schritte, Kosten und Antwortzeit. Ein Werkzeug wie tokenlens zählt Tokens und Kosten über verschiedene Modelle hinweg. Caching verwendet Teile wieder, die du schon geschickt hast, und senkt so die Kosten.

💡
Der Loop macht das kritisch. Ein Agent mit fünf Schritten kostet ungefähr das Fünffache eines einzelnen Aufrufs. Ohne die Schritt-Zahl in deinen Logs siehst du nie, warum die Rechnung plötzlich gesprungen ist.

Die Schicht, die fast alle weglassen: Evals

Jetzt der ehrliche Teil. Die meisten Stacks haben alles bisher Genannte und lassen eine Schicht weg: Evals. Also ein automatisches, wiederholbares Prüfen, dass der Agent nach einer Änderung weiter gute Antworten gibt. Manche Frameworks wie Mastra bringen Evals als festen Baustein mit, sonst baust du dir ein kleines Eval-Set selbst.

Das ist dieselbe Lücke wie der Sprung vom Vibe Coding zum Agentic Engineering. Eine Demo beweist, dass es einmal ging. Eine Eval beweist, dass es verlässlich geht. Ohne sie ist jede Änderung ein Glücksspiel. Tiefer dazu in Von Vibe Coding zu Agentic Coding.

⚠️
Wenn deinem Stack eine Schicht fehlt, ist es fast immer diese. Generierung ist leicht, Prüfung ist Arbeit. Genau deshalb lassen viele sie weg, und genau deshalb driften ihre Apps langsam ins Schlechte, ohne dass es jemand bemerkt.

Werkzeuge dafür

Job Werkzeuge
Tracing / ObservabilityLangfuse (Open-Source), LangSmith, Arize Phoenix
EvalsPromptfoo (Open-Source), Braintrust (managed, blockt schlechte Releases), DeepEval, Mastra-Evals
Tokens / Kostentokenlens, oder direkt im Gateway bzw. der Observability-Plattform mitgemessen
Takeaway
Regel #7: Was du nicht misst, kannst du nicht verbessern. Tokens und Kosten gehören ins Cockpit, und die Eval-Schicht ist die, die du am ehesten vergisst und am dringendsten brauchst.
Schritt 8 von 8

Dein Stack

Du kennst jetzt die Werkzeuge für jede Schicht. Die letzte Frage ist nicht welches Modell, sondern wie du den Stack zusammenstellst.

Lesson-Abschluss: die fertig zusammengebaute, laufende Maschine neben ihrer Blaupause

Die ganze Lesson in einer Bewegung: Eine Nachricht kommt über AI Elements herein, das AI SDK streamt sie, das Gateway wählt einen Anbieter, der Agenten-Loop (SDK-nativ oder Mastra) nutzt Werkzeuge über MCP, die Kontext-Schicht und mem0 sagen ihm, was er weiß, Neon und das Storage merken sich alles, und tokenlens plus Evals wachen über Kosten und Qualität.

Schicht Die Werkzeuge Mein aktueller Stack
FundamentNext, React, TS, Vercelalle
AI-ToolkitAI SDK, Gateway, AI Elements, Streamdownalle vier
AgentenAI-SDK-nativ / Mastra, MCPAI-SDK-nativ
Kontext & MemoryPrompt-Schichtung, mem0beides
BackendNeon + Drizzle, Auth, R2/S3Neon, eigenes Auth, R2
Blick von außentokenlens, Logging, EvalsKosten ja, Evals als Nächstes

Bündeln oder best-of-breed

Das ist die eigentliche Meta-Entscheidung. Ein Ökosystem (der Vercel-AI-Stack plus Neon für alles) bringt dich am schnellsten von der Idee zur App. Best-of-Breed (Mastra, Logto, R2, mem0 dort einsetzen, wo sie stärker sind) gibt dir mehr Kraft und weniger Abhängigkeit. Die meisten echten Stacks mischen beides.

Wohin als Nächstes

Wenn du … Geh zu
das mentale Modell hinter einer App brauchstWas Software eigentlich ist
vom Vibe zum verlässlichen Bauen willstVon Vibe Coding zu Agentic Coding
den Kontext gezielt aufbereiten willstContext Management
Agenten in sechs Dimensionen durchdenken willstAgent Design Space
Übung: Stell deinen Stack zusammen

Aufgabe: Nimm eine KI-App-Idee und geh die sechs Schichten durch.

  1. Nenn für jede Schicht ein konkretes Werkzeug aus dieser Lesson (z. B. Backend: „Neon plus R2").
  2. Markier, wo du bündeln würdest und wo du best-of-breed gehst.
  3. Wo du unsicher bist, ist deine nächste Lernfrage. Eine davon nimmst du dir als Erstes vor.

Zeitaufwand: ~12 Minuten

Takeaway
Das Mindset: Die Frage ist nicht „welches Modell", sondern „welcher Stack". Wer die Werkzeuge pro Schicht kennt, baut bewusst, statt alles einem Anbieter oder dem Zufall zu überlassen.
Rico Loschke

Rico Loschke

KI-Stratege & Übersetzer zwischen Tech und Business

15+ Jahre Digitalisierung, 4+ Jahre KI. Ich übersetze zwischen Technologie und Unternehmensstrategie, berate und trainiere Organisationen auf ihrem KI-Weg. Hier teile ich, was ich dabei lerne.

loschke.ai. Visionen, Konzepte, Meinungen →
unlearn.how

Diese Lessons gibt es auch als Team-Training.

Workshops, Seminare und Begleitung für Unternehmen, die KI nicht nur verstehen, sondern anwenden wollen.

Mehr erfahren →