エージェントルールの適用

適用はSilentShieldのAIエージェントコントロールのステージ2です: AIエージェントの訪問を記録するだけでなく、サーバーまたはエッジがキーごとのポリシーを能動的に適用します — 各エージェントは許可、制限、またはブロックされます。観測モードの上に直接構築されています。 エンフォースメントコンポーネント(Next.jsミドルウェア、sidecarバイナリ、Cloudflare Worker)は現在アーリーアクセスとしてリクエストに応じて提供しています — [email protected] までご連絡ください。

まず観測、それから適用

私たちの明確な推奨: まず観測を有効にして1〜2週間運用し、レポートを確認してから何かをブロックしてください — Wordfenceのラーニングモードや、DMARCのロールアウト(none → quarantine → reject)と同じ段階的な進め方です。どのAIサービスが実際にサイトを訪れているか、そしてブロックによって何を失うか(例えばAI検索での引用)は、レポートを見て初めて分かります。その把握なしに適用することは、盲目的に決断することを意味します。

適用の仕組み

すべてのエンフォーサーは同じ仕組みを共有します: APIキーのポリシーバンドルを取得し、そのEd25519署名をSilentShieldのピン留めされた公開鍵に対して検証し、その後ローカルで判断します — 許可、拒否、または制限。リクエスト経路での外部呼び出しは一切ありません。

ピン留めされた署名鍵はhttps://api.silentshield.io/.well-known/silentshield-agent-keysから一度だけ取得します。そして、すべてのエンフォーサーはフェイルオープンで動作します: ネットワーク、署名、バンドルの期限切れなど、いかなるエラーの場合もリクエストは通過します。適用がサイトを停止させることは決してありません。

セットアップの種類

Next.js(エッジミドルウェア)

観測に使うのと同じNext.jsアダプターで適用も行えます。ポリシー用の環境変数を設定すると、ミドルウェアがエッジでポリシーを適用します:

.envbash
AGENT_POLICY_URL=https://api.silentshield.io/api/v1/agent/policy
AGENT_OBSERVE_API_KEY=YOUR_API_KEY
AGENT_TRUSTED_KEYS=[{"kid":"…","key":"<base64 ed25519 pubkey>"}]

リバースプロキシ(nginx / Caddy / Traefik)

1つの小さなサイドカーバイナリが3つのプロキシすべてに対応します: プロキシはリクエストごとにforward authで問い合わせます。サイトキーと信頼する鍵を指定して起動してください:

Terminalbash
AGENT_POLICY_URL="https://api.silentshield.io/api/v1/agent/policy" \
AGENT_SITE_KEY="YOUR_API_KEY" \
AGENT_TRUSTED_KEYS='[{"kid":"…","key":"<base64 ed25519 pubkey>"}]' \
AGENT_SIDECAR_LISTEN=":8127" \
  ./agent-sidecar

サイドカーはGET /authに対して204(許可)、403(拒否)、または429とRetry-After(制限)で応答します。プロキシへの組み込み方は次のとおりです:

nginx.confnginx
location = /_ss_auth {
    internal;
    proxy_pass              http://127.0.0.1:8127/auth;
    proxy_pass_request_body off;
    proxy_set_header        Content-Length "";
    proxy_set_header        X-Forwarded-Method $request_method;
    proxy_set_header        X-Forwarded-Uri    $request_uri;
    proxy_set_header        X-Forwarded-Host   $host;
    proxy_set_header        X-Forwarded-For    $remote_addr;
    proxy_set_header        User-Agent         $http_user_agent;
    proxy_set_header        Signature          $http_signature;
    proxy_set_header        Signature-Input    $http_signature_input;
    proxy_set_header        Signature-Agent    $http_signature_agent;
}
location / {
    auth_request /_ss_auth;
    # ... your normal proxy_pass to the origin ...
}
Caddyfilecaddy
example.com {
    forward_auth 127.0.0.1:8127 {
        uri /auth
        copy_headers User-Agent Signature Signature-Input Signature-Agent
        # Caddy sends X-Forwarded-Method/-Uri/-Host automatically
    }
    reverse_proxy origin:8080
}
traefik.ymlyaml
http:
  middlewares:
    silentshield:
      forwardAuth:
        address: "http://agent-sidecar:8127/auth"
        authRequestHeaders:
          - "User-Agent"
          - "Signature"
          - "Signature-Input"
          - "Signature-Agent"

Cloudflare Worker

Cloudflare Workerのエンフォーサーは、Web Crypto Ed25519でポリシーバンドルを検証し、リクエストがオリジンに到達する前にブロックします:

Terminalbash
cd enforcers/cloudflare-worker
npx wrangler secret put AGENT_SITE_KEY
# set AGENT_POLICY_URL + AGENT_TRUSTED_KEYS in wrangler.toml [vars]
npx wrangler deploy

正直な限界

家庭用IPアドレス上のエージェント型ブラウザ(Comet、ChatGPT Atlasなど)は、技術的に人間の訪問者と区別できません。どの製品も確実には識別できないため、SilentShieldはこのカテゴリについて、あえて適用の約束をしません。

robots.txtや出力されるコンテンツシグナルは勧告的なものです: 行儀の良いクローラーは従いますが、強制力はありません。技術的な適用はこのページのエンフォーサーでのみ行われます — そしてエンフォーサーも保守的に動作し、確実に識別された既知のエージェントのみを拒否するため、正当な訪問者がブロックされることはありません。

ポリシーの設定

どのエージェントに何を許可するかは、エージェントハブでAPIキーごとに設定します: APIキー → キーを選択 → エージェント。プリセットが一般的なケースをカバーし、変更するたびに新しく署名されたバンドルが生成され、エンフォーサーが自動的に取り込みます。

エージェントハブを開く →