アップデート一覧に戻る
New releaseJul 24, 2026

pilotprotocol v1.13.2

オーバーレイネットワークプロトコル。AIエージェントに固定アドレス、認証付き暗号化トンネル、UDP上の信頼モデルを提供。NATトラバーサル、ピアツーピアメッセージング、Node.js、Python、Swift向けSDKを含む。

共有

Pilot Protocol

Pilot Protocol

AIエージェントのためのネットワークスタック。
アドレス。ポート。トンネル。暗号化。信頼。

ドキュメント  ·  ワイヤ仕様  ·  ホワイトペーパー  ·  IETFドラフト  ·  エージェントスキル  ·  Polo(ライブダッシュボード)


Go Core uses Go standard library only Encryption Tests IETF Internet-Draft License


Pilot Protocol Demo — two agents: install, trust, data exchange

インターネットは人間のために作られた。AIエージェントにはアドレスも、アイデンティティも、到達する手段もない。Pilot Protocolは、インターネットがデバイスに与えたものをエージェントに与えるオーバーレイネットワークである。すなわち、永続的なアドレス、認証された暗号化チャネル、そして信頼モデルであり、これらすべてが標準的なUDPの上に構築されている。

エージェントはディスカバリとNATトラバーサルのためにランデブーサービスに登録する。アプリケーションデータは直接パス上でピア間を直接流れる。NATホールパンチングが失敗した場合(例:シンメトリックNAT)、ビーコンがフォールバックとして、依然としてエンドツーエンドで暗号化されたトラフィックをリレーする。これはAPIではない。フレームワークでもない。インフラストラクチャである。


問題

今日、エージェントは集中型APIを通じて通信する。すべてのメッセージはプラットフォームを経由する。プラットフォームはすべてのトラフィックを把握し、アクセスを制御し、単一障害点となる。```mermaid graph LR A1[Agent A] -->|HTTP API| P[Platform / Cloud] A2[Agent B] -->|HTTP API| P A3[Agent C] -->|HTTP API| P style P fill:#f66,stroke:#333,color:#fff style A1 fill:#4a9,stroke:#333,color:#fff style A2 fill:#4a9,stroke:#333,color:#fff style A3 fill:#4a9,stroke:#333,color:#fff

Pilot Protocolはプラットフォームをデータパスから排除します。軽量な**ランデブー**サービスがディスカバリとNATトラバーサルを処理しますが、エージェント同士が互いを見つけた後は、認証済みの暗号化トンネルを介して直接通信します:```mermaid
graph LR
    A1[Agent A<br/><small>0:0000.0000.0001</small>] <-->|Encrypted UDP Tunnel| A2[Agent B<br/><small>0:0000.0000.0002</small>]
    A1 <-->|Encrypted UDP Tunnel| A3[Agent C<br/><small>0:0000.0000.0003</small>]
    A2 <-->|Encrypted UDP Tunnel| A3
    A1 -.->|discovery| RV[Rendezvous]
    A2 -.->|discovery| RV
    A3 -.->|discovery| RV
    style A1 fill:#4a9,stroke:#333,color:#fff
    style A2 fill:#4a9,stroke:#333,color:#fff
    style A3 fill:#4a9,stroke:#333,color:#fff
    style RV fill:#888,stroke:#333,color:#fff

エージェントが得られるもの```bash

pilotctl info # show your address, hostname, peer count pilotctl set-hostname my-agent # claim a name other agents can resolve pilotctl find agent-alpha # resolve a public demo peer pilotctl ping agent-alpha # round-trip over the encrypted tunnel pilotctl bench agent-alpha # 1 MB echo benchmark

信頼できるピアを確立したら、エージェント間メッセージングはポート1001のデータ交換サービスを使用します:```bash
# Send a structured message (waits for reply by default)
pilotctl send-message other-agent --data "hello"

# Read messages delivered to your inbox
pilotctl inbox

# Read a specific message
pilotctl inbox read <id>

低レベルの生ポートメッセージングの場合:```bash

on the sender

pilotctl send other-agent 1000 --data "hello"

on the receiver

pilotctl recv 1000 --count 5 --timeout 30s

すべてのCLIコマンドは構造化出力のために `--json` をサポートしています — 全機能範囲については[CLIリファレンス](https://pilotprotocol.network/docs/cli-reference)を参照してください。

<details>
<summary><strong>JSON出力の例</strong></summary>```json
$ pilotctl --json info
{"status":"ok","data":{"address":"0:0000.0000.0005","node_id":5,"hostname":"my-agent","peers":3,"connections":1,"uptime_secs":3600}}

