@microsoft/agents-a365-observability package
Classi
| Agent365ExporterOptions |
Opzioni che controllano il comportamento dell'utilità di esportazione dell'intervallo OpenTelemetry di Agent365. Questi valori ottimizzano l'invio in batch, i timeout, l'acquisizione di token e la forma dell'endpoint. Tutte le proprietà hanno impostazioni predefinite sensibili, in modo che i chiamanti possano in genere costruire senza argomenti ed eseguire l'override in modo selettivo. |
| ApplyGuardrailScope |
Fornisce l'ambito di traccia OpenTelemetry per le operazioni di valutazione della protezione della protezione. Descrive una valutazione del tutore della sicurezza. Più intervalli di sorveglianza POSSONO esistere in un'unica operazione se più guardiani sono concatenati. Gli intervalli di sorveglianza DOVREBBERO essere figli dell'intervallo di operazioni che proteggono (ad esempio, inferenza o execute_tool intervalli). |
| 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. |
| GuardrailDetails |
Dettagli di una valutazione della protezione per la traccia delle operazioni di sicurezza. |
| GuardrailFinding |
Rappresenta una singola ricerca di sicurezza rilevata durante la valutazione del tutore. Più risultati possono essere generati per un singolo intervallo di guardrail. |
| 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 |
| TokenResolver |
Funzione che risolve un token OBS solo app per l'agente e il tenant specificati. I token delegati (scp) non vengono accettati dal servizio S2S. Le implementazioni possono eseguire ricerche sincrone (ad esempio, cache in memoria) o chiamate di rete asincrone. Usato sia in modalità batch che in modalità richiesta, indipendentemente dal contesto del token del carico di lavoro. Restituisce Null se non è possibile fornire un token; l'esportazione non riesce senza inviare una richiesta HTTP. |
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. |
| GuardrailDecisionType |
Decisione presa da un guardiano della sicurezza durante la valutazione del guardrail. |
| 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. La selezione delle credenziali è invariata: Agent365Exporter usa il sistema di risoluzione dei token solo app. |
| normalize |
Normalizza un oggetto in un'istanza
|
| normalize |
Normalizza un oggetto in un'istanza
|
| 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. Questi helper rimangono disponibili per le integrazioni di esportazione personalizzate. Agent365Exporter non utilizza questo token; configurare il token solo appResolver in ogni modalità. 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 messaggio in JSON. L'output è una semplice matrice JSON per le convenzioni semantiche OTel gen-ai: 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:
|
| 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
| DEFAULT_FINISH_REASON | Motivo di fine predefinito applicato quando non viene specificato nessuno (per specifica OTel). |
| Guardrail |
Livelli di gravità noti per i rischi di sicurezza rilevati dai guardrail. |
| Guardrail |
I valori noti per il tipo di contenuto o azione a cui viene applicata una protezione. Vengono accettate anche stringhe personalizzate. |
| 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. La selezione delle credenziali è invariata: Agent365Exporter usa il sistema di risoluzione dei token solo app.
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 in un'istanza InputMessagesParamInputMessages di .
-
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 in un'istanza OutputMessagesParamOutputMessages di .
-
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. Questi helper rimangono disponibili per le integrazioni di esportazione personalizzate. Agent365Exporter non utilizza questo token; configurare il token solo appResolver in ogni modalità.
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 messaggio in JSON.
L'output è una semplice matrice JSON per le convenzioni semantiche OTel gen-ai: [{...}, ...].
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
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
DEFAULT_FINISH_REASON
Motivo di fine predefinito applicato quando non viene specificato nessuno (per specifica OTel).
DEFAULT_FINISH_REASON: "stop"
Tipo
"stop"
GuardrailRiskSeverity
Livelli di gravità noti per i rischi di sicurezza rilevati dai guardrail.
GuardrailRiskSeverity: { Critical: "critical", High: "high", Low: "low", Medium: "medium", None: "none" }
Tipo
{ Critical: "critical", High: "high", Low: "low", Medium: "medium", None: "none" }
GuardrailTargetType
I valori noti per il tipo di contenuto o azione a cui viene applicata una protezione. Vengono accettate anche stringhe personalizzate.
GuardrailTargetType: { KnowledgeQuery: "knowledge_query", KnowledgeResult: "knowledge_result", LlmInput: "llm_input", LlmOutput: "llm_output", MemoryRetrieve: "memory_retrieve", MemoryStore: "memory_store", Message: "message", ToolCall: "tool_call", ToolDefinition: "tool_definition" }
Tipo
{ KnowledgeQuery: "knowledge_query", KnowledgeResult: "knowledge_result", LlmInput: "llm_input", LlmOutput: "llm_output", MemoryRetrieve: "memory_retrieve", MemoryStore: "memory_store", Message: "message", ToolCall: "tool_call", ToolDefinition: "tool_definition" }
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