Office エージェントからの完全な監査テレメトリを独自の OpenTelemetry (OTEL) コレクターにルーティングできます。これにより、組織は保持期間、暗号化、および SIEM または可観測性プラットフォームとの統合を完全に制御できます。
このガイドでは、カスタムコレクターを有効にする方法、受け取るデータ、および完全なスパンスキーマリファレンスについて説明します。
カスタム OTEL コレクターは、Claude Enterprise 組織およびダイレクトプロバイダーデプロイメント (Amazon Bedrock、Google Vertex AI、またはゲートウェイ) で利用できます。
受け取るデータ
カスタムコレクターを構成すると、Office エージェントはすべてのユーザーターンをカバーするトレースデータを送信します。各ターンは、プロンプト、モデル呼び出し、ツール実行、ファイルアップロード、およびコンテキスト圧縮イベントをキャプチャするスパンのツリーを生成します。
コレクターは、ユーザーが生成したコンテンツ (プロンプトテキスト、ツール入力と出力、ドキュメント URL、ファイル名) を含むすべてのスパン属性を受け取ります。属性は編集または除外されません。アシスタント応答テキストは、発行されたスパンデータに含まれません。組織がこのデータを所有しています。
重要: メトリクスはカスタムコレクターに送信されません。office_agent.* カウンター名前空間は Anthropic のみにルーティングされます。ただし、すべてのカウンター増分はアクティブなスパンのスパンイベントとしても表示されるため、同じシグナルがトレースで利用できます。
テレメトリは OTLP/HTTP 経由で {your_url}/v1/traces のエンドポイントに送信されます。アドインは Office WebView で実行されるため、gRPC はサポートされていません。
カスタムコレクターを有効にする
セットアップは、組織が Claude で認証する方法によって異なります。
重要: カスタムエンドポイントが構成されている場合、テレメトリはコレクターにのみ送信されます。スパンは Anthropic に二重送信されません。
Claude Enterprise (OAuth) 組織
組織管理者は、Claude.ai 管理コンソールの 組織設定 > Office エージェント でコレクターエンドポイントを設定します。この設定は組織全体に適用されます。
設定 | 説明 |
| OTLP コレクターのベース URL。アドインは /v1/traces を追加します。HTTPS を強く推奨します。 |
| オプションの認証ヘッダー。OpenTelemetry 仕様に従ってフォーマットされます: key1=value1,key2=value2 |
プロトコルは HTTP ベースの OTLP である必要があります。gRPC は構成時に拒否されます。
ダイレクトプロバイダーデプロイメント (Amazon Bedrock、Google Vertex AI、ゲートウェイ)
Claude.ai ではなく独自のモデルプロバイダーに対して認証するデプロイメントの場合、コレクターエンドポイントは 3 つの構成チャネルのいずれかを通じて提供されます。3 つすべてが同じ 2 つのキーを使用します。
推奨: Claude Code 用の claude-in-office プラグイン を使用してください。マニフェストの生成、Entra 拡張属性の登録、および otlp_endpoint と otlp_headers が事前配線されたブートストラップエンドポイントの構築をガイドします。以下の 3 つのチャネルは、参照および手動セットアップ用に記載されています。
キー | 形式 | 説明 |
| HTTPS URL | OTLP コレクターのベース URL。アドインは末尾のスラッシュを削除し、/v1/traces を追加します。 |
| key1=value1,key2=value2 | オプションの認証ヘッダー。OpenTelemetry OTEL_EXPORTER_OTLP_HEADERS 環境変数と同じ形式です。 |
otlp_endpoint が設定されていないか空の場合、カスタムコレクターは構成されず、アドインはデフォルト動作にフォールバックします。
注: これらの構成チャネルは Microsoft Office デプロイメントにのみ適用されます。Google Workspace アドインは別途構成されます。
チャネル 1: マニフェスト URL パラメーター
キーをカスタムアドインマニフェストのタスクペイン URL にクエリ文字列パラメーターとして追加します:
値を URL エンコードします。この構成は、マニフェストをインストールするすべてのユーザーに適用されます。
チャネル 2: Azure Entra ID ディレクトリ拡張
ユーザーごとの構成の場合、キーを Entra ID ディレクトリ拡張属性として登録し、Microsoft Graph 経由で割り当てます。アドインは Nested App Authentication (NAA) を使用してユーザーの ID トークンから読み取ります。
発行された ID トークンのクレーム名は Azure のディレクトリ拡張形式に従います:
クレーム | マップ先 |
| otlp_endpoint |
| otlp_headers |
ユーザーオブジェクトに対する Graph PATCH を使用して、ユーザーごとに設定します。Azure はディレクトリ拡張値を ID トークンの単一要素配列としてエンコードします。アドインは自動的にアンラップします。このチャネルには、NAA トークン取得を有効にするためにマニフェスト URL パラメーターに entra_sso=1 が必要です。
チャネル 3: ブートストラップエンドポイント応答
デプロイメントがブートストラップエンドポイント(組織がホストし、アドインが起動時に呼び出す JSON エンドポイント)を使用する場合は、レスポンスボディにキーを含めてください:
{
"otlp_endpoint": "https://otel-collector.your-domain.com",
"otlp_headers": "Authorization=Bearer <token>"
}ブートストラップエンドポイント URL 自体は、マニフェスト URL パラメータまたは Entra extn.bootstrap_url クレームのいずれかで bootstrap_url を介して設定されます。Entra ID トークンが取得された場合、ベアラー認可ヘッダーとしてブートストラップエンドポイントに渡されるため、エンドポイントはユーザーを認証してからユーザーごとの設定を返すことができます。
優先順位
複数のチャネルが値を提供する場合、後のチャネルが前のチャネルをオーバーライドします。マニフェストパラメータが最初に読み込まれ、次に Entra クレーム、その後ブートストラップレスポンスが読み込まれます。ブートストラップレスポンスが優先されます。
まだの場合は、最速のパスは claude-in-office プラグインです。
デプロイメントモード
カスタムコレクターエクスポートは両方のデプロイメントモードで利用可能です:
Claude.ai Enterprise(OAuth):ユーザーアイデンティティ(
user.email、user.account_uuid、organization.id)、MCP サーバーメタデータ、ファイルアップロードレコードを含む完全な監査証跡。ダイレクトプロバイダー(Bedrock、Vertex AI、ゲートウェイ):コア監査証跡(プロンプト、ツール入出力、ドキュメント URL)ですが、ユーザーアイデンティティなし、MCP メタデータなし、ファイルアップロードスパンなし。ユーザー属性は
session.idを独自のアイデンティティプロバイダーログと相関させることで必要です。
コア監査ペイロードは両方のモードで同じです。ダイレクトプロバイダーデプロイメントは Claude.ai アカウントコンテキストがないため、Claude.ai ユーザーまたは組織プロファイルから派生した属性は存在しません。以下のスパンスキーマの [claude.ai-only] タグを参照して、完全なリストを確認してください。
サーフェスとベンダーラベル
すべてのスパンには、どの Office アプリケーションとプラットフォームがそれを生成したかを識別する 2 つのラベルが含まれます。これらをフィルタリングとダッシュボードの主要なディメンションとして使用してください。
ラベル | 値 |
| sheet(Excel/Google Sheets)、doc(Word)、slide(PowerPoint) |
| m(Microsoft) |
スパンリファレンス
各ユーザーターンは最大 5 つのスパンタイプの親子ツリーを生成します。[content] でマークされた属性はユーザー生成データを含みます。これらが監査ペイロードを形成します。[claude.ai-only] でマークされた属性は、ユーザーが Claude アカウントでサインインした場合にのみ入力されます。Bedrock、Vertex AI、ゲートウェイデプロイメントでは存在しません。存在しない属性はスパンから完全に省略されます(null 値を持つキーはありません)。
file.upload スパンとすべての mcp.* 属性も [claude.ai-only] です。ファイルアップロードと MCP サーバー接続は Claude プラットフォーム機能だからです。
ダイレクトプロバイダーデプロイメントの場合、ユーザーアイデンティティは session.id と document.url を介して相関させ、アイデンティティプロバイダーのセッションログに対して結合する必要があります。
リソース属性
これらの属性はすべてのスパンに表示されます:
属性 | 説明 |
| 固定値:office-agent |
| 固定値:1.0.0 |
| ビルドコミット識別子 |
agent.query(ルートスパン)
ユーザーターンごとに 1 つのスパン。これはスパンツリーのルートであり、セッションアイデンティティ、ドキュメントコンテキスト、MCP サーバーステータスを含みます。SpanKind:INTERNAL。
属性 | 説明 |
| sheet | doc | slide |
| m |
| ユーザーのプロンプト(最初の 4000 文字) |
| 不透明なセッション識別子 |
| ユーザーのメールアドレス |
| 決定論的ハッシュバケット(メールの SHA-256、mod 30) |
| Claude アカウント UUID |
| 開いている Office ドキュメントの URL |
| Claude 組織 UUID |
| Claude サブスクリプション層 |
| Claude 組織タイプ |
| このセッションでユーザーが選択したモデル |
| PC | Mac | OfficeOnline | iOS | Android | Universal |
| Office ビルド番号 |
| 設定された MCP サーバーの数 |
| 正常に接続された MCP サーバーの数 |
| 接続に失敗した MCP サーバーの数 |
| success | error | timeout | no_auth | not_attempted |
| MCP レジストリ取得期間 |
| MCP レジストリ取得 HTTP ステータスコード |
| シリアル化された MCP サーバーの詳細(名前、ツール数、エラーメッセージ) |
| このターンに添付されたファイルの数 |
| アップロードされた合計バイト数 |
| 画像添付の数 |
| ドキュメント添付の数 |
| その他の添付の数 |
| 例外クラス名(失敗時に表示) |
| クエリが失敗したフェーズ(失敗時に表示) |
agent.stream
Claude への API 呼び出しごとに 1 つのスパン。クエリスパンの子。SpanKind: CLIENT。
属性 | 説明 |
| この呼び出しに使用されたモデル ID |
| リクエストされた最大出力トークン |
| ストリーム開始時の会話内のメッセージ数 |
| 請求対象の入力トークン(APIレスポンスから) |
| 請求対象の出力トークン(APIレスポンスから) |
| プロンプトキャッシュから提供されたトークン |
| プロンプトキャッシュに書き込まれたトークン |
| end_turn | tool_use | max_tokens | など |
| Anthropic APIのrequest-idヘッダー、サポート相関に使用可能 |
プロンプトキャッシングに関する注記:アドインはプロンプトキャッシングを無条件にリクエストします。cache_read_tokensおよびcache_creation_tokens属性はプロバイダーのAPIレスポンスから設定され、レスポンスに含まれていない場合は省略されます。プロンプトキャッシングはClaudeデベロッパープラットフォームで利用可能です。現在のところ、Amazon BedrockおよびGoogle Vertex AIは、アドインが使用するクライアントを通じてこれらのフィールドをまだ返していません。サポートがプロバイダーに対応すると、これらの属性は自動的に表示されるようになります。
agent.tool_execution
ストリームスパンの子として、ツール呼び出しごとに1つのスパン。SpanKind:INTERNAL。これはモデルがドキュメントに対して実行したアクションの主要な記録です。
属性 | 説明 |
| ツール識別子(例:get_cell_ranges、execute_office_js、edit_slide_xml) |
| このツール呼び出しの一意のID |
| server | client |
| first_party | mcp | server |
| read | write | read_write |
| manual | auto_accept | deferred |
| シリアル化されたツール入力(最初の4000文字) |
| ブール値 |
| シリアル化されたツール出力(最初の4000文字) |
| 出力の完全な長さ(文字数)(切り詰めを検出するために使用) |
| エラー分類(失敗時に表示) |
| 読み取られたセル(シート表面のみ) |
| 書き込まれたセル(シート表面のみ) |
| コピーされたセル(シート表面のみ) |
注記:tool.accept_decision属性は、権限決定がどのように行われたかを記録します:manual(ユーザーがこの特定のアクションを承認した)、auto_accept(ユーザーが以前に継続的な承認を付与していた)、またはdeferred(アクションが後で確認するためにキューに入れられた)。これを使用して、組織全体の承認パターンを監査します。
agent.compaction
会話ごとに1つのスパンで自動要約を実行し、コンテキストがウィンドウ制限に近づくと発火します。SpanKind: CLIENT。
属性 | 説明 |
| 要約前のトークン数 |
| 要約後のトークン数 |
| 差分 |
| ブール値 |
| 現在は常にリアクティブ |
このスパンは、agent.surface、agent.vendor、session.id、user.email [claude.ai-only]、user.bucket [claude.ai-only]、office.platform、office.versionも含みます。これらはルートスパンから複製されているため、圧縮イベントを独立して照会できます。
file.upload [claude.ai-only]
クエリスパンの子として、個別のファイルアップロードごとに1つのスパンが作成されます。SpanKind: CLIENT。このスパンタイプは、Claude.aiアカウントでサインインしたユーザーの場合のみ表示されます。ファイルアップロードは直接プロバイダーデプロイメントでは利用できません。
属性 | 説明 |
| 元のファイル名 |
| ファイルサイズ |
| MIMEタイプ |
| Anthropic Files API識別子 |
| ブール値 |
スパンイベント
スパンイベントは、上記のスパンに付加されたタイムスタンプ付きマーカーです。ライフサイクルの遷移とカウンター相当のシグナルをキャプチャします。
agent.query: exception {exception.type}; file_upload {file_id, mime_type, content_category}agent.stream: first_token; stream_complete; stream_error {exception.type}agent.tool_execution: tool_init; tool_run; tool_result; tool_error {error_type}agent.compaction: compaction_start; compaction_complete; compaction_error {exception.type}file.upload: exception {exception.type}
すべての内部製品カウンターは、現在アクティブなスパンに同じ名前のスパンイベントも記録し、メトリクスストリームと同等のものをトレースデータ内で提供します。office_agent.token.usageイベントは各agent.streamスパンで発行され、ゼロ以外のトークンタイプごとに1回、属性{token_usage.type: input | output | cacheRead | cacheCreation, token_usage.model, token_usage.token_count}を持ちます。これは他のAnthropicプロダクトから発行される*.token.usageカウンター形状をミラーリングしているため、単一のコレクターはservice.nameでグループ化することで、プロダクト全体のトークンコストを集約できます。
サーフェス固有の動作
テレメトリスキーマはすべてのサーフェスで一貫しています。これらが相違点です:
Sheets (Excel):
agent.tool_executionスパンにはsheet.cells_read、sheet.cells_written、sheet.cells_copied属性が含まれます。office_agent.cell_edit_collision_totalスパンイベントは、ユーザーがセル編集中にツールが書き込みを試みるときに表示されます。Documents (Word): ドキュメント編集ファネルイベントは編集ライフサイクルを追跡します:
office_agent.doc_edit_received_total、office_agent.doc_edit_parsed_total、office_agent.doc_edit_applied_total、office_agent.doc_proposed_edit_reviewed_total。sheet.cells_*属性はありません。Slides (PowerPoint): 共通スキーマ以外のサーフェス固有の属性またはイベントはありません。
ユーザーセッションの再構築
Claude.aiデプロイメント
user.email(またはuser.account_uuid)とsession.idでスパンをフィルタリングします。agent.queryスパンを開始タイムスタンプで順序付けします。各スパンは1つのユーザーターンです。各ターンについて、
user.messageはプロンプトで、document.urlは作業中のファイルです。子
agent.tool_executionスパンはタイムスタンプで順序付けされ、実行されたアクションです:tool.inputは試みられたもので、tool.outputは結果で、tool.accept_decisionはユーザーが明示的に承認したかどうかを記録します。
直接プロバイダーデプロイメント
このモードではアドインにClaude.aiユーザーIDがないため、スパンはuser.emailまたはuser.account_uuidを含みません。アクティビティをユーザーに属性付けするには:
session.idでスパンをフィルタリングして、1つの継続的なアドインセッションを分離します。document.urlを使用して、作業中のファイルを識別します。セッションをアイデンティティプロバイダーのログと照合します:Entra サインインイベント、ゲートウェイアクセスログ、またはブートストラップエンドポイントのリクエストログ(ユーザーの Entra ID トークンを Bearer ヘッダーとして受け取ります)。
セッションがユーザーに属すると判定されたら、ターンごとの再構成は同じです:agent.query はタイムスタンプで順序付けられ、
user.message、tool.input、tool.output、tool.accept_decisionが監査証跡を提供します。
これにより、両方のデプロイメントモードでインタラクションの完全で順序付けられたトランスクリプトが生成されます。
