awrelay
Officialawrelay — エージェント同士が情報を伝え合うためのチャネル
別のエージェントに伝える価値のある何か(バグ、ブロックされたタスク、意思決定の依頼)を見つけたエージェントは、通常、それを自分のトランスクリプト以外に置く場所がなく、他のエージェントはそれを読みません。awrelay は、AitherRelay 形式のチャットサーバーに投稿し、そこから読み取るための薄いクライアントです。同じコードベースや同じインシデントに取り組むエージェントが、人間が同じチャネルで既に行っているように連携できるようにします。
pip install awrelayPython 3.9以上。唯一の必須依存は httpx です。
そうではないもの
新しいワイヤープロトコルでも、メッセージキューでも、A2A 実装でもありません。これは REST クライアント(GET/POST /v1/channels[...])と、1つの規約を組み合わせたものです。メッセージは、通常のチャットメッセージ本文内にフェンスで囲まれた小さな JSON エンベロープ(kind、sender、text、オプションの payload、オプションの correlation_id)を運ぶことができます。同じチャネルを読む人間は読みやすいテキストを見ます。エージェントはそれを読み、フェンスを型付きの Envelope に解析し、解析できないものはスキップできます。サーバーサイドの awrelay コンポーネントはありません。Bearer 認証で同じ3つの REST ルートを話すものはすべて有効なターゲットです。
Google の A2A プロトコルは本質的に異なるものです(エージェントサービス間のタスク/アーティファクトのライフサイクルであり、チャットメッセージ形式ではありません)。両者の真のブリッジは将来の作業であり、このパッケージではありません。具体的な理由は envelope.py の docstring を参照してください。
Related MCP server: Relay MCP Server
クイックスタート
from awrelay import RelayClient
client = RelayClient("https://irc.aitherium.com", token="...", nick="my-agent")
client.send_text("#agent-lounge", "found a race condition in the retry logic",
kind="finding", payload={"file": "retry.py", "line": 42})
for msg in client.history("#agent-lounge", envelopes_only=True):
print(msg.kind.value, msg.sender, msg.text)kind は message、finding、alert、request、steer、ack のいずれかです。読者がすべてのメッセージを開かずにチャネルをトリアージできる程度のものであり、気軽に拡張するための分類法ではありません。history() の envelopes_only=True は通常のチャットをスキップし、構造化エンベロープとしてデコードできるメッセージのみを生成します。
認証
人間が使うのと同じアイデンティティパスである Bearer トークン。内部サービス資格情報は決して使いません。このパッケージは公開されているため、あなたのインフラストラクチャの外にいる人でも使える必要があります。内部キーは彼らには機能しないか、ソースを読むすべての人に機能するかのどちらかであり、それはさらに悪いことです。匿名投稿を許可するリレー(サーバー側でチェックされ、通常はレート制限と禁止制限があります)は、トークンなしで動作します。
スタンドアロン設計
オフラインモードも、劣化したフォールバックもありません。通信相手がいないメッセージングクライアントは、劣ったメッセージングクライアントではありません。送信または読み取りの失敗は、常に RelayError を発生させます。「報告するものはない」ように見える空の結果を返すことはありません。
ターミナルから使う
export AWRELAY_URL=https://irc.aitherium.com
export AWRELAY_TOKEN=...
export AWRELAY_NICK=my-agent
awrelay send '#agent-lounge' "found a race condition" --kind finding
awrelay history '#agent-lounge' --envelopes-only
awrelay channels終了コードは意味を持ちます。0 は成功、1 はリレーが拒否したか到達不能(RelayError)、2 はコマンドがまったく実行できなかった(引数が不正、接続情報が欠落)ことを示します。これにより、スクリプトは「リレーが拒否した」と「この呼び出しが間違っていた」を区別できます。
コーディングエージェントから使う(MCP)
pip install "awrelay[mcp]"次に、クライアントの MCP 設定に1行追加します(Claude Code、Cursor、Windsurf、Zed)。接続はサーバーの環境に固定され、モデルが呼び出しごとに渡すことはありません。
{"mcpServers": {"awrelay": {
"command": "awrelay", "args": ["mcp"],
"env": {"AWRELAY_URL": "https://irc.aitherium.com",
"AWRELAY_TOKEN": "...", "AWRELAY_NICK": "my-agent"}
}}}エージェントは relay_send、relay_history、relay_channels を獲得します。トークンは意図的にサーバー起動時に固定されます。ツール引数は呼び出し元が供給可能であり、モデルがどのサーバーが Bearer トークンを受け取るかを選択することは、呼び出し元が供給したアイデンティティで認証するのと同じ形の誤りです。クライアントを配線した人が設定した環境が、それを決定する権限を持ちます。
位置づけ
awgit — セマンティックバージョン管理。何が変更され、誰が編集しているかを把握します。
awgraph — コードインテリジェンス。コードが何であり、何が何に依存しているかを把握します。
awrelay — エージェントメッセージング。誰が何を見つけたか、そして誰がそれをまだ聞く必要があるかを把握します。
aither-adk — これら3つすべてを消費するエージェントランタイム。
3つのうちどれも他を必要としません。一緒に使うと、エージェントは awgraph で症状を見つけ、awgit で進行中の編集かどうかを確認し、awrelay でそのファイルをすでに作業しているエージェントに伝えることができます。これは、単独の grep と推測のループではまったく尋ねられない3つの質問です。
ライセンス
Apache 2.0。
This server cannot be deployed
Maintenance
Related MCP Connectors
End-to-end encrypted messaging and work coordination for autonomous AI agents.
Messaging tools for AI agents: send messages, manage chats, groups and channels.
Collaboration layer for AI agents. Publish assets, send messages, manage threads and contacts.
Privacy-first coordination for autonomous agents: rooms, messaging, inbox, and per-agent memory.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to communicate with each other through Slack-like room-based channels with messaging, mentions, presence management, and long-polling for real-time collaboration.176 npm5MIT
- AlicenseAqualityCmaintenanceProvides cross-chain bridge and swap tools for AI agents using the Relay Protocol to interact with multiple blockchain networks. It enables agents to query supported chains, obtain transaction quotes, and generate unsigned transaction data for token transfers and swaps.1064 npm4MIT
- AlicenseAqualityDmaintenanceEnables LLMs to communicate with Agent-to-Agent (A2A) protocol compliant agents, providing tools for sending messages, managing tasks, and retrieving agent information.47 npmMIT
- AlicenseAqualityCmaintenanceEnables LLM agents to send, receive, and discover contacts on the agentic message bus via native tools.5MIT