Thousand Birds provides an environment for building systems at the intersection between AI and traditional software. Our goal is to provide the best environment for AI to operate within and for humans to interact with AI during its construction.
It’s become common to describe long-running autonomous programs that integrate with large language models “Agents.” There’s a bunch of history around this, and we’ll refer to these systems this way! The name Thousand Birds is inspired by one such multi-agent system, boids, which simulate flocks of birds.
A Reactive Runtime
The core of Thousand Birds is a runtime for orchestrating interactions between different agents and the fractal of their sub components. This runtime consists of “nodes”, nodes subscribe to changes in the system and execute when they identify changes they are described to react to. Nodes can be code, prompts, vector databases, custom code, services, or even other complete systems.
Monitoring and Observability
You’re going to want to know what’s happening inside of your agents, and for that we record every change that’s emitted by these nodes. We’re able to use this information to explain precisely what led to what throughout the system. This can be a massive help during debugging and for understanding the production behavior of these tools.
Thousand Birds is designed to support patterns for monitoring recursive agents. Due to that, we feel that tracing alone is insufficient.
Branching and Time-Travel
Since we’re recording the operations that take place and the components of our agents are reacting to the state of those operations, we can start to do some interesting things!
Branching is like taking a snapshot of a computer system at a certain moment. From this point, we can make a copy of the system and let it keep working. But, we also can start another copy from that same moment, just like splitting a road into two paths. This can be used in many ways, but it's really useful when trying to figure out problems in the system. Since these systems can behave in unexpected ways, it's helpful to see all the different things that could happen starting from that snapshot.
Time-Travel is like having a rewind button for a computer system. You can use this to go back to a time when the system was working differently. This is really helpful when you're trying to figure out problems or mistakes. Also, it helps the agents do their jobs better. If they mess up a task, the system can automatically go back to the starting point and try the task again.
Memory via Vector Databases
Think of a vector database like a brain for an AI, helping it to remember and understand information. We've included a minimal vector database right into our runtime package, so it's easy to get it started. And if you want, you can also add your own, or choose one from other options we have available!
Code Interpreter Environments
Thousand Birds has first class support for code interpreter environments. Today you can execute Deno or Starlark as nodes within your system, passing generated code from LLMs directly to these nodes. We’ve provided these options in order to provide fast startup and ease of use, while maintaining security. We’ll continue to build additional safeguards against running untrusted code, and support for containerized nodes, soon.