Why Burr?¶
Why do you need a state machine for your applications? Won’t the normal programming constructs suffice?
Yes, until a point. Let’s take a look at what you need to build a production-level LLM application:
Tracing/telemetry – LLMs can be chaotic, and you need visibility into what decisions it made and how long it took to make them.
State persistence – thinking about how to save/load your application is a whole other level of infrastructure you need to worry about.
Visualization/debugging – when developing you’ll want to be able to view what it is doing/did + load up the data at any point
Manage interaction between users/LLM – pause for input in certain conditions
Data gathering for evaluation + test generation – storing data run in production to use for later analysis/fine-tuning
You can always patch together various frameworks or build it all yourself, but at that point you’re going to be spending a lot of time on tasks that are not related to the core value proposition of your software.
Burr was built to make these all easier.
By modeling your application as a state machine of simple python constructs you can have the best of both worlds. Bring in whatever infrastructure/tooling you want and get all of the above. Burr is meant to start off as an extremely lightweight tool to make building LLM (+ a wide swath of other) applications easier. The value compounds as you leverage more of the ecosystems, plugins, and additional features it provides.