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 v1 はほぼ毎晩のビルドを伴う baml-language リリースとして配布される、エージェント向けの独立した汎用言語で、ドキュメントはパブリックベータ、Web サイトは 1.0 以前と説明しています。
コードは Apache-2.0 で、ローカルで動きます。Boundary はトレースとチーム管理機能を提供するホスト型サービス BAML Cloud を有料にする予定ですが、2026年11月1日時点では提供開始も価格公開もされていません。
BAMLは使う価値があるか?
BAML はプロンプトを文字列ではなく型付きのコードとして扱うべきだという主張の最も強い根拠であり、同時に 2026 年は導入しにくい年です。中心となる考え方は有効です。.baml ファイル内の関数が出力の型を宣言し、生成されたクライアントがモデルを呼び出し、schema-aligned parsing が末尾のカンマ、欠けた引用符、途中で切れたオブジェクトを拒否せずに修正します。Boundary 自身のベンチマークでは、モデルごとに Berkeley Function Calling Leaderboard の 1,000 件を使い、gpt-4o-mini がパーサーありで 92.4%、ネイティブの function calling で 19.8% でした。数値は自己申告で 2024 年頃のモデルを使っていますが、安価なモデルを使うチームに好まれる理由を説明しています。
導入しにくい理由は分裂です。2026年8月初めのリリース 0.225.0 で既存の系統は BAML v0(レガシー DSL)と改称され、Boundary の開発は BAML v1 に移りました。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 のリリースノートだけで 13 件の互換性のない変更が挙げられています。マップのキーを引用符で囲む変更から、トレース API の削除まで含まれます。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 のバージョン、OS と CPU の情報、ランダムなマシン ID、プロジェクトルートのソルト付きハッシュで、プロンプト、コード、キーは含まれません。baml telemetry disable または DO_NOT_TRACK=1 で無効にできます。実行時のトレースは別の設定で、初期値は medium、HTTP ボディをローカルに記録します。Boundary にアップロードされるのは、ログインするか BOUNDARY_API_KEY を設定した場合だけです。
v0 の抽出パイプラインがすでに動いているチームにとって、v1 が 1.0 に達する前に移行する利点はほとんどありません。新規プロジェクトはより難しい賭けに直面します。v1 は自ら小さなチームと称する開発陣が注力している先であり、リポジトリには 366 件の未解決の issue とプルリクエストがあり、有料部分の BAML Cloud は2026年11月1日時点で価格が公開されていないため、ホスト型オブザーバビリティの費用はまだ誰にも見積もれません。
真価を発揮する場面
保険代理店の Python データチーム
1日数千通の保険金請求メールから型付きの項目を取り出したい
請求を BAML のクラスとして定義し、プレイグラウンドで実際のメールからテストを作り、既存のパイプラインから生成された Pydantic クライアントを呼び出します。厳格な JSON チェックなら拒否される応答もパーサーが回復するため、安価なモデルが実用的になります。費用 はモデルのトークンと、baml-py のバージョン固定の手間です。
SaaS アプリに AI 機能を追加する TypeScript のプロダクトチーム
プロンプトをレビュー可能にし、モデルを差し替えられるようにしたい
プロンプトは他のコードと同じようにレビューされる .baml ファイルに置き、呼び出しが失敗するとフォールバッククライアントが OpenAI から Anthropic に切り替えます。client registry でトラフィックの一部、たとえば 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 は発表済みですが、価格はありません。
- 制限
- 未解決の issue とプルリクエストが 366 件あります。v1 は 1.0 以前で互換性のない変更が頻繁にあり、v0 のドキュメントはレガシー扱いです。Boundary のパーサーのベンチマークは自己申告で、2024 年頃のモデルによるものです。
良い点
- schema-aligned parsing が壊れた 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日
