Sie können vollständige Audit-Telemetrie von Office-Agenten an Ihren eigenen OpenTelemetry (OTEL)-Collector weiterleiten. Dies gibt Ihrer Organisation vollständige Kontrolle über Aufbewahrung, Verschlüsselung und Integration mit Ihrer SIEM- oder Observability-Plattform.
Diese Anleitung behandelt die Aktivierung eines benutzerdefinierten Collectors, welche Daten Sie erhalten, und die vollständige Span-Schema-Referenz.
Benutzerdefinierte OTEL-Collector sind für Claude Enterprise-Organisationen und für Direct-Provider-Bereitstellungen (Amazon Bedrock, Google Vertex AI oder ein Gateway) verfügbar.
Was Sie erhalten
Wenn Sie einen benutzerdefinierten Collector konfigurieren, senden Office-Agenten Trace-Daten, die jeden Benutzerzug abdecken. Jeder Zug erzeugt einen Baum von Spans, die den Prompt, Modellaufrufe, Tool-Ausführungen, Datei-Uploads und Kontext-Komprimierungsereignisse erfassen.
Ihr Collector empfängt alle Span-Attribute, einschließlich derjenigen, die benutzergenerierte Inhalte enthalten (Prompt-Text, Tool-Eingaben und -Ausgaben, Dokument-URLs und Dateinamen). Keine Attribute werden redaktionell bearbeitet oder gefiltert. Der Antworttext des Assistenten ist nicht in den emittierten Span-Daten enthalten. Ihre Organisation besitzt diese Daten.
Wichtig: Metriken werden nicht an benutzerdefinierte Collector gesendet. Der Namespace office_agent.* wird nur an Anthropic weitergeleitet. Jedoch erscheint jede Zählerinkrementierung auch als Span-Ereignis auf dem aktiven Span, sodass die gleichen Signale in Ihren Traces verfügbar sind.
Telemetrie wird über OTLP/HTTP an Ihren Endpunkt unter {your_url}/v1/traces gesendet. gRPC wird nicht unterstützt, da das Add-in in einer Office WebView ausgeführt wird.
Aktivieren Sie einen benutzerdefinierten Collector
Das Setup unterscheidet sich je nachdem, wie sich Ihre Organisation bei Claude authentifiziert.
Wichtig: Wenn ein benutzerdefinierter Endpunkt konfiguriert ist, werden Telemetrie-Daten ausschließlich an Ihren Collector gesendet. Spans werden nicht doppelt an Anthropic gesendet.
Claude Enterprise (OAuth)-Organisationen
Ein Organisationsadministrator legt den Collector-Endpunkt in der Claude.ai-Administrationskonsole unter Organisationseinstellungen > Office-Agenten fest. Die Einstellung gilt organisationsweit.
Einstellung | Beschreibung |
| Basis-URL Ihres OTLP-Collectors. Das Add-in fügt /v1/traces an. HTTPS wird dringend empfohlen. |
| Optionale Authentifizierungsheader, formatiert gemäß der OpenTelemetry-Spezifikation: key1=value1,key2=value2 |
Das Protokoll muss HTTP-basiertes OTLP sein. gRPC wird zum Zeitpunkt der Konfiguration abgelehnt.
Direct-Provider-Bereitstellungen (Amazon Bedrock, Google Vertex AI, Gateway)
Bei Bereitstellungen, die sich gegen Ihren eigenen Modell-Provider authentifizieren, anstatt gegen Claude.ai, wird der Collector-Endpunkt über einen von drei Konfigurationskanälen bereitgestellt. Alle drei verwenden die gleichen zwei Schlüssel.
Empfohlen: Verwenden Sie das claude-in-office-Plugin für Claude Code. Es führt Sie durch die Generierung des Manifests, die Registrierung von Entra-Erweiterungsattributen und die Einrichtung eines Bootstrap-Endpunkts mit vorkonfiguriertem otlp_endpoint und otlp_headers. Die drei unten dokumentierten Kanäle dienen als Referenz und für manuelle Einrichtung.
Schlüssel | Format | Beschreibung |
| HTTPS-URL | Basis-URL Ihres OTLP-Collectors. Das Add-in entfernt alle nachgestellten Schrägstriche und fügt /v1/traces an. |
| key1=value1,key2=value2 | Optionale Authentifizierungsheader. Gleiches Format wie die Umgebungsvariable OpenTelemetry OTEL_EXPORTER_OTLP_HEADERS. |
Wenn otlp_endpoint nicht gesetzt oder leer ist, wird kein benutzerdefinierter Collector konfiguriert und das Add-in fällt auf das Standardverhalten zurück.
Hinweis: Diese Konfigurationskanäle gelten nur für Microsoft Office-Bereitstellungen. Google Workspace-Add-ins werden separat konfiguriert.
Kanal 1: Manifest-URL-Parameter
Fügen Sie die Schlüssel als Abfrageparameter an die Taskpane-URL in Ihrem benutzerdefinierten Add-in-Manifest an:
URL-kodieren Sie die Werte. Dies wendet die Konfiguration auf jeden Benutzer an, der das Manifest installiert.
Kanal 2: Azure Entra ID-Verzeichniserweiterung
Für benutzerspezifische Konfiguration registrieren Sie die Schlüssel als Entra ID-Verzeichniserweiterungsattribute und weisen Sie sie über Microsoft Graph zu. Das Add-in liest sie aus dem ID-Token des Benutzers mithilfe von Nested App Authentication (NAA).
Die Anspruchsnamen im ausgegebenen ID-Token folgen dem Azure-Verzeichniserweiterungsformat:
Anspruch | Zuordnung zu |
| otlp_endpoint |
| otlp_headers |
Legen Sie diese benutzerspezifisch mit einem Graph PATCH gegen das Benutzerobjekt fest. Azure kodiert Verzeichniserweiterungswerte als Single-Element-Arrays im ID-Token; das Add-in entpackt sie automatisch. Dieser Kanal erfordert entra_sso=1 in den Manifest-URL-Parametern, um die NAA-Token-Erfassung zu aktivieren.
Kanal 3: Bootstrap-Endpunkt-Antwort
Wenn Ihre Bereitstellung einen Bootstrap-Endpunkt verwendet (einen JSON-Endpunkt, den Ihre Organisation hostet und den das Add-In beim Start aufruft), fügen Sie die Schlüssel in den Antwortkörper ein:
{
"otlp_endpoint": "https://otel-collector.your-domain.com",
"otlp_headers": "Authorization=Bearer <token>"
}Die Bootstrap-Endpunkt-URL selbst wird über bootstrap_url entweder in den Manifest-URL-Parametern oder in einem Entra-extn.bootstrap_url-Anspruch konfiguriert. Wenn ein Entra-ID-Token erworben wurde, wird es als Bearer-Autorisierungsheader an den Bootstrap-Endpunkt übergeben, damit Ihr Endpunkt den Benutzer authentifizieren kann, bevor er die benutzerspezifische Konfiguration zurückgibt.
Priorität
Wenn mehrere Kanäle einen Wert bereitstellen, überschreiben spätere Kanäle frühere: Manifest-Parameter werden zuerst gelesen, dann Entra-Ansprüche, dann die Bootstrap-Antwort. Die Bootstrap-Antwort hat Vorrang.
Falls noch nicht geschehen, ist der schnellste Weg das claude-in-office-Plugin.
Bereitstellungsmodi
Der benutzerdefinierte Collector-Export ist in beiden Bereitstellungsmodi verfügbar:
Claude.ai Enterprise (OAuth): vollständige Audit-Spur einschließlich Benutzeridentität (
user.email,user.account_uuid,organization.id), MCP-Server-Metadaten und Datei-Upload-Datensätze.Direkter Anbieter (Bedrock, Vertex AI, Gateway): Kern-Audit-Spur (Prompts, Tool-Eingaben und -Ausgaben, Dokument-URLs), aber keine Benutzeridentität, keine MCP-Metadaten und keine Datei-Upload-Spans. Die Benutzer-Attribution erfordert die Korrelation von
session.idmit Ihren eigenen Identity-Provider-Protokollen.
Die Kern-Audit-Nutzlast ist in beiden Modi identisch. Direktanbieter-Bereitstellungen verfügen nicht über Claude.ai-Kontokontext, daher fehlen Attribute, die vom Claude.ai-Benutzer- oder Organisationsprofil abgeleitet sind. Siehe die [claude.ai-only]-Tags im Span-Schema unten für die vollständige Liste.
Oberflächen- und Anbieter-Labels
Jeder Span enthält zwei Labels, die identifizieren, welche Office-Anwendung und Plattform ihn generiert haben. Verwenden Sie diese als Ihre primären Dimensionen zum Filtern und für Dashboards.
Label | Werte |
| sheet (Excel/Google Sheets), doc (Word), slide (PowerPoint) |
| m (Microsoft) |
Span-Referenz
Jede Benutzer-Aktion erzeugt einen Eltern-/Kind-Baum von bis zu fünf Span-Typen. Attribute, die mit [content] gekennzeichnet sind, enthalten benutzergenerierte Daten; diese bilden Ihre Audit-Nutzlast. Attribute, die mit [claude.ai-only] gekennzeichnet sind, werden nur ausgefüllt, wenn sich der Benutzer mit einem Claude-Konto anmeldet; sie fehlen bei Bedrock-, Vertex-AI- und Gateway-Bereitstellungen. Fehlende Attribute werden vollständig aus dem Span weggelassen (kein Schlüssel mit Nullwert).
Der file.upload-Span und alle mcp.*-Attribute sind ebenfalls [claude.ai-only], da Datei-Upload und MCP-Server-Verbindungen Claude-Plattform-Features sind.
Bei direkten Anbieter-Bereitstellungen sollte die Benutzeridentität über session.id und document.url korreliert werden, verbunden mit den Sitzungsprotokollen Ihres Identity Providers.
Ressourcen-Attribute
Diese Attribute erscheinen auf jedem Span:
Attribut | Beschreibung |
| Fester Wert: office-agent |
| Fester Wert: 1.0.0 |
| Build-Commit-Identifier |
agent.query (Root-Span)
Ein Span pro Benutzer-Aktion. Dies ist die Wurzel des Span-Baums und enthält Sitzungsidentität, Dokumentkontext und MCP-Server-Status. SpanKind: INTERNAL.
Attribut | Beschreibung |
| sheet | doc | slide |
| m |
| Die Eingabeaufforderung des Benutzers (erste 4000 Zeichen) |
| Undurchsichtiger Sitzungsidentifier |
| E-Mail-Adresse des Benutzers |
| Deterministischer Hash-Bucket (SHA-256 der E-Mail, mod 30) |
| Claude-Konto-UUID |
| URL des offenen Office-Dokuments |
| Claude-Organisations-UUID |
| Claude-Abonnement-Tier |
| Claude-Organisationstyp |
| Vom Benutzer für diese Sitzung ausgewähltes Modell |
| PC | Mac | OfficeOnline | iOS | Android | Universal |
| Office-Build-Nummer |
| Anzahl der konfigurierten MCP-Server |
| Anzahl der erfolgreich verbundenen MCP-Server |
| Anzahl der MCP-Server, die keine Verbindung herstellen konnten |
| success | error | timeout | no_auth | not_attempted |
| Abrufdauer der MCP-Registry |
| HTTP-Statuscode beim Abrufen der MCP-Registry |
| Serialisierte MCP-Serverdetails (Namen, Toolanzahl, Fehlermeldungen) |
| Anzahl der an diesen Zug angehängten Dateien |
| Insgesamt hochgeladene Bytes |
| Anzahl der Bildanhänge |
| Anzahl der Dokumentanhänge |
| Anzahl der sonstigen Anhänge |
| Name der Ausnahmeklasse (bei Fehler vorhanden) |
| Phase, in der die Abfrage fehlgeschlagen ist (bei Fehler vorhanden) |
agent.stream
Ein Span pro API-Aufruf an Claude, als untergeordnetes Element des Abfrage-Spans. SpanKind: CLIENT.
Attribut | Beschreibung |
| Modell-ID für diesen Aufruf |
| Maximal angeforderte Ausgabe-Token |
| Anzahl der Nachrichten in der Konversation beim Stream-Start |
| Abgerechnete Eingabe-Token (aus API-Antwort) |
| Abgerechnete Ausgabe-Token (aus API-Antwort) |
| Token aus Prompt-Cache bereitgestellt |
| Token in Prompt-Cache geschrieben |
| end_turn | tool_use | max_tokens | usw. |
| Anthropic-API-Header request-id, verwendbar für Support-Korrelation |
Hinweis zum Prompt-Caching: Das Add-in fordert Prompt-Caching bedingungslos an. Die Attribute cache_read_tokens und cache_creation_tokens werden aus der API-Antwort des Anbieters gesetzt und werden weggelassen, wenn die Antwort diese nicht enthält. Prompt-Caching ist für die Claude Developer Platform verfügbar; zum Zeitpunkt dieser Veröffentlichung geben Amazon Bedrock und Google Vertex AI diese Felder noch nicht über den vom Add-in verwendeten Client zurück. Wenn die Unterstützung bei Ihrem Anbieter verfügbar wird, werden diese Attribute automatisch angezeigt.
agent.tool_execution
Ein Span pro Tool-Aufruf als untergeordnetes Element des Stream-Span. SpanKind: INTERNAL. Dies ist der primäre Datensatz der Aktionen, die das Modell gegen das Dokument ausgeführt hat.
Attribut | Beschreibung |
| Tool-Bezeichner (z. B. get_cell_ranges, execute_office_js, edit_slide_xml) |
| Eindeutige ID dieses Tool-Aufrufs |
| server | client |
| first_party | mcp | server |
| read | write | read_write |
| manual | auto_accept | deferred |
| Serialisierte Tool-Eingabe (erste 4000 Zeichen) |
| Boolesch |
| Serialisierte Tool-Ausgabe (erste 4000 Zeichen) |
| Vollständige Ausgabelänge in Zeichen (zur Erkennung von Kürzungen verwenden) |
| Fehlerklassifizierung (bei Fehler vorhanden) |
| Gelesene Zellen (nur Blattoberfläche) |
| Geschriebene Zellen (nur Blattoberfläche) |
| Kopierte Zellen (nur Blattoberfläche) |
Hinweis: Das Attribut tool.accept_decision dokumentiert, wie die Genehmigungsentscheidung getroffen wurde: manual (der Benutzer hat diese spezifische Aktion genehmigt), auto_accept (der Benutzer hatte zuvor eine dauerhafte Genehmigung erteilt), oder deferred (die Aktion wurde zur späteren Überprüfung in die Warteschlange eingereiht). Verwenden Sie dies, um Genehmigungsmuster in Ihrer Organisation zu überprüfen.
agent.compaction
Eine Zusammenfassung pro Konversation mit automatischer Zusammenfassung, ausgelöst wenn der Kontext sich dem Fenster-Limit nähert. SpanKind: CLIENT.
Attribut | Beschreibung |
| Token-Anzahl vor der Zusammenfassung |
| Token-Anzahl nach der Zusammenfassung |
| Differenz |
| Boolesch |
| Derzeit immer reaktiv |
Dieser Span enthält auch agent.surface, agent.vendor, session.id, user.email [claude.ai-only], user.bucket [claude.ai-only], office.platform und office.version, dupliziert vom Root-Span, damit Sie Komprimierungsereignisse unabhängig abfragen können.
file.upload [claude.ai-only]
Ein Span pro einzelnem Datei-Upload als untergeordneter Span des Query-Spans. SpanKind: CLIENT. Dieser Span-Typ wird nur angezeigt, wenn sich Benutzer mit einem Claude.ai-Konto anmelden. Datei-Upload ist bei direkten Provider-Bereitstellungen nicht verfügbar.
Attribut | Beschreibung |
| Ursprünglicher Dateiname |
| Dateigröße |
| MIME-Typ |
| Anthropic Files API-Bezeichner |
| Boolesch |
Span-Ereignisse
Span-Ereignisse sind Zeitstempel-Marker, die an die obigen Spans angehängt sind. Sie erfassen Lebenszyklusübergänge und äquivalente Zählersignale.
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}
Jeder interne Produktzähler zeichnet auch ein Span-Ereignis mit demselben Namen auf dem aktuell aktiven Span auf und bietet das Äquivalent des Metrik-Streams in Ihren Trace-Daten. Das office_agent.token.usage-Ereignis wird auf jedem agent.stream-Span einmal pro Nicht-Null-Token-Typ mit Attributen {token_usage.type: input | output | cacheRead | cacheCreation, token_usage.model, token_usage.token_count} ausgegeben. Dies spiegelt die *.token.usage-Zählerform wider, die von anderen Anthropic-Produkten ausgegeben wird, sodass ein einzelner Collector Token-Kosten über Produkte hinweg aggregieren kann, indem er nach service.name gruppiert.
Oberflächenspezifisches Verhalten
Das Telemetrie-Schema ist über alle Oberflächen hinweg konsistent. Dies sind die Unterschiede:
Sheets (Excel):
agent.tool_execution-Spans enthaltensheet.cells_read-,sheet.cells_written- undsheet.cells_copied-Attribute.office_agent.cell_edit_collision_total-Span-Ereignisse werden angezeigt, wenn ein Benutzer sich in der Mitte einer Zellenbearbeitung befindet, während ein Tool versucht zu schreiben.Documents (Word): document-edit-Trichter-Ereignisse verfolgen den Bearbeitungslebenszyklus:
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. Keinesheet.cells_*-Attribute.Slides (PowerPoint): keine oberflächenspezifischen Attribute oder Ereignisse über das gemeinsame Schema hinaus.
Rekonstruktion einer Benutzersitzung
Claude.ai-Bereitstellungen
Filtern Sie Spans nach
user.email(oderuser.account_uuid) undsession.id.Ordnen Sie
agent.query-Spans nach Start-Zeitstempel; jeder ist eine Benutzereingabe.Für jeden Turn ist
user.messagedie Eingabeaufforderung unddocument.urlist die bearbeitete Datei.Untergeordnete
agent.tool_execution-Spans, nach Zeitstempel geordnet, sind die durchgeführten Aktionen:tool.inputist das Versuchte,tool.outputist das Ergebnis,tool.accept_decisionzeichnet auf, ob der Benutzer explizit genehmigt hat.
Direkte Provider-Bereitstellungen
Das Add-In hat in diesem Modus keine Claude.ai-Benutzeridentität, daher enthalten Spans keine user.email oder user.account_uuid. Um Aktivität einem Benutzer zuzuordnen:
Filtern Sie Spans nach
session.id, um eine kontinuierliche Add-In-Sitzung zu isolieren.Verwenden Sie
document.url, um die bearbeitete Datei zu identifizieren.Korrelieren Sie die Sitzung mit den Protokollen Ihres Identitätsanbieters: Entra-Anmeldeereignisse, Gateway-Zugriffsprotokolle oder das Anforderungsprotokoll Ihres Bootstrap-Endpunkts (das das Entra ID-Token des Benutzers als Bearer-Header empfängt).
Sobald eine Sitzung einem Benutzer zugeordnet ist, ist die Rekonstruktion pro Durchgang identisch: agent.query sortiert nach Zeitstempel, mit
user.message,tool.input,tool.outputundtool.accept_decisionals Audit-Trail.
Dies erzeugt ein vollständiges, geordnetes Transkript der Interaktion in beiden Bereitstellungsmodi.
