https://github.com/DAGWorks-Inc/burr Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} DAGWorks-Inc / burr Public * Notifications * Fork 6 * Star 170 * Build applications that make decisions (chatbots, agents, simulations, etc...). Monitor, persist, and execute on your own infrastructure. burr.dagworks.io License BSD-3-Clause-Clear license 170 stars 6 forks Branches Tags Activity Star Notifications * Code * Issues 20 * Pull requests 2 * Discussions * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights DAGWorks-Inc/burr This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Last commit Last Name Name message commit date Latest commit History 270 Commits .github/workflows .github/workflows burr burr docs docs examples examples telemetry telemetry tests tests .gitignore .gitignore .pre-commit-config.yaml .pre-commit-config.yaml .style.yapf .style.yapf CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md CONTRIBUTING.rst CONTRIBUTING.rst LICENSE LICENSE MANIFEST.in MANIFEST.in README.md README.md chatbot.gif chatbot.gif pyproject.toml pyproject.toml setup.cfg setup.cfg View all files Repository files navigation * README * Code of conduct * BSD-3-Clause-Clear license Burr Burr Discord Burr makes it easy to develop applications that make decisions based on state (chatbots, agents, simulations, etc...) from simple python building blocks. Burr includes a UI that can track/monitor those decisions in real time. Link to documentation. Quick (<3min) video intro here. Longer video intro & walkthrough. Blog post here. Quick start Install from pypi: pip install "burr[start]" 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 too 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/dagworks-inc/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 Burr work? With Burr you express your application as a state machine (i.e. a graph/flowchart). You can (and should!) use it for anything where managing state can be hard. Hint: managing state is always hard! This is true across a wide array of contexts, from building RAG applications to power a chatbot, to running ML parameter tuning/ evaluation workflows, to conducting a complex forecasting simulation. 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 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 Burr? Burr can be used to power a variety of applications, including: 1. A simple gpt-like chatbot 2. A stateful RAG-based chatbot 3. A machine learning pipeline 4. A simulation 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 Hamilton). 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 Burr is attempting something (somewhat) unique, there are a variety of tools that occupy similar spaces: Criteria Burr Langgraph temporal Langchain Superagent Hamilton Explicitly models a state machine Framework-agnostic Asynchronous event-based orchestration Built for core web-service logic Open-source user-interface for monitoring Works with non-LLM use-cases Why the name Burr? 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 Hamilton? This is DAGWorks' second open-source library release after the Hamilton library We imagine a world in which Burr and Hamilton lived in harmony and saw through their differences to better the union. We originally built Burr as a harness to handle state between executions of 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. Roadmap While Burr is stable and well-tested, we have quite a few tools/ features on our roadmap! 1. Testing & eval curation. Curating data with annotations and being able to export these annotations to create unit & integration tests. 2. Various efficiency/usability improvements for the core library (see planned capabilities for more details). This includes: 1. Fully typed state with validation 2. First-class support for retries + exception management 3. More integration with popular frameworks (LCEL, LLamaIndex, Hamilton, etc...) 4. Capturing & surfacing extra metadata, e.g. annotations for particular point in time, that you can then pull out for fine-tuning, etc. 3. Cloud-based checkpointing/restart for debugging or production use cases (save state to db and replay/warm start, backed by a configurable database) 4. Tooling for hosted execution of state machines, integrating with your infrastructure (Ray, modal, FastAPI + EC2, etc...) 5. Storage integrations. More integrations with technologies like Redis, MongoDB, MySQL, etc. so you can run 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 * Elijah ben Izzy * Stefan Krawczyk * Joseph Booth * Thierry Jean About Build applications that make decisions (chatbots, agents, simulations, etc...). Monitor, persist, and execute on your own infrastructure. burr.dagworks.io Topics state-management ai state-machine graphs visibility persistent-data-structure chatbot-framework dags burr mlops llms generative-ai llmops Resources Readme License BSD-3-Clause-Clear license Code of conduct Code of conduct Activity Custom properties Stars 170 stars Watchers 3 watching Forks 6 forks Report repository Releases 16 burr-0.12.1 Latest Apr 3, 2024 + 15 releases Packages 0 No packages published Contributors 3 * @elijahbenizzy elijahbenizzy Elijah ben Izzy * @skrawcz skrawcz Stefan Krawczyk * @jombooth jombooth Jo Booth Languages * Python 67.9% * TypeScript 31.1% * Other 1.0% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.