コンテンツへスキップ

機械翻訳です。正式な情報源は英語版であり、ネイティブによる確認は未完了です。

ガイド

Claude Code の接続

OpenTelemetry gen_ai テレメトリから Claude Code セッションを取り込み、deny-closed の施行ポイントでツールコールをガバナンスし、ガバナンスデータをオンプレミスに保持

最終更新:

Claude Code は Olivares AI の標準的な協調ソースです。プラットフォームはそれに対して2つの異なる処理を、反対の姿勢を持つ2つのサーフェスで行います。一方は読み取り優先で、もう一方は意図的にパスに介在します。この違いを明確にしてください。

一般的なソースモデルについてはソースの接続、施行ワークフローについてはガバナンスと承認を参照してください。

観測されるもの vs 施行されるもの

  • 観測(読み取り優先)。 Claude Code は OpenTelemetry をエクスポートします。コネクターはそのテレメトリをアクセスマップエッジ、コストサンプル、IDに変換する OTLP レシーバーを実行します。このパスはエージェントのリクエストパスに介在しません — アウトオブバンドで取り込みます。アクセスマップを参照してください。
  • 施行(deny-closed)。 Claude Code のネイティブ PreToolUse / PostToolUse フックは、ツール実行前に allow / deny / ask を返すポリシー施行ポイント(PEP)を呼び出すことができます。これはコントロールプレーンがエージェントを監視するだけでなくガバナンスする必要がある場合にオンにする、意図的に介在するパスです。

観測のみでも実行できます。施行はオプトインで追加的です。

観測: OTel テレメトリインジェスト

コネクターは標準的な OTLP レシーバー(gRPC と HTTP、従来の OpenTelemetry ポート上)を公開します。2つのボキャブラリーを同じパイプラインにマッピングします:

  • Claude Code 固有の claude_code.* テレメトリ — ツールコール、セッション、リクエストごとのモデル使用量、(トレーシングベータ版では)サブエージェント階層。
  • ベンダー中立の OpenTelemetry GenAI セマンティック規約(gen_ai.*)。これにより、OTel インストルメント済みのエージェントであれば、Claude Code だけでなく同じアクセスマップと FinOps に入力されます。

このテレメトリからコネクターは、セッション帰属されたアクセスエッジ(どのセッションがどのリソースにアクセスしたか、読み取りか書き込みか)、セッションが接続する各 MCP サーバーのトポロジーエッジ、リクエストごとのコストサンプルを導出します。MCP サーバーは readOnlyHint / destructiveHint イントロスペクションを公開します。これらは MCP 仕様が信頼できないとマークする R/RW シグナルであるため、コネクターはそれらを裏付け証拠として扱い、ヒントだけでエッジをアップグレードすることはありません。

OLIVARES_SOURCES_CONFIG はエンジン起動前に読み取られる JSON ドキュメントです。kind: "claude" でこのコネクターを選択します。http_addr はデフォルトでループバックにバインドされます — 下記の警告を参照してください。

{
  "sources": [
    {
      "name": "claude",
      "kind": "claude",
      "tenant": "<tenant-ref>",
      "config": {
        "enable_http": "true",
        "http_addr": "127.0.0.1:4318"
      }
    }
  ]
}

GenAI プロファイルはオプトイン

gen_ai.* セマンティック規約はまだ Development ステータスであるため、コストとエッジへのマッピングは明示的なオプトインです。コネクターの semconv_opt_in を仕様自身のトークン(OTEL_SEMCONV_STABILITY_OPT_IN をミラー)に設定してください。オフの場合、gen_ai.* レコードはライブネスウォッチドッグに供給されますが、コスト計算されません。プロファイルは実際のフレームワークがまだ出力する現在と非推奨の両方の属性名を読み取り、トレースまたはログでデータを受け入れ、両方で到着した操作を重複排除して FinOps が二重請求されないようにします。メッセージコンテンツは読み取られません — コンテンツキーはエミッターがどのダイアレクトを使用しているかを検出するためにのみ使用されます。

デフォルトで最小限のデータ

コネクターは、クライアントがプロンプトテキストやツールボディを出力するよう設定されていても、構造的テレメトリのみを保持します — セッション、ID、ツール名、R/RW モード、タイミング。生のツール入力は、観測になる前にリダクト済みのリソース参照に削減されます。コンテンツカテゴリの保持は、別個の監査対象のオプトインです。カバレッジと帰属の段階付けについては許可と観測忠実度を参照してください。

