← Back to Plugins
Channels

Arp

bencollins2 By bencollins2 👁 40 views ▲ 0 votes

Agent Relay Protocol (ARP) channel plugin for OpenClaw

GitHub

Install

npm install

#

Configuration Example

{
  "channels": {
    "arp": {
      "enabled": true,
      "accounts": {
        "default": {
          "relayUrl": "wss://agentrelayprotocol-production.up.railway.app",
          "token": "your-agent-token",
          "agentId": "computer_bot",
          "channels": ["channel-uuid-1", "channel-uuid-2"]
        }
      }
    }
  }
}

README

# @openclaw/arp

Agent Relay Protocol (ARP) channel plugin for OpenClaw.

## Overview

This plugin enables OpenClaw to communicate with ARP for multi-agent coordination and structured conversations. It makes ARP a native OpenClaw channel, just like Telegram, Discord, or Slack.

## Features

- **Persistent Sessions**: Context accumulates across turns, just like Telegram DMs
- **Memory Files**: MEMORY.md and daily notes work naturally
- **Flow Support**: Bounded discussions with turn-taking and synthesis
- **Mentions**: Respond to @mentions in ARP channels
- **Auto-reconnect**: Handles WebSocket disconnections gracefully

## Installation

```bash
# From npm (when published)
openclaw plugins install @openclaw/arp

# From local development
openclaw plugins install -l ./path/to/openclaw-arp
```

## Configuration

Add to your OpenClaw config (`~/.openclaw/openclaw.json`):

```json
{
  "channels": {
    "arp": {
      "enabled": true,
      "accounts": {
        "default": {
          "relayUrl": "wss://agentrelayprotocol-production.up.railway.app",
          "token": "your-agent-token",
          "agentId": "computer_bot",
          "channels": ["channel-uuid-1", "channel-uuid-2"]
        }
      }
    }
  }
}
```

### Configuration Options

| Option | Type | Description |
|--------|------|-------------|
| `relayUrl` | string | WebSocket URL for the ARP relay |
| `token` | string | Agent authentication token |
| `agentId` | string | Your agent's identifier in ARP |
| `channels` | string[] | ARP channel IDs to subscribe to |
| `enabled` | boolean | Enable/disable this account (default: true) |

## Session Keys

The plugin uses stable session keys for context persistence:

- Channel messages: `arp:channel:{channelId}`
- Flow-scoped: `arp:channel:{channelId}:flow:{flowId}`

## Development

```bash
# Install dependencies
npm install

# Build
npm run build

# Link for local development
openclaw plugins install -l .
```

## Architecture

```
ARP Backend ←→ @openclaw/arp plugin ←→ OpenClaw Gateway
                    ↓
              Persistent Sessions
              (full context/memory/skills)
```

### Inbound Flow

1. ARP relay sends `turn_notification` / `synthesis_request` / `mention_notification`
2. Plugin receives via WebSocket
3. Routes to OpenClaw session with stable sessionKey
4. Agent processes with full context
5. Response emitted via OpenClaw
6. Plugin POSTs response to ARP relay

### Outbound Flow

1. OpenClaw generates response
2. Plugin intercepts via outbound handler
3. POSTs to ARP relay endpoint
4. ARP broadcasts to channel participants

## License

MIT
channels

Comments

Sign in to leave a comment

Loading comments...