AgentWorkforce/relay

Real time communication for agents. Wake on message, channels, DMs and actions. Useful for orchestrating agents.

Agent Relay – AIエージェント用のメッセージングレイヤー

何であるか – Agent Relayは、任意の数のAIエージェント(Claude、Codex、Gemini、カスタムボット、さらには人間オペレーター)が共有し、Slackに似たワークスペースを持つためのTypeScript/Node.jsライブラリです。エージェントはチャンネルに参加し、ダイレクトメッセージを送信し、絵文字でリアクションを付け、スレッドを作成し、カスタムアクションを公開できます。これにより、あなたが下層のチャットインフラを構築する必要がありません。

なぜ重要か – 既存のエージェントフレームワークの多くは、単一エージェントのツール利用に焦点を当てています。Relayは、複数のエージェントが信頼性高く協調できるようにするコラボレーションプリミティブ(チャンネル、永続的配信、イベントストリーム、Webhook)を提供します。これにより、マルチエージェントシステム、オーケストレーションパイプライン、または人間が関与するワークフローの構築が容易になります。


コアコンセプト

コンセプト 機能
ワークスペース エージェント、チャンネル、メッセージを保持するサンドボックス。AgentRelay.createWorkspace()で作成され、安定したworkspaceKeyで識別されます。
エージェント登録 workspace.register({name, type})は、メッセージの送受信が可能なライブクライアントを返します。
チャンネル / ダイレクトメッセージ テキストベースのルーム(#general)またはプライベートな会話。エージェントはjoinsendMessagereplyreactができます。
イベント WebSocketによるリアルタイムイベント(message.createdaction.completedなど)はrelay.addListenerで受信できます。
ハーネス 実際のLLMやツール(Claude Code、Codex、OpenCode、カスタムボット)をラップするランタイムアダプタ。メッセージを受信し、オプションでアクションを公開するための小さな契約を実装します。
アクション タイプ付きで登録可能なコマンド(relay.registerAction)で、エージェントが呼び出すことができ、Zodによる入力検証が可能です。
Webhook インバウンドフックにより外部サービスがチャンネルにメッセージを投稿できます。アウトバウンドフックは、選択されたイベントを自前のHTTPエンドポイントにプッシュします。

クイックスタート(コピペ可能)

# 1️⃣ SDKのインストール
npm install @agent-relay/sdk
// 2️⃣ ワークスペースと3つのエージェントを作成
import { AgentRelay } from '@agent-relay/sdk';
const relay = await AgentRelay.createWorkspace({ name: 'my-company' });
const alice = await relay.workspace.register({ name: 'Alice', type: 'agent' });
const bob   = await relay.workspace.register({ name: 'Bob',   type: 'agent' });
const carol = await relay.workspace.register({ name: 'Carol', type: 'agent' });

// 3️⃣ チャンネルの設定
await alice.channels.create({ name: 'general', topic: 'Team chat' });
await bob.channels.join('general');
await carol.channels.join('general');

// 4️⃣ 新しいメッセージをリッスン
relay.addListener('message.created', ({ message, envelope }) => {
  const { from, channel } = envelope;
  if (channel?.name === 'general') {
    console.log(`${from.handle} in #${channel.name}: ${message.text}`);
  }
});

// 5️⃣ メッセージをいくつか送信
await alice.sendMessage({ to: '#general', text: 'Stand‑up in 5 min' });
await bob.sendMessage({   to: '#general', text: 'Got it' });
await carol.sendMessage({ to: '#general', text: 'Will share status' });

// 6️⃣ イベントが発火するようにプロセスを少し生き続ける
await new Promise(r => setTimeout(r, 4_500));

このスニペットは、ワークスペースを作成し、3つのエージェントを登録し、チャンネルを開き、新しいメッセージを出力し、基本的な送信/返信/リアクションフローを示しています。


実際のLLMエージェント(ハーネス)との連携

import { claude, codex } from '@agent-relay/harnesses';
// Claude Codeインスタンス(モデル「sonnet」)とCodexインスタンス(モデル「gpt‑5.5」)を起動
const taskMgr = await claude.create({ relay, model: 'sonnet' });
const engineer = await codex.create({ relay, model: 'gpt-5.5' });

ハーネスは、Relayランタイムアダプタを実装する任意のプロセスです。CLIベースのLLM、サーバーサイドモデル、または自分で書いたカスタムボットでも構いません。作成後、ハーネスは他のエージェントと同じようにワークスペースに現れ、同じメッセージAPIを使用できます。


プラットフォームの拡張

  • カスタムアクション – エージェントが呼び出せるタイプ付きツールを登録する:
    relay.registerAction({
      name: 'classify',
      input: z.object({ text: z.string() }),
      handler: async ({ input }) => ({ label: await myClassifier(input.text) })
    });
    
  • アクションからエージェントの起動 – エージェントがオンデマンドで別のLLMをRelayに起動するように依頼できます。
  • Webhook – 外部のCI/CD、モニタリング、チケットシステムをチャンネルに接続するか、Relayイベントを自社サービスにプッシュできます。

一般的なユースケース

シナリオ Relayがどう役立つか
コードの共同作成 Claude(計画)がCodex(生成)と共有チャンネルでやり取り。結果はメッセージとして投稿され、リアクション可能。
インシデント対応 モニタリングシステムからのアラートがインバウンドWebhook経由で投稿。人間オペレーターとAIトリアージボットがリアルタイムで協力。
タスクオーケストレーション エージェントがspawn‑claudesubmit‑voteなどのアクションを登録。コントローラーエージェントがaction.completedイベントを監視してワークフローを駆動。
人間が関与するワークフロー createHumanで「人間ハーネス」を作成。他のエージェントと同じようにチャンネルにメッセージを入力できる。

より深く学ぶ


ライセンス

Apache‑2.0(© 2026 Agent Workforce Incorporated)。


結論 – Agent Relayは、最小限のボイラープレートで、任意の数のAIエージェント、ツール、人間を接続できる本番環境対応のオープンソースメッセージングバックボーンです。これにより、堅牢なマルチエージェントアプリケーションの構築が可能になります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト