Skip to content

Commit baaef91

Browse files
authored
Merge pull request #928 from AgentWorkforce/readme-updates
Add three-way demo and update README
2 parents f82bd2c + c148f41 commit baaef91

5 files changed

Lines changed: 114 additions & 49 deletions

File tree

README.md

Lines changed: 32 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,49 @@
1-
<img src="./readme-banner.png" alt="Agent Relay" height="392">
2-
3-
**Website:** [agentrelay.com](https://agentrelay.com) · **Docs:** [agentrelay.com/docs](https://agentrelay.com/docs)
4-
1+
<img src="./readme-banner.png" alt="Agent Relay">
52
<a href="https://www.npmjs.com/package/@agent-relay/sdk"><img alt="npm" src="https://img.shields.io/npm/v/@agent-relay/sdk"></a>
63
<a href="https://github.com/AgentWorkforce/relay/actions/workflows/test.yml"><img alt="Tests" src="https://img.shields.io/github/actions/workflow/status/AgentWorkforce/relay/test.yml?branch=main&label=tests"></a>
74
<a href="./LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue.svg"></a>
5+
<br/><br/>
6+
Real-time communication between coding harnesses. Let Claude send messages to codex and stop babysitting your agents.
87

9-
</div>
8+
## What you can build with it today
109

11-
## Multi Agent Orchestration
10+
- **Claude orchestrates, Codex implements.** <br/>Spawn a Claude lead that hands work to Codex workers, reads their progress live, and steers mid-task when one goes off the rails.
11+
- **Adversarial review loops.** <br/>Run an implementer alongside one or two critics. They iterate until the critic ratifies — no human in the loop.
12+
- **Walk-away autonomy.** <br/>Kick off a multi-step job, close the laptop. Agents keep talking, finishing, and verifying each other's work.
1213

13-
Enable your Claude Code, Codex, OpenCode agent spawn agent teams that can communicate and collaborate. Not subagents, but real agents who
14-
could spawn their own subagents. This allows for powerful AI cross-collaboration so you can get the best harnesses + models working
15-
together.
14+
## Get started
1615

17-
## Benefits Over Subagents
16+
1. Install the agent-relay CLI:
1817

19-
1. The agent orchestrating has full insight what the spawned agents are doing. It can read the logs and steer mid turn if needed
20-
2. Enables advanced swarm techniques as each agent can communicate with each other and coordinate to form agent teams for different types: review/fix loops, adversarial/debate pairs, fan-out -> pipeline -> gather, or lead + workers to name a few
21-
3. Diversity of thought and implementation. Codex implement, Claude review, Gemini do the final verification leads to better results as different models + harnesses excel in different things.
22-
4. Review happens as a conversation between the live reviewer and the live implementer, not as a report handed back to the parent after each one finishes.
23-
5. Audit trail exists outside the agent and outside the parent. With the [Agent Relay Observer](https://agentrelay.com/observer) you get full auditability into every single DM and group message sent by the agents.
18+
```bash
19+
curl -fsSL https://raw.githubusercontent.com/AgentWorkforce/relay/main/install.sh | bash
20+
```
2421

25-
## Get Started
22+
2. Install the orchestration skill:
2623

27-
1. Install the agent-relay cli
24+
```bash
25+
npx skills add https://github.com/agentworkforce/skills --skill orchestrating-agent-relay
26+
```
2827

29-
```
30-
curl -fsSL https://raw.githubusercontent.com/AgentWorkforce/relay/main/install.sh | bash
28+
3. Tell your agent to use it:
3129

32-
```
30+
```
31+
use the orchestrating-agent-relay skill to spawn a claude and codex agent and [YOUR_TASK]
32+
```
3333

34-
2. Install the skill
34+
## Why not subagents?
3535

36-
```
37-
npx skills add https://github.com/agentworkforce/skills --skill orchestrating-agent-relay
38-
```
36+
Subagents are the right tool when work is a single well-scoped one-shot. Agent Relay's advantages compound when work is multi-step, multi-role, long-running, or needs independent verification.
3937

40-
3. Tell your agent to use it
41-
42-
```
43-
use the orchestrating-agent-relay skill to spawn a claude and codex agent and [YOUR_TASK]
44-
```
45-
46-
For single, well-scoped, one-shot tasks, subagents still win. Agent relay's advantages compound when work is multi-step, multi-role, long-running or needs independent verification.
38+
- **Mix models and harnesses.** Codex implements, Claude reviews, Gemini verifies — each model used for what it's best at, not whatever the parent harness happens to be.
39+
- **Live steering.** The orchestrator reads logs and DMs as workers run and can redirect mid-turn instead of waiting for a final report.
40+
- **Review as a conversation.** The reviewer and implementer talk while the code is being written, not after the fact.
41+
- **Swarm patterns out of the box.** Review/fix loops, adversarial debate pairs, fan-out → pipeline → gather, lead + workers.
42+
- **Audit trail outside the agent.** Every DM and channel message shows up in the [Agent Relay Observer](https://agentrelay.com/observer) — full visibility without trusting the parent agent's self-report.
4743

4844
## SDK
4945

50-
Use the Agent Relay SDK to spawn and control agents programmatically.
51-
52-
### Install
46+
Spawn and control agents programmatically.
5347

5448
**TypeScript / Node.js**
5549

@@ -102,24 +96,15 @@ await AgentRelay.waitForAny([x, o], 5 * 60 * 1000);
10296
await relay.shutdown();
10397
```
10498

105-
Want more than a toy example? Start with:
99+
More:
106100

107101
- [Introduction](https://agentrelay.com/docs/introduction)
108102
- [TypeScript SDK README](https://agentrelay.com/docs/typescript-sdk)
109103
- [Python SDK README](https://agentrelay.com/docs/python-sdk)
110104

111-
### What you can build
112-
113-
- Multi-agent coding flows with shared channels and worker handoffs
114-
- Agent inboxes for status updates, blockers, and review loops
115-
- Tooling that lets existing agents communicate without rewriting their runtime
116-
- Local or remote coordination patterns where multiple agents need shared context
117-
118-
Then use Agent Relay to bring agents into a shared workspace and route work between them.
119-
120105
## Supported agents and runtimes
121106

122-
Agent Relay is designed for terminal-native agents and SDK-driven workflows. This repo currently includes first-class support for:
107+
First-class support for terminal-native agents:
123108

124109
- Claude Code
125110
- Codex CLI
@@ -128,17 +113,15 @@ Agent Relay is designed for terminal-native agents and SDK-driven workflows. Thi
128113

129114
The broader SDK and workflow surface also includes additional integrations in the codebase. See the package docs for details.
130115

131-
### Development
132-
133-
If you want to work on the repo itself:
116+
## Development
134117

135118
```bash
136119
npm install
137120
npm run build
138121
npm test
139122
```
140123

141-
Useful references:
124+
References:
142125

143126
- [CHANGELOG.md](./CHANGELOG.md)
144127
- [GitHub Issues](https://github.com/AgentWorkforce/relay/issues)

readme-banner.png

-18.6 KB
Loading

scripts/demos/three-way-debate.gif

1.66 MB
Loading

scripts/demos/three-way-debate.mp4

2.38 MB
Binary file not shown.
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Three-Way Plan Debate — VHS recording
2+
#
3+
# Records a side-by-side demo of three named agents (planner, reviewer,
4+
# adversarial) debating a plan in real time, communicating via the
5+
# workspace's general channel.
6+
#
7+
# Strategy (third iteration — the first two failed because VHS keystrokes
8+
# were racing Claude's boot and Opus xhigh thinking was too slow):
9+
# - Use --model sonnet for fast responses
10+
# - Use --task to deliver each agent's role via the broker's controlled
11+
# inject mechanism — the broker waits for Claude to be ready before
12+
# injecting, so the brief never gets dropped
13+
# - No VHS Type into Claude's prompt at all; all input goes to bash shells
14+
# - PlaybackSpeed 2.5x compresses the GIF
15+
#
16+
# Layout: planner left, reviewer top-right, adversarial bottom-right.
17+
#
18+
# Prereqs:
19+
# - `agent-relay` on PATH, `claude` authenticated, tmux 3.x, vhs >= 0.11
20+
#
21+
# Run from repo root:
22+
# vhs scripts/demos/three-way-debate.tape
23+
24+
Output scripts/demos/three-way-debate.gif
25+
Output scripts/demos/three-way-debate.mp4
26+
27+
Set Shell "bash"
28+
Set FontSize 13
29+
Set Width 1920
30+
Set Height 1080
31+
Set Padding 18
32+
Set Theme "Catppuccin Mocha"
33+
Set TypingSpeed 25ms
34+
Set PlaybackSpeed 2.5
35+
36+
# ---------- Hidden setup ----------
37+
Hide
38+
39+
Type "tmux kill-session -t debate 2>/dev/null; agent-relay down 2>/dev/null; true" Enter
40+
Sleep 2s
41+
42+
Type "agent-relay up --no-spawn >/tmp/agent-relay-vhs.log 2>&1 &" Enter
43+
Sleep 5s
44+
45+
# Build the 3-pane layout
46+
Type "tmux new-session -d -s debate -x 240 -y 60" Enter
47+
Type "tmux split-window -h -p 45 -t debate" Enter
48+
Type "tmux split-window -v -t debate:0.1" Enter
49+
50+
# Spawn reviewer (top-right, pane 0.1) with its task — broker injects when Claude is ready.
51+
# IMPORTANT: must use the verbose `new` verb (not `-n` shorthand) so --task and --model
52+
# are parsed by agent-relay instead of being passed through to claude as unknown options.
53+
Type `tmux send-keys -t debate:0.1 "agent-relay new reviewer claude --attach --mode passthrough --ephemeral --model sonnet --task 'Watch the general channel using mcp__relaycast__message_inbox_check every 20 seconds. When planner and adversarial deadlock, post a synthesis to general via mcp__relaycast__message_post and say REVIEWER ratified.'" Enter` Enter
54+
Sleep 1s
55+
56+
# Spawn adversarial (bottom-right, pane 0.2) with its task
57+
Type `tmux send-keys -t debate:0.2 "agent-relay new adversarial claude --attach --mode passthrough --ephemeral --model sonnet --task 'Watch the general channel via mcp__relaycast__message_inbox_check every 15 seconds. When planner posts a plan, find 3 biggest flaws and post critique via mcp__relaycast__message_post. Iterate. Say ADVERSARIAL satisfied when convinced.'" Enter` Enter
58+
Sleep 1s
59+
60+
# Focus planner pane and attach VHS to tmux
61+
Type "tmux select-pane -t debate:0.0" Enter
62+
Type "tmux attach -t debate" Enter
63+
Sleep 2s
64+
65+
# Give reviewer and adversarial time to boot and start polling
66+
Sleep 18s
67+
68+
# ---------- Recording starts ----------
69+
Show
70+
71+
# Spawn planner with its task — the typed command IS the visible kickoff
72+
Type `agent-relay new planner claude --attach --mode passthrough --ephemeral --model sonnet --task "You are the planner. Two other agents are listening on the general channel: adversarial (critic) and reviewer (arbitrator). Draft a plan to migrate our auth service from session cookies to OAuth2, zero downtime, 50k DAU. Post the plan to general via mcp__relaycast__message_post. Iterate with adversarial until they ratify."`
73+
Sleep 600ms
74+
Enter
75+
76+
# Show debate: ~100s real -> ~40s in the GIF at 2.5x playback
77+
Sleep 100s
78+
79+
# ---------- Cleanup ----------
80+
Hide
81+
Type "tmux kill-session -t debate; agent-relay down" Enter
82+
Sleep 1s

0 commit comments

Comments
 (0)