@microsoft/agents-a365-observability package
Klasser
| Agent365ExporterOptions |
Maksimalt antal span pr. eksportbatch. |
| BaggageBuilder |
Per anmodning bagage builder for OpenTelemetry kontekstoverførsel. Denne klasse indeholder en flydende API til angivelse af bagageværdier, der overføres i OpenTelemetry-konteksten. Eksempel
|
| BaggageScope |
Kontekstadministrator for bagageomfang. Denne klasse administrerer livscyklussen for bagageværdier, angiver dem ved indsejling og gendanner den tidligere kontekst ved afslutning. |
| Builder |
Generator til konfiguration af Agent 365 med OpenTelemetry-sporing |
| ExecuteToolScope |
Leverer sporingsområde for OpenTelemetry for handlinger til udførelse af AI-værktøjer. |
| InferenceScope |
Leverer OpenTelemetry-sporingsområde for generative AI-inferenshandlinger. |
| InvokeAgentScope |
Leverer sporingsområdet for OpenTelemetry for aktiveringshandlinger for AI-agenten. |
| ObservabilityConfiguration |
Konfiguration af observability-pakke. Arver kørselsindstillinger og tilføjer observability-specifikke indstillinger. |
| ObservabilityManager |
Hovedindtastningspunkt for Agent 365, der leverer OpenTelemetry-sporing for AI-agenter og -værktøjer |
| OpenTelemetryConstants |
OpenTelemetry-konstanter for Agent 365 |
| OpenTelemetryScope |
Basisklasse for OpenTelemetry-sporingsområder |
| OutputScope |
Leverer sporingsområdet for OpenTelemetry for sporing af outputmeddelelser med overordnet span linking. |
| PerRequestSpanProcessorConfiguration |
Konfiguration af PerRequestSpanProcessor. Nedarver kørselsindstillinger (clusterCategory, isNodeEnvDevelopment) og tilføjer processorgardelister pr. anmodning. Dette er adskilt fra ObservabilityConfiguration, fordi PerRequestSpanProcessor kun bruges i bestemte scenarier, og disse indstillinger bør ikke vises i den almindelige ObservabilityConfiguration. |
Grænseflader
| AgentDetails |
Oplysninger om en AI-agent |
| BlobPart |
Indbyggede binære data (base64-kodet). |
| BuilderOptions |
Konfigurationsindstillinger for Agent 365 Observability Builder |
| CallerDetails |
Oplysninger om opkald til oprettelse af område. Understøtter personopkald, agentopkald eller begge dele (A2A med et menneske i kæden).
Migreringsnote: I v1 refereres navnet Se UserDetails – identitet for den person, der ringer op (tidligere |
| Channel |
Repræsenterer kanal for en aktivering |
| ChatMessage |
En inputmeddelelse, der er sendt til en model (OTEL gen-ai semantiske konventioner). |
| FilePart |
Reference til en fil, der allerede er uploadet. |
| GenericPart |
Del, der kan udvides, for brugerdefinerede/fremtidige typer. |
| GenericServerToolCall |
Oplysninger om viderestillede serverværktøjskald med en typediskriminator. |
| GenericServerToolCallResponse |
Svar på serverværktøjskald, der kan udvides, med en typediskriminator. |
| ILogger |
Brugerdefineret logføringsgrænseflade til Agent 365-observabilitet Implementer denne grænseflade for at understøtte logføring af backends |
| InferenceDetails |
Oplysninger om et afledningskald |
| InferenceResponse |
Oplysninger om optagelse af svaret fra et inferensopkald |
| InputMessages | |
| InvokeAgentScopeDetails |
Oplysninger om aktivering af agentomfang. |
| OutputMessage |
En outputmeddelelse, der er produceret af en model (OTEL gen-ai semantiske konventioner). |
| OutputMessages | |
| OutputResponse |
Repræsenterer et svar, der indeholder outputmeddelelser fra en agent. Bruges sammen med OutputScope til sporing af outputmeddelelser. Accepterer almindelige strenge, strukturerede OTEL OutputMessage-objekter eller et råt dikt (behandles som et værktøjskaldsresultat pr. OTEL-specifikation). |
| ParentSpanRef |
Reference til et overordnet interval for eksplicit overordnet/underordnet-sammenkædning på tværs af asynkrone grænser. Bruges, når automatisk kontekstoverførsel mislykkes (f.eks. WebSocket-tilbagekald, eksterne hændelseshandlere). |
| ReasoningPart |
Model ræsonnering/kæde af tankeindhold. |
| Request |
Repræsenterer en anmodning med telemetrikontekst. Bruges på tværs af alle områdetyper til kanal- og samtalesporing. |
| ServerToolCallPart |
Aktivering af værktøj på serversiden. |
| ServerToolCallResponsePart |
Svar på værktøj på serversiden. |
| ServiceEndpoint |
Repræsenterer et slutpunkt for agentaktivering |
| SpanDetails |
Detaljer om konfiguration af omfang for oprettelse af område. Grupper OpenTelemetry spænder over indstillingerne i et enkelt objekt, så signaturen for områdemetoden forbliver stabil, efterhånden som der tilføjes nye indstillinger. |
| TextPart |
Indhold i almindelig tekst. |
| ToolCallDetails |
Oplysninger om et værktøjskald foretaget af en agent |
| ToolCallRequestPart |
Et værktøjskald, som modellen har anmodet om. |
| ToolCallResponsePart |
Resultatet af et værktøjskald. |
| UriPart |
Ekstern URI-reference. |
| UserDetails |
Oplysninger om den person, der ringer op. |
Typealiasser
| EnhancedAgentDetails | |
| HeadersCarrier |
Bæretype for HTTP-headere, der bruges i overførsel af sporingskontekst. Kompatibel med Node.js IndgåendeHttpHeaders og almindelige strengkort. |
| InputMessagesParam |
Accepteret input for |
| MessagePart |
Samling af alle meddelelsesdelstyper pr. OTEL gen-ai semantiske konventioner. Bemærk! GenericPart fungerer som en catch-all for fremadrettet kompatibilitet med brugerdefinerede eller fremtidige deltyper. Da dens |
| ObservabilityConfigurationOptions |
Konfigurationsindstillinger for observabilitet – udvider kørselsindstillinger. Alle tilsidesættelser er funktioner, der kaldes for hver egenskabsadgang. Nedarvet fra RuntimeConfigurationOptions:
Bemærk! |
| OutputMessagesParam |
Accepteret input for |
| ParentContext |
En overordnet kontekst for oprettelse af et tidsrum. Accepterer enten:
|
| PerRequestSpanProcessorConfigurationOptions |
Konfigurationsindstillinger for PerRequestSpanProcessor – udvider kørselsindstillinger. Alle tilsidesættelser er funktioner, der kaldes for hver egenskabsadgang. Nedarvet fra RuntimeConfigurationOptions:
|
| ResponseMessagesParam |
Accepteret input for |
Optællinger
| ExporterEventNames |
Hændelsesnavne, der bruges af Agent365Exporter til logføring og overvågning. Dette er hændelsestyper med lav kardinalitet for at sikre effektiv overvågning og aggregering. |
| FinishReason |
Årsagen til, at en model stoppede med at generere pr. semantiske OTEL-gen-ai-konventioner. |
| InferenceOperationType |
Repræsenterer en anden handling for typer til modelindledning |
| InvocationRole |
Repræsenterer forskellige roller, der kan aktivere en agent |
| MessageRole |
En meddelelsesdeltagers rolle pr. OTEL gen-ai semantiske konventioner. |
| Modality |
Mediemodalitet for blob-, fil- og URI-dele. |
Funktioner
| create |
Opretter en ny kontekst med en eksplicit overordnet reference. Dette gør det muligt for underordnede spans at være korrekt overordnet, selv når asynkron kontekst er brudt. |
| extract |
Udtrækker sporingskontekst fra indgående HTTP-headere ved hjælp af den globalt registrerede W3C-overførsel. Returnerer et OTel ParentContext , der kan overføres til områdeklasser som ParentContext. Eksempel
|
| format |
Formatér fejlobjekt til logføring med meddelelses- og staksporing |
| get |
Hent eksporttokenet pr. anmodning fra en given OTel-kontekst (eller den aktive). |
| get |
Hent den aktuelle logføringsforekomst |
| inject |
Indsætter den aktuelle sporingskontekst ( Eksempel
|
| is |
Kontrollér, om eksport pr. anmodning er aktiveret. Prioritet: Intern tilsidesætter > miljøvariablen for konfigurationsudbyderen > . Når indstillingen er aktiveret, bruges PerRequestSpanProcessor i stedet for BatchSpanProcessor. Tokenet overføres via OTel Context (asynkront lokalt lager) på eksporttidspunktet. |
| normalize |
Normaliserer en
|
| normalize |
Normaliserer en
|
| reset |
Nulstil til standardkonsollogføring (primært til test) |
| run |
Kør en funktion i en kontekst, der indeholder eksporttokenet pr. anmodning. Dette bevarer kun tokenet i ALS (OTel Context), aldrig i nogen registreringsdatabase. Tokenet kan opdateres senere via |
| run |
Udtrækker sporingskontekst fra indgående HTTP-headere og kører tilbagekaldet i denne kontekst. Alle spans, der oprettes i tilbagekaldet, er overordnet til den udtrukne sporing. Eksempel
|
| run |
Kører en tilbagekaldsfunktion i en kontekst, der har en eksplicit overordnet span reference. Dette er nyttigt til oprettelse af underordnede spændevidder i asynkrone tilbagekald, hvor kontekstoverførslen er brudt. |
| safe |
Sikrer, at værdien altid er en JSON-fortolkelig streng.
|
| serialize |
Serialiserer en versioneret meddelelsesombrydning til JSON. Outputtet er det fulde ombrydningsobjekt: Try/catch sikrer, at telemetrioptagelsen ikke aktiveres, selvom meddelelsesdele indeholder værdier, der ikke kan serialiseres af JSON (f.eks. BigInt, cirkulære refs). |
| set |
Angiv en brugerdefineret logføringsimplementering for OBSERVABILITY SDK Eksempel med Winston:
|
| update |
Opdater eksporttokenet i den aktive OTel-kontekst. Kald dette for at opdatere tokenet, før du afslutter rodens rækkevidde, når det oprindelige token kan være udløbet under en anmodning, der har kørt i lang tid. Skal kaldes inden for den samme asynkrone kontekst, der er oprettet af |
Variabler
| A365_MESSAGE_SCHEMA_VERSION | |
| default |
Delt standardprovider for ObservabilityConfiguration. |
| default |
Delt standardprovider for PerRequestSpanProcessorConfiguration. |
| logger | Standardlogføringsforekomst for bagudkompatibilitet. Stedfortrædere til den globale logføring, som kan erstattes via setLogger(). |
Oplysninger om funktion
createContextWithParentSpanRef(Context, ParentSpanRef)
Opretter en ny kontekst med en eksplicit overordnet reference. Dette gør det muligt for underordnede spans at være korrekt overordnet, selv når asynkron kontekst er brudt.
function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context
Parametre
- base
-
Context
Den basiskontekst, der skal udvides (typisk context.active())
- parent
- ParentSpanRef
Den overordnede span-reference, der indeholder traceId og spanId
Returnerer
Context
En ny kontekst med det overordnede span-sæt
extractContextFromHeaders(HeadersCarrier, Context)
Udtrækker sporingskontekst fra indgående HTTP-headere ved hjælp af den globalt registrerede W3C-overførsel. Returnerer et OTel ParentContext , der kan overføres til områdeklasser som ParentContext.
Eksempel
const parentCtx = extractContextFromHeaders(req.headers);
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, undefined, { parentContext: parentCtx });
function extractContextFromHeaders(headers: HeadersCarrier, baseCtx?: Context): Context
Parametre
- headers
- HeadersCarrier
De indgående HTTP-anmodningsheadere, der indeholder traceparent/tracestate.
- baseCtx
-
Context
Valgfri basiskontekst, der skal udvides. Som standard den aktive kontekst.
Returnerer
Context
En OTel-kontekst, der indeholder de udtrukne sporingsoplysninger.
formatError(unknown)
Formatér fejlobjekt til logføring med meddelelses- og staksporing
function formatError(error: unknown): string
Parametre
- error
-
unknown
Returnerer
string
getExportToken(Context)
Hent eksporttokenet pr. anmodning fra en given OTel-kontekst (eller den aktive).
function getExportToken(ctx?: Context): string | undefined
Parametre
- ctx
-
Context
Returnerer
string | undefined
getLogger()
injectContextToHeaders(Record<string, string>, Context)
Indsætter den aktuelle sporingskontekst (traceparent/tracestate headers) i det angivne headerobjekt ved hjælp af den globalt registrerede W3C-overførsel.
Eksempel
const headers: Record<string, string> = {};
injectContextToHeaders(headers);
await fetch('http://service-b/process', { headers });
function injectContextToHeaders(headers: Record<string, string>, ctx?: Context): Record<string, string>
Parametre
- headers
-
Record<string, string>
Objekt, der kan slås fra, hvor der skrives sporingskontekstheadere.
- ctx
-
Context
Valgfri OTel-kontekst, der skal indsættes fra. Som standard den aktive kontekst.
Returnerer
Record<string, string>
Det samme headers objekt, for sammenkædning bekvemmelighed.
isPerRequestExportEnabled(IConfigurationProvider<PerRequestSpanProcessorConfiguration>)
Kontrollér, om eksport pr. anmodning er aktiveret. Prioritet: Intern tilsidesætter > miljøvariablen for konfigurationsudbyderen > . Når indstillingen er aktiveret, bruges PerRequestSpanProcessor i stedet for BatchSpanProcessor. Tokenet overføres via OTel Context (asynkront lokalt lager) på eksporttidspunktet.
function isPerRequestExportEnabled(configProvider?: IConfigurationProvider<PerRequestSpanProcessorConfiguration>): boolean
Parametre
- configProvider
-
IConfigurationProvider<PerRequestSpanProcessorConfiguration>
Valgfri konfigurationsprovider. Standard er standardperRequestSpanProcessorConfigurationProvider, hvis den ikke er angivet.
Returnerer
boolean
normalizeInputMessages(InputMessagesParam)
Normaliserer en InputMessagesParam til en versionindpakket InputMessages ombrydning.
-
string/string[]→ konverteret tilChatMessage[]og ombrudt -
InputMessages→ returnerede as-is
function normalizeInputMessages(param: InputMessagesParam): InputMessages
Parametre
- param
- InputMessagesParam
Returnerer
normalizeOutputMessages(OutputMessagesParam)
Normaliserer en OutputMessagesParam til en versionindpakket OutputMessages ombrydning.
-
string/string[]→ konverteret tilOutputMessage[]og ombrudt -
OutputMessages→ returnerede as-is
function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages
Parametre
- param
- OutputMessagesParam
Returnerer
resetLogger()
Nulstil til standardkonsollogføring (primært til test)
function resetLogger()
runWithExportToken<T>(string, () => T)
Kør en funktion i en kontekst, der indeholder eksporttokenet pr. anmodning. Dette bevarer kun tokenet i ALS (OTel Context), aldrig i nogen registreringsdatabase.
Tokenet kan opdateres senere via updateExportToken() , før sporingen ryddes – nyttig, når tilbagekaldet er langvarigt, og det oprindelige token kan udløbe før eksporten.
function runWithExportToken<T>(token: string, fn: () => T): T
Parametre
- token
-
string
- fn
-
() => T
Returnerer
T
runWithExtractedTraceContext<T>(HeadersCarrier, () => T)
Udtrækker sporingskontekst fra indgående HTTP-headere og kører tilbagekaldet i denne kontekst. Alle spans, der oprettes i tilbagekaldet, er overordnet til den udtrukne sporing.
Eksempel
runWithExtractedTraceContext(req.headers, () => {
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails);
scope.dispose();
});
function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T
Parametre
- headers
- HeadersCarrier
De indgående HTTP-anmodningsheadere, der indeholder traceparent/tracestate.
- callback
-
() => T
Den funktion, der skal udføres i den udtrukne kontekst.
Returnerer
T
Resultatet af tilbagekaldet.
runWithParentSpanRef<T>(ParentSpanRef, () => T)
Kører en tilbagekaldsfunktion i en kontekst, der har en eksplicit overordnet span reference. Dette er nyttigt til oprettelse af underordnede spændevidder i asynkrone tilbagekald, hvor kontekstoverførslen er brudt.
function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T
Parametre
- parent
- ParentSpanRef
Referencen til det overordnede interval
- callback
-
() => T
Den funktion, der skal udføres med den overordnede kontekst
Returnerer
T
Resultatet af tilbagekaldet
safeSerializeToJson(string | Record<string, unknown>, string)
Sikrer, at værdien altid er en JSON-fortolkelig streng.
- Objekter serialiseres via JSON.stringify.
- Strenge, der allerede er gyldige JSON-objekter/matrixer, overføres.
- Alle andre strenge (herunder bare JSON-primitiver) er ombrudt:
{ [key]: value }.
function safeSerializeToJson(value: string | Record<string, unknown>, key: string): string
Parametre
- value
-
string | Record<string, unknown>
Den værdi, der skal serialiseres.
- key
-
string
Den nøgle, der skal bruges, når en almindelig streng ombrydes.
Returnerer
string
serializeMessages(InputMessages | OutputMessages)
Serialiserer en versioneret meddelelsesombrydning til JSON.
Outputtet er det fulde ombrydningsobjekt: {"version":"0.1.0","messages":[...]}.
Try/catch sikrer, at telemetrioptagelsen ikke aktiveres, selvom meddelelsesdele indeholder værdier, der ikke kan serialiseres af JSON (f.eks. BigInt, cirkulære refs).
function serializeMessages(wrapper: InputMessages | OutputMessages): string
Parametre
- wrapper
Returnerer
string
setLogger(ILogger)
Angiv en brugerdefineret logføringsimplementering for OBSERVABILITY SDK
Eksempel med Winston:
import * as winston from 'winston';
import { setLogger } from '@microsoft/agents-a365-observability';
const winstonLogger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
setLogger({
info: (msg, ...args) => winstonLogger.info(msg, ...args),
warn: (msg, ...args) => winstonLogger.warn(msg, ...args),
error: (msg, ...args) => winstonLogger.error(msg, ...args),
event: (eventType, isSuccess, durationMs, message, details) => {
// eventType is ExporterEventNames enum value
winstonLogger.log({ level: isSuccess ? 'info' : 'error', eventType, isSuccess, durationMs, message, ...details });
}
});
function setLogger(customLogger: ILogger)
Parametre
- customLogger
- ILogger
Den brugerdefinerede logføringsimplementering
updateExportToken(string)
Opdater eksporttokenet i den aktive OTel-kontekst. Kald dette for at opdatere tokenet, før du afslutter rodens rækkevidde, når det oprindelige token kan være udløbet under en anmodning, der har kørt i lang tid.
Skal kaldes inden for den samme asynkrone kontekst, der er oprettet af runWithExportToken.
function updateExportToken(token: string): boolean
Parametre
- token
-
string
Det nye token, der skal bruges til eksport.
Returnerer
boolean
true, hvis tokenet blev opdateret korrekt, falsk, hvis der ikke blev fundet nogen tokenholder.
Variabeldetaljer
A365_MESSAGE_SCHEMA_VERSION
A365_MESSAGE_SCHEMA_VERSION: "0.1.0"
Type
string
defaultObservabilityConfigurationProvider
Delt standardprovider for ObservabilityConfiguration.
defaultObservabilityConfigurationProvider: DefaultConfigurationProvider<ObservabilityConfiguration>
Type
defaultPerRequestSpanProcessorConfigurationProvider
Delt standardprovider for PerRequestSpanProcessorConfiguration.
defaultPerRequestSpanProcessorConfigurationProvider: DefaultConfigurationProvider<PerRequestSpanProcessorConfiguration>
Type
logger
Standardlogføringsforekomst for bagudkompatibilitet. Stedfortrædere til den globale logføring, som kan erstattes via setLogger().
logger: ILogger