agent-relay 6.2.4 → 6.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,33 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
<img src="./readme-banner.png" alt="Agent Relay" height="392">
|
|
2
2
|
|
|
3
|
+
**Website:** [agentrelay.com](https://agentrelay.com) · **Docs:** [agentrelay.com/docs](https://agentrelay.com/docs)
|
|
3
4
|
|
|
5
|
+
<a href="https://www.npmjs.com/package/@agent-relay/sdk"><img alt="npm" src="https://img.shields.io/npm/v/@agent-relay/sdk"></a>
|
|
6
|
+
<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>
|
|
7
|
+
<a href="./LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue.svg"></a>
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
</div>
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
## Multi Agent Orchestration
|
|
8
12
|
|
|
9
|
-
|
|
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.
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
## Benefits Over Subagents
|
|
12
18
|
|
|
13
|
-
|
|
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.
|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
## Get Started
|
|
16
26
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
1. Install the agent-relay cli
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
curl -fsSL https://raw.githubusercontent.com/AgentWorkforce/relay/main/install.sh | bash
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
2. Install the skill
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
npx skills add https://github.com/agentworkforce/skills --skill orchestrating-agent-relay
|
|
38
|
+
```
|
|
39
|
+
|
|
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
|
+
```
|
|
21
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.
|
|
22
47
|
|
|
23
|
-
##
|
|
48
|
+
## SDK
|
|
24
49
|
|
|
25
|
-
|
|
26
|
-
- **Works with terminal-native agents**: use Claude Code, Codex, Gemini CLI, OpenCode, and other supported runtimes without changing how they run.
|
|
27
|
-
- **SDK-first**: spawn agents programmatically, route work, wait for readiness, and manage lifecycles from TypeScript or Python.
|
|
28
|
-
- **Useful from both code and tools**: wire Relay into apps, scripts, plugins, and local workflows.
|
|
50
|
+
Use the Agent Relay SDK to spawn and control agents programmatically.
|
|
29
51
|
|
|
30
|
-
|
|
52
|
+
### Install
|
|
31
53
|
|
|
32
54
|
**TypeScript / Node.js**
|
|
33
55
|
|
|
@@ -45,7 +67,7 @@ pip install agent-relay-sdk
|
|
|
45
67
|
|
|
46
68
|
See the [Python SDK](./packages/sdk-py) for Python usage and adapters.
|
|
47
69
|
|
|
48
|
-
|
|
70
|
+
### Quick example
|
|
49
71
|
|
|
50
72
|
```typescript
|
|
51
73
|
import { AgentRelay, Models } from '@agent-relay/sdk';
|
|
@@ -82,53 +104,17 @@ await relay.shutdown();
|
|
|
82
104
|
|
|
83
105
|
Want more than a toy example? Start with:
|
|
84
106
|
|
|
85
|
-
- [Introduction](
|
|
86
|
-
- [
|
|
87
|
-
- [
|
|
88
|
-
- [TypeScript SDK README](./packages/sdk/README.md)
|
|
89
|
-
- [Python SDK README](./packages/sdk-py/README.md)
|
|
107
|
+
- [Introduction](https://agentrelay.com/docs/introduction)
|
|
108
|
+
- [TypeScript SDK README](https://agentrelay.com/docs/typescript-sdk)
|
|
109
|
+
- [Python SDK README](https://agentrelay.com/docs/python-sdk)
|
|
90
110
|
|
|
91
|
-
|
|
111
|
+
### What you can build
|
|
92
112
|
|
|
93
113
|
- Multi-agent coding flows with shared channels and worker handoffs
|
|
94
114
|
- Agent inboxes for status updates, blockers, and review loops
|
|
95
115
|
- Tooling that lets existing agents communicate without rewriting their runtime
|
|
96
116
|
- Local or remote coordination patterns where multiple agents need shared context
|
|
97
117
|
|
|
98
|
-
## Claude Code plugin
|
|
99
|
-
|
|
100
|
-
Use Agent Relay directly inside Claude Code, no SDK required. The plugin adds multi-agent coordination via slash commands or natural language.
|
|
101
|
-
|
|
102
|
-
```text
|
|
103
|
-
/plugin marketplace add Agentworkforce/skills
|
|
104
|
-
/plugin install claude-relay-plugin
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Once installed, you can coordinate teams of agents with built-in skills:
|
|
108
|
-
|
|
109
|
-
```text
|
|
110
|
-
> /relay-team Refactor the auth module, split the middleware, update tests, and update docs
|
|
111
|
-
> /relay-fanout Run linting fixes across all packages in the monorepo
|
|
112
|
-
> /relay-pipeline Analyze the API logs, generate a summary report, then draft an email
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Or just describe what you want in plain language:
|
|
116
|
-
|
|
117
|
-
```text
|
|
118
|
-
> Use relay fan-out to lint all packages in parallel
|
|
119
|
-
> Split the migration into three relay workers, one for the schema, one for the API, and one for the frontend
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
See [docs/plugin-claude-code.md](./docs/plugin-claude-code.md) and the [plugin README](https://github.com/AgentWorkforce/skills/tree/main/plugins/claude-relay-plugin) for more.
|
|
123
|
-
|
|
124
|
-
## Agent Relay CLI
|
|
125
|
-
|
|
126
|
-
Install the CLI with:
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
curl -fsSL https://raw.githubusercontent.com/AgentWorkforce/relay/main/install.sh | bash
|
|
130
|
-
```
|
|
131
|
-
|
|
132
118
|
Then use Agent Relay to bring agents into a shared workspace and route work between them.
|
|
133
119
|
|
|
134
120
|
## Supported agents and runtimes
|
|
@@ -142,7 +128,7 @@ Agent Relay is designed for terminal-native agents and SDK-driven workflows. Thi
|
|
|
142
128
|
|
|
143
129
|
The broader SDK and workflow surface also includes additional integrations in the codebase. See the package docs for details.
|
|
144
130
|
|
|
145
|
-
|
|
131
|
+
### Development
|
|
146
132
|
|
|
147
133
|
If you want to work on the repo itself:
|
|
148
134
|
|
|
@@ -154,7 +140,6 @@ npm test
|
|
|
154
140
|
|
|
155
141
|
Useful references:
|
|
156
142
|
|
|
157
|
-
- [ARCHITECTURE.md](./ARCHITECTURE.md)
|
|
158
143
|
- [CHANGELOG.md](./CHANGELOG.md)
|
|
159
144
|
- [GitHub Issues](https://github.com/AgentWorkforce/relay/issues)
|
|
160
145
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-relay",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.5",
|
|
4
4
|
"description": "Real-time agent-to-agent communication system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"install.sh",
|
|
11
11
|
"scripts/postinstall.js",
|
|
12
12
|
"scripts/build-cjs.mjs",
|
|
13
|
-
"relay-snippets",
|
|
14
13
|
"LICENSE",
|
|
15
14
|
"README.md"
|
|
16
15
|
],
|
|
@@ -133,14 +132,14 @@
|
|
|
133
132
|
},
|
|
134
133
|
"homepage": "https://github.com/AgentWorkforce/relay#readme",
|
|
135
134
|
"dependencies": {
|
|
136
|
-
"@agent-relay/cloud": "6.2.
|
|
137
|
-
"@agent-relay/config": "6.2.
|
|
138
|
-
"@agent-relay/hooks": "6.2.
|
|
139
|
-
"@agent-relay/sdk": "6.2.
|
|
140
|
-
"@agent-relay/telemetry": "6.2.
|
|
141
|
-
"@agent-relay/trajectory": "6.2.
|
|
142
|
-
"@agent-relay/user-directory": "6.2.
|
|
143
|
-
"@agent-relay/utils": "6.2.
|
|
135
|
+
"@agent-relay/cloud": "6.2.5",
|
|
136
|
+
"@agent-relay/config": "6.2.5",
|
|
137
|
+
"@agent-relay/hooks": "6.2.5",
|
|
138
|
+
"@agent-relay/sdk": "6.2.5",
|
|
139
|
+
"@agent-relay/telemetry": "6.2.5",
|
|
140
|
+
"@agent-relay/trajectory": "6.2.5",
|
|
141
|
+
"@agent-relay/user-directory": "6.2.5",
|
|
142
|
+
"@agent-relay/utils": "6.2.5",
|
|
144
143
|
"@aws-sdk/client-s3": "3.1020.0",
|
|
145
144
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
146
145
|
"@relayauth/core": "^0.1.2",
|
|
@@ -167,7 +166,6 @@
|
|
|
167
166
|
"smol-toml": "^1.6.0",
|
|
168
167
|
"ssh2": "^1.17.0",
|
|
169
168
|
"tar": "^7.5.10",
|
|
170
|
-
"uuid": "^10.0.0",
|
|
171
169
|
"ws": "^8.18.3",
|
|
172
170
|
"yaml": "^2.7.0",
|
|
173
171
|
"zod": "^3.23.8",
|
|
@@ -182,7 +180,6 @@
|
|
|
182
180
|
"@types/express": "^5.0.6",
|
|
183
181
|
"@types/node": "^22.19.3",
|
|
184
182
|
"@types/ssh2": "^1.15.5",
|
|
185
|
-
"@types/uuid": "^10.0.0",
|
|
186
183
|
"@types/ws": "^8.18.1",
|
|
187
184
|
"@typescript-eslint/eslint-plugin": "^8.18.2",
|
|
188
185
|
"@typescript-eslint/parser": "^8.18.2",
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Agent Policy
|
|
2
|
-
|
|
3
|
-
You are operating under organizational agent policies. These policies govern your interactions with other agents and tools.
|
|
4
|
-
|
|
5
|
-
## Your Permissions
|
|
6
|
-
|
|
7
|
-
Check the policy service for your specific permissions. If no explicit restrictions are defined, you have full permissions.
|
|
8
|
-
|
|
9
|
-
## General Rules
|
|
10
|
-
|
|
11
|
-
1. **Spawn Authorization**: Only spawn agents you are authorized to spawn. Check with Lead before spawning if unsure.
|
|
12
|
-
|
|
13
|
-
2. **Message Routing**: Only message agents you are authorized to communicate with. Use proper channels.
|
|
14
|
-
|
|
15
|
-
3. **Tool Usage**: Only use tools you are authorized to use. Read-only operations are generally safer.
|
|
16
|
-
|
|
17
|
-
4. **Rate Limits**: Respect rate limits on messages. Don't spam other agents.
|
|
18
|
-
|
|
19
|
-
## Restricted Agents
|
|
20
|
-
|
|
21
|
-
Workers and non-lead agents typically have these restrictions:
|
|
22
|
-
- Cannot spawn other agents without Lead approval
|
|
23
|
-
- Can only message Lead, Coordinator, and their assigned peers
|
|
24
|
-
- Limited to read-only tools unless explicitly granted write access
|
|
25
|
-
|
|
26
|
-
## Lead Agents
|
|
27
|
-
|
|
28
|
-
Lead agents typically have elevated permissions:
|
|
29
|
-
- Can spawn Worker agents
|
|
30
|
-
- Can message all agents
|
|
31
|
-
- Can use all tools
|
|
32
|
-
- Responsible for enforcing policy on spawned agents
|
|
33
|
-
|
|
34
|
-
## Enforcement
|
|
35
|
-
|
|
36
|
-
Policy violations are blocked at runtime. If your action is blocked, you'll receive a denial message explaining why. Do not attempt to circumvent policy restrictions.
|
|
37
|
-
|
|
38
|
-
## Checking Your Policy
|
|
39
|
-
|
|
40
|
-
To see your current policy, ask Lead or check the dashboard at `/api/policy/:workspaceId`.
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# Agent Relay Protocol (Internal)
|
|
2
|
-
|
|
3
|
-
Advanced features for session continuity and trajectory tracking.
|
|
4
|
-
|
|
5
|
-
## Session Continuity
|
|
6
|
-
|
|
7
|
-
Use `mcp__relaycast__message_dm_send` with a continuity message to save state for session recovery:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
mcp__relaycast__message_dm_send(to: "system", text: "KIND: continuity\nACTION: save\n\nCurrent task: Implementing user authentication\nCompleted: User model, JWT utils\nIn progress: Login endpoint")
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### When to Save
|
|
14
|
-
|
|
15
|
-
- Before long-running operations (builds, tests)
|
|
16
|
-
- When switching task areas
|
|
17
|
-
- Every 15-20 minutes of active work
|
|
18
|
-
- Before ending session
|
|
19
|
-
|
|
20
|
-
## Work Trajectories
|
|
21
|
-
|
|
22
|
-
Record your work as a trajectory for future agents.
|
|
23
|
-
|
|
24
|
-
### Starting Work
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
trail start "Implement user authentication"
|
|
28
|
-
trail start "Fix login bug" --task "agent-relay-123"
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Recording Decisions
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
trail decision "Chose JWT over sessions" --reasoning "Stateless scaling"
|
|
35
|
-
trail decision "Used existing auth middleware"
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Completing Work
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
trail complete --summary "Added JWT auth" --confidence 0.85
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Confidence: 0.9+ (high), 0.7-0.9 (good), 0.5-0.7 (some uncertainty), <0.5 (needs review)
|
|
45
|
-
|
|
46
|
-
### Abandoning Work
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
trail abandon --reason "Blocked by missing credentials"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Cross-Project Messaging
|
|
53
|
-
|
|
54
|
-
In bridge mode, use `project:agent` format with `mcp__relaycast__message_dm_send`:
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
mcp__relaycast__message_dm_send(to: "frontend:Designer", text: "Please update the login UI.")
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Special targets:
|
|
61
|
-
|
|
62
|
-
- `project:lead` - Lead agent of that project
|
|
63
|
-
- `project:*` - Broadcast to project
|
|
64
|
-
- `*:*` - Broadcast to all projects
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# Agent Relay
|
|
2
|
-
|
|
3
|
-
Real-time agent-to-agent messaging via MCP tools.
|
|
4
|
-
|
|
5
|
-
## MCP Tools
|
|
6
|
-
|
|
7
|
-
All agent communication uses MCP tools provided by the Relaycast MCP server.
|
|
8
|
-
Tool names use dot-notation: Claude uses `mcp__relaycast__<category>_<action>`, other CLIs use `relaycast.<category>.<action>`.
|
|
9
|
-
|
|
10
|
-
| Tool | Description |
|
|
11
|
-
| --------------------------------- | ------------------------------------- |
|
|
12
|
-
| `message.dm.send(to, text)` | Send a DM to an agent |
|
|
13
|
-
| `message_post(channel, text)` | Post a message to a channel |
|
|
14
|
-
| `message.inbox.check()` | Check your inbox for new messages |
|
|
15
|
-
| `agent_list()` | List online agents |
|
|
16
|
-
| `agent_add(name, cli, task)` | Spawn a new worker agent |
|
|
17
|
-
| `agent_remove(name)` | Release/stop a worker agent |
|
|
18
|
-
|
|
19
|
-
## Sending Messages
|
|
20
|
-
|
|
21
|
-
### Direct Messages
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
mcp__relaycast__message_dm_send(to: "Bob", text: "Can you review my code changes?")
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Channel Messages
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
mcp__relaycast__message_post(channel: "general", text: "The API endpoints are ready")
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Spawning & Releasing Agents
|
|
34
|
-
|
|
35
|
-
### Spawn a Worker
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
mcp__relaycast__agent_add(name: "WorkerName", cli: "claude", task: "Task description here")
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### CLI Options
|
|
42
|
-
|
|
43
|
-
| CLI Value | Description |
|
|
44
|
-
| ----------- | ---------------------------- |
|
|
45
|
-
| `claude` | Claude Code (Anthropic) |
|
|
46
|
-
| `codex` | Codex CLI (OpenAI) |
|
|
47
|
-
| `gemini` | Gemini CLI (Google) |
|
|
48
|
-
| `opencode` | OpenCode CLI (multi-model) |
|
|
49
|
-
| `aider` | Aider coding assistant |
|
|
50
|
-
| `goose` | Goose AI assistant |
|
|
51
|
-
|
|
52
|
-
### Release a Worker
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
mcp__relaycast__agent_remove(name: "WorkerName")
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Receiving Messages
|
|
59
|
-
|
|
60
|
-
Messages appear as:
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
Relay message from Alice [abc123]: Content here
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Channel messages include `[#channel]`:
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
Relay message from Alice [abc123] [#general]: Hello!
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Reply to the channel shown, not the sender.
|
|
73
|
-
|
|
74
|
-
## When You Are Spawned
|
|
75
|
-
|
|
76
|
-
If you were spawned by another agent:
|
|
77
|
-
|
|
78
|
-
1. Your first message is your task from your spawner
|
|
79
|
-
2. Use `mcp__relaycast__message_dm_send` to reply to your spawner
|
|
80
|
-
3. Report status to your spawner (your lead), not broadcast
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
mcp__relaycast__message_dm_send(to: "Lead", text: "ACK: Starting on the task.")
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Protocol
|
|
87
|
-
|
|
88
|
-
- **ACK** when you receive a task: `ACK: Brief description`
|
|
89
|
-
- **DONE** when complete: `DONE: What was accomplished`
|
|
90
|
-
- Send status to your **lead**, not broadcast
|
|
91
|
-
|
|
92
|
-
## Agent Naming (Local vs Bridge)
|
|
93
|
-
|
|
94
|
-
**Local communication** uses plain agent names. The `project:` prefix is **ONLY** for cross-project bridge mode.
|
|
95
|
-
|
|
96
|
-
| Context | Correct | Incorrect |
|
|
97
|
-
| ---------------------- | ----------------------------------------------------------- | ------------------------------------------------------ |
|
|
98
|
-
| Local (same project) | `mcp__relaycast__message_dm_send(to: "Lead", ...)` | `mcp__relaycast__message_dm_send(to: "project:lead", ...)` |
|
|
99
|
-
| Bridge (cross-project) | `mcp__relaycast__message_dm_send(to: "frontend:Designer", ...)` | N/A |
|
|
100
|
-
|
|
101
|
-
## Multi-Workspace
|
|
102
|
-
|
|
103
|
-
When connected to multiple workspaces, messages include workspace context:
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
Relay message from Alice [my-team / abc123]: Hello!
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
- Messages are scoped to the originating workspace
|
|
110
|
-
- Reply within the same workspace context shown in the message header
|
|
111
|
-
|
|
112
|
-
## Checking Status
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
mcp__relaycast__agent_list() # List online agents
|
|
116
|
-
mcp__relaycast__message_inbox_check() # Check for unread messages
|
|
117
|
-
```
|