$ pilotctl --json find other-agent
{"status":"ok","data":{"hostname":"other-agent","address":"0:0000.0000.0003"}}

$ pilotctl --json recv 1000 --count 1
{"status":"ok","data":{"messages":[{"seq":0,"port":1000,"data":"hello","bytes":5}]}}

$ pilotctl --json find nonexistent
{"status":"error","code":"not_found","message":"cannot find \"nonexistent\" — hostname not found or no mutual trust","hint":"establish trust first: pilotctl handshake nonexistent \"reason\""}

プログラムによるアクセス (SDK)

デーモンが起動したら、CLI の代わりに SDK を通じてエージェントとプログラムでやり取りできます。3 つの SDK はすべて、Unix ソケット IPC を介してローカルの Pilot デーモンと通信し、ハンドシェイク、トラスト、送信、受信、ストリーム、ゲートウェイといったエージェントの全機能を、お好みの言語で利用できるようにします。

言語パッケージクイックスタート
Node.js / TypeScriptnpm の pilotprotocolnpm install pilotprotocol — sdk-node README を参照
PythonPyPI の pilotprotocolpip install pilotprotocol — sdk-python README を参照
Swift / iOS / macOSGitHub の pilotprotocolPackage.swift 経由で追加 — sdk-swift README を参照

daemon start 後の最小限の Node.js 初回クエリの例:```js import { createPilot, createAgent } from 'pilotprotocol';

const pilot = await createPilot(); const conn = await pilot.handshake('agent-alpha', 'hello'); await conn.trust();

// Send a message await conn.send(3000, Buffer.from('ping'));

// Receive on any port const msgs = await conn.recv(3000, { count: 1, timeout: 10 }); console.log('Received:', msgs[0].data.toString());

各SDKのREADMEには、完全なAPIドキュメント、ストリーミングの例、およびプラットフォーム固有のセットアップ(iOSシミュレータ、PyPI extrasなど)が記載されています。

## ハイライト

<table>
<tr>
<td width="50%" valign="top">

**アドレッシング**
- 48ビット仮想アドレス(`N:NNNN.HHHH.LLLL`)
- ウェルノウン割り当てを持つ16ビットポート
- ホスト名ベースのディスカバリ

**トランスポート**
- 信頼性のあるストリーム(TCP相当)
- スライディングウィンドウ、SACK、輻輳制御(AIMD)
- フロー制御(アドバタイズされた受信ウィンドウ)
- Nagle coalescing、自動セグメンテーション、ゼロウィンドウプロービング
- NATトラバーサル: STUNディスカバリ、ホールパンチング、リレーフォールバック

</td>
<td width="50%" valign="top">

**セキュリティ**
- 認証済み鍵交換(Ed25519署名付きX25519 + AES-256-GCM)
- トンネルセッションにバインドされたEd25519アイデンティティキー
- ノードはデフォルトでプライベート
- 相互信頼ハンドシェイクプロトコル(署名付き、レジストリ経由のリレー)

**運用**
- コアプロトコル: Go標準ライブラリのみ
- 組み込みサービスを備えた単一デーモンバイナリ
- 構造化JSONロギング(`slog`)
- すべての状態に対するアトミックな永続化
- ホットスタンバイレジストリレプリケーション

</td>
</tr>
</table>

---

## アーキテクチャ```mermaid
graph LR
    subgraph Local Machine
        Agent[Your Agent] -->|commands| CLI[pilotctl]
        CLI -->|Unix socket| D[Daemon]
        D --- E[Echo :7]
        D --- DX[Data Exchange :1001]
        D --- ES[Event Stream :1002]
    end

    D <====>|UDP Tunnel<br/>AES-256-GCM + NAT traversal| RD

    subgraph Remote Machine
        RD[Remote Daemon] -->|Unix socket| RC[pilotctl]
        RC -->|commands| RA[Remote Agent]
        RD --- RE[Echo :7]
        RD --- RDX[Data Exchange :1001]
        RD --- RES[Event Stream :1002]
    end

    D -.->|register + discover| RV
    RD -.->|register + discover| RV

カテゴリ