BAML의 개요
BAML(Basically A Made-up Language)은 시애틀 스타트업 Boundary가 만든 오픈소스 언어로, LLM 호출을 타입이 지정된 함수로 작성하게 해 줍니다. .baml 파일에 입력, 출력 타입, 프롬프트를 선언하면, 생성기가 애플리케이션용 클라이언트를 만들고, Rust 파서가 모델의 응답을 선언된 타입에 맞을 때까지 고칩니다.
프로젝트는 분리되는 중입니다. 이제 레거시 DSL로 불리는 BAML v0은 대부분의 사용자가 아는 구조화 출력 도구로, baml-py와 @boundaryml/baml 패키지(0.226.3)가 Python, TypeScript, Ruby, Go용 클라이언트를 생성합니다. 거의 매일 빌드가 나오는 baml-language 릴리스로 배포되는 BAML v1은 별개의 에이전트용 범용 언어로, 문서는 공개 베타라고, 웹사이트는 1.0 이전이라고 설명합니다.
코드는 Apache-2.0이며 로컬에서 실행됩니다. Boundary는 트레이스와 팀 관리 기능을 제공하는 호스팅 서비스 BAML Cloud에 요금을 매길 계획인데, 2026년 11월 1일 기준으로 출시도 가격 공개도 되지 않았습니다.
BAML, 쓸 만한 가치가 있습니까?
BAML은 프롬프트를 문자열이 아니라 타입이 있는 코드로 다뤄야 한다는 가장 강력한 논거이지만, 2026년은 도입하기 어색한 해입니다. 핵심 발상은 유효합니다. .baml 파일의 함수가 출력 타입을 선언하고, 생성된 클라이언트가 모델을 호출하며, 스키마 정렬 파싱이 뒤에 붙은 쉼표, 빠진 따옴표, 덜 끝난 객체를 거부하지 않고 고칩니다. Boundary가 모델당 Berkeley Function Calling Leaderboard 케이스 1,000개로 돌린 자체 벤치마크에서 gpt-4o-mini는 파서를 쓰면 92.4%, 네이티브 함수 호출로는 19.8%였습니다. 자체 보고 수치이고 2024년 시대 모 델을 썼지만, 저렴한 모델을 쓰는 팀이 이를 좋아하는 이유를 설명해 줍니다.
어색한 점은 분리입니다. 2026년 8월 초의 0.225.0 릴리스는 기존 계열을 레거시 DSL인 BAML v0으로 이름을 바꿨고, Boundary의 역량은 그린 스레드, 타입이 있는 오류, 내장 테스트 프레임워크를 갖춘 별도 언어 BAML v1로 옮겨 갔습니다. v0은 여전히 나오지만(baml-py 0.226.3이 10월 28일에 나왔습니다), README, 빠른 시작, 나이틀리 빌드는 모두 v1을 가리킵니다. v1 도구 체인은 10월 8일 0.21.0에서 10월 26일 0.23.0으로 올라갔고, 0.21.0 릴리스 노트에만 따옴표로 감싼 맵 키부터 제거된 트레이싱 API까지 호환성을 깨는 변경이 13개 있습니다. v1은 Python 패키지도 baml-py에서 baml-bridge로 바꾸며, Boundary는 별도의 마이그레이션 키트 저장소를 두고 있습니다.
일상에서 끌리는 점은 도구입니다. VS Code 확장은 저장할 때 클라이언트를 다시 생성하고, 애플리케이션 코드를 쓰기 전에 테스트 입력으로 프롬프트를 실행해 볼 수 있는 플레이그라운드를 엽니다. promptfiddle.com은 같은 일을 브라우저에서 합니다. v0은 Anthropic, OpenAI(Responses API 포함), Azure OpenAI, Google AI, Vertex AI, AWS Bedrock과 직접 통신하고, Ollama, vLLM, OpenRouter, Groq 등과는 OpenAI 호환 클라이언트로 통신하며, 대체, 라운드 로빈, 재시도 정책을 프롬프트 옆에 선언합니다. Python 안에 머무르게 해 주는 Pydantic AI, Instructor, Outlines와 비교하면, 대가는 새 파일 형식, 코드 생성 단계, 동료들이 배워야 할 언어입니다.
개인정보 기본값은 꼼꼼히 읽어 볼 만합니다. Boundary 가격 페이지는 도구 체인이 자사 서버에 접속하지 않는다고 하지만, CLI는 기본적으로 익명 사용 분석을 보냅니다. 명령 이름, BAML 버전, 운영체제와 CPU 정보, 무작위 머신 ID, 프로젝트 루트의 솔트 해시이며, 프롬프트, 코드, 키는 보내지 않습니다. baml telemetry disable이나 DO_NOT_TRACK=1로 끕니다. 런타임 트레이싱은 별도 스위치로 기본값이 medium이며 HTTP 본문을 로컬에 기록합니다. 로그인하거나 BOUNDARY_API_KEY를 설정해야만 Boundary로 업로드됩니다.
잘 돌아가는 v0 추출 파이프라인이 있는 팀은 v1이 1.0에 이르기 전에 옮겨서 얻을 것이 별로 없습니다. 새 프로젝트는 더 어려운 내기를 해야 합니다. v1은 스스로 작은 팀이라고 밝힌 조직이 관심을 쏟는 곳이고, 저장소에는 열린 이슈와 풀 리퀘스트가 366개 있으며, 유료 부분인 BAML Cloud는 2026년 11월 1일 기준 가격이 공개되지 않아 아무도 호스팅 관측성 비용을 계산할 수 없습니다.
제 역할을 하는 곳
보험 중개사의 Python 데이터팀
하루 수천 건의 보험금 청구 이메일에서 타입 있는 필드 추출하기
청구를 BAML 클래스로 정의하고, 플레이그라운드에서 실제 이메일로 테스트를 만든 뒤, 기존 파이프라인에서 생성된 Pydantic 클라이언트를 호출합니다. 파서가 엄격한 JSON 검사라면 거부했을 응답을 살려 내므로 더 저렴한 모델도 쓸 만해집니다. 비용은 모델 토큰과 baml-py 버전 고정 관리입니다.
SaaS 앱에 AI 기능을 더하는 TypeScript 제품팀
프롬프트를 리뷰 가능하 게 하고 모델을 교체 가능하게 유지하기
프롬프트는 다른 코드처럼 리뷰하는 .baml 파일에 있고, 호출이 실패하면 대체 클라이언트가 OpenAI에서 Anthropic으로 넘어갑니다. 클라이언트 레지스트리로 트래픽의 일부, 예를 들어 10%를 후보 모델로 보낼 수 있습니다. 라이선스 비용은 없으며, 위험은 Boundary의 개발이 이제 v1 중심이라는 점입니다.
에이전트 스택을 고르는 20명 규모 스타트업의 엔지니어링 매니저
새 에이전트를 BAML v1으로 만들지 결정하기
1.0 이전 언어라는 점을 예산에 넣으십시오. v1 도구 체인은 2026년 10월에 마이너 릴리스 3개(0.21.0, 0.22.0, 0.23.0)를 냈고, Python 호스트 패키지 baml-bridge가 baml-py를 대체합니다. 호스팅 트레이싱은 가격이 공개되지 않아, 지금 비용을 계산할 수 있는 선택지는 로컬 트레이스뿐입니다.
도입 전 확인할 점
- 설정
- v0: pip install baml-py(또는 npm @boundaryml/baml) 후 baml-cli generate가 baml_client 폴더를 만들며, VS Code 확장이 저장할 때 다시 생성합니다. v1: brew install baml이나 설치 스크립트, baml init, baml run main 순서이며, baml agent install은 Claude Code와 Codex용 안내를 추가합니다.
- 연동
- v0 제공 업체: Anthropic, OpenAI와 OpenAI Responses, Azure OpenAI, Google AI, Vertex AI, AWS Bedrock, 그리고 openai-generic을 통한 Ollama, vLLM, LM Studio, OpenRouter, Groq, LiteLLM 등. v0은 Python, TypeScript, Ruby, Go용 클라이언트를 생성하고, v1은 Python과 TypeScript에서 호출하며 초기 단계의 Go와 Swift SDK 저장소가 있습니다.
- 데이터와 개인정보
- 프롬프트는 설정한 제공업체로만 갑니다. CLI는 기본적으로 익명 분석(명령, 버전, 머신 정보, 무작위 ID)을 보내며, baml telemetry disable이나 DO_NOT_TRACK=1로 거부합니다. HTTP 본문을 포함한 런타임 트레이스는 로컬에 기록되고, Boundary 로그인이나 BOUNDARY_API_KEY가 있을 때만 업로드됩니다. v0의 기본 info 로그 수준은 모든 프롬프트와 원시 응답을 터미널에 출력합니다. 공개된 GitHub 보안 권고는 없습니다.
- 대규모 사용 시 비용
- 언어와 도구 체인은 Apache-2.0으로 무료이므로 청구서는 모델 토큰이며, 파서의 복구 덕분에 더 저렴한 모델로 일을 처리할 수 있습니다. 호스팅 관측성과 팀 관리를 위한 BAML Cloud는 발표되었지만 가격이 없습니다.
- 제한
- 열린 이슈와 풀 리퀘스트 366개. v1은 1.0 이전이라 호환성을 깨는 변경이 잦습니다. v0 문서는 레거시로 표시됩니다. Boundary의 파서 벤치마크는 2024년 시대 모델에 대한 자체 보고입니다.
좋은 점
- 스키마 정렬 파싱이 형식이 깨진 JSON을 타입 있는 값으로 바꿈
- VS Code 안에서 테스트로 프롬프트를 실행하는 플레이그라운드
- 클라이언트별로 대체, 라운드 로빈, 재시도 정책 선언
- Apache-2.0, 계정 없이 로컬 실행
아쉬운 점
- 레거시 v0과 1.0 이전 v1으로 분리
- v1 0.21.0 릴리스 노트에만 호환성을 깨는 변경 13개
- 익명 CLI 분석이 기본으로 켜져 있음
- 팀 전체가 새 언어와 코드 생성 단계를 익혀야 함
- BAML Cloud는 미출시이며 가격 미정
추천 대상
주로 저렴한 모델로 LLM에서 타입 있는 데이터를 대량 추출하며, 코드 생성 단계와 빠르게 바뀌는 도 구 체인을 감당할 팀.
BAML 대안
BAML: 자주 묻는 질문
- BAML, 쓸 만한 가치가 있습니까?
- BAML은 LLM 출력을 믿을 만하게 타입화하지만, 지금은 레거시 DSL과 몇 주마다 호환성이 깨지는 새 언어 사이에서 골라야 합니다. 평점은 5점 만점에 3.8점입니다.
- BAML의 가격은 얼마입니까?
- Apache-2.0 무료 오픈소스이며, 도구 체인은 계정 없이 로컬에서 실행됩니다. BAML Cloud(호스팅 관측성과 팀 관리)는 발표되었지만 가격은 공개되지 않았습니다.
- BAML의 단점은 무엇입니까?
- 레거시 v0과 1.0 이전 v1으로 분리; v1 0.21.0 릴리스 노트에만 호환성을 깨는 변경 13개; 익명 CLI 분석이 기본으로 켜져 있음; 팀 전체가 새 언어와 코드 생성 단계를 익혀야 함; BAML Cloud는 미출시이며 가격 미정.
- BAML에 적합한 사람은 누구입니까?
- 주로 저렴한 모델로 LLM에서 타입 있는 데이터를 대량 추출하며, 코드 생성 단계와 빠르게 바뀌는 도구 체인을 감당할 팀.
- 팀이나 프로덕션 환경에서 BAML의 비용은 얼마입니까?
- 언어와 도구 체인은 Apache-2.0으로 무료이므로 청구서는 모델 토큰이며, 파서의 복구 덕분에 더 저렴한 모델로 일을 처리할 수 있습니다. 호스팅 관측성과 팀 관리를 위한 BAML Cloud는 발표되었지만 가격이 없습니다.
- BAML에 회사 데이터를 맡겨도 안전합니까?
- 프롬프트는 설정한 제공업체로만 갑니다. CLI는 기본적으로 익명 분석(명령, 버전, 머신 정보, 무작위 ID)을 보내며, baml telemetry disable이나 DO_NOT_TRACK=1로 거부합니다. HTTP 본문을 포함한 런타임 트레이스는 로컬에 기록되고, Boundary 로그인이나 BOUNDARY_API_KEY가 있을 때만 업로드됩니다. v0의 기본 info 로그 수준은 모든 프롬프트와 원시 응답을 터미널에 출력합니다. 공개된 GitHub 보안 권고는 없습니다.
- BAML의 가장 좋은 대안은 무엇입니까?
- 저희가 리뷰한 것 중 가장 가까운 대안은 Pydantic AI, Guardrails AI 및 LangChain입니다.
답변 확인일: 2026년 11월 1일.
