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:

  1. Tracing/telemetry – LLMs can be chaotic, and you need visibility into what decisions it made and how long it took to make them.

  2. State persistence – thinking about how to save/load your application is a whole other level of infrastructure you need to worry about.

  3. Visualization/debugging – when developing you’ll want to be able to view what it is doing/did + load up the data at any point

  4. Manage interaction between users/LLM – pause for input in certain conditions

  5. 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.