Druids (https://github.com/fulcrumresearch/druids) is an open-source library for structuring and running multi-agent coding workflows. Druids makes it easy to do this by abstracting away all the VM infrastructure, agent provisioning, and communication. You can watch our demo video here (https://www.youtube.com/watch?v=EVJqW-tvSy4) to see what it looks like.
At a high level:
- Users can write Python programs that define what roles the agents take on and how they interact with each other.
- A program is made of events - clear state transitions that the agents or clients can call to modify state. Each event gets exposed as an agent tool.
- Druids provisions full VMs so that the agents can run continuously and communicate effectively.
We made Druids because we were making lots of internal coding tools using agents and found it annoying to have to rearrange the wiring every time.
As we were building Druids, we realized a lot of our internal tools were easier to express as an event-driven architecture – separating deterministic control flow from agent behavior – and this design also made it possible to have many agents work reliably.
We had issues with scaling the number of concurrent agents within a run, so we decided to have each program run in an isolated sandbox program runtime, kind of the same way you run a Modal function. Each agent then calls the runtime with an agent token, which checks who can talk to who or send files across VMs, and then applies the tool call.
Our early users have found the library useful for:
- running many agents to do performance optimization
- building custom automated software pipelines for eg code review, pentesting, large-scale migrations, etc...
We've heard that the frontier labs have the infrastructure to quickly spin up 100 agents and have them coordinate with each other smoothly in various ways. We're hoping that Druids can be a starting point to make that infrastructure more accessible.