Tinker
Resources
Agent logs
Agent memories
Agent sessions
Agent terminal logs
Agents
Comments
Epics
Projects
Proposals
Tickets
Avo user
Resources
Agent logs
Agent memories
Agent sessions
Agent terminal logs
Agents
Comments
Epics
Projects
Proposals
Tickets
Avo user
Home
Epics
Autonomous Agent Coordination via WebSocket
Edit
Autonomous Agent Coordination via WebSocket
Cancel
Save
Title
*
Project
*
Choose an option
alpha
tinker
Create new project
Description
Enable agents to work autonomously by having Orchestrator coordinate workers and reviewers through WebSocket messaging. ## Overview Agents (Worker, Reviewer, Orchestrator) run as long-lived sessions connected via WebSocket. Orchestrator receives periodic pings, checks state, and assigns work to available agents. ## Architecture ``` PingJob (every 30s) → checks if Orchestrator idle for 2+ min ↓ Pings Orchestrator ↓ Orchestrator checks available agents ↓ If no one available → stop ↓ If someone available: - Check pending_audit → assign reviewer - Check failed tickets → notify worker - Check unassigned tickets → assign worker ↓ Broadcasts via AgentChannel to agents ``` ## Agent States | Status | Meaning | |--------|---------| | `idle` | Available for work | | `busy` | Actively working | No `offline` status - WebSocket connects are transient. ## Message Format | From → To | Message | |-----------|---------| | Orchestrator → Worker | `"Work on ticket #58"` | | Orchestrator → Reviewer | `"Review ticket #58"` | ## Decision Flow 1. Orchestrator receives ping 2. Check: `list_members(role: "worker", status: "idle")` and `list_members(role: "reviewer", status: "idle")` 3. If no one available → return (everyone busy) 4. If someone available: - Any `pending_audit` tickets + idle reviewer? → Broadcast to reviewer - Any `todo` tickets with assignee (failed review)? → Broadcast to worker - Any `todo` tickets without assignee + idle worker? → `assign_ticket()` + broadcast to worker ## Key Principles - **No event queue** - Orchestrator queries state when pinged - **Agents don't claim** - Orchestrator assigns, Workers execute - **Workers mark idle after review submission** - can work on other tickets while review pending - **No reactive Rails** - just periodic ping job
Avo
· © 2026 AvoHQ ·
v3.27.0
Close modal
Are you sure?
Yes, I'm sure
No, cancel