> ## Documentation Index
> Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# Addie とペアプログラミング（Socket Mode）

> アウトバウンド WebSocket 経由で開発/ステージング AdCP エージェントを Addie に接続し、会話的にストーリーボードを実行させる。公開 DNS なし、ngrok なし、インバウンド公開なし。

**ステータス**: `CONFORMANCE_SOCKET_ENABLED` の背後でプレビュー利用可能
**最終更新**: May 4, 2026

AdCP エージェントを構築しているとき、最も有用なループは: 進行中のサーバーに対してストーリーボードを実行し、何が失敗するかを見て、修正し、再実行する。今までそれは TLS、DNS、認証、ファイアウォール設定を伴う公開サンドボックスエンドポイントを立ち上げることを意味しました — 意味あるコードを書く前の実際の重労働で、大規模組織では非自明なセキュリティレビュー。

**Socket Mode 経由で Addie とペアプログラミング** はそれを次に折りたたみます: 1 つのライブラリをインストールし、トークンを貼り付け、アウトバウンドで接続する。Addie はあなたの開発エージェントを他の AdCP サーバーと同様に見ます — インバウンド公開なし、公開表面なし — そしてチャットでそれに対して任意のコンプライアンスストーリーボードを実行できます。

## Socket Mode を使うとき（と使わないとき）

| Socket Mode を使うとき…                                | 公開エンドポイントパスを使うとき…                                                                       |
| ------------------------------------------------- | --------------------------------------------------------------------------------------- |
| エージェントを構築またはリファクタリングしていて高速フィードバックが欲しい             | 安定したテストエンドポイントで AAO の [(Spec) ハートビート](/docs/building/verification/aao-verified) の準備ができた |
| 開発エージェントが `localhost`、Codespace、またはファイアウォールの背後で動く | あなたのプラットフォームはどのみち公開テストエンドポイントを公開する                                                      |
| Addie にチャットで複数のストーリーボードをインタラクティブに実行させたい           | 無人の予定されたコンプライアンス実行が欲しい                                                                  |
| サンドボックスエンドポイントを公開するインフラを持たない小さなチーム                | 規模で運用しバッチ CI を好む                                                                        |

Socket Mode は AAO Verified の代替では **ありません**。エージェントが安定したら、実テストエンドポイントを公開し AAO ハートビートを継続的に実行させてください — それが公開の **AAO Verified (Spec)** バッジを獲得するものです。Socket Mode はそこに到達する前（そして到達後、変更を反復するとき）の開発ループチャネルです。

