Description
Apache Burr (incubating) is a Python library designed to simplify the development of applications that make decisions, such as chatbots, agents, and simulations. It empowers developers to build complex systems from simple Python building blocks, particularly those leveraging Large Language Models (LLMs). Burr integrates seamlessly with popular frameworks and provides a robust UI for real-time monitoring, tracing, and debugging of application execution.
The core of Apache Burr revolves around expressing applications as state machines, which are essentially graphs or flowcharts. This approach is ideal for any application requiring state management, complex decision tracking, human feedback integration, or idempotent, self-persisting workflows. The framework's simplicity is demonstrated in its core API, which uses Python functions decorated as actions to manage state transitions and data flow.
Key components of Apache Burr include a dependency-free Python library for building and managing state machines, a user interface for telemetry and introspection, and a set of integrations for state persistence and connecting with other systems. The UI allows users to visualize execution flow and application state in real-time, enhancing the debugging and development process. Integrations can extend Burr's capabilities to connect with various LLM observability tools, storage solutions, and custom libraries like Apache Hamilton.
Apache Burr is suitable for a wide range of applications, from simple GPT-like chatbots and stateful RAG-based chatbots to LLM-based adventure games and interactive assistants. It also supports non-LLM use cases like time-series forecasting simulations and hyperparameter tuning. The framework's flexibility allows for integration with any preferred LLM or framework, enabling developers to build scalable and maintainable AI-driven applications. The project emphasizes ease of use, with a quick start guide and readily available examples to help developers get up and running.
The project's name, Burr, is a nod to Aaron Burr, with a conceptual connection to Apache Hamilton, suggesting a harmonious integration of different tools for building sophisticated applications. The project actively welcomes community contributions and provides clear guidelines for developers looking to get involved.
Apache Burr's Core Features
State machine modeling for decision-making applications
Real-time monitoring and tracing UI
Pluggable state persistence mechanisms
Integration with LLMs and various frameworks
Build chatbots, agents, and simulations
Idempotent and self-persisting workflows
Python-based state management
Open-source framework
Extensible with custom actions and integrations
Debugging and replaying capabilities
Supports non-LLM use cases
Community support via Discord
Getting Started with Apache Burr
Clone the repository: git clone https://github.com/apache/burr
Install dependencies: pip install "apache-burr[start]"
Run the UI server: burr
Explore demo applications via the UI
Start coding with examples: cd burr/examples/hello-world-counter && python application.py
Refer to documentation for detailed guides and concepts
Apache Burr's Use Cases
- AI Chatbots
- Decision Agents
- Simulations
- RAG Applications
- LLM Games
- Workflow Automation
- Hyperparameter Tuning








