简介
BAML 把 prompt 当作「带类型的函数」来写,提升输出稳定性(即使模型不支持 tool-calling)。安装 baml-py,定义 .baml 函数,再从 Python 调用。
- 适合谁(Best for): 每天迭代 prompt 的团队,希望引入类型安全、流式与可重试工作流,但不想重写整个应用
- 兼容工具(Works with): BAML
.baml文件、Python 的baml-py,以及多语言 client(仓库说明) - 安装时间(Setup time): 15 分钟
量化信息
- PyPI 包:
baml-py(已用 pip index 核验) - 装机约 15 分钟
- GitHub stars(已核验):见「来源与感谢」
实战要点
当你的瓶颈是「迭代速度」与「输出稳定性」时,BAML 很适合:把 prompt 建模成函数,输入/输出都有类型,prompt 本身可版本化。把常用能力沉淀成一组 BAML 函数(抽取/分类/路由/总结),先在 IDE 里快速测试,再接入 agent。长期看,你会得到可维护的 prompt 工程面,而不是一堆零散字符串。
安全提示: 函数签名要小而清晰:类型过于泛化、prompt 过大,会拖慢迭代并降低稳定性。
FAQ
Q: 必须用 BAML 重写整个应用吗? A: 不需要。仓库强调只把 BAML 用在 prompt/function 层,再接入你现有的业务代码。
Q: 和普通 prompt 有什么不同? A: 你先定义函数签名与类型,让工具帮助你把输出结构、重试与流式接口工程化,而不是靠临时提示词凑结果。
Q: 只能 Python 吗? A: 不是。仓库提到 Python、TypeScript、Ruby、Go 等多语言调用方式(生成 client 或 REST)。