<Note>
  **設計上、開発/ステージング専用。** Socket Mode は非本番デプロイにゲートされます。[adcp#3986](https://github.com/adcontextprotocol/adcp/issues/3986) に従い `comply_test_controller` と同じ制約です。本番エージェントはこのチャネルを公開せず、AAO は Socket Mode 経由で本番デプロイを決して登録しません。
</Note>

## 必要なもの

1. **活発に開発している AdCP MCP サーバー。** 不完全でもよい — それがポイントです。最もシンプルなケースは、MCP SDK がインストールされたラップトップ上で動く JS/TS プロセスです。
2. **AAO アカウント。** コンプライアンスチャネルはあなたの WorkOS 組織にバインドされるため、メンバーまたはトライアル組織にサインインしている必要があります。Addie との匿名チャットは Socket Mode を使えません。
3. 開発プロジェクトの **`@adcp/sdk` ≥ 6.9**。`ConformanceClient` プリミティブは `@adcp/sdk/server` から出荷されます。
4. **WebSockets（ポート 443）経由での `addie.agenticadvertising.org` へのネットワーク egress。** インバウンドルールは不要。

それだけです。公開 DNS なし、ファイアウォール変更なし、ngrok なし、証明書プロビジョニングなし。

## 5 分のセットアップ

### ステップ 1 — Addie にトークンを頼む

Addie チャットセッションで、尋ねます:

> 新しいコンフォーマンストークンをください

Addie はシェル export とコピーペースト統合スニペットを返します:

```
**Conformance token issued.** Bound to your organization, expires in 1h.

Paste these into your dev environment and start the conformance client:

export ADCP_CONFORMANCE_URL=wss://addie.agenticadvertising.org/conformance/connect
export ADCP_CONFORMANCE_TOKEN=eyJ…

Three-line integration with @adcp/sdk ≥ 6.9: …
```

トークンは 1 時間で期限切れになります。あなたのものが切れたら、Addie に新しいものを頼むだけです — 設計上リフレッシュエンドポイントはありません。

### ステップ 2 — `ConformanceClient` を開発サーバーに配線する

既存の AdCP サーバーブートストラップに 3 行追加:

```ts theme={null}
import { ConformanceClient } from '@adcp/sdk/server';
import { mcpServer } from './my-mcp-server';

const conformance = new ConformanceClient({
  url: process.env.ADCP_CONFORMANCE_URL!,
  token: process.env.ADCP_CONFORMANCE_TOKEN!,
  server: mcpServer,
});

await conformance.start();
```

`mcpServer` は通常のトラフィックのため `StreamableHTTPServerTransport` に接続するのと同じ `Server` インスタンスです — 別のセットアップなし、並列サーバーなし。`ConformanceClient` はそれをアウトバウンド WebSocket 上で双方向に公開します。Addie は反対側で通常の MCP サーバーを見ます。

まだ AdCP サーバーがない場合、[`hello_seller_adapter_social` の例](https://github.com/adcontextprotocol/adcp-client/blob/main/examples/hello_seller_adapter_social.ts) をフォークしてください — SDK の `createAdcpServerFromPlatform` ヘルパーを使った作業済みの出発点です。

### ステップ 3 — 接続を確認する

トークンと URL を export した状態で開発サーバーを実行します。ステータスラインが見えるはずです:

```
[conformance] status=connecting
[conformance] status=connected
```

`status=connected` が着地すると、Addie はあなたの開発サーバーを指すライブ MCP クライアントを持ちます。セッションは、プロセスを停止するかトークンが期限切れになるまで開いたままです。

### ステップ 4 — チャットからストーリーボードを実行する

Addie チャットに戻って:

> 私のエージェントに対して `media_buy_state_machine` を実行して

Addie は開いたソケットを通じてストーリーボードをディスパッチし、結果をチャットで markdown レポートとしてレンダリングします:

```
### Conformance result — Media buy state machine lifecycle (media_buy_state_machine)

**Overall:** ✅ PASSED
**Steps passed/failed/skipped:** 8 / 0 / 1
**Duration:** 1240 ms

#### ✓ Capability discovery
- ✓ passed — Check agent capabilities

#### ✓ Create a media buy
- ✓ passed — Discover products for media buy
- ✓ passed — Create the test media buy

#### ✓ Valid state transitions
- ✓ passed — Pause the media buy
- ✓ passed — Resume the media buy
- ✓ passed — Cancel the media buy
…
```

失敗するステップにはトリミングされたエラーテキストが含まれるため、チャットを離れずにその場で修正し再実行できます。グリーンになるまで反復してください。

[コンプライアンスカタログ](/docs/building/verification/compliance-catalog) の任意のストーリーボードをこの方法で実行できます — セールス、クリエイティブ、シグナル、ガバナンス、署名付きリクエストなど。分からない場合は Addie に何が利用可能か尋ねてください: *「セールスエージェントにどのコンフォーマンスストーリーボードが適用されますか?」*

## 接続後に Addie ができること

ストーリーボード実行を超えて、ライブ MCP チャネルは Addie に次を可能にします:

* **失敗するステップをインタラクティブに診断** — ステップが失敗したとき「なぜ?」と尋ねると、Addie は根本原因を絞り込むため異なる入力で同じツールを再呼び出しできる
* **ケイパビリティ宣言を検証** — *「私の `get_adcp_capabilities` は実際に実装するものを主張していますか?」*
* **ライフサイクル状態を歩く** — `comply_test_controller` を配線していれば、Addie は決定的状態遷移を駆動し結果を観測できる
* **実ワイヤー出力に対して修正を提案** — *「この拒否で `error_code` フィールドが欠けています — 修正はこれです」* — 一般的な助言ではなく、彼女がちょうど見たバイトに基づく

## プライバシーと安全性

Socket Mode チャネルは表面を狭く保つよう構築されています:

* **開発/ステージング専用。** 本番デプロイはこのチャネルを公開してはならない — `comply_test_controller` と同じデプロイスコープルール（[adcp#3986](https://github.com/adcontextprotocol/adcp/issues/3986)）。
* **あなたからのアウトバウンド。** あなたの開発ボックスが Addie への接続を開きます。Addie にはあなたのネットワークに手を伸ばす方法がありません。
* **セッションスコープ。** あなたがクライアントを起動する。プロセスを停止するまで実行される。永続的トンネルなし、デーモンなし。
* **組織スコープ。** トークンの WorkOS 組織クレームが唯一のテナント境界です。他の組織はチャネル上であなたのエージェントに到達できません。
* **いつでも切断。** クライアントプロセスをキルするとソケットが閉じます。あなたの組織の Addie のセッションは即座に退避されます。
* **Addie が見るものはあなたの Addie コンテキストに留まる。** チャットで彼女に伝える他のものと同じデータ処理姿勢。

チャネルを自分で検査したい場合、ワイヤー形式は `wss://` 上のプレーンな JSON-RPC 2.0 フレーム（MCP が既に使うのと同じ形状）です。トークンで URL に対して `wscat` を実行すると、Addie が見るものを正確に見られます。

## トラブルシューティング

### Addie が「組織にマップされていません」と言う

Addie と匿名でチャットしているか、あなたのアカウントがまだ WorkOS 組織にバインドされていません。メンバーまたはトライアル組織にサインインして再試行してください。

### 接続時に `status=error`。サーバーが `401 Unauthorized` をログ

トークンが期限切れ（1h TTL）か誤ったトークン。Addie に新しいものを頼んでください。新しいトークンも 401 する場合、あなたの AAO メンバーシップがコンフォーマンスエンタイトルメントを有効にしていないかもしれません — 組織のプランを確認してください。

### ストーリーボードレポートがステップ 1 を `unknown tool get_adcp_capabilities` で失敗と表示

あなたの開発 MCP サーバーはまだ `get_adcp_capabilities` を実装していません。それはすべての AdCP エージェントが公開しなければならないディスカバリーツールです。任意のストーリーボードを実行する前にそれを実装してください — レスポンス形状については [`get_adcp_capabilities`](/docs/protocol/get_adcp_capabilities) を参照。

### Addie が「あなたの組織にライブなコンフォーマンス接続がありません」と言う

ソケットが開いていません。まだクライアントを起動していないか、切断されました。`ConformanceClient` を再起動し、Addie に何かを実行するよう頼む前に `status=connected` を確認してください。

### ソケットは接続するがすべてのストーリーボードステップがスキップ

あなたの `get_adcp_capabilities` レスポンスが、実装していない専門分野を宣言しています。ランナーは宣言された表面に一致しないステップをスキップします。ツールを実装するか宣言をトリムしてください。

### Addie がチャネル上で何をしているかどう分かるか

`onStatus` コールバックがすべての状態遷移（`connecting`、`connected`、`disconnected`、`error`）を公開します。開発ログにパイプしてください:

```ts theme={null}
new ConformanceClient({
  url, token, server: mcpServer,
  onStatus: (status, detail) => {
    console.log(`[conformance] status=${status}`,
      detail?.attempt ? `attempt=${detail.attempt}` : '',
      detail?.error ? `error=${detail.error.message}` : '');
  },
});
```

ツールレベルの可視性には、`setRequestHandler` コールバック内でログしてください — Addie の呼び出しは通常の MCP トラフィックとまったく同様にそこに着地します。

## リファレンス

* [`@adcp/sdk/server` `ConformanceClient`](https://github.com/adcontextprotocol/adcp-client/blob/main/src/lib/server/socket-mode/conformance-client.ts) — 採用者側プリミティブ
* [`get_adcp_capabilities`](/docs/protocol/get_adcp_capabilities) — すべてのストーリーボードが始まるディスカバリーツール
* [コンプライアンスカタログ](/docs/building/verification/compliance-catalog) — 利用可能なストーリーボードの完全なリスト
* [Get Test-Ready](/docs/building/verification/get-test-ready) — 任意のストーリーボードが通過する前にエージェントに必要なもの
* [AAO Verified](/docs/building/verification/aao-verified) — エージェントが安定したら卒業する公開信頼マーク
* チャネル設計: [adcp#3991](https://github.com/adcontextprotocol/adcp/issues/3991)
* デプロイスコープコントローラールール: [adcp#3986](https://github.com/adcontextprotocol/adcp/issues/3986)
