My setup is Hermes on a beefy machine with running a swarm of pi.devs - connects to GH issues via bot app so I can call it @xxxx in the issue. It can create PR, run actions and all. If I want to see the code I just run kilo code in VS locally.
This setup is so plain and simple that it just works, and it works wonders. I feel like I’ve been running a dev team who actually communicates through issuess and keeps it up to date!
I've built sth similar that acts as a mobile interface to your desktop setup via the multiplexer of your choice (herdr/tmux/zellij).
https://github.com/AltanS/collie
There's also a typescript SDK to connect a durable agent/harness to the app, still experimental though.
Yep, I think that all harnesses will require native durability, and pi-durable is a step in the right direction. I'm skeptical of bolted-on durability, like vercel's durable-harness, because they have to neuter the harness for things they can't reliably make durable (e.g. https://github.com/vercel-labs/durable-harness/blob/fb056a3c...)
> The loop runs on stateless workers in the control plane. A worker runs one iteration
> of the loop, either a model call or the tool calls it produced, then releases the
> agent and puts the next iteration on a queue in Postgres.
...
> Also unlike other harnesses, the machines that the workers (our agent loop) run on aren't
> where the agent runs its commands.
It's late but don't think I am grokking this.
Isn't running the commands the heavier part of the work? The agent loop itself is mostly waiting for a remote model and then running the commands?
Why would I need a pool of workers for the loop when the constraining resource is likely to be the machines I am running the commands against (which can't be stateless like the workers are?)
looks cool. how's that different from things like markbase dispatch where you can fire up the agent remotely with some given context. i mean what is the advantage of having the agent run always vs start and stop when you need it but give it a long-term memory context? maybe i'm missing something.
not sure I fully understand the question, but in Omnara, the agent isn't always "running". When it's idle (e.g. waiting for user input, or tool results), the agent is just rows in postgres with nothing happening to them. When a tool result returns or a new input comes in through the API, then a worker is allocated to the agent and starts "running" the agent again.
i was looking for good self-hostable durable agents to automate a persistent keyword watcher across sm. gonna give this a go. any pointers you recommend?
nice, this is close to something we run ourselves. we put up examples of sm agents that scan socials daily for keywords and DMs us (docs here https://docs.omnara.com/examples/x-signal-agent). probably the fastest starting point is to point your agent to it and ask it to swap in your keywords
My setup is Hermes on a beefy machine with running a swarm of pi.devs - connects to GH issues via bot app so I can call it @xxxx in the issue. It can create PR, run actions and all. If I want to see the code I just run kilo code in VS locally.
This setup is so plain and simple that it just works, and it works wonders. I feel like I’ve been running a dev team who actually communicates through issuess and keeps it up to date!
with a great related talk! https://ai.engineer/talks/UPwGaM2MKHY-log-is-agent
thanks swyx! the log is the agent is a core insight behind this
you beat pi-durable to it!
haha yes! this was the reasoning for making durability native in our harness
There is so much stuff in AI space. AI orchestrators, automations, harnesses. I often can't tell what is the difference between projects.
I started thinking is it something like 'ruflo', or 'mirofish', or is it something else totally
I've built sth similar that acts as a mobile interface to your desktop setup via the multiplexer of your choice (herdr/tmux/zellij). https://github.com/AltanS/collie
There's also a typescript SDK to connect a durable agent/harness to the app, still experimental though.
been following you guys from distance over x. congrats on the launch! excited to see where this goes
appreciate it!
feels like everyone is converging on durable agents lately: pi durable, cloudflare agents on durable objects, vercel's durable harness
Yep, I think that all harnesses will require native durability, and pi-durable is a step in the right direction. I'm skeptical of bolted-on durability, like vercel's durable-harness, because they have to neuter the harness for things they can't reliably make durable (e.g. https://github.com/vercel-labs/durable-harness/blob/fb056a3c...)
It's late, but I'm not grokking this:
> The loop runs on stateless workers in the control plane. A worker runs one iteration > of the loop, either a model call or the tool calls it produced, then releases the > agent and puts the next iteration on a queue in Postgres. ... > Also unlike other harnesses, the machines that the workers (our agent loop) run on aren't > where the agent runs its commands.
It's late but don't think I am grokking this.
Isn't running the commands the heavier part of the work? The agent loop itself is mostly waiting for a remote model and then running the commands?
Why would I need a pool of workers for the loop when the constraining resource is likely to be the machines I am running the commands against (which can't be stateless like the workers are?)
looks cool. how's that different from things like markbase dispatch where you can fire up the agent remotely with some given context. i mean what is the advantage of having the agent run always vs start and stop when you need it but give it a long-term memory context? maybe i'm missing something.
not sure I fully understand the question, but in Omnara, the agent isn't always "running". When it's idle (e.g. waiting for user input, or tool results), the agent is just rows in postgres with nothing happening to them. When a tool result returns or a new input comes in through the API, then a worker is allocated to the agent and starts "running" the agent again.
i was looking for good self-hostable durable agents to automate a persistent keyword watcher across sm. gonna give this a go. any pointers you recommend?
nice, this is close to something we run ourselves. we put up examples of sm agents that scan socials daily for keywords and DMs us (docs here https://docs.omnara.com/examples/x-signal-agent). probably the fastest starting point is to point your agent to it and ask it to swap in your keywords
looks great
Wow Literally what I was looking for.