发现 AI 代理的未来

BAML

收录于 2026年5月7日
智能体与应用工具
开源
Rust大语言模型SDKCLI智能体与应用工具模型与推理框架开发者工具/代码协议/API/集成

面向 LLM 的类型安全领域特定语言,通过 schema engineering 替代 prompt engineering,编译生成多语言原生类型客户端,实现可靠的 LLM 结构化输出。

BAML(Basically a Made-up Language)由 BoundaryML 开发,是一款专为 LLM 应用设计的类型安全 DSL。开发者通过编写 .baml 声明式文件定义 LLM 函数的输入/输出 schema 与 prompt 模板,经 Rust 编译器编译后自动生成 Python(Pydantic)、TypeScript、Go 等语言的原生类型客户端代码。

核心能力

  • SAP(Schema-Aligned Parsing)算法:自研解析算法,即使模型不原生支持 tool-calling API 也能可靠解析结构化输出,兼容 JSON 内嵌 markdown、chain-of-thought 等灵活格式
  • 全类型安全流式输出:流式传输结构化数据时提供 Partial 类型,支持逐块自动补全
  • 多模型支持:一行 client 声明切换 OpenAI、Anthropic、Gemini、Vertex、Bedrock、Azure OpenAI 及 Ollama、OpenRouter、vLLM 等 OpenAI 兼容接口,内置重试、回退与模型轮转策略,支持 Client Registry 运行时动态选模型
  • Checks and Asserts:输出验证与断言机制

开发者体验

  • VSCode 扩展(语法高亮、测试 Playground、prompt 预览、保存自动 generate)、Cursor 扩展、JetBrains IDEs、Zed、Claude Code 支持
  • baml-cli test 测试框架支持 CI/CD 集成与并行测试
  • 在线 Playground:Prompt Fiddle

架构概览

模块实现语言职责
BAML 编译器Rust解析 .baml 文件、类型检查、代码生成
baml-cli命令行工具(init、generate、test)
baml_client多语言自动生成的客户端,封装 LLM 调用、JSON 解析修复、错误处理、重试
baml_language语言服务器,为 IDE 提供语言特性
BEPSBAML Enhancement Proposals(类 RFC 机制)

工程管理采用 pnpm workspace + turbo 的 Monorepo 结构,支持 Nix 构建,文档使用 Fern 框架。

适用场景

结构化数据提取(简历、PDF)、AI Agent 构建(链式 BAML 函数 + 状态循环)、Chatbot/RAG、多模型 A/B 测试、流式 AI UI(Next.js/React)、企业级 prompt 版本管理(纳入 Git)。BAML 文件可纳入版本控制,实现 prompt 变更的 diff 与 review。编译器与 CLI 100% 离线运行,仅模型调用时产生网络请求。

安装示例

# Python
pip install baml-py && baml-cli init && baml-cli generate

# TypeScript
npm install @boundaryml/baml && npx baml-cli init && npx baml-cli generate

# Go
go install github.com/boundaryml/baml/baml-cli@latest && baml-cli init
go get github.com/boundaryml/baml && baml-cli generate

支持宿主语言:Python、TypeScript、Go、Ruby、Rust、Java、C#、Elixir(REST API)。

待确认信息:具体发布日期(CITATION.cff 标注 2024)、Java/C# 客户端成熟度(可能通过 REST API 支持)、Boundary Cloud 功能范围、SAP 算法技术报告、性能基准数据、生产采用案例。

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。