Was ist BAML?
BAML (Basically A Made-up Language) ist eine Open-Source-Sprache von Boundary, einem Start-up aus Seattle, mit der man LLM-Aufrufe als typisierte Funktionen schreibt. Du deklarierst Eingaben, Ausgabetyp und Prompt in einer .baml-Datei; ein Generator schreibt einen Client für deine Anwendung, und ein Parser in Rust repariert die Antwort des Modells, bis sie zum deklarierten Typ passt.
Das Projekt steckt mitten in einer Aufspaltung. BAML v0, inzwischen als Legacy-DSL bezeichnet, ist das Werkzeug für strukturierte Ausgaben, das die meisten kennen: Die Pakete baml-py und @boundaryml/baml in Version 0.226.3 erzeugen Clients für Python, TypeScript, Ruby und Go. BAML v1, ausgeliefert als baml-language-Releases mit fast täglichen Builds, ist eine eigenständige Allzwecksprache für Agenten, die die Dokumentation als öffentliche Beta und die Website als Vor-1.0-Stand beschreibt.
Der Code steht unter Apache-2.0 und läuft lokal. Boundary will für BAML Cloud Geld verlangen, einen gehosteten Dienst für Traces und Team-Steuerung, der am 1. November 2026 weder gestartet war noch Preise veröffentlicht hatte.
Lohnt sich BAML?
BAML ist das stärkste Argument dafür, Prompts als typisierten Code statt als Strings zu behandeln, und 2026 ist ein ungünstiges Jahr für den Einstieg. Die Grundidee trägt: Eine Funktion in einer .baml-Datei deklariert ihren Ausgabetyp, der generierte Client ruft das Modell auf, und Schema-aligned Parsing korrigiert abschließende Kommas, fehlende Anführungszeichen und halbfertige Objekte, statt sie abzulehnen. Boundarys eigener Benchmark mit 1,000 Fällen aus dem Berkeley Function Calling Leaderboard pro Modell sah gpt-4o-mini mit dem Parser bei 92.4% gegenüber 19.8% mit nativem Function Calling. Die Zahlen sind Eigenangaben und beruhen auf Modellen aus dem Jahr 2024, erklären aber, warum Teams mit günstigen Modellen es mögen.
Ungünstig ist die Aufspaltung. Release 0.225.0 benannte Anfang August 2026 die bestehende Linie in BAML v0, die Legacy-DSL, um, und Boundarys Arbeit wanderte zu BAML v1, einer eigenen Sprache mit Green Threads, typisierten Fehlern und eingebautem Test-Framework. v0 erscheint weiter (baml-py 0.226.3 kam am 28. Oktober), doch README, Quickstart und Nightly-Builds verweisen alle auf v1. Die v1-Toolchain ging von 0.21.0 am 8. Oktober auf 0.23.0 am 26. Oktober, und allein die Notizen zu 0.21.0 listen 13 inkompatible Änderungen auf, von Map-Schlüsseln in Anführungszeichen bis zu entfernten Tracing-APIs. v1 tauscht außerdem das Python-Paket aus, von baml-py zu baml-bridge, und Boundary pflegt ein eigenes Repository mit einem Migrations-Kit.
Im Alltag sind die Werkzeuge der Grund für BAML. Die VS-Code-Erweiterung erzeugt den Client beim Speichern neu und öffnet einen Playground, in dem du einen Prompt gegen Testeingaben laufen lässt, bevor du Anwendungscode schreibst; promptfiddle.com macht dasselbe im Browser. v0 spricht nativ mit Anthropic, OpenAI (einschließlich der Responses API), Azure OpenAI, Google AI, Vertex AI und AWS Bedrock sowie über einen OpenAI-kompatiblen Client mit Ollama, vLLM, OpenRouter, Groq und weiteren, wobei Fallback-, Round-Robin- und Retry-Regeln direkt neben dem Prompt deklariert werden. Verglichen mit Pydantic AI, Instructor oder Outlines, bei denen du in Python bleibst, kostet das einen neuen Dateityp, einen Codegenerierungsschritt und eine Sprache, die deine Kollegen lernen müssen.
Die Datenschutz-Voreinstellungen verdienen einen genauen Blick. Boundarys Preisseite sagt, die Toolchain kontaktiere die Server des Unternehmens nicht, doch die CLI sendet standardmäßig anonyme Nutzungsstatistiken: den Befehlsnamen, die BAML-Version, Betriebssystem und CPU-Angaben, eine zufällige Geräte-ID und einen gesalzenen Hash des Projektverzeichnisses, aber keine Prompts, keinen Code und keine Schlüssel. baml telemetry disable oder DO_NOT_TRACK=1 schaltet das ab. Das Laufzeit-Tracing ist ein eigener Schalter, steht standardmäßig auf medium und zeichnet HTTP-Bodies lokal auf; zu Boundary hochgeladen wird erst, wenn du dich anmeldest oder BOUNDARY_API_KEY setzt.
Ein Team mit funktionierenden Extraktions-Pipelines auf v0 gewinnt wenig, wenn es vor Version 1.0 von v1 umsteigt. Ein neues Projekt steht vor der schwierigeren Wette: In v1 steckt ein nach eigener Aussage kleines Team seine Aufmerksamkeit, das Repository hat 366 offene Issues und Pull Requests, und BAML Cloud, der kostenpflichtige Teil, hatte am 1. November 2026 keinen veröffentlichten Preis, sodass niemand die gehostete Observability bisher kalkulieren kann.
Wo es sich lohnt
Ein Python-Datenteam bei einem Versicherungsmakler
Typisierte Felder aus Tausenden Schadensmeldungen per E-Mail am Tag ziehen
Den Schadensfall als BAML-Klasse definieren, im Playground Tests aus echten E-Mails bauen und den generierten Pydantic-Client aus der bestehenden Pipeline aufrufen. Der Parser rettet Antworten, die eine strenge JSON-Prüfung ablehnen würde, und macht damit ein günstigeres Modell tragfähig; die Kosten sind Modell-Tokens und das Festpinnen von baml-py.
Ein TypeScript-Produktteam, das einer SaaS-App KI-Funktionen hinzufügt
Prompts reviewbar und das Modell austauschbar halten
Prompts liegen in .baml-Dateien, die wie jeder andere Code reviewt werden, und ein Fallback-Client wechselt von OpenAI zu Anthropic, wenn ein Aufruf scheitert. Die Client Registry kann einen Teil des Traffics, etwa 10%, an ein Kandidatenmodell schicken. Keine Lizenzkosten; das Risiko ist, dass sich Boundarys Entwicklung jetzt auf v1 konzentriert.
Eine Engineering-Managerin in einem Start-up mit 20 Leuten, das seinen Agenten-Stack auswählt
Entscheiden, ob neue Agenten auf BAML v1 entstehen sollen
Mit einer Sprache vor Version 1.0 planen: Die v1-Toolchain lieferte im Oktober 2026 drei Minor-Releases (0.21.0, 0.22.0 und 0.23.0), und ihr Python-Paket baml-bridge ersetzt baml-py. Gehostetes Tracing hat keinen veröffentlichten Preis, also sind lokale Traces heute die einzige Option, die sich kalkulieren lässt.
Bevor du dich festlegst
- Einrichtung
- v0: pip install baml-py (oder npm @boundaryml/baml), danach schreibt baml-cli generate einen Ordner baml_client; die VS-Code-Erweiterung erzeugt ihn beim Speichern neu. v1: brew install baml oder das Installationsskript, baml init, dann baml run main; baml agent install fügt Anleitungen für Claude Code und Codex hinzu.
- Integrationen
- v0-Anbieter: Anthropic, OpenAI und OpenAI Responses, Azure OpenAI, Google AI, Vertex AI und AWS Bedrock, dazu Ollama, vLLM, LM Studio, OpenRouter, Groq, LiteLLM und weitere über openai-generic. v0 erzeugt Clients für Python, TypeScript, Ruby und Go; v1 wird aus Python und TypeScript aufgerufen, mit frühen SDK-Repositories für Go und Swift.
- Daten und Datenschutz
- Prompts gehen nur an die Anbieter, die du konfigurierst. Die CLI sendet standardmäßig anonyme Statistiken (Befehl, Version, Geräteangaben, eine zufällige ID); abschalten mit baml telemetry disable oder DO_NOT_TRACK=1. Laufzeit-Traces samt HTTP-Bodies werden lokal aufgezeichnet und nur mit Boundary-Login oder BOUNDARY_API_KEY hochgeladen. Die Standard-Logstufe info von v0 gibt jeden Prompt und jede Rohantwort im Terminal aus. Auf GitHub sind keine Sicherheitshinweise veröffentlicht.
- Kosten im großen Maßstab
- Sprache und Toolchain sind unter Apache-2.0 kostenlos, die Rechnung besteht also aus Modell-Tokens, und die Reparatur durch den Parser kann ein günstigeres Modell die Arbeit machen lassen. BAML Cloud für gehostete Observability und Team-Steuerung ist angekündigt, aber ohne Preis.
- Grenzen
- 366 offene Issues und Pull Requests; v1 ist vor Version 1.0 mit häufigen inkompatiblen Änderungen; die v0-Dokumentation ist als Legacy markiert; Boundarys Parser-Benchmark ist eine Eigenangabe auf Modellen aus dem Jahr 2024.
Was gut ist
- Schema-aligned Parsing macht aus fehlerhaftem JSON typisierte Werte
- Der Playground führt Prompts gegen Tests direkt in VS Code aus
- Fallback-, Round-Robin- und Retry-Regeln pro Client deklariert
- Apache-2.0; läuft lokal ohne Konto
Was nicht
- Aufgespalten in Legacy-v0 und v1 vor Version 1.0
- Allein die Notizen zu v1 0.21.0 listen 13 inkompatible Änderungen
- Anonyme CLI-Statistiken standardmäßig an
- Eine neue Sprache und ein Codegen-Schritt für das ganze Team
- BAML Cloud nicht gestartet und ohne Preis
Am besten für
Teams, die in großem Umfang typisierte Daten aus LLMs extrahieren, oft mit günstigeren Modellen, und einen Codegenerierungsschritt sowie eine schnell wechselnde Toolchain in Kauf nehmen.
Alternativen zu BAML
BAML: häufige Fragen
- Lohnt sich BAML?
- BAML macht LLM-Ausgaben verlässlich typisiert, aber heute wählst du zwischen einer Legacy-DSL und einer neuen Sprache, die noch alle paar Wochen bricht. Wir bewerten es mit 3.8 von 5.
- Was kostet BAML?
- Kostenlos und Open Source unter Apache-2.0; die Toolchain läuft lokal ohne Konto. BAML Cloud (gehostete Observability und Team-Steuerung) ist angekündigt, Preise sind nicht veröffentlicht.
- Welche Nachteile hat BAML?
- Aufgespalten in Legacy-v0 und v1 vor Version 1.0; Allein die Notizen zu v1 0.21.0 listen 13 inkompatible Änderungen; Anonyme CLI-Statistiken standardmäßig an; Eine neue Sprache und ein Codegen-Schritt für das ganze Team; BAML Cloud nicht gestartet und ohne Preis.
- Für wen eignet sich BAML?
- Teams, die in großem Umfang typisierte Daten aus LLMs extrahieren, oft mit günstigeren Modellen, und einen Codegenerierungsschritt sowie eine schnell wechselnde Toolchain in Kauf nehmen.
- Was kostet BAML für ein Team oder im Produktivbetrieb?
- Sprache und Toolchain sind unter Apache-2.0 kostenlos, die Rechnung besteht also aus Modell-Tokens, und die Reparatur durch den Parser kann ein günstigeres Modell die Arbeit machen lassen. BAML Cloud für gehostete Observability und Team-Steuerung ist angekündigt, aber ohne Preis.
- Ist BAML sicher für Firmendaten?
- Prompts gehen nur an die Anbieter, die du konfigurierst. Die CLI sendet standardmäßig anonyme Statistiken (Befehl, Version, Geräteangaben, eine zufällige ID); abschalten mit baml telemetry disable oder DO_NOT_TRACK=1. Laufzeit-Traces samt HTTP-Bodies werden lokal aufgezeichnet und nur mit Boundary-Login oder BOUNDARY_API_KEY hochgeladen. Die Standard-Logstufe info von v0 gibt jeden Prompt und jede Rohantwort im Terminal aus. Auf GitHub sind keine Sicherheitshinweise veröffentlicht.
- Was sind die besten Alternativen zu BAML?
- Die nächsten Alternativen, die wir getestet haben, sind Pydantic AI, Guardrails AI und LangChain.
Antworten geprüft am 1. Nov. 2026.
