Skip to content
Tech News
← Back to articles

Show HN: Druids – Build your own software factory

read original more articles
Why This Matters

Druids offers a streamlined way to coordinate and deploy multiple software agents across machines, simplifying complex automation tasks such as code review, performance optimization, and data pipeline management. Its abstraction of VM infrastructure and communication enables developers to build scalable, autonomous workflows efficiently, impacting the way automation and large-scale software operations are handled in the industry.

Key Takeaways

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