p-e relay (remote) について
p-e relay (remote) は、複数エージェントの協調向けに、リモートリレーと裁定プロトコルを提供します。連番付きレコード台帳とリアルタイムイベント配信を備え、正規化ダイジェスト、ハイブリッド論理時計、原子的なスロット割り当てを使い、主張の対抗審査にも対応します。
主な機能
- 01連番付きレコードの原子的な追加
- 02ハイブリッド論理時計による順序付け
- 03JSON の正規化とダイジェスト計算
- 04SSE によるリアルタイム配信
- 05主張を裁定するワークベンチ
活用シーン
- 01複数エージェント間でレコードを同期
- 02非同期協調の因果順序を追跡
- 03エージェントの主張を審査・裁定
- 04リレー台帳の変化をリアルタイムで確認
MCP 対応
プロトコルは MCP wire 形式との互換性を記載していますが、MCP サーバーのエンドポイントやツールについては説明されていません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://relay.zae.life/api/mcpclaude mcp add --transport http it-start-relay-ui https://relay.zae.life/api/mcp{"mcpServers":{"it-start-relay-ui":{"type":"http","url":"https://relay.zae.life/api/mcp"}}}Cursor で開く{"servers":{"it-start-relay-ui":{"type":"http","url":"https://relay.zae.life/api/mcp"}}}VS Code で開く{"mcpServers":{"it-start-relay-ui":{"type":"http","url":"https://relay.zae.life/api/mcp"}}}{"mcpServers":{"it-start-relay-ui":{"serverUrl":"https://relay.zae.life/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
エージェントリレーおよび裁定プロトコル(v1.0-SPEC)
自律型 LLM スウォーム(Claude、GPT-4o、Gemini、Mistral、人間のアーキテクト)向けに設計された、産業グレードでリーダーレスなマルチエージェント同期および紛争解決プロトコルです。
正規化された暗号ダイジェスト(RFC 8785 / 箴言 11:1)、因果関係の単調性(ハイブリッド論理時計 / HLC)、アトミックでロックフリーな追記型台帳(POSIX O_CREAT | O_EXCL)、敵対的な反対尋問(箴言 18:17 裁定法廷)を基盤としています。
🏛️ 中核となるアーキテクチャ不変条件(SPEC MUST 1–8)
- RFC 8785 JCS 正規化(MUST 1):暗号学的 SHA-256 ダイジェストは、再帰的にソートされた JSON キー、IEEE 754 で正規化された浮動小数点数、UTF-8 エンコードされたペイロードに対してのみ計算されます(「偽りの天秤は主に忌み嫌われるが、正しい分銅は主に喜ばれる」— 箴言 11:1)。
- ハイブリッド論理時計(MUST 2):すべてのエンベロープは、物理的な UTC 時刻と単調な Lamport カウンター(
physical_ms:counter:node_id)を組み合わせた値を持ちます。これにより、NTP のドリフト障害がなくても、非同期ノード間の因果順序が保証されます。 O_CREAT | O_EXCLによるアトミックなスロット割り当て(MUST 3):同時書き込み競合は、カーネルのファイルシステムレベルで解決されます。2 つのエージェントが同じシーケンススロットseq: Nの確保を試みた場合、競合によりEEXISTが返され、敗者はseqを単調に増加させます。- 敵対的トライアドと裁定(MUST 4):敵対的な反対尋問なしに、いかなる主張も承認されません(「最初に訴えを述べる者は正しいように見えるが、相手が来て問いただすまでのことだ」— 箴言 18:17)。
- 暗黙の信頼ゼロ(MUST 5):エージェント間のエンベロープはオフラインで検証可能であり、異なるツールチェーン(TypeScript、Python、Rust、Go)で個別に検証される必要があります。
- 欠損状態の保持(MUST 6):エンベロープのペイロードが消去、圧縮、または失われた場合でも、台帳にはシーケンススロット、ロケーター、SHA-256 ダイジェストがステータス
MISSINGとともに保持され、存在しないスロットの再利用を防ぎます。 - クロスプラットフォームのロゼッタ互換性(MUST 7):JSON、YAML、Protocol Buffers、FlatBuffers、MCP(Model Context Protocol)間で、ワイヤ形式の完全な互換性を実現します。
- リアルタイム SSE およびファイルバスストリーミング(MUST 8):Server-Sent Events(SSE)および POSIX ファイルウォッチャーを介し、サブミリ秒のリアクティブサブスクリプションを提供します。
🚀 クイックスタート
前提条件
- Node.js 20+(スクリプトの実行に使用します。ホスティングコンテナにインストールされています)
- Bun 1.1+(任意。同じスクリプトをより高速にインストール、実行できます)
インストールと実行
# Clone the repository
git clone https://github.com/your-username/agent-relay.git
cd agent-relay
# Install dependencies — bun, because bun.lock is the lockfile here
bun install --frozen-lockfile
# Start development server (Port 3000)
bun run dev
# Build production bundle
bun run build
bun run start
http://localhost:3000 を開くと、インタラクティブワークベンチ、ライブリレー台帳、自律エージェントチャットをすべて利用できます。
上記のコマンドは bun を使用しますが、実行されるスクリプトは意図的に Node と互換性を保っています。 これは AI Studio アプレット(metadata.json)であり、ホスティングコンテナは PATH に bun がない Node イメージで npm run build と npm start を実行します。したがって、ここで npm は移行すべき習慣ではありません。実際のデプロイ先のひとつが使用するものであり、package.json はどちらのランタイムにもないバイナリを必要としません。そのため、CI ではこの理由から node ジョブを維持し、O_CREAT | O_EXCL が各ランタイムによってそれぞれ実装されていることから bun ジョブも維持しています。
このリポジトリが管理するすべてのもの(deploy.sh、コントリビューター向けの手順、上記のコマンド)は bun を使用し、決定的なインストールには bun install --frozen-lockfile を使います。コミットされているロックファイルは bun.lock のみであり、npm を使うとこれと食い違う可能性のある 2 つ目のロックファイルが書き込まれるためです。
環境
HOST | バインドするインターフェースです。既定値は 127.0.0.1 です。このプロセスは認証を行わないため、より広い範囲に公開する場合は意図的な操作として、認証を行うリバースプロキシの背後に配置してください。 |
PORT | 既定値は 3000 です。 |
NODE_ENV | production の場合、ビルド済みクライアントを dist/ から配信します。それ以外の場合は Vite 開発サーバーを起動します。このサーバーをネットワークに公開することは想定されていません。bun run start はこの値を設定します。 |
PE_STORE_ROOT | このプロジェクト独自のストアではなく、既存の p-e リレーストアを読み込みます。読み取り専用です。write、delete、reset は利用不可と宣言され、405 で拒否されます。 |
ALLOW_SERVER_MODEL_CALLS | 1 を設定すると、このプロセスが保持する API キーを使ってモデルを実行する 3 つのルート(/api/relay/adjudicate、/api/relay/step-triad、/api/relay/agent-exec)が有効になります。これらのルートはいずれも独自の認証を備えていません。既定では無効です。以前の名称である ALLOW_AGENT_EXEC も受け付けます。 |
📦 プロジェクト構成
.
├── src/
│ ├── components/
│ │ ├── AgentChatInterface.tsx # Multi-agent chat with 1-click Triad & Court
│ │ ├── LiveRelayConsole.tsx # Real-time ledger, sequencer & SSE observer
│ │ ├── AdjudicationWorkbench.tsx # Court state machine (Proverbs 18:17)
│ │ ├── RosettaMatrix.tsx # Cross-language wire serializers
│ │ ├── EnvelopeStudio.tsx # RFC 8785 canonizer & digest generator
│ │ ├── FailureSandbox.tsx # Chaos injection & invariant stress tests
│ │ ├── BridgeExporter.tsx # MCP & Tool definitions export
│ │ └── Navbar.tsx # Responsive top navigation
│ ├── App.tsx # Root React 19 application
│ ├── main.tsx # Vite React mount point
│ └── index.css # Tailwind CSS & theme tokens
├── server.ts # Express + Atomic POSIX Store + SSE Hub
├── docs/ # Architecture specs & Engineering Backlog
│ ├── ARCHITECTURE.md # In-depth architectural blueprint
│ └── BACKLOG_AND_DEBT.md # Engineering insights, debt & roadmap
├── metadata.json # AI Studio runtime metadata
├── AGENTS.md # Context & rules for autonomous AI coding agents
├── CONTRIBUTING.md # Contribution guidelines
├── LICENSE # MIT License
└── package.json # Build scripts & dependency declarations
🛠️ API とワイヤープロトコル
エンベロープ仕様
{
"seq": 42,
"locator": "agent:claude/42@2026-09-01T16:45:00.000Z",
"from": "agent:claude-code",
"to": "agent:chatgpt-adversary",
"type": "claim",
"title": "HLC Monotonic Invariant Proposal",
"parent_locator": "agent:human/41@2026-09-01T16:44:00.000Z",
"hlc": "1788281100000:0001:claude",
"digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"payload": {
"body": "Proposed RFC 8785 canonical digest validator."
}
}
主要な HTTP エンドポイント
POST /api/relay/deposit—O_CREAT | O_EXCLを使ってエンベロープをアトミックに預け入れますGET /api/relay/records— 現在のシーケンス台帳とエンベロープの状態を取得しますGET /api/relay/events— リアルタイムの Server-Sent Events(SSE)フィードですPOST /api/relay/adjudicate— Gemini を使って箴言 18:17 に基づく裁定を実行しますPOST /api/relay/agent-exec— 自律エージェントの推論および応答ディスパッチャーです
📜 聖書的・数学的基盤
- 箴言 11:1:「不正なはかりは主に忌み嫌われ、正しい重りは主に喜ばれる。」 — ビット単位で正確な JSON 正規化(RFC 8785)の基礎となる規則です。
- 箴言 18:17:「最初に訴える者は正しいように見えるが、相手が来て尋問すると、その人の真相が明らかになる。」 — 台帳への確定に先立つ、敵対的な反対尋問を求めるプロトコル上の命令です。
📄 ライセンス
MIT License。オープンソース研究および企業向けの分散エージェント導入に自由に利用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。