@microsoft/agents-a365-observability package
Classi
| Agent365ExporterOptions |
Numero massimo di intervalli per batch di esportazione. |
| BaggageBuilder |
Generatore di bagagli per richiesta per la propagazione del contesto OpenTelemetry. Questa classe fornisce un'API Fluent per impostare i valori dei bagagli che verranno propagati nel contesto OpenTelemetry. Esempio
|
| BaggageScope |
Gestore del contesto per l'ambito dei bagagli. Questa classe gestisce il ciclo di vita dei valori dei bagagli, impostandoli in entrata e ripristinando il contesto precedente all'uscita. |
| Builder |
Generatore per la configurazione dell'agente 365 con la traccia OpenTelemetry |
| ExecuteToolScope |
Fornisce l'ambito di traccia OpenTelemetry per le operazioni di esecuzione degli strumenti di intelligenza artificiale. |
| InferenceScope |
Fornisce l'ambito di traccia OpenTelemetry per le operazioni di inferenza di intelligenza artificiale generative. |
| InvokeAgentScope |
Fornisce l'ambito di traccia OpenTelemetry per le operazioni di chiamata dell'agente di intelligenza artificiale. |
| ObservabilityConfiguration |
Configurazione per il pacchetto di osservabilità. Eredita le impostazioni di runtime e aggiunge impostazioni specifiche dell'osservabilità. |
| ObservabilityManager |
Punto di ingresso principale per Agent 365 che fornisce la traccia OpenTelemetry per gli agenti e gli strumenti di intelligenza artificiale |
| OpenTelemetryConstants |
Costanti OpenTelemetry per Agent 365 |
| OpenTelemetryScope |
Classe base per gli ambiti di traccia OpenTelemetry |
| OutputScope |
Fornisce l'ambito di traccia OpenTelemetry per la traccia dei messaggi di output con il collegamento dell'intervallo padre. |
| PerRequestSpanProcessorConfiguration |
Configurazione per PerRequestSpanProcessor. Eredita le impostazioni di runtime (clusterCategory, isNodeEnvDevelopment) e aggiunge protezioni del processore per richiesta. Questa opzione è separata da ObservabilityConfiguration perché PerRequestSpanProcessor viene usato solo in scenari specifici e queste impostazioni non devono essere esposte in Common ObservabilityConfiguration. |
Interfacce
| AgentDetails |
Dettagli su un agente di intelligenza artificiale |
| BlobPart |
Dati binari inline (con codifica Base64). |
| BuilderOptions |
Opzioni di configurazione per Agent 365 Observability Builder |
| CallerDetails |
Dettagli del chiamante per la creazione dell'ambito. Supporta chiamanti umani, chiamanti agente o entrambi (A2A con un essere umano nella catena).
Nota sulla migrazione: Nella versione 1 il nome Per indicazioni sulla migrazione, vedere UserDetails - Identità chiamante umana (in precedenza |
| Channel |
Rappresenta il canale per una chiamata |
| ChatMessage |
Messaggio di input inviato a un modello (convenzioni semantiche di generazione ROUTE). |
| FilePart |
Riferimento a un file precaricati. |
| GenericPart |
Parte estendibile per i tipi personalizzati/futuri. |
| GenericServerToolCall |
Dettagli delle chiamate dello strumento server estendibili con un discriminante di tipo. |
| GenericServerToolCallResponse |
Risposta di chiamata dello strumento server estendibile con un discriminante di tipo. |
| ILogger |
Interfaccia del logger personalizzata per l'osservabilità di Agent 365 Implementare questa interfaccia per supportare i back-end di registrazione |
| InferenceDetails |
Dettagli per una chiamata di inferenza |
| InferenceResponse |
Dettagli per registrare la risposta da una chiamata di inferenza |
| InputMessages | |
| InvokeAgentScopeDetails |
Dettagli per richiamare l'ambito dell'agente. |
| OutputMessage |
Messaggio di output generato da un modello (convenzioni semantiche di generazione ROUTE). |
| OutputMessages | |
| OutputResponse |
Rappresenta una risposta contenente i messaggi di output di un agente. Usato con OutputScope per la traccia dei messaggi di output. Accetta stringhe semplici, oggetti OutputMessage strutturati INTUNE o un dict non elaborato (considerato come risultato di una chiamata dello strumento per ogni specifica INTUNE). |
| ParentSpanRef |
Riferimento a un intervallo padre per il collegamento esplicito padre-figlio attraverso i limiti asincroni. Usato quando la propagazione automatica del contesto ha esito negativo (ad esempio, callback WebSocket, gestori eventi esterni). |
| ReasoningPart |
Ragionamento del modello/contenuto concatenato. |
| Request |
Rappresenta una richiesta con contesto di telemetria. Usato in tutti i tipi di ambito per il rilevamento di canali e conversazioni. |
| ServerToolCallPart |
Chiamata dello strumento sul lato server. |
| ServerToolCallResponsePart |
Risposta dello strumento sul lato server. |
| ServiceEndpoint |
Rappresenta un endpoint per la chiamata dell'agente |
| SpanDetails |
Estendere i dettagli di configurazione per la creazione dell'ambito. Raggruppa le opzioni dell'intervallo OpenTelemetry in un singolo oggetto in modo che la firma del metodo di ambito rimanga stabile man mano che vengono aggiunte nuove opzioni. |
| TextPart |
Contenuto testo normale. |
| ToolCallDetails |
Dettagli di una chiamata di strumento effettuata da un agente |
| ToolCallRequestPart |
Chiamata dello strumento richiesta dal modello. |
| ToolCallResponsePart |
Risultato di una chiamata di strumento. |
| UriPart |
Riferimento URI esterno. |
| UserDetails |
Dettagli sul chiamante dell'utente umano. |
Alias tipo
| EnhancedAgentDetails | |
| HeadersCarrier |
Tipo di vettore per le intestazioni HTTP usate nella propagazione del contesto di traccia. Compatibile con Node.js IncomingHttpHeaders e le mappe di stringhe semplici. |
| InputMessagesParam |
Input accettato per |
| MessagePart |
Unione di tutti i tipi di parti di messaggio per ogni convenzione semantica di generazione-intelligenza artificiale di ROUTE. Nota: GenericPart funge da catch-all per la compatibilità con i tipi di parte personalizzati o futuri.
|
| ObservabilityConfigurationOptions |
Opzioni di configurazione osservabilità: estende le opzioni di runtime. Tutte le sostituzioni sono funzioni chiamate per ogni accesso alle proprietà. Ereditato da RuntimeConfigurationOptions:
Nota: |
| OutputMessagesParam |
Input accettato per |
| ParentContext |
Contesto padre per la creazione dell'intervallo. Accetta una:
|
| PerRequestSpanProcessorConfigurationOptions |
Opzioni di configurazione per PerRequestSpanProcessor: estende le opzioni di runtime. Tutte le sostituzioni sono funzioni chiamate per ogni accesso alle proprietà. Ereditato da RuntimeConfigurationOptions:
|
| ResponseMessagesParam |
Input accettato per |
Enumerazioni
| ExporterEventNames |
Nomi di eventi usati da Agent365Exporter per la registrazione e il monitoraggio. Si tratta di tipi di evento a cardinalità bassa per garantire un monitoraggio e un'aggregazione efficienti. |
| FinishReason |
Motivo per cui un modello ha smesso di generare le convenzioni semantiche di generazione ROUTE gen-ai. |
| InferenceOperationType |
Rappresenta un'operazione diversa per i tipi per l'inferenza del modello |
| InvocationRole |
Rappresenta ruoli diversi che possono richiamare un agente |
| MessageRole |
Ruolo di un partecipante di un messaggio per convenzioni semantiche di intelligenza artificiale di generazione ROUTE. |
| Modality |
Modalità multimediale per parti BLOB, file e URI. |
Funzioni
| create |
Crea un nuovo contesto con un riferimento esplicito all'intervallo padre. In questo modo, gli intervalli figlio devono essere correttamente padre anche quando il contesto asincrono viene interrotto. |
| extract |
Estrae il contesto di traccia dalle intestazioni HTTP in ingresso usando il propagatore W3C registrato a livello globale. Restituisce un oggetto OTel ParentContext che può essere passato alle classi di ambito come ParentContext. Esempio
|
| format |
Formattare l'oggetto errore per la registrazione con il messaggio e l'analisi dello stack |
| get |
Recuperare il token di esportazione per richiesta da un determinato contesto OTel (o da quello attivo). |
| get |
Ottenere l'istanza del logger corrente |
| inject |
Inserisce il contesto di traccia corrente ( Esempio
|
| is |
Controllare se l'esportazione per richiesta è abilitata. Precedenza: la variabile di ambiente del provider di > configurazione esegue l'override > interno. Se abilitata, viene usato PerRequestSpanProcessor anziché BatchSpanProcessor. Il token viene passato tramite OTel Context (archiviazione locale asincrona) in fase di esportazione. |
| normalize |
Normalizza un oggetto
|
| normalize |
Normalizza un oggetto
|
| reset |
Ripristinare il logger di console predefinito (principalmente per i test) |
| run |
Eseguire una funzione all'interno di un contesto che contiene il token di esportazione per richiesta. In questo modo il token viene mantenuto solo in OTel Context (ALS), mai in alcun Registro di sistema. Il token può essere aggiornato in un secondo momento tramite |
| run |
Estrae il contesto di traccia dalle intestazioni HTTP in ingresso ed esegue il callback all'interno di tale contesto. Qualsiasi intervallo creato all'interno del callback verrà padre della traccia estratta. Esempio
|
| run |
Esegue una funzione di callback all'interno di un contesto con un riferimento esplicito all'intervallo padre. Ciò è utile per la creazione di intervalli figlio in callback asincroni in cui la propagazione del contesto viene interrotta. |
| safe |
Assicura che il valore sia sempre una stringa analizzabile JSON.
|
| serialize |
Serializza un wrapper di messaggi con versione in JSON. L'output è l'oggetto wrapper completo: Il try/catch garantisce che la registrazione dei dati di telemetria non venga generata anche quando le parti del messaggio contengono valori non serializzabili JSON ,ad esempio BigInt, ref circolari. |
| set |
Impostare un'implementazione del logger personalizzata per l'SDK di osservabilità Esempio con Winston:
|
| truncate |
Tronca un valore stringa per MAX_ATTRIBUTE_LENGTH caratteri. Se il valore supera il limite, viene tagliato e viene aggiunto un suffisso di troncamento, con la lunghezza totale limitata esattamente MAX_ATTRIBUTE_LENGTH. |
| update |
Aggiornare il token di esportazione nel contesto OTel attivo. Chiamare questa opzione per aggiornare il token prima di terminare l'intervallo radice quando il token originale potrebbe essere scaduto durante una richiesta con esecuzione prolungata. Deve essere chiamato all'interno dello stesso contesto asincrono creato da |
Variabili
| A365_MESSAGE_SCHEMA_VERSION | |
| MAX_ATTRIBUTE_LENGTH | Lunghezza massima per i valori dell'attributo span. I valori che superano questo limite verranno troncati con un suffisso. |
| default |
Provider predefinito condiviso per ObservabilityConfiguration. |
| default |
Provider predefinito condiviso per PerRequestSpanProcessorConfiguration. |
| logger | Istanza del logger predefinita per la compatibilità con le versioni precedenti. Delegati al logger globale che può essere sostituito tramite setLogger(). |
Dettagli funzione
createContextWithParentSpanRef(Context, ParentSpanRef)
Crea un nuovo contesto con un riferimento esplicito all'intervallo padre. In questo modo, gli intervalli figlio devono essere correttamente padre anche quando il contesto asincrono viene interrotto.
function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context
Parametri
- base
-
Context
Contesto di base da estendere (in genere context.active())
- parent
- ParentSpanRef
Riferimento dell'intervallo padre contenente traceId e spanId
Valori restituiti
Context
Nuovo contesto con l'intervallo padre impostato
extractContextFromHeaders(HeadersCarrier, Context)
Estrae il contesto di traccia dalle intestazioni HTTP in ingresso usando il propagatore W3C registrato a livello globale. Restituisce un oggetto OTel ParentContext che può essere passato alle classi di ambito come ParentContext.
Esempio
const parentCtx = extractContextFromHeaders(req.headers);
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, undefined, { parentContext: parentCtx });
function extractContextFromHeaders(headers: HeadersCarrier, baseCtx?: Context): Context
Parametri
- headers
- HeadersCarrier
Intestazioni di richiesta HTTP in ingresso contenenti traceparent/tracestate.
- baseCtx
-
Context
Contesto di base facoltativo da estendere. L'impostazione predefinita è il contesto attivo.
Valori restituiti
Context
Contesto OTel contenente le informazioni di traccia estratte.
formatError(unknown)
Formattare l'oggetto errore per la registrazione con il messaggio e l'analisi dello stack
function formatError(error: unknown): string
Parametri
- error
-
unknown
Valori restituiti
string
getExportToken(Context)
Recuperare il token di esportazione per richiesta da un determinato contesto OTel (o da quello attivo).
function getExportToken(ctx?: Context): string | undefined
Parametri
- ctx
-
Context
Valori restituiti
string | undefined
getLogger()
injectContextToHeaders(Record<string, string>, Context)
Inserisce il contesto di traccia corrente (traceparent/tracestate intestazioni) nell'oggetto intestazioni fornito usando il propagatore W3C registrato a livello globale.
Esempio
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>
Parametri
- headers
-
Record<string, string>
Oggetto modificabile in cui verranno scritte le intestazioni del contesto di traccia.
- ctx
-
Context
Contesto OTel facoltativo da inserire. L'impostazione predefinita è il contesto attivo.
Valori restituiti
Record<string, string>
Lo stesso headers oggetto, per praticità di concatenamento.
isPerRequestExportEnabled(IConfigurationProvider<PerRequestSpanProcessorConfiguration>)
Controllare se l'esportazione per richiesta è abilitata. Precedenza: la variabile di ambiente del provider di > configurazione esegue l'override > interno. Se abilitata, viene usato PerRequestSpanProcessor anziché BatchSpanProcessor. Il token viene passato tramite OTel Context (archiviazione locale asincrona) in fase di esportazione.
function isPerRequestExportEnabled(configProvider?: IConfigurationProvider<PerRequestSpanProcessorConfiguration>): boolean
Parametri
- configProvider
-
IConfigurationProvider<PerRequestSpanProcessorConfiguration>
Provider di configurazione facoltativo. Il valore predefinito è defaultPerRequestSpanProcessorConfigurationProvider, se non specificato.
Valori restituiti
boolean
normalizeInputMessages(InputMessagesParam)
Normalizza un oggetto InputMessagesParam in un wrapper con InputMessages controllo delle versioni.
-
string/string[]→ convertito in e sottoposto aChatMessage[]wrapping -
InputMessages→ restituito as-is
function normalizeInputMessages(param: InputMessagesParam): InputMessages
Parametri
- param
- InputMessagesParam
Valori restituiti
normalizeOutputMessages(OutputMessagesParam)
Normalizza un oggetto OutputMessagesParam in un wrapper con OutputMessages controllo delle versioni.
-
string/string[]→ convertito in e sottoposto aOutputMessage[]wrapping -
OutputMessages→ restituito as-is
function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages
Parametri
- param
- OutputMessagesParam
Valori restituiti
resetLogger()
Ripristinare il logger di console predefinito (principalmente per i test)
function resetLogger()
runWithExportToken<T>(string, () => T)
Eseguire una funzione all'interno di un contesto che contiene il token di esportazione per richiesta. In questo modo il token viene mantenuto solo in OTel Context (ALS), mai in alcun Registro di sistema.
Il token può essere aggiornato in un secondo momento tramite updateExportToken() prima che la traccia venga scaricata, utile quando il callback è a esecuzione prolungata e il token originale può scadere prima dell'esportazione.
function runWithExportToken<T>(token: string, fn: () => T): T
Parametri
- token
-
string
- fn
-
() => T
Valori restituiti
T
runWithExtractedTraceContext<T>(HeadersCarrier, () => T)
Estrae il contesto di traccia dalle intestazioni HTTP in ingresso ed esegue il callback all'interno di tale contesto. Qualsiasi intervallo creato all'interno del callback verrà padre della traccia estratta.
Esempio
runWithExtractedTraceContext(req.headers, () => {
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails);
scope.dispose();
});
function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T
Parametri
- headers
- HeadersCarrier
Intestazioni di richiesta HTTP in ingresso contenenti traceparent/tracestate.
- callback
-
() => T
Funzione da eseguire all'interno del contesto estratto.
Valori restituiti
T
Risultato del callback.
runWithParentSpanRef<T>(ParentSpanRef, () => T)
Esegue una funzione di callback all'interno di un contesto con un riferimento esplicito all'intervallo padre. Ciò è utile per la creazione di intervalli figlio in callback asincroni in cui la propagazione del contesto viene interrotta.
function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T
Parametri
- parent
- ParentSpanRef
Riferimento all'intervallo padre
- callback
-
() => T
Funzione da eseguire con il contesto padre
Valori restituiti
T
Risultato del callback
safeSerializeToJson(string | Record<string, unknown>, string)
Assicura che il valore sia sempre una stringa analizzabile JSON.
- Gli oggetti vengono serializzati tramite JSON.stringify.
- Le stringhe che sono già oggetti/matrici JSON validi vengono passate.
- Tutte le altre stringhe (incluse le primitive JSON bare) vengono incapsulate:
{ [key]: value }.
function safeSerializeToJson(value: string | Record<string, unknown>, key: string): string
Parametri
- value
-
string | Record<string, unknown>
Valore da serializzare.
- key
-
string
Chiave da utilizzare per il wrapping di una stringa normale.
Valori restituiti
string
serializeMessages(InputMessages | OutputMessages)
Serializza un wrapper di messaggi con versione in JSON.
L'output è l'oggetto wrapper completo: {"version":"0.1.0","messages":[...]}.
Il try/catch garantisce che la registrazione dei dati di telemetria non venga generata anche quando le parti del messaggio contengono valori non serializzabili JSON ,ad esempio BigInt, ref circolari.
function serializeMessages(wrapper: InputMessages | OutputMessages): string
Parametri
- wrapper
Valori restituiti
string
setLogger(ILogger)
Impostare un'implementazione del logger personalizzata per l'SDK di osservabilità
Esempio con 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)
Parametri
- customLogger
- ILogger
Implementazione del logger personalizzata
truncateValue(string)
Tronca un valore stringa per MAX_ATTRIBUTE_LENGTH caratteri. Se il valore supera il limite, viene tagliato e viene aggiunto un suffisso di troncamento, con la lunghezza totale limitata esattamente MAX_ATTRIBUTE_LENGTH.
function truncateValue(value: string): string
Parametri
- value
-
string
Stringa da troncare
Valori restituiti
string
Stringa originale se entro i limiti; in caso contrario, la stringa troncata
updateExportToken(string)
Aggiornare il token di esportazione nel contesto OTel attivo. Chiamare questa opzione per aggiornare il token prima di terminare l'intervallo radice quando il token originale potrebbe essere scaduto durante una richiesta con esecuzione prolungata.
Deve essere chiamato all'interno dello stesso contesto asincrono creato da runWithExportToken.
function updateExportToken(token: string): boolean
Parametri
- token
-
string
Token aggiornato da usare per l'esportazione.
Valori restituiti
boolean
true se il token è stato aggiornato correttamente, false se non è stato trovato alcun titolare del token.
Dettagli delle variabili
A365_MESSAGE_SCHEMA_VERSION
A365_MESSAGE_SCHEMA_VERSION: "0.1.0"
Tipo
string
MAX_ATTRIBUTE_LENGTH
Lunghezza massima per i valori dell'attributo span. I valori che superano questo limite verranno troncati con un suffisso.
MAX_ATTRIBUTE_LENGTH: 8192
Tipo
8192
defaultObservabilityConfigurationProvider
Provider predefinito condiviso per ObservabilityConfiguration.
defaultObservabilityConfigurationProvider: DefaultConfigurationProvider<ObservabilityConfiguration>
Tipo
defaultPerRequestSpanProcessorConfigurationProvider
Provider predefinito condiviso per PerRequestSpanProcessorConfiguration.
defaultPerRequestSpanProcessorConfigurationProvider: DefaultConfigurationProvider<PerRequestSpanProcessorConfiguration>
Tipo
logger
Istanza del logger predefinita per la compatibilità con le versioni precedenti. Delegati al logger globale che può essere sostituito tramite setLogger().
logger: ILogger