O que é BAML?
BAML (Basically A Made-up Language) é uma linguagem de código aberto da Boundary, uma start-up de Seattle, para escrever chamadas a LLMs como funções tipadas. Você declara as entradas, o tipo de saída e o prompt em um arquivo .baml; um gerador escreve um cliente para a sua aplicação, e um parser em Rust repara a resposta do modelo até que ela se encaixe no tipo declarado.
O projeto está no meio de uma divisão. O BAML v0, agora rotulado como a DSL legada, é a ferramenta de saída estruturada que a maioria dos usuários conhece: os pacotes baml-py e @boundaryml/baml, na versão 0.226.3, geram clientes para Python, TypeScript, Ruby e Go. O BAML v1, distribuído como versões baml-language com builds quase diários, é uma linguagem de uso geral para agentes, separada, que a documentação descreve como beta pública e o site chama de anterior à 1.0.
O código é Apache-2.0 e roda localmente. A Boundary pretende cobrar pelo BAML Cloud, um serviço hospedado de traces e controles de equipe que, em 1 de novembro de 2026, não tinha sido lançado nem tinha preços publicados.
BAML vale a pena?
O BAML é o argumento mais forte para tratar prompts como código tipado e não como strings, e 2026 é um ano desconfortável para adotá-lo. A ideia central se sustenta: uma função em um arquivo .baml declara seu tipo de saída, o cliente gerado chama o modelo, e o schema-aligned parsing corrige vírgulas finais, aspas ausentes e objetos pela metade em vez de rejeitá-los. O benchmark da própria Boundary, com 1,000 casos do Berkeley Function Calling Leaderboard por modelo, colocou o gpt-4o-mini em 92.4% com o parser contra 19.8% com function calling nativo. Os números são autodeclarados e usam modelos da era de 2024, mas explicam por que equipes que rodam modelos baratos gostam dele.
O desconforto está na divisão. A versão 0.225.0, no início de agosto de 2026, rebatizou a linha existente como BAML v0, a DSL legada, e o esforço da Boundary passou para o BAML v1, uma linguagem separada com green threads, erros tipados e um framework de testes embutido. O v0 continua saindo (o baml-py 0.226.3 chegou em 28 de outubro), mas o README, o quickstart e os builds noturnos apontam todos para o v1. O toolchain do v1 foi da 0.21.0, em 8 de outubro, à 0.23.0, em 26 de outubro, e só as notas da 0.21.0 listam 13 mudanças incompatíveis, de chaves de mapa entre aspas a APIs de tracing removidas. O v1 também troca o pacote Python, de baml-py para baml-bridge, e a Boundary mantém um repositório separado de kit de migração.
No dia a dia, o atrativo são as ferramentas. A extensão do VS Code regenera o cliente ao salvar e abre um playground onde você roda um prompt contra entradas de teste antes de escrever o código da aplicação; o promptfiddle.com faz o mesmo no navegador. O v0 conversa nativamente com Anthropic, OpenAI (incluindo a Responses API), Azure OpenAI, Google AI, Vertex AI e AWS Bedrock, e com Ollama, vLLM, OpenRouter, Groq e outros por meio de um cliente compatível com OpenAI, com políticas de fallback, round-robin e novas tentativas declaradas ao lado do prompt. Comparado a Pydantic AI, Instructor ou Outlines, que mantêm você em Python, o preço é um novo tipo de arquivo, uma etapa de geração de código e uma linguagem que seus colegas precisam aprender.
Os padrões de privacidade merecem uma leitura cuidadosa. A página de preços da Boundary diz que o toolchain não contata os servidores da empresa, mas a CLI envia por padrão estatísticas de uso anônimas: o nome do comando, a versão do BAML, o sistema operacional e dados da CPU, um ID aleatório da máquina e um hash com salt da raiz do projeto, mas não prompts, código ou chaves. baml telemetry disable ou DO_NOT_TRACK=1 desliga isso. O tracing em tempo de execução é uma chave separada, vem em medium por padrão e grava corpos HTTP localmente; só envia para a Boundary quando você faz login ou define BOUNDARY_API_KEY.
Uma equipe com pipelines de extração em v0 que já funcionam tem pouco a ganhar migrando antes de o v1 chegar à 1.0. Um projeto novo enfrenta a aposta mais difícil: o v1 é onde uma equipe que se descreve como pequena concentra sua atenção, o repositório soma 366 issues e pull requests abertos, e o BAML Cloud, a parte paga, não tinha preço publicado em 1 de novembro de 2026, então ninguém consegue ainda orçar a observabilidade hospedada.
Onde ele se destaca
Uma equipe de dados em Python de uma corretora de seguros
Extrair campos tipados de milhares de e-mails de sinistro por dia
Definir o sinistro como uma classe BAML, montar testes a partir de e-mails reais no playground e chamar o cliente Pydantic gerado a partir do pipeline existente. O parser recupera respostas que uma validação JSON estrita rejeitaria, o que torna viável um modelo mais barato; o custo são os tokens do modelo e manter o baml-py fixado em uma versão.
Uma equipe de produto em TypeScript adicionando recursos de IA a um app SaaS
Manter os prompts revisáveis e o modelo substituível
Os prompts ficam em arquivos .baml revisados como qualquer outro código, e um cliente de fallback passa da OpenAI para a Anthropic quando uma chamada falha. O client registry pode mandar uma parte do tráfego, como 10%, para um modelo candidato. Sem custo de licença; o risco é que o desenvolvimento da Boundary agora se concentra no v1.
Uma gerente de engenharia em uma start-up de 20 pessoas escolhendo sua stack de agentes
Decidir se vale construir novos agentes sobre o BAML v1
Planejar para uma linguagem anterior à 1.0: o toolchain do v1 lançou três versões menores em outubro de 2026 (0.21.0, 0.22.0 e 0.23.0) e seu pacote Python, baml-bridge, substitui o baml-py. O tracing hospedado não tem preço publicado, então os traces locais são hoje a única opção que dá para orçar.
Antes de decidir
- Configuração
- v0: pip install baml-py (ou npm @boundaryml/baml), depois baml-cli generate escreve uma pasta baml_client; a extensão do VS Code a regenera ao salvar. v1: brew install baml ou o script de instalação, baml init e então baml run main; baml agent install adiciona orientações para Claude Code e Codex.
- Integraç ões
- Provedores do v0: Anthropic, OpenAI e OpenAI Responses, Azure OpenAI, Google AI, Vertex AI e AWS Bedrock, além de Ollama, vLLM, LM Studio, OpenRouter, Groq, LiteLLM e outros via openai-generic. O v0 gera clientes para Python, TypeScript, Ruby e Go; o v1 é chamado a partir de Python e TypeScript, com repositórios iniciais de SDK para Go e Swift.
- Dados e privacidade
- Os prompts vão só para os provedores que você configura. A CLI envia estatísticas anônimas por padrão (comando, versão, dados da máquina, um ID aleatório); para desligar, baml telemetry disable ou DO_NOT_TRACK=1. Os traces de execução, incluindo corpos HTTP, são gravados localmente e só enviados com login na Boundary ou BOUNDARY_API_KEY. O nível de log info padrão do v0 imprime cada prompt e cada resposta bruta no terminal. Não há alertas de segurança publicados no GitHub.
- Custo em escala
- A linguagem e o toolchain são gratuitos sob Apache-2.0, então a conta são os tokens do modelo, e o reparo feito pelo parser pode deixar um modelo mais barato fazer o trabalho. O BAML Cloud, para observabilidade hospedada e controles de equipe, foi anunciado, mas sem preço.
- Limites
- 366 issues e pull requests abertos; o v1 é anterior à 1.0 e tem mudanças incompatíveis frequentes; a documentação do v0 está marcada como legada; o benchmark do parser da Boundary é autodeclarado e usa modelos da era de 2024.
O que é bom
- O schema-aligned parsing transforma JSON malformado em valores tipados
- O playground roda prompts contra testes dentro do VS Code
- Políticas de fallback, round-robin e novas tentativas declaradas por cliente
- Apache-2.0; roda localmente sem conta
O que não é
- Dividido entre o v0 legado e o v1 anterior à 1.0
- Só as notas do v1 0.21.0 listam 13 mudanças incompatíveis
- Estatísticas anônimas da CLI ligadas por padrão
- Uma linguagem nova e uma etapa de codegen para toda a equipe
- BAML Cloud não lançado e sem preço
Ideal para
Equipes que extraem dados tipados de LLMs em grande volume, muitas vezes com modelos mais baratos, e que vão assumir uma etapa de geração de código e um toolchain que muda rápido.
Alternativas ao BAML
BAML: perguntas frequentes
- BAML vale a pena?
- O BAML deixa a saída de LLMs tipada de forma confiável, mas hoje você escolhe entre uma DSL legada e uma linguagem nova que ainda quebra a cada poucas semanas. Damos nota 3.8 de 5.
- Quanto custa BAML?
- Gratuito e de código aberto sob Apache-2.0; o toolchain roda localmente sem conta. O BAML Cloud (observabilidade hospedada e controles de equipe) foi anunciado, mas não tem preços publicados.
- Quais são as desvantagens de BAML?
- Dividido entre o v0 legado e o v1 anterior à 1.0; só as notas do v1 0.21.0 listam 13 mudanças incompatíveis; estatísticas anônimas da CLI ligadas por padrão; uma linguagem nova e uma etapa de codegen para toda a equipe; bAML Cloud não lançado e sem preço.
- Para quem BAML é indicado?
- Equipes que extraem dados tipados de LLMs em grande volume, muitas vezes com modelos mais baratos, e que vão assumir uma etapa de geração de código e um toolchain que muda rápido.
- Quanto custa BAML para uma equipe ou em produção?
- A linguagem e o toolchain são gratuitos sob Apache-2.0, então a conta são os tokens do modelo, e o reparo feito pelo parser pode deixar um modelo mais barato fazer o trabalho. O BAML Cloud, para observabilidade hospedada e controles de equipe, foi anunciado, mas sem preço.
- BAML é seguro para dados da empresa?
- Os prompts vão só para os provedores que você configura. A CLI envia estatísticas anônimas por padrão (comando, versão, dados da máquina, um ID aleatório); para desligar, baml telemetry disable ou DO_NOT_TRACK=1. Os traces de execução, incluindo corpos HTTP, são gravados localmente e só enviados com login na Boundary ou BOUNDARY_API_KEY. O nível de log info padrão do v0 imprime cada prompt e cada resposta bruta no terminal. Não há alertas de segurança publicados no GitHub.
- Quais são as melhores alternativas ao BAML?
- As alternativas mais próximas que analisamos são Pydantic AI, Guardrails AI e LangChain.
Respostas verificadas em 1 de nov. de 2026.
