> ## 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.

# エージェントを構築する

> AdCP SDK スキルファイルを使って、コーディングエージェントで数分でストーリーボード準拠のエージェントを生成する。

AdCP エージェントを構築する最速の方法は、コーディングエージェント（Claude Code、Codex、Cursor、Windsurf）を AdCP SDK のスキルファイルに向けることです。各スキルは 2〜8 分でプロトコル準拠、ストーリーボード検証済みのエージェントを生成します。

<Note>
  **エンジニアリングチームのないパブリッシャー？** プロトコルコンプライアンスはローンチの一部です — プロダクト管理、アドサーバーへのアクティベーション、ホスティングは別の労力です。3 つのパス（マネージドプラットフォームと提携、事前構築されたエージェントをセルフホスト、独自に構築）については **[エージェントの運用](/docs/building/operating/operating-an-agent)** を参照。
</Note>

## SDK をインストール

各 SDK はプロトコルコンプライアンス — スキーマ検証、エラー形式、バージョンネゴシエーション、レスポンスビルダー — を扱うため、あなたはプロトコル配管ではなくビジネスロジックを書きます。

<Tabs>
  <Tab title="JavaScript/TypeScript">
    ```bash theme={null}
    npm install @adcp/sdk
    ```

    JS/TS SDK は、型付きツール登録、レスポンスビルダー、組み込みのストーリーボードランナーを提供します。本番のほとんどのエージェントがこの SDK を使います。

    * [NPM Package](https://www.npmjs.com/package/@adcp/sdk)
    * [GitHub Repository](https://github.com/adcontextprotocol/adcp-client)
  </Tab>

  <Tab title="Python">
    ```bash theme={null}
    pip install adcp
    ```

    Python SDK は同じケイパビリティを提供します — `ADCPHandler` をサブクラス化し、ツールを実装し、すべての返り値にレスポンスビルダーを使います:

    ```python theme={null}
    from adcp.server import ADCPHandler, serve
    from adcp.server.responses import capabilities_response

    class MySeller(ADCPHandler):
        async def get_adcp_capabilities(self, params, context=None):
            return capabilities_response(["media_buy"])

        # ... implement tools, use response builders for every return

    serve(MySeller(), name="my-seller")
    ```

    レスポンスビルダー（`adcp.server.responses`）はスキーマコンプライアンスを扱うため、生の JSON を構築しません。すべてのツールの返りにそれらを使ってください。

    * [PyPI Package](https://pypi.org/project/adcp/)
    * [GitHub Repository](https://github.com/adcontextprotocol/adcp-client-python)
  </Tab>

  <Tab title="Go">
    ```bash theme={null}
    go get github.com/adcontextprotocol/adcp-go/adcp
    ```

    Go SDK は、型付きツール登録、レスポンスビルダー、コンプライアンステストコントローラーを提供します。型は正準 AdCP スキーマから生成されます。

    | Component  | Import                                                      |
    | ---------- | ----------------------------------------------------------- |
    | ツール登録      | `adcp.AddTool(server, name, desc, handler)`                 |
    | HTTP サーバー  | `adcp.Serve(createAgent)`                                   |
    | レスポンスビルダー  | `adcp.ProductsResponse(data)`、`adcp.MediaBuyResponse(data)` |
    | テストコントローラー | `adcp.RegisterTestController(server, store)`                |

    完全な例については [Go SDK README](https://github.com/adcontextprotocol/adcp-go) を参照。

    レスポンスビルダー（`adcp.ProductsResponse()`、`adcp.MediaBuyResponse()` など）はスキーマコンプライアンスを扱うため、生の JSON ではなく型付き struct を返します。

    * [GitHub Repository](https://github.com/adcontextprotocol/adcp-go)
  </Tab>
</Tabs>

<Info>
  **あなたの言語の SDK を使ってください。** 3 つすべての SDK — JS/TS、Python、Go — がスキーマ検証、エラー形式、プロトコルネゴシエーションを扱います。プロトコルコンプライアンスのために異なる言語を使う必要はありません。
</Info>

## スキルを選ぶ

各 SDK は、コーディングエージェントに特定のエージェントタイプの構築を案内するスキルを出荷します。SDK 横断の一般的なスキル:

* `build-seller-agent` — インベントリを販売するパブリッシャー、SSP、メディアネットワーク
* `build-signals-agent` — オーディエンスセグメントを提供する CDP またはデータプロバイダー
* `build-creative-agent` — クリエイティブをレンダリングするアドサーバーまたは CMP
* `build-generative-seller-agent` — ブリーフから広告を生成する AI アドネットワーク
* `build-retail-media-agent` — カタログ駆動のクリエイティブを持つリテールメディアネットワーク

例えば、JS/TS セラースキルは [`adcp-client/skills/build-seller-agent/SKILL.md`](https://github.com/adcontextprotocol/adcp-client/tree/main/skills/build-seller-agent) にあります。各 SDK がそのスタック固有の実装ガイダンスを含むため、スキルカバレッジと命名は言語ごとに異なります。あなたの言語のディレクトリを参照:

* **JS/TS** — [adcp-client/skills](https://github.com/adcontextprotocol/adcp-client/tree/main/skills)
* **Python** — [adcp-client-python/skills](https://github.com/adcontextprotocol/adcp-client-python/tree/main/skills)
* **Go** — [adcp-go/skills](https://github.com/adcontextprotocol/adcp-go/tree/main/skills)

### どのドメインと専門分野を主張するか？

各エージェントは `get_adcp_capabilities` で `supported_protocols`（ドメイン）と `specialisms` を宣言します。各スキルのストーリーボードはドメインベースラインを検証します — 専門分野も主張するには、エージェントはその専門分野のストーリーボードに合格しなければなりません。スキルから専門分野へのマッピング:

| Skill                           | Typical `supported_protocols` | Typical `specialisms` (pick one or combine)    |
| ------------------------------- | ----------------------------- | ---------------------------------------------- |
| `build-seller-agent`            | `["media_buy", "creative"]`   | `sales-guaranteed`、`sales-non-guaranteed`      |
| `build-generative-seller-agent` | `["media_buy", "creative"]`   | `creative-generative` + `sales-non-guaranteed` |
| `build-retail-media-agent`      | `["media_buy", "creative"]`   | `sales-catalog-driven`                         |
| `build-signals-agent`           | `["signals"]`                 | `signal-owned`、`signal-marketplace`            |
| `build-creative-agent`          | `["creative"]`                | `creative-ad-server`、`creative-template`       |

**セールス専門分野の選択:** 完全な決定木については Compliance Catalog の [セールス専門分野の選択](/docs/building/verification/compliance-catalog#choosing-a-sales-specialism) を参照。クイックリファレンス:

* **`sales-guaranteed`** — IO 承認、固定価格。RFP/プロポーザルフローをサポートするなら `media_buy.supports_proposals: true` を設定。直接購入のみなら `false`（または省略）。
* **`sales-non-guaranteed`** — オークション / PMP。
* **`sales-broadcast-tv`**、**`sales-catalog-driven`**、**`sales-social`** — チャネル固有。決定木を参照。

複数主張できます。完全なタクソノミーと専門分野ごとのストーリーボードについては [Compliance Catalog](/docs/building/verification/compliance-catalog) を参照。

**ブランド権利** エージェント（タレント、音楽、ストックメディアのライセンス）を構築している？ 今日スキルはありません — [Brand Protocol ドキュメント](/docs/brand-protocol) を参照し、`brand` ドメインの下で `brand-rights` を主張してください。

ストーリーボードとステータス（stable、preview、deprecated）を持つすべてのドメインと専門分野については [Compliance Catalog](/docs/building/verification/compliance-catalog) を参照。

ストーリーボード合格は **[AAO Verified (Spec)](/docs/building/verification/aao-verified)** 修飾子を獲得します — テストモードエンドポイントでシードされたテストデータに対して検証。エージェントが実際の本番インベントリに対して実行されたら、専用のコンプライアンスアカウントで実際の配信の継続的な可観測性を追加する **(Live)** 修飾子への登録を検討してください。エージェントは (Spec)、(Live)、または両方を保持できます。AdCP を本番インフラとして扱うエンタープライズバイヤーは (Live) でフィルターします。

## エージェントを構築する

コーディングエージェントをあなたのエージェントタイプのスキルファイルに向けます。Claude Code で:

<Tabs>
  <Tab title="JavaScript/TypeScript">
    ```
    Fetch https://raw.githubusercontent.com/adcontextprotocol/adcp-client/main/skills/build-seller-agent/SKILL.md, then build a seller agent for a premium sports news publisher with guaranteed CTV and OLV inventory.
    ```
  </Tab>

  <Tab title="Python">
    ```
    Fetch https://raw.githubusercontent.com/adcontextprotocol/adcp-client-python/main/skills/build-seller-agent/SKILL.md, then build a seller agent for a premium sports news publisher with guaranteed CTV and OLV inventory.
    ```

    あなたのエージェントタイプの `adcp-client-python` スキルに向けてください。正確なスキルがまだない場合、最も近いマッチについて [adcp-client-python/skills](https://github.com/adcontextprotocol/adcp-client-python/tree/main/skills) を参照。
  </Tab>

  <Tab title="Go">
    ```
    Fetch https://raw.githubusercontent.com/adcontextprotocol/adcp-go/main/skills/build-seller-agent/SKILL.md, then build a seller agent for a premium sports publisher.
    ```
  </Tab>
</Tabs>

Cursor または Windsurf では、スキルファイルをダウンロードしプロンプトのコンテキストとして含めます。各スキルはコーディングエージェントを次を通じて案内します:

1. ビジネスモデルの決定（何を販売、どう価格設定、承認ワークフロー）
2. 正しいスキーマでのツール登録
3. ストーリーボード検証を通過するレスポンス形状
4. エラー処理とエッジケース

## ストーリーボードで検証する

<Note>
  ストーリーボードランナーは、エージェントがどの言語で書かれているかにかかわらず Node.js を必要とします。
</Note>

エージェントが実行されたら、一致するストーリーボードに対して検証します:

```bash theme={null}
# JS/TS agent
npx tsx agent.ts &
npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp media_buy_seller --json

# Python agent
python agent.py &
npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp media_buy_seller --json

# Go agent
go run main.go &
npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp media_buy_seller --json
```

ストーリーボードはすべての必須ツール呼び出しを実行しレスポンス形状を検証します。ストーリーボードランナーはデフォルトでサンドボックスモードを使います — あなたのエージェントはすべてのアカウント参照で `sandbox: true` を受け取り、実際のプラットフォーム呼び出しなしにシミュレートされたデータを返すべきです。合格する実行はエージェントがプロトコル準拠であることを意味します。

```
media_buy_seller (9 steps)
  ✓ get_adcp_capabilities
  ✓ sync_accounts
  ✓ get_products
  ✓ create_media_buy
  ✓ list_creative_formats
  ✓ sync_creatives
  ✓ list_creatives
  ✓ get_media_buy_delivery
  ✓ provide_performance_feedback
  9/9 passed
```

<Warning>
  **プロトコル準拠 ≠ 本番準備完了。** 合格する実行はエージェントが AdCP を正しく話すことを意味します。ローンチには各ツール呼び出しの背後にビジネスインフラが必要です — プロダクトと価格、アドサーバーへのアクティベーション、オーダー管理、ホスティング、`adagents.json` 経由のディスカバリー登録。完全なリストと提携・セルフホスト・構築のいずれかについては **[エージェントの運用](/docs/building/operating/operating-an-agent)** を参照。
</Warning>

<Tip>
  各スキルは異なるビジネスモデル用のバリアントストーリーボードを含みます — non-guaranteed、承認付き guaranteed、proposal モードなど。すべての利用可能なストーリーボードを見るには `npx @adcp/sdk@latest storyboard list` を実行。
</Tip>

完全なテストワークフロー — 失敗ステップのデバッグ、コンプライアンスチェックの実行、Addie を通じたインタラクティブな検証 — については **[エージェントを検証する](/docs/building/verification/validate-your-agent)** を参照。エージェントが **上流プラットフォームをラップ** する（DSP、SSP、リテールデータ、クリエイティブサーバー、シグナルマーケットプレイス）場合、ストーリーボードだけでは捕まえないファサードバグをサーフェスする事前ステージングゲートについては **[モック上流フィクスチャでアダプターエージェントを検証する](/docs/building/verification/validate-with-mock-fixtures)** を参照。

## 追加リソース

JS/TS SDK は、人間とコーディングエージェントの両方のために設計されたドキュメントを含みます:

| Resource | JS/TS location                                         | Purpose                          |
| -------- | ------------------------------------------------------ | -------------------------------- |
| プロトコル仕様  | `node_modules/@adcp/sdk/docs/llms.txt`                 | 1 ファイルの完全なプロトコル — ツール、型、エラーコード、例 |
| サーバーガイド  | `node_modules/@adcp/sdk/docs/guides/BUILD-AN-AGENT.md` | サーバー側実装パターン                      |

Python と Go の同等物は各 SDK の GitHub リポジトリにあります。[adcp-client-python](https://github.com/adcontextprotocol/adcp-client-python) と [adcp-go](https://github.com/adcontextprotocol/adcp-go) を参照。

## 次は

* **[エージェントを検証する](/docs/building/verification/validate-your-agent)** — ストーリーボード、コンプライアンスチェック、build-validate-fix ループ
* **[エージェントの運用](/docs/building/operating/operating-an-agent)** — プロトコル層の背後にあるもの、提携・セルフホスト・構築のいずれか
* **[SDK を選ぶ](/docs/building/by-layer/L4/choose-your-sdk)** — スキーマアクセス、CLI ツール、SDK パッケージエクスポート
* **[MCP 統合ガイド](/docs/building/by-layer/L0/mcp-guide)** — トランスポート、セッション、認証の詳細
* **[タスクライフサイクル](/docs/building/by-layer/L3/task-lifecycle)** — ステータス値、遷移、ポーリング
* **[エラー処理](/docs/building/by-layer/L3/error-handling)** — エラーカテゴリー、コード、リカバリー
