Scripts2026年5月11日·1 分钟阅读

BAML — Schema-First Prompting for Agents

BAML treats prompts as typed functions for reliable outputs. Install `baml-py`, define `.baml` functions, then call generated clients from Python.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Stage only · 29/100Stage only
Agent 入口
任意 MCP/CLI Agent
类型
Script
安装
Single
信任
信任等级:Established
入口
README.md
通用 CLI 安装命令
npx tokrepo install b858ed4b-d059-4634-b406-35e6ec9c5eca

简介

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)。


🙏

来源与感谢

GitHub:https://github.com/BoundaryML/baml Owner avatar:https://avatars.githubusercontent.com/u/124114301?v=4 许可证(SPDX):Apache-2.0 GitHub stars(已通过 api.github.com/repos/BoundaryML/baml 核验):8,206

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产