Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
To jest kanoniczna specyfikacja atrybut po atributie używana przez pipeline ingestion Agenta 365. Każdy pakiet pobierany przez Agenta 365 – niezależnie od tego, czy emitowany przez dystrybucję OpenTelemetry Microsoft OpenTelemetry, Agent 365 SDK czy przesyłany przez direct OTel musi być zgodny z tym przepisem. Każdy wpis wymienia typy operacji, do których przypisuje się atrybut, czy jest to obowiązkowe, nazwę pola, w której trafia wartość dla zapytań zaawansowanych poszukiwań (jeśli takie istnieje), oraz wpływ na pominięcie tej funkcji.
Jeśli używasz SDK lub dystrybucji, SDK generuje te atrybuty za ciebie, a sekcja Wybieranie wartości działa tylko wtedy, gdy musisz nadpisać domyślne atrybuty. Jeśli jesteś na bezpośredniej ścieżce OTel, emitujesz wszystkie atrybuty ręcznie; aby dowiedzieć się, jak je złożyć w żądanie, zobacz Przewodnik Integracji.
Attribute table
Wszystkie wartości są wysyłane jako stringValue - liczba tokenów musi być ( "42" nie 42); porty muszą być "443" (nie 443).
Operacja legenda.IA = invoke_agent, ET = execute_tool, CH = chat, OM = output_messages, All = dotyczy każdej operacji.
Required legend.
- M: mandatory.
- M*¹: obowiązkowy tylko dla agentów empersonowanych (agent ma własne konto użytkownika Identyfikator agenta Entra).
- M*²: obowiązkowe tylko dla rozmów agent-agent.
-
M*³: obowiązkowe tylko dla rozpięć nie-pierwiastkowych. Korzeń
invoke_agentnie ma rodzica. - O*⁴: opcjonalne, istotne tylko wtedy, gdy status rozpoczęcia to Błąd.
- O: optional.
- N/A: nie emituj. Agent 365 automatycznie się zapełnia.
Kolumna "RawEventData field" wymienia klucz JSON wewnątrz CloudAppEvents.RawEventData , który kanoniczne zapytanie zaawansowanego poszukiwania w Verifying ingestion parsuje. Pusta komórka oznacza, że atrybut jest nie obecnie widoczny w CloudAppEvents – nadal powinieneś go emitować (zgodnie z kolumną Wymagane), ponieważ Agent 365 używa go do pobierania, rozdzielczości rodzica oraz widoków aktywności agenta Microsoft Defender, ale nie jest bezpośrednio zapytywalny z Microsoft Defender zaawansowanego poszukiwania.
Note
Agent 365 automatycznie wypełnia pola statycznego rekordu (Id, RecordType, , Workload, UserType) Versionoraz wygenerowane identyfikatory żądań / odpowiedzi.
| Attribute | Applies to | Required | RawEventData field | Uwagi / wpływ w przypadku braku |
|---|---|---|---|---|
gen_ai.operation.name |
All | M | Operation |
Jeden z invoke_agent, execute_tool, chat, output_messages. Zakres spadł, jeśli był zaginiony lub nierozpoznany. |
microsoft.tenant.id |
All | M | OrganizationId |
URL {tenantId} jest autorytatywny. Jeśli ustawisz to i to się nie zgadza, wniosek zostaje odrzucony (403). |
gen_ai.agent.id |
All | M |
TargetAgentId (IA, również najwyższy poziom AgentId); AgentId (ET, CH) |
Aplikacja do dzwonienia jest dostępna. Musi się zgadzać z adresem URL {agentId} i uwierzytelnioną aplikacją. Mismatch daje 403. |
gen_ai.agent.name |
All | M |
TargetAgentName (IA); AgentName (ET, CH) |
Defender / centrum administracyjne pokazują czysty GUID zamiast nazwy, jeśli brakuje. |
microsoft.a365.agent.blueprint.id |
All | M |
TargetAgentBlueprintID (IA); AgentBlueprintId (ET, CH) |
Plan jest odpowiedni. W przypadku standardowych aplikacji Entra bez blueprintu ponownie użyj appID agenta. W przeciwnym razie zwiększanie blueprintów w centrum administracyjnym się psuje. |
gen_ai.agent.description |
All | O | -- | Widok szczegółów w centrum administracyjnym jest pusty dla agenta. |
gen_ai.agent.type |
All | O |
PlatformTargetAgentType (IA); PlatformAgentType (ET); CopilotEventData.PlatformAgentType (CH) |
Etykieta dla systemu tożsamości, połączona z microsoft.a365.agent.platform.id sytuacjami, gdy agent nie ma rejestracji Entra. Tekst swobodny; Wybierz wartość, która jednoznacznie identyfikuje Twój system tożsamości. Pomiń, gdy agent ma rejestrację Entra – Agent 365 automatycznie klasyfikuje. Nie używaj wartości zarezerwowanych Microsoft (zobacz Wybieranie wartości). |
microsoft.a365.agent.platform.id |
All | O |
PlatformTargetAgentId (IA, również najwyższy poziom AlternateId); PlatformAgentId (ET, CH) |
Unikalne ID agenta w twoim systemie tożsamości nie-Entra. Free-form text. Ułóż razem z .gen_ai.agent.type Pomij, gdy agent ma rejestrację Entra. Zobacz wartości wybierania. |
gen_ai.conversation.id |
All | M |
ConversationId (IA, ET); CopilotEventData.ConversationId / CopilotEventData.ThreadId (CH) |
Główny klawisz łączenia dla przebiegu. Bez niego run nie pojawia się w widokach aktywności agenta Defender ani w centrum administracyjnym. |
microsoft.channel.name |
All | M |
ChannelName (IA, ET) |
Powierzchnia, po której agent biegnie. Używaj krótkiego tokena z małymi literami; Obecnie kanoniczne wartości używane przez filtry Defender / Admin Center to msteams oraz outlook. Niestandardowe ciągi (na przykład web, <your-product-name>) są akceptowane, ale nie przesuwają się w wbudowanych filtrach kanałowych. Ta sama wartość na każdym przęsły. Zobacz wartości wybierania. |
microsoft.channel.link |
All | O | -- | Channel deep-link. |
microsoft.session.id |
All | O | SessionIdentity |
Sesja przewraca się pusto, jeśli jej brakuje. |
microsoft.session.description |
All | O | -- | Session description. |
microsoft.conversation.item.link |
All | O | -- | Głęboki link do wiadomości. |
correlation.id |
All | O | -- | Cross-service tracing. Dziś nie pojawia się w zaawansowanych polowaniach. |
operation.source |
All | O |
InvokeSource (IA) |
Identyfikator SDK / usługi emitującej telemetrię. Może to atrybut Zasobów. |
client.address |
IA, ET, CH | M |
ClientIP (IA, ET) |
Caller IP. Śledztwo oparte na IP zablokowane, jeśli puste. |
server.address |
IA, ET, CH | M |
ServerAddress (IA, ET) |
Endpoint, który twoja usługa wzywa. |
server.port |
IA, ET, CH | M |
ServerPort (IA) |
Zakodowane w ciągu (na przykład "443"). |
user.id |
IA | M | UserKey |
Microsoft Entra ID obiektu ludzkiego dzwoniącego. "Kto prowadził tego agenta" bez tego jest puste. |
user.email |
IA | O | UserId |
UPN rozmówcy. |
user.name |
IA | O | -- | Wyświetlaj nazwę dzwoniącego. |
gen_ai.input.messages |
IA, CH | M | -- | Żądaj ładunku (ciąg JSON). Złapane do analizy dalej, ale jeszcze nie wynurzone podczas zaawansowanych polowań. |
gen_ai.output.messages |
IA, CH, OM | M | -- | Ładunek odpowiedzi (ciąg JSON). |
gen_ai.execution.type |
IA | O | -- | Jeden z HumanToAgent, Agent2Agent, EventToAgent. |
microsoft.a365.agent.thought.process |
IA, CH | O | -- | Rozumowanie w swobodnym tekście / łańcuch myślenia. |
gen_ai.author.app.id |
OM | O | -- | Microsoft Entra ID aplikacji aplikacji, która utworzyła lub utworzyła agenta. |
gen_ai.tool.name |
ET | M | ToolName |
Tool name. Widoki korzystania z narzędzi Defender są puste, jeśli ich brakuje. |
gen_ai.tool.type |
ET | M | ToolType |
Jeden z , , , , , , bing_grounding, , code_interpreter. file_searchAPIKnowledge SourceMCP ServerPower Platform Connectorfunction |
gen_ai.tool.call.id |
ET | M | ToolId |
Identyfikator tego wywołania narzędzia. |
gen_ai.tool.call.arguments |
ET | M | -- | Argumenty narzędzi (ciąg JSON). Schwytany, ale jeszcze nie wynurzony podczas zaawansowanych polowań. |
gen_ai.tool.call.result |
ET | M | -- | Wynik narzędzia (ciąg JSON). |
gen_ai.tool.description |
ET | O | ToolDescription |
Tool description. |
gen_ai.tool.server.name |
ET | O | -- | Nazwa hosta serwera narzędzi. Ustaw ten atrybut dla narzędzi MCP. |
gen_ai.request.model |
CH | M | -- | Nazwa modelu (na przykład ). gpt-4o Schwytany, ale jeszcze nie wynurzony podczas zaawansowanych polowań. |
gen_ai.provider.name |
CH | M | -- | Nazwa dostawcy (na przykład ). openai |
gen_ai.usage.input_tokens |
CH | O | -- | Liczba tokenów wejściowych, zakodowana łańcuchowo. |
gen_ai.usage.output_tokens |
CH | O | -- | Liczba tokenów wyjściowych, zakodowana łańcuchem znaków. |
gen_ai.response.finish_reasons |
CH | O | -- | Finish reason(s). |
microsoft.a365.caller.agent.id |
IA | M*² | -- | Dzwonię do agenta na szybko. Wymagane dla agent-agent. |
microsoft.a365.caller.agent.name |
IA | M*² | -- | Dzwonię do nazwy agenta. |
microsoft.a365.caller.agent.blueprint.id |
IA | M*² | AgentBlueprintId |
Dzwonię do planu agenta. Wymagane dla wbudowanego A2A. |
microsoft.a365.caller.agent.user.id |
IA | M*² | -- | Dzwonię do identyfikatora użytkownika agenta. |
microsoft.a365.caller.agent.user.email |
IA | M*² | -- | Dzwonię do agenta UPN. |
microsoft.a365.caller.agent.platform.id |
IA | N/A | -- | Zarezerwowane dla alternatywnych identyfikatorów nie-Entra. |
gen_ai.caller.agent.type |
IA | N/A | -- | Agent 365 automatycznie się klasyfikuje. |
microsoft.agent.user.id |
IA, ET, CH | M*¹ |
TargetAgentUserKey (IA); UserKey (ET, CH) |
Microsoft Entra ID obiektu własnego konta użytkownika agenta. Wymagane dla sojuszników AI / agentów z ucieleśnieniami. |
microsoft.agent.user.email |
IA, ET, CH | O*¹ |
UserId (ET, CH) |
UPN konta użytkownika agenta. |
span.SpanId |
All | M | OpId |
OTel SDK emituje to. |
span.ParentSpanId |
All | M*³ | ParentId |
Wymagane tylko dla rozpięć niebędących pierwiastkiem; korzeń invoke_agent nie ma żadnego. |
span.StartTimeUnixNano |
All | M | najwyższy poziom TimeGenerated (również CreationTime w RawEventData) |
Nanos epoki uniksa jako struna. |
span.EndTimeUnixNano |
All | M |
CompletionTime (IA, ET); CopilotEventData.CompletionTime (CH) |
Nie da się obliczyć czasu trwania, jeśli brakuje. |
span.Status.Message |
All | O*⁴ |
ErrorMessage (IA, ET); CopilotEventData.ErrorMessage (CH) |
Przyczyna nieudanych prób jest pusta, jeśli brakuje. |
span.Status.Code |
All | O*⁴ |
ErrorType (IA); CopilotEventData.ErrorType (CH) |
Kategoria błędu pusta, jeśli brakuje. |
Note
Kilka atrybutów, które generujesz (takich jak argumenty narzędzi / wyniki, parametry modelu i głębokie linki kanałowe), jest akceptowanych przez Agenta 365 i wykorzystywanych przez widoki Microsoft Defender w dalszej fazie, ale nie są jeszcze widoczne jako klucz JSON CloudAppEvents.RawEventData. Ustaw je zgodnie z kolumną Wymagane – mogą zostać dodane do ładunku poszukiwań w przyszłej wersji.
Wybieranie wartości, gdy nie masz naturalnej
Niektóre wymagane atrybuty opisują koncepcje, które mogą nie istnieć w architekturze Twojego agenta. Jeśli naturalna wartość nie istnieje, oto co warto ustawić zamiast tego. Nie zostawiaj obowiązkowego pola pustego – nawet GUID z zerami ukryje Twój bieg przed niektórymi doświadczeniami z klientem.
| Pytanie / scenariusz | Field(s) | Co ustawić |
|---|---|---|
| Mój agent to standardowa rejestracja aplikacji Entra (nie zbudowany na podstawie Identyfikator agenta Entra blueprint). | gen_ai.agent.id |
Aplikacja Entra jest dostępna. |
| ↑ ten sam scenariusz | microsoft.a365.agent.blueprint.id |
Wykorzystaj tę samą wartość co gen_ai.agent.id (appId agenta). Schemat wymaga wartości niepustej; ponowne użycie appId agenta jest bezpiecznym domyślnym rozwiązaniem, gdy nie ma blueprintu. |
| Mój agent jest zbudowany na podstawie Identyfikator agenta Entra blueprintu – jednej lub wielu tożsamości agentów wybitych z tego samego blueprintu. | gen_ai.agent.id |
Identyfikator tożsamości agenta ( appIdinstancji , nie blueprint). |
| ↑ ten sam scenariusz | microsoft.a365.agent.blueprint.id |
Plan jest odpowiedni. Wszystkie instancje wybite z tego samego blueprintu mają tę wartość. |
| Dzwoniący to użytkownik ludzki, a nie inny agent. | Wszystko microsoft.a365.caller.agent.* i atrybuty gen_ai.caller.agent.* |
Omit. Są obowiązkowe tylko w sytuacjach agent-agent. |
| W relacji agent-to-agent: agent dzwoniący to standardowa aplikacja Entra (bez blueprintu). | microsoft.a365.caller.agent.blueprint.id |
Ponownie wykorzystaj aplikację agenta dzwoniącego. |
| Mój agent nie jest współpracownikiem AI – nie ma własnego konta użytkownika w tenantze. | Wszystkie microsoft.agent.user.* atrybuty |
Omit. Są obowiązkowe tylko wtedy, gdy agent ma własne konto użytkownika Identyfikator agenta Entra. |
| Mój agent nie ma pojęcia o sesji poza jednym przejściem. | microsoft.session.id |
Opcjonalnie – pomij. Jeśli chcesz, aby każdy przebieg był osobną sesją, ustaw rozliczenie GUID na każdy run. |
| Mój agent nie ma pojęcia o rozmowie (jednorazowe, bezpaństwowe). | gen_ai.conversation.id |
Generuj świeży GUID na każdy przebieg. Pole jest obowiązkowe; pominięcie tego usuwa uruchomienie z widoków aktywności agenta Defender oraz z Centrum administracyjne platformy Microsoft 365. |
| Dzwoniący nie ma adresu IP (na przykład autonomicznego zaplanowanego wyzwalacza). | client.address |
Użyj stabilnego zastępczego zastępcy, który kontrolujesz (na przykład ). "0.0.0.0" Pole jest obowiązkowe; wartość pusta usuwa przebieg z pivotów badań opartych na IP. |
| Agent jest w trakcie procesu; nie ma osobnego "serwera" wywoływanego. | server.address / server.port |
Użyj nazwy hosta maszyny, która uruchomiła agenta (na przykład ) oraz portu, myagent.example.comna którym nasłuchuje Twój punkt końcowy. Wymagane nawet wtedy, gdy nie ma osobnej usługi w dół łańcucha. |
Mój chat span nie ma użycia tokenów modelowych. |
gen_ai.usage.input_tokens / gen_ai.usage.output_tokens |
Opcjonalnie – pomij. Jeśli masz przybliżone liczby, wyślij je jako .stringValue |
| Mój zakres nie ma żadnego błędu do zgłoszenia. |
span.Status.Message, span.Status.Code |
Ustaw status OTel na OK (kod numeryczny 1) i pomiń tę wiadomość. Potok konsultuje te pola tylko wtedy, gdy status wynosi .Error |
| Mój agent używa systemu tożsamości nie-Entra (agent nie ma rejestracji Entra). |
microsoft.a365.agent.platform.id i gen_ai.agent.type |
Ustaw oba na każdym przęsły.
platform.id jest unikalnym identyfikatorem agenta w twoim systemie tożsamości; agent.type to krótka etykieta identyfikująca, o jaki system tożsamości chodzi. Oba są tekstem swobodnym – wybierz to, co pasuje do twojego systemu.
Nie używaj wartości typów zarezerwowanych Microsoft: CustomBuiltAgentsUsingSDK, CopilotStudio, Foundry, DeclarativeAgent, Custom (wartości te są zarezerwowane dla powierzchni wewnętrznych Microsoft). Aplikacja do dzwonienia, którą uwierzytelniasz, nadal wymaga rejestracji Entra, aby korzystać z tych tras – para alternate-id opisuje agenta docelowego , nie dzwoniącego. |
Jaką wartość powinienem położyć microsoft.channel.name? |
microsoft.channel.name |
Powierzchnia, po której agent biegnie. Defender i centrum administracyjne filtrują klucz z literalnego ciągu, więc używaj krótkiego, stabilnego tokena z małymi literami. Obecnie wartości kanoniczne to i ; outlookpowszechne powierzchnie skoncentrowane na kliencie również używają web, office, sharepoint, lub <your-product-name>.msteams Wybierz jedną wartość i trzymaj się jej – narzędzia nie potrafią pogodzić msteams i Microsoft Teams jako ten sam kanał. |
Czy powinienem ustawić gen_ai.agent.type? |
gen_ai.agent.type |
Tylko jeśli też zakładasz ( microsoft.a365.agent.platform.id na przykład Twój agent nie ma rejestracji Entra). Para informuje agenta 365, z którego systemu tożsamości pochodzi agent. Wybierz krótką etykietę, która jednoznacznie identyfikuje Twój system tożsamości.
Nie używaj CustomBuiltAgentsUsingSDK, CopilotStudio, Foundry, DeclarativeAgent ani Custom – te wartości są zarezerwowane dla użytku wewnętrznego Microsoft. Dla agentów zarejestrowanych w Entra pominąć pole; Agent 365 ją uzupełnia. |
Jakie OTLP kind powinienem ustawić na moich spanach? |
span.kind |
Użyj wartości enum całkowitej, a nie proto-enum łańcucha - 1 (), 2INTERNAL(SERVER), (), 3 (CLIENT), 54PRODUCER(), ().CONSUMER Agent 365 akceptuje którykolwiek z tych elementów i nie wyprowadza zachowań widocznych dla klienta z , kindwięc 1 (INTERNAL) jest bezpiecznym domyślnym dla każdego okresu. Jeśli chcesz, aby kształt połączenia odzwierciedlał, INTERNAL to za invoke_agentoutput_messages / i CLIENT za chat / execute_tool jest rozsądne. |