BAML logo

BAML

Free
访问

BAML 是一种开源、图灵完备的类型化编程语言及本地工具链,用于编写、运行和测试 LLM 函数,并可逐步集成到 Python 和 TypeScript 应用中。

什么是 BAML?

BAML 是一种开源、图灵完备的类型化编程语言,旨在用于由智能体和人共同编写的软件。其类似 TypeScript 的语法包含联合类型、泛型和接口;运行时类型、类型化错误以及穷举式模式匹配则让程序行为更加明确。本地工具链支持编写和执行 BAML 程序、测试 LLM 函数、生成 SDK,并将 BAML 集成到现有的 Python 和 TypeScript 应用中。BAML 尚未达到 1.0 版本,因此 API 和工具仍可能持续演进。

BAML 能做什么?

运行时类型和类型化错误

BAML 提供运行时类型,无需使用 `any` 或未经检查的类型转换;同时提供类型化错误和穷举式模式匹配,使失败处理更加明确。

原生 LLM 函数和评估

在该语言中定义 LLM 函数、测试、测试集和评估,让面向模型的工作流与程序代码保持在一起。

命令行执行

使用 `baml run` 将任意函数作为 CLI 目标执行,通过命令行标志传递函数参数,或直接计算表达式。

感知 AST 的代码发现

`baml describe` 会公开定义、签名、依赖关系和引用,便于开发者和编程智能体检查 BAML 项目。

编辑器和浏览器工具

安装 VS Code 和 Cursor 支持,为其他 LSP 客户端运行语言服务器,或启动本地浏览器 Playground。

渐进式采用 SDK

生成 SDK,并将 BAML 集成到现有的 Python 和 TypeScript 应用中,无需使用托管云服务。

使用场景

“构建由智能体编写的软件”

当编程智能体创建或修改项目代码时,使用具备明确类型、错误和结构化代码发现能力的语言。

“开发和测试 LLM 函数”

在 BAML 项目中定义 LLM 函数,并组织测试、测试集和评估。

“通过命令行试用函数”

使用 `baml run` 直接运行函数,通过标志传入参数,并在开发过程中使用 CLI 检查行为。

“将 BAML 添加到现有应用”

生成 SDK,并将 BAML 集成到 Python 或 TypeScript 代码库中,作为渐进式采用路径。

常见问题

BAML 是否需要 BAML Cloud?

不需要。BAML 的本地工具链可在你的计算机上运行,无需 BAML Cloud。LLM 函数使用程序中配置的客户端,因此托管模型的访问、使用费用和数据处理均遵循相应提供商的条款。免费的 BAML 工具链不包含第三方模型使用费用。

如何开始一个项目?

为你的操作系统安装工具链,在代码库中运行 `baml init`,使用 `baml agent install` 安装版本匹配的智能体指南,然后通过 `baml run main` 运行默认入口点。

我可以使用哪些编辑器?

编辑器集成是可选的。快速入门文档介绍了 VS Code 和 Cursor 的安装方式、适用于其他 LSP 客户端的语言服务器,以及本地浏览器 Playground。

BAML 是否稳定?

BAML 是开源项目,尚未达到 1.0 版本。该语言已经可以使用,但部分 API 和工具仍可能持续演进。

快速信息

产品类型
开源编程语言和本地工具链
状态
尚未达到 1.0 版本
支持的采用路径
SDK 生成以及与 Python 和 TypeScript 的集成
本地定价
免费且开源

BAML 流量分析

流量数据仅供参考。

域名评分
58

BAML 替代品

Zero logo

Zero

zerolang.ai

面向智能体的实验性编程语言,可用于查询和编辑程序图。

Solo logo

Solo

soloterm.com

用于运行 AI 编程代理和本地开发工作流的桌面工作区

Murmell logo

Murmell

murmell.com

Murmell 是一个基于浏览器的画布,可在共享云沙盒中运行 AI 编程代理,帮助开发者在同一项目中协作使用 Claude Code、Codex、Kimi 和 OpenCode,无需本地配置。

Catenary logo

Catenary

thecatenary.app

Catenary 是一款本地优先的桌面 IDE,可在无限画布上运行并协调多个 AI 编程代理,帮助开发者在同一工作区中查看终端、编辑器、浏览器、工作树和代理上下文。

AIRUNCODE logo

AIRUNCODE

airuncode.com

以本地运行为优先,在你的设备上运行语音驱动的代码智能体,并支持按原价接入 AI 提供商。