Druids
Druids is a batteries-included library to coordinate and deploy coding agents across machines. Druids makes it easy to do this by abstracting away all the VM infrastructure, agent provisioning, and communication.
For example, here's a Druids program to deploy N task agents on N copies of a software environment and have a judge pick the best output:
async def program ( ctx , spec = "" , n = 3 ): submissions = {} # each agent gets its own sandboxed VM with your repo judge = await ctx . agent ( "judge" ) # events define how agents report back to the program @ judge . on ( "pick" ) async def on_pick ( winner = "" ): await ctx . done ({ "winner" : winner , "submissions" : submissions }) # spawn n workers in parallel — each implements the spec independently for i in range ( n ): worker = await ctx . agent ( f"worker- { i } " , prompt = spec , git = "write" ) worker_name = worker . name @ worker . on ( "submit" ) async def on_submit ( pr_url = "" ): submissions [ worker_name ] = pr_url if len ( submissions ) == n : # all done — send the PRs to the judge await judge . send ( f"Review these PRs and pick the best:
{ submissions } " )
druids exec best_of_n.py spec= " Refactor the auth module " n=5
Druids is useful for things like:
running many agents to do performance optimization
building custom automated software pipelines for eg code review, pentesting, large-scale migrations, long-running autonomous features
... continue reading