:::caution 協調レシーバーは認証なしで、デフォルトでループバックにバインドされています。ソケットに到達できる誰でもテレメトリを偽造できるため、共有ネットワークに公開しないでください。オフホストのエージェントは、公開 OTLP ポートではなく、非協調のカーネルバックストップに配置すべきです。 :::

施行: フック PEP

ガバナンスする場合 — 単なる観測ではなく — Claude Code のフックを PEP に接続します。エージェントの PreToolUse フックは各ツールコールをマネージドフックコマンドにパイプし、PEP に転送して判定を中継します。コネクターはフックワイヤープロトコルと deny-closed のデフォルトのみを所有します。実際の決定は、コントロールプレーンがライブ PDP(Cedar/ABAC)、firm-identity プレーン、ヒューマン・イン・ザ・ループ承認、改ざん証跡台帳に対して実装するシームを通じて委譲されます。

Claude Code ──PreToolUse hook──▶ managed hook command ──HTTP──▶ governed PEP
   (agent)        (stdin JSON)                                  (loopback)

              allow │ deny │ ask  ◀──── governed decision ──────────┘
            (+ updatedInput rewrite)   deny-closed on any failure

PEP が返せるもの(Claude Code のフックコントラクトに対して検証済み):

  • PreToolUseallowdeny、または ask。オプションでガバナンスされた updatedInput リライト(パスの絞り込み、--dry-run の追加、フェッチのリダイレクト)。優先順位は deny > ask > allow。
  • PostToolUse — Claude Code には出力リライトフィールドがありません。そのため、PostToolUse フックはポリシーフラグ付きの結果に対する以降の処理をブロックすることのみが可能です。コネクターはモデルが既に見た結果をリライトするふりをしません。リダクトするのはコネクターが保持し監査するものです。

deny-closed は完全

データパスへの介在は非対称なリスクであるため、すべての障害モードがクローズドで失敗し、オープンではありません: 欠落した決定者、決定エラー(PDP 到達不能、ID 未解決、開けなかった承認)、不正なフックペイロードはすべてクリーンな deny を返します。判定のゼロ値自体が deny です。ask はガバナンスされた承認にルーティングされます。承認は正確なツールコールのプランハッシュにバインドされるため、異なるコールを認可するために再利用できません(TOCTOU 対策)。

本番環境では、フックは Claude Code のエンタープライズマネージドセッティングティアで managed-hooks-only が有効な状態で出荷されます。そのため、開発者は低い優先順位の設定ファイルからフックを無効にしたり置き換えたりできません。リクエストにスタンプされた ID ヒントは帰属を精緻化します。権威あるプリンシパルは決定者が解決するベアラーであり、firm な ID を要求するポリシーは approximately にしか帰属できないものを拒否します。

軽量なローカルモード

コネクターは、エンジンへのラウンドトリップなしでフックのホットパス上で評価されるローカルのインプロセス施行ポリシーもサポートしています — 遅いまたは到達不能なコントロールプレーンが開発者のツールコールをウェッジすることはありません。オプトインです: ルールが設定されていなければ、フックは観測のみで、ゲートされません。これが協調的デフォルトの姿勢です。上記のガバナンスされた PEP は、コントロールプレーンが意思決定者であるべき場合に切り替える反対の姿勢です。

回避防止

観測パスは協調的であるため、コネクターは OTel の出力を停止したにもかかわらずフックが発火し続けるセッション — 行動を続けながらエクスポーターを無効にしたエージェントのシグネチャ — を監視します。コネクターが行わないことに注意: 終了したエージェントは静かになりますが、静かなだけではフラグは立てられません。真に非協調的な活動のグラウンドトゥルースはカーネル/eBPF バックストップであり、このヒューリスティックではありません。

エアギャップ: 手元に残るものと残らないもの

コントロールプレーンはお客様自身のインフラストラクチャ内で実行され、エアギャップ可能です — ガバナンスと観測データ(アクセスエッジ、決定、監査、コストサンプル)がペリメーターを離れることはありません。OTLP レシーバーとフック PEP はローカルソケットです。エンジンはフォンホームしません。

正直な注意点が1つ: Claude の推論はエアギャップされません。 Claude Code は応答を得るために Anthropic の API(直接、または Bedrock、Vertex、Foundry 経由)にプロンプトを送信し続けます。コントロールプレーンのエアギャップはお客様のエステートのガバナンスデータを手元に保持しますが、モデルをオンプレミスに移動するものではありません。真にセルフホスト可能なモデル(例: vLLM/Ollama 経由)のみが完全にオフラインで実行されます。Olivares AI とは正直さと制限事項を参照してください。

次のステップ

ドキュメント検索