# BAML BAML 是一种开源、图灵完备的类型化编程语言及本地工具链,用于编写、运行和测试 LLM 函数,并可逐步集成到 Python 和 TypeScript 应用中。 - Findings24: - 网站: - 价格: Free - 分类: AI开发者工具 ## 什么是 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 的集成 - **本地定价**: 免费且开源