@microsoft/agents-a365-observability package
Klasy
| Agent365ExporterOptions |
Maksymalna liczba zakresów na partię eksportu. |
| BaggageBuilder |
Na żądanie konstruktor bagażu dla propagacji kontekstu OpenTelemetry. Ta klasa zapewnia płynny interfejs API do ustawiania wartości bagażu, które będą propagowane w kontekście OpenTelemetry. Przykład
|
| BaggageScope |
Menedżer kontekstu dla zakresu bagażu. Ta klasa zarządza cyklem życia wartości bagażu, ustawiając je podczas wprowadzania i przywracania poprzedniego kontekstu podczas zamykania. |
| Builder |
Konstruktor do konfigurowania agenta 365 przy użyciu śledzenia OpenTelemetry |
| ExecuteToolScope |
Udostępnia zakres śledzenia OpenTelemetry dla operacji wykonywania narzędzi sztucznej inteligencji. |
| InferenceScope |
Udostępnia zakres śledzenia OpenTelemetry dla operacji wnioskowania generowania sztucznej inteligencji. |
| InvokeAgentScope |
Udostępnia zakres śledzenia OpenTelemetry dla operacji wywołania agenta sztucznej inteligencji. |
| ObservabilityConfiguration |
Konfiguracja pakietu do obserwowania. Dziedziczy ustawienia środowiska uruchomieniowego i dodaje ustawienia specyficzne dla obserwacji. |
| ObservabilityManager |
Główny punkt wejścia dla agenta 365 udostępniający śledzenie OpenTelemetry dla agentów i narzędzi sztucznej inteligencji |
| OpenTelemetryConstants |
Stałe OpenTelemetry dla agenta 365 |
| OpenTelemetryScope |
Klasa bazowa dla zakresów śledzenia OpenTelemetry |
| OutputScope |
Zapewnia zakres śledzenia openTelemetry dla śledzenia komunikatów wyjściowych z nadrzędnym łączeniem zakresu. |
| PerRequestSpanProcessorConfiguration |
Konfiguracja narzędzia PerRequestSpanProcessor. Dziedziczy ustawienia środowiska uruchomieniowego (clusterCategory, isNodeEnvDevelopment) i dodaje zabezpieczenia procesora na żądanie. Jest to oddzielone od funkcji ObservabilityConfiguration, ponieważ narzędzie PerRequestSpanProcessor jest używane tylko w określonych scenariuszach, a te ustawienia nie powinny być uwidocznione w typowej funkcji ObservabilityConfiguration. |
Interfejsy
| AgentDetails |
Szczegółowe informacje o agencie sztucznej inteligencji |
| BlobPart |
Wbudowane dane binarne (zakodowane w formacie base64). |
| BuilderOptions |
Opcje konfiguracji narzędzia Agent 365 Observability Builder |
| CallerDetails |
Szczegóły elementu wywołującego dotyczące tworzenia zakresu. Obsługuje osoby wywołujące ludzi, rozmówców agentów lub obie (A2A z człowiekiem w łańcuchu).
Uwaga dotycząca migracji: W wersji 1 nazwa Zobacz UserDetails — tożsamość wywołująca człowieka (wcześniej |
| Channel |
Reprezentuje kanał wywołania |
| ChatMessage |
Komunikat wejściowy wysyłany do modelu (konwencje semantyczne OTEL gen-ai). |
| FilePart |
Odwołanie do wstępnie przekazanego pliku. |
| GenericPart |
Rozszerzalna część dla typów niestandardowych/przyszłych. |
| GenericServerToolCall |
Rozszerzalne szczegóły wywołania narzędzia serwera z dyskryminującym typem. |
| GenericServerToolCallResponse |
Rozszerzalna odpowiedź wywołania narzędzia serwera z dyskryminującym typem. |
| ILogger |
Niestandardowy interfejs rejestratora dla możliwości obserwowania agenta 365 Implementowanie tego interfejsu w celu obsługi zapleczy rejestrowania |
| InferenceDetails |
Szczegóły wywołania wnioskowania |
| InferenceResponse |
Szczegóły rejestrowania odpowiedzi z wywołania wnioskowania |
| InputMessages | |
| InvokeAgentScopeDetails |
Szczegóły dotyczące wywoływania zakresu agenta. |
| OutputMessage |
Komunikat wyjściowy wygenerowany przez model (konwencje semantyczne OTEL gen-ai). |
| OutputMessages | |
| OutputResponse |
Reprezentuje odpowiedź zawierającą komunikaty wyjściowe z agenta. Używany z outputScope do śledzenia komunikatów wyjściowych. Akceptuje zwykłe ciągi, ustrukturyzowane obiekty OTEL OutputMessage lub nieprzetworzone dykt (traktowane jako wynik wywołania narzędzia na specyfikację OTEL). |
| ParentSpanRef |
Odwołanie do zakresu nadrzędnego dla jawnego łączenia elementu nadrzędnego-podrzędnego w granicach asynchronicznych. Używane, gdy propagacja kontekstu automatycznego kończy się niepowodzeniem (np. wywołania zwrotne protokołu WebSocket, programy obsługi zdarzeń zewnętrznych). |
| ReasoningPart |
Rozumowanie modelu/łańcuch treści myślowych. |
| Request |
Reprezentuje żądanie z kontekstem telemetrii. Używane we wszystkich typach zakresu na potrzeby śledzenia kanałów i konwersacji. |
| ServerToolCallPart |
Wywołanie narzędzia po stronie serwera. |
| ServerToolCallResponsePart |
Odpowiedź narzędzia po stronie serwera. |
| ServiceEndpoint |
Reprezentuje punkt końcowy wywołania agenta |
| SpanDetails |
Szczegóły konfiguracji obejmują tworzenie zakresu. Grupuje opcje zakresu OpenTelemetry w jednym obiekcie, dzięki czemu sygnatura metody zakresu pozostaje stabilna w miarę dodawania nowych opcji. |
| TextPart |
Zawartość zwykłego tekstu. |
| ToolCallDetails |
Szczegóły wywołania narzędzia wykonanego przez agenta |
| ToolCallRequestPart |
Wywołanie narzędzia żądane przez model. |
| ToolCallResponsePart |
Wynik wywołania narzędzia. |
| UriPart |
Dokumentacja zewnętrznego identyfikatora URI. |
| UserDetails |
Szczegółowe informacje o obiekcie wywołującym użytkownika ludzkiego. |
Aliasy typu
| EnhancedAgentDetails | |
| HeadersCarrier |
Typ operatora dla nagłówków HTTP używanych w propagacji kontekstu śledzenia. Zgodność z mapami Node.js IncomingHttpHeaders i zwykłymi ciągami. |
| InputMessagesParam |
Zaakceptowane dane wejściowe dla elementu |
| MessagePart |
Związek wszystkich typów części komunikatów na konwencje semantyczne OTEL gen-ai. Uwaga: Element GenericPart działa jako element catch-all w celu zapewnienia zgodności z niestandardowymi lub przyszłymi typami części. Ze względu na to, że jest to |
| ObservabilityConfigurationOptions |
Opcje konfiguracji możliwości obserwacji — rozszerza opcje środowiska uruchomieniowego. Wszystkie przesłonięcia to funkcje wywoływane dla każdego dostępu do właściwości. Dziedziczone z runtimeConfigurationOptions:
Uwaga: |
| OutputMessagesParam |
Zaakceptowane dane wejściowe dla elementu |
| ParentContext |
Kontekst nadrzędny do tworzenia zakresu. Akceptuje albo:
|
| PerRequestSpanProcessorConfigurationOptions |
Opcje konfiguracji narzędzia PerRequestSpanProcessor — rozszerza opcje środowiska uruchomieniowego. Wszystkie przesłonięcia to funkcje wywoływane dla każdego dostępu do właściwości. Dziedziczone z runtimeConfigurationOptions:
|
| ResponseMessagesParam |
Zaakceptowane dane wejściowe dla elementu |
Wyliczenia
| ExporterEventNames |
Nazwy zdarzeń używane przez agenta365Exporter do rejestrowania i monitorowania. Są to typy zdarzeń o niskiej kardynalności, aby zapewnić wydajne monitorowanie i agregację. |
| FinishReason |
Przyczyna, dla którego model przestał generować konwencje semantyczne OTEL gen-ai. |
| InferenceOperationType |
Reprezentuje różne operacje dla typów wnioskowania modelu |
| InvocationRole |
Reprezentuje różne role, które mogą wywoływać agenta |
| MessageRole |
Rola uczestnika wiadomości na konwencje semantyczne OTEL gen-ai. |
| Modality |
Modalność multimediów dla części obiektów blob, plików i identyfikatorów URI. |
Funkcje
| create |
Tworzy nowy kontekst z jawnym odwołaniem zakresu nadrzędnego. Dzięki temu zakresy podrzędne mogą być poprawnie nadrzędne nawet wtedy, gdy kontekst asynchroniczny jest uszkodzony. |
| extract |
Wyodrębnia kontekst śledzenia z przychodzących nagłówków HTTP przy użyciu globalnie zarejestrowanego propagora W3C. Zwraca obiekt OTel ParentContext , który można przekazać do klas zakresu jako element ParentContext. Przykład
|
| format |
Formatuj obiekt błędu rejestrowania za pomocą komunikatu i śledzenia stosu |
| get |
Pobierz token eksportu na żądanie z danego kontekstu OTel (lub aktywnego). |
| get |
Pobieranie bieżącego wystąpienia rejestratora |
| inject |
Wprowadza bieżący kontekst śledzenia ( Przykład
|
| is |
Sprawdź, czy eksport na żądanie jest włączony. Pierwszeństwo: wewnętrzne zastępowanie > zmiennej środowiskowej dostawcy > konfiguracji. Po włączeniu parametru PerRequestSpanProcessor jest używany zamiast klasy BatchSpanProcessor. Token jest przekazywany za pośrednictwem kontekstu OTel (asynchronicznego magazynu lokalnego) w czasie eksportowania. |
| normalize |
Normalizuje
|
| normalize |
Normalizuje
|
| reset |
Resetuj do domyślnego rejestratora konsoli (głównie do testowania) |
| run |
Uruchom funkcję w ramach kontekstu, która przenosi token eksportu dla poszczególnych żądań. Spowoduje to zachowanie tokenu tylko w kontekście OTel (ALS), nigdy w żadnym rejestrze. Token można zaktualizować później, |
| run |
Wyodrębnia kontekst śledzenia z przychodzących nagłówków HTTP i uruchamia wywołanie zwrotne w tym kontekście. Wszystkie przedziały utworzone wewnątrz wywołania zwrotnego będą nadrzędne do wyodrębnionego śledzenia. Przykład
|
| run |
Uruchamia funkcję wywołania zwrotnego w kontekście, który ma jawne odwołanie zakresu nadrzędnego. Jest to przydatne w przypadku tworzenia zakresów podrzędnych w asynchronicznych wywołaniach zwrotnych, w których propagacja kontekstu jest uszkodzona. |
| safe |
Gwarantuje, że wartość jest zawsze ciągiem analizowalnym w formacie JSON.
|
| serialize |
Serializuje wersję otoki komunikatów w formacie JSON. Dane wyjściowe to pełny obiekt otoki: Funkcja try/catch zapewnia, że rejestrowanie danych telemetrycznych nie jest zgłaszane nawet wtedy, gdy części komunikatów zawierają wartości nieserializowalne w formacie JSON (np. BigInt, odwołania cykliczne). |
| set |
Ustawianie niestandardowej implementacji rejestratora dla zestawu SDK do obserwacji Przykład z winstonem:
|
| update |
Zaktualizuj token eksportu w aktywnym kontekście OTel. Wywołaj tę metodę, aby odświeżyć token przed zakończeniem zakresu głównego, gdy oryginalny token mógł wygasł podczas długotrwałego żądania. Musi być wywoływany w tym samym kontekście asynchronicznym utworzonym przez |
Zmienne
| A365_MESSAGE_SCHEMA_VERSION | |
| default |
Udostępniony domyślny dostawca funkcji ObservabilityConfiguration. |
| default |
Udostępniony domyślny dostawca perRequestSpanProcessorConfiguration. |
| logger | Domyślne wystąpienie rejestratora pod kątem zgodności z poprzednimi wersjami. Delegaty do globalnego rejestratora, który można zamienić za pomocą setLogger(). |
Szczegóły funkcji
createContextWithParentSpanRef(Context, ParentSpanRef)
Tworzy nowy kontekst z jawnym odwołaniem zakresu nadrzędnego. Dzięki temu zakresy podrzędne mogą być poprawnie nadrzędne nawet wtedy, gdy kontekst asynchroniczny jest uszkodzony.
function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context
Parametry
- base
-
Context
Kontekst podstawowy do rozszerzenia (zazwyczaj context.active())
- parent
- ParentSpanRef
Odwołanie do zakresu nadrzędnego zawierające identyfikator traceId i spanId
Zwraca
Context
Nowy kontekst z zestawem rozpiętości nadrzędnej
extractContextFromHeaders(HeadersCarrier, Context)
Wyodrębnia kontekst śledzenia z przychodzących nagłówków HTTP przy użyciu globalnie zarejestrowanego propagora W3C. Zwraca obiekt OTel ParentContext , który można przekazać do klas zakresu jako element ParentContext.
Przykład
const parentCtx = extractContextFromHeaders(req.headers);
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, undefined, { parentContext: parentCtx });
function extractContextFromHeaders(headers: HeadersCarrier, baseCtx?: Context): Context
Parametry
- headers
- HeadersCarrier
Przychodzące nagłówki żądań HTTP zawierające traceparent/tracestate.
- baseCtx
-
Context
Opcjonalny kontekst podstawowy do rozszerzenia. Domyślnie jest to aktywny kontekst.
Zwraca
Context
Kontekst OTel zawierający wyodrębnione informacje śledzenia.
formatError(unknown)
Formatuj obiekt błędu rejestrowania za pomocą komunikatu i śledzenia stosu
function formatError(error: unknown): string
Parametry
- error
-
unknown
Zwraca
string
getExportToken(Context)
Pobierz token eksportu na żądanie z danego kontekstu OTel (lub aktywnego).
function getExportToken(ctx?: Context): string | undefined
Parametry
- ctx
-
Context
Zwraca
string | undefined
getLogger()
injectContextToHeaders(Record<string, string>, Context)
Wprowadza bieżący kontekst śledzenia (traceparent/tracestate nagłówki) do dostarczonego obiektu nagłówków przy użyciu globalnie zarejestrowanego propagora W3C.
Przykład
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>
Parametry
- headers
-
Record<string, string>
Obiekt modyfikowalny, w którym będą zapisywane nagłówki kontekstu śledzenia.
- ctx
-
Context
Opcjonalny kontekst OTel do wstrzykiwania. Domyślnie jest to aktywny kontekst.
Zwraca
Record<string, string>
Ten sam headers obiekt, dla wygody łańcucha.
isPerRequestExportEnabled(IConfigurationProvider<PerRequestSpanProcessorConfiguration>)
Sprawdź, czy eksport na żądanie jest włączony. Pierwszeństwo: wewnętrzne zastępowanie > zmiennej środowiskowej dostawcy > konfiguracji. Po włączeniu parametru PerRequestSpanProcessor jest używany zamiast klasy BatchSpanProcessor. Token jest przekazywany za pośrednictwem kontekstu OTel (asynchronicznego magazynu lokalnego) w czasie eksportowania.
function isPerRequestExportEnabled(configProvider?: IConfigurationProvider<PerRequestSpanProcessorConfiguration>): boolean
Parametry
- configProvider
-
IConfigurationProvider<PerRequestSpanProcessorConfiguration>
Opcjonalny dostawca konfiguracji. Wartość domyślna to DefaultPerRequestSpanProcessorConfigurationProvider, jeśli nie zostanie określony.
Zwraca
boolean
normalizeInputMessages(InputMessagesParam)
Normalizuje InputMessagesParam wersję otoki do wersji InputMessages .
-
string/string[]→ przekonwertowane naChatMessage[]i opakowane -
InputMessages→ zwrócone as-is
function normalizeInputMessages(param: InputMessagesParam): InputMessages
Parametry
- param
- InputMessagesParam
Zwraca
normalizeOutputMessages(OutputMessagesParam)
Normalizuje OutputMessagesParam wersję otoki do wersji OutputMessages .
-
string/string[]→ przekonwertowane naOutputMessage[]i opakowane -
OutputMessages→ zwrócone as-is
function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages
Parametry
- param
- OutputMessagesParam
Zwraca
resetLogger()
Resetuj do domyślnego rejestratora konsoli (głównie do testowania)
function resetLogger()
runWithExportToken<T>(string, () => T)
Uruchom funkcję w ramach kontekstu, która przenosi token eksportu dla poszczególnych żądań. Spowoduje to zachowanie tokenu tylko w kontekście OTel (ALS), nigdy w żadnym rejestrze.
Token można zaktualizować później, updateExportToken() zanim ślad zostanie opróżniony — przydatne, gdy wywołanie zwrotne jest długotrwałe, a oryginalny token może wygasnąć przed eksportem.
function runWithExportToken<T>(token: string, fn: () => T): T
Parametry
- token
-
string
- fn
-
() => T
Zwraca
T
runWithExtractedTraceContext<T>(HeadersCarrier, () => T)
Wyodrębnia kontekst śledzenia z przychodzących nagłówków HTTP i uruchamia wywołanie zwrotne w tym kontekście. Wszystkie przedziały utworzone wewnątrz wywołania zwrotnego będą nadrzędne do wyodrębnionego śledzenia.
Przykład
runWithExtractedTraceContext(req.headers, () => {
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails);
scope.dispose();
});
function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T
Parametry
- headers
- HeadersCarrier
Przychodzące nagłówki żądań HTTP zawierające traceparent/tracestate.
- callback
-
() => T
Funkcja do wykonania w wyodrębnionym kontekście.
Zwraca
T
Wynik wywołania zwrotnego.
runWithParentSpanRef<T>(ParentSpanRef, () => T)
Uruchamia funkcję wywołania zwrotnego w kontekście, który ma jawne odwołanie zakresu nadrzędnego. Jest to przydatne w przypadku tworzenia zakresów podrzędnych w asynchronicznych wywołaniach zwrotnych, w których propagacja kontekstu jest uszkodzona.
function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T
Parametry
- parent
- ParentSpanRef
Odwołanie do zakresu nadrzędnego
- callback
-
() => T
Funkcja do wykonania z kontekstem nadrzędnym
Zwraca
T
Wynik wywołania zwrotnego
safeSerializeToJson(string | Record<string, unknown>, string)
Gwarantuje, że wartość jest zawsze ciągiem analizowalnym w formacie JSON.
- Obiekty są serializowane za pośrednictwem pliku JSON.stringify.
- Ciągi, które są już prawidłowymi obiektami/tablicami JSON, są przekazywane.
- Wszystkie inne ciągi (w tym nagie elementy pierwotne JSON) są opakowane:
{ [key]: value }.
function safeSerializeToJson(value: string | Record<string, unknown>, key: string): string
Parametry
- value
-
string | Record<string, unknown>
Wartość do serializacji.
- key
-
string
Klucz do użycia podczas zawijania zwykłego ciągu.
Zwraca
string
serializeMessages(InputMessages | OutputMessages)
Serializuje wersję otoki komunikatów w formacie JSON.
Dane wyjściowe to pełny obiekt otoki: {"version":"0.1.0","messages":[...]}.
Funkcja try/catch zapewnia, że rejestrowanie danych telemetrycznych nie jest zgłaszane nawet wtedy, gdy części komunikatów zawierają wartości nieserializowalne w formacie JSON (np. BigInt, odwołania cykliczne).
function serializeMessages(wrapper: InputMessages | OutputMessages): string
Parametry
- wrapper
Zwraca
string
setLogger(ILogger)
Ustawianie niestandardowej implementacji rejestratora dla zestawu SDK do obserwacji
Przykład z winstonem:
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)
Parametry
- customLogger
- ILogger
Implementacja niestandardowego rejestratora
updateExportToken(string)
Zaktualizuj token eksportu w aktywnym kontekście OTel. Wywołaj tę metodę, aby odświeżyć token przed zakończeniem zakresu głównego, gdy oryginalny token mógł wygasł podczas długotrwałego żądania.
Musi być wywoływany w tym samym kontekście asynchronicznym utworzonym przez runWithExportTokenprogram .
function updateExportToken(token: string): boolean
Parametry
- token
-
string
Świeży token do użycia do eksportowania.
Zwraca
boolean
Wartość true, jeśli token został pomyślnie zaktualizowany, wartość false, jeśli nie znaleziono właściciela tokenu.
Szczegóły zmiennej
A365_MESSAGE_SCHEMA_VERSION
A365_MESSAGE_SCHEMA_VERSION: "0.1.0"
Typ
string
defaultObservabilityConfigurationProvider
Udostępniony domyślny dostawca funkcji ObservabilityConfiguration.
defaultObservabilityConfigurationProvider: DefaultConfigurationProvider<ObservabilityConfiguration>
Typ
defaultPerRequestSpanProcessorConfigurationProvider
Udostępniony domyślny dostawca perRequestSpanProcessorConfiguration.
defaultPerRequestSpanProcessorConfigurationProvider: DefaultConfigurationProvider<PerRequestSpanProcessorConfiguration>
Typ
logger
Domyślne wystąpienie rejestratora pod kątem zgodności z poprzednimi wersjami. Delegaty do globalnego rejestratora, który można zamienić za pomocą setLogger().
logger: ILogger