AgentLoop is a work-in-progress Ruby agent runtime.
It is inspired by Jido, with a similar focus on:
- data-first agents
- explicit command boundaries
- clear separation between state transitions and side effects
- mailbox-backed
AgentServerruntime hosts - delayed signals that replay back through runtime
The core model is:
AgentLoop::Agentdecides throughcmdAgentLoop::AgentServerowns one live instance and processes signals seriallyAgentLoop::Runtimeacts as the shared execution kernelEffects::Scheduleuses your job backend for delayed replayEffects::Spawnstarts real child servers
Quick start:
server = AgentLoop::AgentServer.start(agent: CounterAgent)
server.call(
AgentLoop::Signal.new(type: "counter.increment", source: "readme", data: { by: 1 })
)This project is still evolving and APIs may change.
Start here:
After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
Bug reports and pull requests are welcome.