OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Burr — 用状态机方式构建可靠 AI Agent 工作流

Burr — 用状态机方式构建可靠 AI Agent 工作流

 
  commercial ·  2026-04-22 11:00:30 · 16 次点击  · 0 条评论  

Apache Burr (孵化中) 让开发者能够轻松地从简单的 Python 构建块创建决策型应用(聊天机器人、智能体、模拟器等)。

Apache Burr 非常适合任何使用 LLM 的应用,并能与你喜爱的任何框架集成。Burr 包含一个 UI,可以实时跟踪/监控/追溯你的系统,以及可插拔的持久化器(例如用于内存)来保存和加载应用状态。

链接至文档。快速(<3分钟)视频介绍在此
较长的视频介绍与演示。博客文章在此。加入 Discord 寻求帮助/提问在此

🏃快速开始

pypi 安装:

pip install "burr[start]"

(如果你使用 poetry,请参阅文档

然后运行 UI 服务器:

burr

这将打开 Burr 的遥测 UI。它加载了一些默认数据,方便你点击查看。
它还包含一个演示聊天应用,帮助你了解 UI 捕获的内容,让你能实时看到变化。点击左侧的 "Demos" 侧边栏,选择 chatbot。聊天需要设置 OPENAI_API_KEY 环境变量,但即使没有设置 API 密钥,你仍然可以看到它的工作原理。

接下来,开始编码/运行示例:

git clone https://github.com/apache/burr && cd burr/examples/hello-world-counter
python application.py

你将在终端中看到计数器示例正在运行,同时其执行轨迹也会在 UI 中被跟踪。看看你能否找到它。

更多详情请参阅入门指南

🔩 Apache Burr 如何工作?

使用 Apache Burr,你可以将应用表达为一个状态机(即一个图/流程图)。
你可以(也应该!)将其用于任何需要管理状态、跟踪复杂决策、添加人工反馈或规定幂等、自持久化工作流的场景。

核心 API 非常简单 —— Burr 的 hello-world 示例如下所示(插入你自己的 LLM,或从文档复制 gpt-X 的代码)

from burr.core import action, State, ApplicationBuilder

@action(reads=[], writes=["prompt", "chat_history"])
def human_input(state: State, prompt: str) -> State:
    # 你的代码 —— 在这里写你想写的内容,例如
    chat_item = {"role" : "user", "content" : prompt}
    return state.update(prompt=prompt).append(chat_history=chat_item)

@action(reads=["chat_history"], writes=["response", "chat_history"])
def ai_response(state: State) -> State:
    # 以你喜欢的任何方式查询 LLM(或者不使用 LLM,由你决定...)
    response = _query_llm(state["chat_history"]) # Burr 不关心你如何使用 LLM!
    chat_item = {"role" : "system", "content" : response}
    return state.update(response=content).append(chat_history=chat_item)

app = (
    ApplicationBuilder()
    .with_actions(human_input, ai_response)
    .with_transitions(
        ("human_input", "ai_response"),
        ("ai_response", "human_input")
    ).with_state(chat_history=[])
    .with_entrypoint("human_input")
    .build()
)
*_, state = app.run(halt_after=["ai_response"], inputs={"prompt": "Who was Aaron Burr, sir?"})
print("answer:", app.state["response"])

Apache Burr 包含:

  1. 一个(无依赖的)低抽象 Python 库,让你能够使用简单的 Python 函数构建和管理状态机
  2. 一个用于查看执行遥测数据以进行内省和调试的 UI
  3. 一组集成,使持久化状态、连接遥测以及与其他系统集成变得更加容易

工作中的 Burr

💻️ 你能用 Apache Burr 做什么?

Apache Burr 可用于驱动各种应用,包括:

  1. 一个简单的类 GPT 聊天机器人
  2. 一个有状态的基于 RAG 的聊天机器人
  3. 一个基于 LLM 的冒险游戏
  4. 一个用于撰写邮件的交互式助手

以及各种(非 LLM)用例,包括时间序列预测模拟超参数调优

还有更多!

使用钩子和其他集成,你可以 (a) 与你喜爱的任何供应商(LLM 可观测性、存储等)集成,以及 (b) 构建委托给你喜爱库(如 Apache Hamilton)的自定义操作。

Apache Burr 不会告诉你如何构建模型、如何查询 API 或如何管理数据。它将帮助你以一种能随需求扩展且易于遵循系统逻辑的方式,将所有这些东西整合在一起。Burr 开箱即用,包含许多集成,包括用于在 Streamlit 中构建 UI 并观察状态机执行的工具。

🏗 开始构建

请参阅入门文档,并按照示例操作。
然后阅读一些概念并编写你自己的应用!

📃 与常见框架的对比

虽然 Apache Burr 尝试实现(某种程度上)独特的功能,但有许多工具占据着类似的空间:

标准 Apache Burr Langgraph temporal Langchain Superagent Apache Hamilton
显式建模状态机
框架无关
基于事件的异步编排
为核心 Web 服务逻辑而构建
用于监控/追踪的开源用户界面
适用于非 LLM 用例

🌯 为什么叫 Burr?

Apache Burr 以 Aaron Burr 命名,他是美国开国元勋、第三任副总统,也是 Alexander Hamilton 的谋杀者/死敌。
与 (Apache) Hamilton 有什么联系?我们想象一个 Burr 和 Hamilton 和谐共处、弥合分歧以改善联邦的世界。最初,Apache Burr 是作为处理 Apache Hamilton DAG 执行之间状态的 工具 而构建的(因为 DAG 没有循环),但我们意识到它具有广泛的应用场景,因此决定更广泛地发布它。

用户评价

"在评估了其他几个复杂的 LLM 框架后,他们优雅而全面的状态管理解决方案被证明是推出由 AI 决策驱动的机器人的强大答案。"

Ashish Ghosh
首席技术官,Peanut Robotics

"当然,你可以使用它 [LangChain],但它是否真的为生产环境做好准备,并改善了从'编码到生产'的时间 [...],我们从事 LLM 应用开发已有两年,答案是否定的 [...] 所有这些'一体化'库都受此困扰 [...]。老实说,看看 Burr。稍后你会感谢我。"

Reddit 用户 cyan2k
LocalLlama, Subreddit

"如果你想构建模块化的 AI 应用,使用 Burr 是理所当然的。用它构建非常容易,我特别喜欢他们的 UI,让调试变得轻而易举。而随时准备提供帮助的团队更是锦上添花。"

Ishita
创始人, Watto.ai

"我刚刚接触 Burr,我的感觉是 WOW,你们在构建这个时似乎就预见到了这个确切的需求。没有因为它是 AI 就引入奇怪深奥的概念。"

Matthew Rideout
高级软件工程师, Paxton AI

"Burr 的状态管理部分对于创建状态快照以及围绕其构建调试、重放甚至评估用例非常有帮助。"

Rinat Gareev
高级解决方案架构师, Provectus

"在过去的几个月里,我一直在使用 Burr,与许多现有的代理式 LLM 平台(例如 LangChain、CrewAi、AutoGen、Agency Swarm 等)相比,Burr 为设计复杂行为提供了一个更健壮的框架。"

Hadi Nayebi
联合创始人, CognitiveGraphs

"从 LangChain 迁移到 Burr 是一个改变游戏规则的决定!
- 节省时间:我只花了几个小时就开始使用 Burr,而之前我花了几天甚至几周时间试图掌握 LangChain。
- 更清晰的实现:使用 Burr,我终于能够拥有一个更清晰、更复杂、更稳定的实现。不再需要与复杂的代码库搏斗。
- 团队采用:我向团队成员推荐了 Burr,我们将整个代码库都转向了它。从那以后,一切进展顺利。"

Aditya K.
数据科学架构师, TaskHuman

🛣 路线图

虽然 Apache Burr 稳定且经过充分测试,但我们的路线图上还有很多工具/功能!
1. FastAPI 集成 + 托管部署 —— 让 Apache Burr 在生产环境中轻松部署,无需考虑 REST API
2. 核心库的各种效率/可用性改进(更多详情请参阅计划功能)。这包括:
1. 对重试 + 异常管理的一流支持
2. 与流行框架(LCEL、LLamaIndex、Apache Hamilton 等)的更多集成
3. 捕获并展示额外的元数据,例如特定时间点的注释,然后你可以提取这些数据进行微调等
4. 改进基于 pydantic 的类型系统
3. 用于托管执行状态机的工具,与你的基础设施(Ray、modal、FastAPI + EC2 等)集成
4. 额外的存储集成。与 MySQL、S3 等技术的更多集成,以便你可以在现有可用技术之上运行 Apache Burr。

如果你想避免自托管上述解决方案,我们正在构建 Burr Cloud。要告诉我们你感兴趣,请在此注册加入等待列表以获取访问权限。

🤲 贡献

我们欢迎贡献者!要开始开发,请参阅面向开发者的文档

👪 贡献者

代码贡献

贡献了核心功能、集成或示例的用户。

漏洞发现者/特别鸣谢

贡献了小文档修复、设计建议和发现漏洞的用户

📑 许可证

Apache Burr 根据 Apache 2.0 许可证发布。详情请参阅 LICENSE

🌎 社区

👨‍💻 贡献

我们非常支持新贡献者进行任何大小的更改!在打开拉取请求之前,请务必通过创建问题或评论现有问题来讨论潜在的更改。好的首次贡献包括创建示例或与你喜爱的 Python 库集成!

要参与贡献,请查看我们的贡献指南开发者设置指南和我们的行为准则

16 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 19 ms
Developed with Cursor