Im vorherigen Artikel haben wir L1 (GitHub Runner) geklärt: Nach git push braucht ihr ein auditierbares Fact (Definition: Runner-Artikel · Stack-Sprache). Viele Teams installieren auf demselben Cloud Mac Claude Code und nebenbei brew install ollama — und stellen fest: die Haupt-Kodierung läuft zu 100 % über die Claude API, der Ollama-Prozess dreht Leerlauf und blockiert 6–8 GB Unified Memory.
Das heißt nicht „Ollama ist nutzlos“, sondern: Es fehlt die Antwort auf die eigentliche Frage — warum Inference eine eigene Schicht sein muss, nicht ein Anhängsel von Claude Code. Dieser Text ist keine Ollama-Installations-Enzyklopädie und wiederholt weder den 16GB-vs.-24GB-Speicherbenchmark noch den M4-vs.-GPU-Cloud-Kostenvergleich. Er definiert nur Existenzgrund und Grenzen von L2 sowie die Beziehung zu L3 (Diff; Details: Claude Code Workstation).
Wenn der GitHub Runner die Frage beantwortet „wurde der Code wirklich verifiziert?“, beantwortet Ollama: „welche Token müssen auf dem eigenen Cloud Mac inferiert werden?“ Merksatz: Fact vs. Inference.
Cloud Mac AI Stack · L2 in einem Satz
Runner = Execution Engine; Ollama = Inference Service; Claude Code = Agent.
Ergebnisse: Fact, Inference, Diff. Entscheidend auf L2 ist nicht das Modell, sondern Inference als langfristig aufrufbarer Inference Service (optional).
L2 im Stack
L3 beantwortet „wie ändere ich das Repo?“ L1 „kann es gebaut, signiert und ausgeliefert werden?“ L2 „welche Inferenz-Token dürfen den eigenen macOS-Knoten nicht verlassen?“ Kein Ersatz für Claude — eine zweite Inferenz-Pipeline auf dem Cloud Mac.
L2-Ergebnis: Was ist Inference?
Im Cloud Mac AI Stack schichten wir nach Ergebnis, nicht nach Tool-Marke (Kette: Runner · Stack-Sprache):
Merksatz · fünf Ergebnisse (≠ Aufrufreihenfolge) Context → Inference → Diff → Fact → Workflow (MCP) (Ollama u. a.) (Claude Code) (Runner) (OpenHands) Fünf-Ebenen-Diagramm: Komponenten L0–L5; Ergebniskette stellt Inference neben Context/Diff/Fact/Workflow — kein „Querschnitts-Patch“
Inference bedeutet hier: Modell-Forward in einem von euch kontrollierten macOS-Prozess — Prompt oder Embedding rein, Completion oder Vektor raus, ohne Drittanbieter-Inferenz-API (oder API nur auf L3-Hauptpfad, L2 für zwingend lokale Token). Ollama ist die häufigste L2-Implementierung, nicht die einzige; Core ML und MLX decken Teile ab — Ollama bietet für viele Teams das einheitlichere Modell- und Betriebsmodell als L2-Standard.
L2-Form: Inference Service — nicht gelegentlich ollama run
Nur „Inference“ zu sagen, klingt noch nach „noch ein lokales Modell-Tool“. Im Stack zählt die Form — jede Ebene hat eine langfristige Systemrolle:
| Ebene | Komponente | Form | Ergebnis |
|---|---|---|---|
| L1 | GitHub Runner | Execution Engine | Fact |
| L2 | Ollama (u. a.) | Inference Service | Inference |
| L3 | Claude Code | Agent | Diff |
Der Unterschied zwischen ollama run qwen3:8b und ollama serve plus Health Check plus Cron entspricht „Test per SSH“ vs. „Runner lauscht auf push“:
ollama run → einmalige Inferenz am Terminal (wie Probelauf) Inference Service → Port 11434 dauerhaft, Modell pinbar, Runner / Skripte / Agent rufen wiederholt ab
Auf L2 zählt nicht das Modell, sondern Inferenz als langfristig aufrufbarer Service. Modelle wechseln; Schnittstelle, Aufrufer, Schichtplan und Observability bleiben im Stack verankert.
Warum Inference L2 bleibt — nicht Teil von Claude Code
„Ist die Claude API nicht auch Inferenz?“ — Ja. Der Stack trennt aber nach Ergebnis, nicht nach „gibt es ein Neuronales Netz?“
Claude Code erzeugt Diff — welche Dateien, welcher Patch im PR. Inference erzeugt Token — beliebiger Modell-Forward als Text oder Vektor. Diff ist nur ein Token-Anwendungsfall.
Dazu gehört Inference, das nicht in den Kodierungs-Agent-Hauptpfad gehört:
- Log-Zusammenfassung, Klassifikation, Review, Routing
- Embedding, RAG, Rerank
- Agent-Gedächtnis, Wissensbasis-Pflege
- Nacht-Batch, geplanter Tagesbericht
Die Relation:
Claude Code ⊂ Anwendungsfälle von Inference nicht: Inference ⊂ Claude Code
L2 ist eigenständig, weil auf einem Cloud Mac mehrere Inferenz-Pipelines parallel laufen: L3 per API für Diff, L2 lokal für zwingend private Token. Inference in Claude Code zu falten, erzeugt den Leerlauf-Ollama: „Claude installiert = Inferenzschicht fertig.“
Ollama vs. Claude Code: kein Entweder-oder
Suchanfragen wie „Ollama oder Claude Code“ stellen im Stack die falsche Frage — unterschiedliche Ergebnisse, kein Ersatz.
| Dimension | Claude Code (L3) | Ollama (L2) |
|---|---|---|
| Ergebnis | Diff | Inference |
| Form | Agent (Kodierung on demand) | Inference Service (24/7 möglich) |
| Compute | meist Claude API | lokal (localhost:11434 u. a.) |
| Typische Jobs | Kodierung, Repo-Änderung, Patches | Zusammenfassung, Embedding, Klassifikation, Nacht-Batch, Compliance-Teiljobs |
| Arbeitsweise | on demand: Agent an → Inferenz; weg → Hauptpfad pausiert | dauerhaft: Prozess 24/7, Cron / Sidecar |
| Im Stack | Hauptpfad (Code ändern) | Teiljobs & private Pipeline (nicht vor L3 nötig) |
Praxis: Kodierung → Claude Code; „welche Token dürfen nicht raus, was läuft zeitgesteuert?“ → Ollama. Speicher-Scheduling auf einem Host: L2-Q03 Fortsetzung; hier nur: kein Entweder-oder.
Modell-Spielzeug vs. private Inferenzschicht
Derselbe Befehl ollama run qwen3:8b — zwei Mindsets, zwei Architektur-Ergebnisse:
| Dimension | Modell ausprobieren | L2 · Inference Service |
|---|---|---|
| Ziel | Prompts testen, tok/s, Screenshots | feste Last: Compliance-Summary, Log-Klassifikation, Embedding, Nacht-Batch |
| zu CI | kein Bezug | versetzt zu L1 (CI tags, Inferenz nachts), gemeinsames L0-Speicherbudget |
| zu L3 | „lokal oder Claude“ | parallel: Kodierung API, Teiljobs localhost:11434 |
| Erfolg | Modell antwortet | SLA: Latenz, Modell-Pin, Alarm bei Ausfall, Token bleiben on-prem |
| Hardware | Deckel zu → Stopp | Cloud Mac 24/7: Service mit Runner / Agent beobachtbar |
Kurz: Spielzeug fragt „läuft es?“; L2 fragt „was, wann, wer konsumiert den Output?“ Ohne Workload, der private Inference braucht, L2 weglassen — nicht „vollständigen Stack“ mit Leerlauf-Ollama kaufen.
L2 mit L1 / L3: Aufgabenteilung
Die drei Ebenen, die Teams vermischen:
| Ebene | Komponente | Output | Frage |
|---|---|---|---|
| L1 | GitHub Runner | Fact | Baut, testet, archiviert dieser Commit? |
| L2 | Ollama (u. a.) | Inference (via Inference Service) | Welche Inferenz muss lokal laufen und ist für Runner / Agent wiederholt aufrufbar? |
| L3 | Claude Code | Diff (Agent) | Wie soll das Repo geändert werden? (meist Claude API) |
L2 erzeugt weder Diff noch Fact. Kein grünes PR allein, kein Ersatz für xcodebuild. Typisch: Claude Code ändert → Runner verifiziert → Step oder Sidecar ruft Ollama für Log-Summary, Muster-Matching, private Embeddings — Output landet in Context (L4) oder Review, nicht als „Build OK“.
L2 im Fünf-Ebenen-Bild: Ebene ≠ Aufrufreihenfolge
Gemeinsames Diagramm: Runner · Fünf Ebenen. Ollama unter Claude Code = Inference trägt private Compute-Kapazität, nicht „erst ollama serve, dann Claude Code“.
Auszug · vollständiges Diagramm im Runner-Artikel
Claude Code L3 · Diff
↑ parallel, keine Abhängigkeit
Ollama L2 · Inference Service (optional)
↑
GitHub Runner L1 · Fact
↑
Cloud Mac L0 · Infrastruktur
Claude API und Ollama koexistieren — API für Diff-Hauptpfad, Ollama für lokale Inference. Das ist nicht „lokales Modell ersetzt Claude“, sondern die Grenze zwischen Cloud Mac AI Stack und All-in-One-Chat-Produkten.
Jenseits Compliance: Dauer-Inferenz auf L2
L2 wird oft nur für Finanz / Medizin / Enterprise geschrieben — Compliance ist ein starkes Signal, aber viele Nutzer sind Einzelentwickler, AI-Gründer, kleine Teams ohne Compliance-Ticket und brauchen L2 trotzdem.
Der Unterschied ist die Arbeitsform:
Claude Code (L3) · on demand Agent an → Inferenz läuft Agent aus → Hauptpfad-Inferenz endet Ollama (L2) · 24/7 möglich Prozess dauerhaft → Cron / Sidecar jederzeit unabhängig vom Terminal
Das sind keine Agent-Chats, kein CI, kein tägliches Coding — aber echte Dauer-Inferenz-Dienste, z. B.:
- stündliche Aufbereitung von Runner- / App-Logs
- nächtlicher Embedding-Rebuild, Wissensbasis-Pflege
- Tagesberichte, Anomalie-Klassifikation, Routing-Entwürfe
- Context (L4) aktualisieren, während Claude Code offline ist
Notebook mit geschlossenem Deckel stoppt das — schwer als Infrastruktur zu behandeln. Mit L1 versetzt: tags Fact, nachts Inference — für kleine Teams oft realistischer als „noch eine GPU-Cloud“, wenn L2 als Service betrieben wird, nicht als Terminal-Spielzeug.
Lokal kann, Cloud Mac kann betreiben
„Mein Mac mini kann auch brew install ollama — warum Cloud Mac?“ — Stimmt: lokal = ausführen. Hier geht es um betreiben als Infrastruktur.
| Dimension | Lokaler Mac / Notebook | Cloud Mac (L0) |
|---|---|---|
| Verfügbarkeit | Deckel, Sleep, Reise → Stopp | 24/7, fester Egress |
| zum Stack | Ollama oft Einzelpunkt | mit Runner, Claude Code beobachtbar, Schichtplan |
| L2-Form | oft ollama run |
Inference Service: Health Check, Modell-Pin, Sidecar / Cron |
| Abhängige | meist nur du | CI, Agent, Cron, Team-Skripte |
Ollama existiert nicht wegen Cloud Mac — Cloud Mac macht aus Ollama einen 24/7-Inference Service, den Runner und Agent gemeinsam nutzen. Sonst wirkt der Text wie „nur Ollama-Werbung“, nicht wie private Inferenz im Cloud Mac AI Stack.
L0-Grenzen: Cloud Mac vs. lokaler Mac AI Workstation. Keine Miet-Parameter hier — nur: L2 gehört auf einen „betreibbaren“ Knoten.
Welche Workloads an L2 hängen
Signale, Ollama als L2-Infrastruktur zu behandeln (nicht Demo):
- Compliance / Air-Gap — Code und Logs dürfen auf Cloud Mac, Inferenz-Requests nicht in öffentliche APIs; L2 für entkoppelte Teiljobs (Klassifikation, Summary, PII-Erkennung).
- Embedding / Rerank — CodeGraph oder RAG braucht gepinnte lokale Vektormodelle statt API-Embeddings mit unkontrolliertem Datenpfad.
- hochfrequent, klein, batchfähig — z. B. nächtliche CI-Log-Klassifikation; 7B–14B quantisiert auf Apple Silicon oft ausreichend (Vergleich: fester Knoten vs. GPU-Stunde).
- versetzt zu L3 — tags Claude Code + Runner voll; nachts Batch-Inferenz statt 24GB „alles gleichzeitig voll“.
- Schnellpfad in Multi-Agent-Setups — große Änderungen Claude; Routing, Klassifikation, Entwürfe lokal 8B (ähnliche Aufteilung bei Desktop-Agenten, siehe OpenHuman).
Umgekehrt: nur iOS-Lieferung, Kodierung nur Claude API, keine geplanten lokalen Inferenz-Jobs → L2 nach L1 Runner — erst push → Fact, dann private Inference.
Lesereihenfolge: Runner → Ollama → Claude Code
Serienleser in Ergebnis-Reihenfolge:
- L1 · Fact — GitHub Runner Execution Engine: baut und testet nach
pushwirklich? - L2 · Inference Service — dieser Text: welche Token auf Cloud Mac bleiben und als Service aufgerufen werden.
- L3 · Diff — Claude Code Workstation: Repo-Änderung (meist API).
Basis: Cloud Mac vs. lokaler Mac. Context (L4) und CodeGraph schließen später an L2-Output an.
Typischer Irrtum: Ollama installiert, Stack nur API
- Auf Cloud Mac
brew install ollama, zwei Modelle — „AI-Stack komplett“. - Alltag: 100 % Claude Code + Anthropic API; Ollama eine Woche ohne Skript- oder Agent-Aufruf.
- Unified Memory durch untätige Modelle belegt; Claude Code und Runner kämpfen um Rest — Swap steigt (Zahlen: 16GB vs. 24GB).
- Frage: „Warum Cloud Mac?“ — L0 ist nur Hardware, L2-Workload fehlt.
Fix: nicht noch ein GUI, sondern 1–2 Pipelines, die L2 erzwingen (z. B. nur CI-Fehler-Logs an Ollama; nur Embeddings über nomic-embed-text), Modell-Pin, Health Check auf 11434. Parallel-Schichtplan in L2-Q03 · Memory Scheduling.
Wer L2 überspringen kann
| L2 sinnvoll (Ollama auf Cloud Mac) | L2 zuerst überspringen |
|---|---|
| Compliance: Inferenz bleibt on-prem / Air-Gap-Teiljobs | Kodierung und Review nur Claude API |
| eigenes RAG / CodeGraph mit lokalen Embeddings | kein Vektorindex, kein lokaler Batch |
| 7B–14B für häufige Kleinstjobs, API-Kosten senken | nur gelegentlich chatten / Modell testen |
| Speicher mit L1 versetzt (CI tags / Inferenz nachts) | nur Claude Code, kein Runner, keine Pipeline |
| 24/7 Logs, Embeddings, Tagesberichte (kleine Teams) | kein Cron / Sidecar ruft lokales Modell ab |
Zu bereits veröffentlichten Benchmarks (hier nicht wiederholt)
Mehrere Ollama-Nahe-Artikel — klare Rollen:
- 16GB vs. 24GB — Speicher und Swap gemessen; „welche Maschine“, nicht „wo sitzt Ollama im Stack“.
- M4 vs. GPU-Cloud — Rechnung und Skalierung; dieser Text preist nicht.
- Core ML — Apple-nativer Inferenz-Pfad; parallel zu Ollama, anderer Runtime.
- Claude Code Workstation — Kodierungserlebnis; hier L2 neben API-Kodierung.
Rollout: Fact, dann Inference
Wie Runner · Einführungsreihenfolge empfehlen wir:
- L0 — Cloud Mac mit dauerhaftem macOS.
- L1 — Runner, reproduzierbares
push → grün/rot. - L2 — Ollama nur für definierte private Inference-Pipelines (dieser Text).
- L3–L5 — Claude Code, MCP, OpenHands nach stabilem Fact + optional Inference.
L2 vor L1: lokale Summary läuft, xcodebuild scheitert weiter auf Linux — Inference ersetzt kein Fact.
L2-Serie
Dieser Text ist L2-Grundlage (Position und Grenzen). Folge:
| Teil | Thema | Status |
|---|---|---|
| ① · dieser Text | Ollama als private Inferenzschicht (Inference) | Veröffentlicht |
| ② · Veröffentlicht | Auf dem Mac mini AI-Workloads planen: Swap mit Ollama, Claude Code und GitHub Runner vermeiden | Veröffentlicht |
| ③ | Modell-Pin, Health Checks, Ollama-Aufruf aus CI | Geplant |
Fünf-Ebenen-Gesamtübersicht: Cloud Mac AI Stack · Fünf Ebenen.
FAQ
Claude API ist auch Inferenz — warum eigene Inference-Schicht?
Claude Code liefert Diff; L2 liefert Token (Summary, Embedding, Batch). Claude Code ⊂ Inference-Anwendungen, nicht umgekehrt.
Ollama und Claude Code — Entweder-oder?
Nein. Kodierung L3 API; zeitgesteuerte / lokale Inferenz L2 — Vergleichstabelle.
Ollama vor Claude Code Pflicht?
Nein. L2 optional, parallel zu L3.
L2 ohne Compliance?
Bei 24/7-Inferenz (Logs, Embeddings, Tagesberichte) lohnt es sich auch für kleine Teams; nur Modell-Spielzeug → überspringen.
Mac mini kann Ollama — warum Cloud Mac?
Lokal ausführen; Cloud Mac betreiben als Inference Service — 24/7, gleicher Stack, Schichtplan. Siehe lokal vs. Cloud Mac.
Ollama und Runner — Reihenfolge?
Zuerst L1, dann L2. Diagramm = Verantwortung, nicht Boot-Reihenfolge.
Unterschied zu 16GB vs. 24GB?
Hier Stack-Position; Speicher: 16GB vs. 24GB; Kosten: M4 vs. GPU-Cloud.
L2-Serie · Fortsetzung
Auf dem Mac mini AI-Workloads planen: Swap mit Ollama, Claude Code und GitHub Runner vermeiden
L2-Q03 · Memory-Scheduling-Schicht: Scheduling-Lösungen für Swap und träge CI — inkl. 30-Sekunden-Runbook.
L2-Q03 · AI Workload Scheduling lesen