burr

apacheApache-2.0活跃维护

用状态机和图结构搭建聊天机器人、智能体等决策型应用,自带监控、追踪与持久化,可跑在自己的基础设施上。

Build applications that make decisions (chatbots, agents, simulations, etc...). Monitor, trace, persist, and execute on your own infrastructure.

v0.43.0-incubating发布于 2026-08-29 20:23 UTC2,597star +1 / 7 天219fork同步于 2026-11-10 05:42 UTC

怎么上手

由 README 提炼,执行前请确认
pip install "apache-burr[start]"
burr
硬件要求按 README 说明

README 未说明,仅要求 Python 3.10+,无 GPU 或显存要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用简单 Python 函数把 LLM 应用写成状态机,并实时追踪、持久化与调试

用状态机和图结构搭建聊天机器人、智能体等决策型应用,自带监控、追踪与持久化,可跑在自己的基础设施上。

核心能力

  • 用 @action 装饰器把普通函数组合成状态机
  • 内置 UI 实时追踪与可视化执行过程
  • 提供可插拔 persister 保存和加载应用状态
  • 框架无关,可对接任意 LLM 与现有工具链
  • 支持非 LLM 场景如仿真与超参调优

容易踩的坑

需 Python 3.10+,旧版本已不再支持 Python 3.9;UI 内置 chatbot 演示需设置 OPENAI_API_KEY 才能对话;用 poetry 安装需参考官方文档的额外说明

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.43.0-incubating
  1. v0.43.0-incubatingApache Burr 0.43.0-incubating最新正式版2026-08-29 · 2026-08-29 20:23 UTC

    Apache Burr 0.43.0-incubating

    This is the third official Apache release of Burr (incubating).

    The official release artifacts are available at https://downloads.apache.org/incubator/burr/0.43.0/. The wheel is also published on PyPI as apache-burr 0.43.0 — install it with pip install apache-burr[learn].

    [!NOTE] In version 0.43.0, the optional CLI included with [start], [learn], and [cli] requires Python 3.10+. Core library usage remains compatible with Python 3.9.

    Notable changes since 0.42.0

    • Add Langfuse tracing integration with LangfuseBridge (#844)
    • Migrate the telemetry UI from Create React App to Vite (#793)
    • Add dark-mode support to the Burr UI, including system-preference detection and a manual toggle (#830)
    • Fix graph-view freezes on state machines with dense transitions (#834)
    • Add Condition.safe_expr for opt-in restricted AST evaluation (#820)
    • Allow plain dictionary yields in single-step streaming actions (#779)
    • Add MongoDB driver handshake metadata (#821)
    • Add an optional module allowlist to the Pydantic serde deserializer (#794)
    • Make serde errors more informative (#806)
    • Use timezone-aware UTC timestamps for S3 log partitions (#811)
    • Add AWS deployment and Bedrock documentation (#763)
    • Remove BentoBurr (#859)
    • Resolve shipped npm advisories and run the UI test suite in CI (#869)
    • Strengthen release validation, artifact verification, licensing checks, and RC promotion tooling
    • Apply dependency, security, documentation, and UTF-8 handling fixes across the project

    Verification

    This release was voted on by the Apache Burr (incubating) PPMC and the Apache Incubator PMC:

    Verify the source release with the KEYS file and the per-artifact .asc and .sha512 files alongside each download.

    Note on pre-incubator releases

    GitHub releases from before the project entered the Apache Incubator are not official Apache releases. Official Apache Burr (incubating) source release artifacts are published on the Apache distribution servers.

    Apache Burr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision-making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

  2. v0.42.0-incubatingApache Burr 0.42.0-incubating2026-05-10 · 2026-05-10 04:01 UTC
    查看更新说明

    Apache Burr 0.42.0-incubating

    This is the second official Apache release of Burr (incubating), and the first since the project's name and packaging transition. It also includes a year of accumulated work since the pre-incubator burr-0.40.2 release in May 2025.

    The official source release artifacts are at https://downloads.apache.org/incubator/burr/0.42.0/. The wheel is also published on PyPI as apache-burr 0.42.0 — install with pip install apache-burr[learn].

    Notable changes since 0.41.0

    • Bedrock integration: BedrockAction and BedrockStreamingAction (#677)
    • Remove phone-home telemetry per ASF policy
    • Add override_state_values support to initialize_from
    • Add comparison and identity operators to when() conditions
    • Add AST-based linter for undeclared state reads in function actions (#656)
    • Add flexible_api decorator to fix mypy override errors (#683)
    • Support async with on async persister factory methods (#681)
    • Graceful stream shutdown on exceptions in streaming actions (#680)
    • Enable Burr UI to be added to existing FastAPI app (#671)
    • Add toggle to show/hide input nodes in graph view
    • Implement counter app demo in Burr UI (#675)
    • Add Next.js landing page for burr.apache.org (#679)
    • Add ecosystem page (#661)
    • Cloud-native AWS deployment support (#666)
    • Fix pydantic warnings and minimum pins to pydantic>=2.0 (#668)
    • Release-validation CI: builds artifacts, runs Apache RAT, and end-to-end smoke tests the wheel from a fresh venv on every PR
    • Licensing cleanup: correct MIT attribution for third-party files, proper basename-based RAT excludes

    Verification

    This release was voted on by the Apache Burr (incubating) PPMC and the Apache Incubator PMC:

    Verify the source release with the KEYS file at https://downloads.apache.org/incubator/burr/KEYS and the per-artifact .asc and .sha512 files alongside each download.

    Note on pre-incubator releases

    GitHub releases prior to this one (e.g. burr-0.40.2) are from before the project entered the Apache Incubator and are NOT official Apache releases. The official Apache Burr (incubating) source release artifacts are only those published on the Apache distribution servers under https://downloads.apache.org/incubator/burr/.


    Apache Burr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

  3. burr-0.40.22025-05-28 · 2025-05-28 05:54 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/DAGWorks-Inc/burr/compare/burr-0.40.1...burr-0.40.2

  4. burr-0.40.12025-05-28 · 2025-05-28 04:28 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/DAGWorks-Inc/burr/compare/burr-0.40.0...burr-0.40.1

  5. burr-0.40.02025-05-13 · 2025-05-13 04:27 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/DAGWorks-Inc/burr/compare/burr-0.39.1...burr-0.40.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Apache Burr (incubating)

    Discord Downloads PyPI Downloads GitHub Last Commit X

    Apache Burr (incubating) makes it easy to develop applications that make decisions (chatbots, agents, simulations, etc...) from simple python building blocks.

    Apache Burr works well for any application that uses LLMs, and can integrate with any of your favorite frameworks. Burr includes a UI that can track/monitor/trace your system in real time, along with pluggable persisters (e.g. for memory) to save & load application state.

    Link to documentation. Quick (<3min) video intro here. Longer video intro & walkthrough. Blog post here. Join discord for help/questions here.

    Quick start

    Install from pypi:

    pip install "apache-burr[start]"
    

    [!NOTE] Burr requires Python 3.10+. (Since 0.43.0, the optional CLI included with [start], [learn], and [cli] already required Python 3.10+; as of the next release, Python 3.9 is no longer supported anywhere.)

    (see the docs if you're using poetry)

    Then run the UI server:

    burr
    

    This will open up Burr's telemetry UI. It comes loaded with some default data so you can click around. It also has a demo chat application to help demonstrate what the UI captures, enabling you to see things changing in real-time. Hit the "Demos" side bar on the left and select chatbot. To chat it requires the OPENAI_API_KEY environment variable to be set, but you can still see how it works if you don't have an API key set.

    Next, start coding / running examples:

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

    You'll see the counter example running in the terminal, along with the trace being tracked in the UI. See if you can find it.

    For more details see the getting started guide.

    How does Apache Burr work?

    With Apache Burr you express your application as a state machine (i.e. a graph/flowchart). You can (and should!) use it for anything in which you have to manage state, track complex decisions, add human feedback, or dictate an idempotent, self-persisting workflow.

    The core API is simple -- the Burr hello-world looks like this (plug in your own LLM, or copy from the docs for gpt-X)

    from burr.core import action, State, ApplicationBuilder
    
    @action(reads=[], writes=["prompt", "chat_history"])
    def human_input(state: State, prompt: str) -> State:
        # your code -- write what you want here, for example
        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:
        # query the LLM however you want (or don't use an LLM, up to you...)
        response = _query_llm(state["chat_history"]) # Burr doesn't care how you use LLMs!
        chat_item = {"role" : "system", "content" : response}
        return state.update(response=response).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 includes:

    1. A (dependency-free) low-abstraction python library that enables you to build and manage state machines with simple python functions
    2. A UI you can use to view execution telemetry for introspection and debugging
    3. A set of integrations to make it easier to persist state, connect to telemetry, and integrate with other systems

    Burr at work

    What can you do with Apache Burr?

    Apache Burr can be used to power a variety of applications, including:

    1. A simple gpt-like chatbot
    2. A stateful RAG-based chatbot
    3. An LLM-based adventure game
    4. An interactive assistant for writing emails

    As well as a variety of (non-LLM) use-cases, including a time-series forecasting simulation, and hyperparameter tuning.

    And a lot more!

    Using hooks and other integrations you can (a) integrate with any of your favorite vendors (LLM observability, storage, etc...), and (b) build custom actions that delegate to your favorite libraries (like Apache Hamilton).

    Apache Burr will not tell you how to build your models, how to query APIs, or how to manage your data. It will help you tie all these together in a way that scales with your needs and makes following the logic of your system easy. Burr comes out of the box with a host of integrations including tooling to build a UI in streamlit and watch your state machine execute.

    Start building

    See the documentation for getting started, and follow the example. Then read through some of the concepts and write your own application!

    Comparison against common frameworks

    While Apache Burr is attempting something (somewhat) unique, there are a variety of tools that occupy similar spaces:

    CriteriaApache BurrLanggraphtemporalLangchainSuperagentApache Hamilton
    Explicitly models a state machine✅✅❌❌❌❌
    Framework-agnostic✅✅✅✅❌✅
    Asynchronous event-based orchestration❌❌✅❌❌❌
    Built for core web-service logic✅✅❌✅✅✅
    Open-source user-interface for monitoring/tracing✅❌❌❌❌✅
    Works with non-LLM use-cases✅❌❌❌❌✅

    Why the name Burr?

    Apache Burr is named after Aaron Burr, founding father, third VP of the United States, and murderer/arch-nemesis of Alexander Hamilton. What's the connection with (Apache) Hamilton? We imagine a world in which Burr and Hamilton lived in harmony and saw through their differences to better the union. Originally Apache Burr was built as a harness to handle state between executions of Apache Hamilton DAGs (because DAGs don't have cycles), but realized that it has a wide array of applications and decided to release it more broadly.

    Testimonials

    "After evaluating several other obfuscating LLM frameworks, their elegant yet comprehensive state management solution proved to be the powerful answer to rolling out robots driven by AI decision-making."

    Ashish Ghosh CTO, Peanut Robotics

    "Of course, you can use it [LangChain], but whether it's really production-ready and improves the time from 'code-to-prod' [...], we've been doing LLM apps for two years, and the answer is no [...] All these 'all-in-one' libs suffer from this [...]. Honestly, take a look at Burr. Thank me later."

    Reddit user cyan2k LocalLlama, Subreddit

    "Using Burr is a no-brainer if you want to build a modular AI application. It is so easy to build with, and I especially love their UI which makes debugging a piece of cake. And the always-ready-to-help team is the cherry on top."

    Ishita Founder, Watto.ai

    "I just came across Burr and I'm like WOW, this seems like you guys predicted this exact need when building this. No weird esoteric concepts just because it's AI."

    Matthew Rideout Staff Software Engineer, Paxton AI

    "Burr's state management part is really helpful for creating state snapshots and building debugging, replaying, and even evaluation cases around that."

    Rinat Gareev Senior Solutions Architect, Provectus

    "I have been using Burr over the past few months, and compared to many agentic LLM platforms out there (e.g. LangChain, CrewAi, AutoGen, Agency Swarm, etc), Burr provides a more robust framework for designing complex behaviors."

    Hadi Nayebi Co-founder, CognitiveGraphs

    "Moving from LangChain to Burr was a game-changer!

    • Time-Saving: It took me just a few hours to get started with Burr, compared to the days and weeks I spent trying to navigate LangChain.
    • Cleaner Implementation: With Burr, I could finally have a cleaner, more sophisticated, and stable implementation. No more wrestling with complex codebases.
    • Team Adoption: I pitched Burr to my teammates, and we pivoted our entire codebase to it. It's been a smooth ride ever since."

    Aditya K. DS Architect, TaskHuman

    Roadmap

    While Apache Burr is stable and well-tested, we have quite a few tools/features on our roadmap!

    1. FastAPI integration + hosted deployment -- make it really easy to get Apache Burr in an app in production without thinking about REST APIs
    2. Various efficiency/usability improvements for the core library (see planned capabilities for more details). This includes:
      1. First-class support for retries + exception management
      2. More integration with popular frameworks (LCEL, LLamaIndex, Apache Hamilton, etc...)
      3. Capturing & surfacing extra metadata, e.g. annotations for particular point in time, that you can then pull out for fine-tuning, etc.
      4. Improvements to the pydantic-based typing system
    3. Tooling for hosted execution of state machines, integrating with your infrastructure (Ray, modal, FastAPI + EC2, etc...)
    4. Additional storage integrations. More integrations with technologies like MySQL, S3, etc. so you can run Apache Burr on top of what you have available.

    If you want to avoid self-hosting the above solutions we're building Burr Cloud. To let us know you're interested sign up here for the waitlist to get access.

    Contributing

    We welcome contributors! To get started on developing, see the developer-facing docs.

    Contributors

    Code contributions

    Users who have contributed core functionality, integrations, or examples.

    Bug hunters/special mentions

    Users who have contributed small docs fixes, design suggestions, and found bugs

    License

    Apache Burr is released under the Apache 2.0 License. See LICENSE for details.

    Community

    Contributing

    We're very supportive of changes by new contributors, big or small! Make sure to discuss potential changes by creating an issue or commenting on an existing one before opening a pull request. Good first contributions include creating an example or an integration with your favorite Python library!

    To contribute, checkout our contributing guidelines, our developer setup guide, and the Code of Conduct.

    Security

    To report a vulnerability, see SECURITY.md. Do not file security reports as GitHub issues.