@microsoft/agents-a365-observability package
Классы
| Agent365ExporterOptions |
Максимальное количество диапазонов для каждого пакета экспорта. |
| BaggageBuilder |
По запросу построителя багажа для распространения контекста OpenTelemetry. Этот класс предоставляет простой API для задания значений багажа, которые будут распространяться в контексте OpenTelemetry. Пример
|
| BaggageScope |
Диспетчер контекстов для области багажа. Этот класс управляет жизненным циклом значений багажа, устанавливая их на ввод и восстановление предыдущего контекста при выходе. |
| Builder |
Построитель для настройки агента 365 с помощью трассировки OpenTelemetry |
| ExecuteToolScope |
Предоставляет область трассировки OpenTelemetry для операций выполнения средства ИИ. |
| InferenceScope |
Предоставляет область трассировки OpenTelemetry для операций вывода с помощью искусственного интеллекта. |
| InvokeAgentScope |
Предоставляет область трассировки OpenTelemetry для операций вызова агента ИИ. |
| ObservabilityConfiguration |
Конфигурация пакета наблюдаемости. Наследует параметры среды выполнения и добавляет параметры, относящиеся к наблюдаемости. |
| ObservabilityManager |
Основная точка входа для агента 365, обеспечивающая трассировку OpenTelemetry для агентов и средств ИИ |
| OpenTelemetryConstants |
Константы OpenTelemetry для агента 365 |
| OpenTelemetryScope |
Базовый класс для областей трассировки OpenTelemetry |
| OutputScope |
Предоставляет область трассировки OpenTelemetry для трассировки выходных сообщений с привязкой родительского диапазона. |
| PerRequestSpanProcessorConfiguration |
Конфигурация perRequestSpanProcessor. Наследует параметры среды выполнения (clusterCategory, isNodeEnvDevelopment) и добавляет средства защиты процессора для каждого запроса. Это отличается от ObservabilityConfiguration, так как PerRequestSpanProcessor используется только в определенных сценариях, и эти параметры не должны предоставляться в common ObservabilityConfiguration. |
Интерфейсы
| AgentDetails |
Сведения об агенте ИИ |
| BlobPart |
Встроенные двоичные данные (в кодировке Base64). |
| BuilderOptions |
Параметры конфигурации для построителя наблюдаемости агента 365 |
| CallerDetails |
Сведения о вызывающем объекте для создания области. Поддерживает вызывающих людей, вызывающих агентов или обоих (A2A с человеком в цепочке).
Примечание по миграции: В версии 1 имя См. раздел UserDetails — удостоверение вызывающего человека (ранее |
| Channel |
Представляет канал для вызова |
| ChatMessage |
Входное сообщение, отправленное модели (соглашения о семантике OTEL-gen-ai). |
| FilePart |
Ссылка на предварительно отправленный файл. |
| GenericPart |
Расширяемая часть для пользовательских или будущих типов. |
| GenericServerToolCall |
Подробные сведения о вызове средства расширяемого сервера с дискриминационным типом. |
| GenericServerToolCallResponse |
Ответ на вызов расширяемого сервера с дискриминационным типом. |
| ILogger |
Пользовательский интерфейс средства ведения журнала для наблюдаемости агента 365 реализует этот интерфейс для поддержки внутренних серверных служб ведения журнала |
| InferenceDetails |
Сведения о вызове вывода |
| InferenceResponse |
Сведения о записи ответа из вызова вывода |
| InputMessages | |
| InvokeAgentScopeDetails |
Сведения о вызове области агента. |
| OutputMessage |
Выходное сообщение, созданное моделью (соглашения о семантике OTEL gen-ai). |
| OutputMessages | |
| OutputResponse |
Представляет ответ, содержащий выходные сообщения от агента. Используется с OutputScope для трассировки выходных сообщений. Принимает обычные строки, структурированные объекты OTEL OutputMessage или необработанный дикт (обрабатывается как результат вызова средства на спецификацию OTEL). |
| ParentSpanRef |
Ссылка на родительский диапазон для явного связывания между асинхронными границами. Используется при сбое автоматического распространения контекста (например, обратных вызовов WebSocket, внешних обработчиков событий). |
| ReasoningPart |
Обоснование модели / цепочки мысли содержимого. |
| Request |
Представляет запрос с контекстом телеметрии. Используется во всех типах областей для отслеживания каналов и бесед. |
| ServerToolCallPart |
Вызов на стороне сервера. |
| ServerToolCallResponsePart |
Ответ на серверное средство. |
| ServiceEndpoint |
Представляет конечную точку для вызова агента |
| SpanDetails |
Сведения о конфигурации диапазона для создания области. Группируют параметры диапазона OpenTelemetry в один объект, чтобы подпись метода области оставалась стабильной по мере добавления новых параметров. |
| TextPart |
Содержимое обычного текста. |
| ToolCallDetails |
Сведения о вызове средства, выполняемом агентом |
| ToolCallRequestPart |
Вызов средства, запрошенный моделью. |
| ToolCallResponsePart |
Результат вызова средства. |
| UriPart |
Справочник по внешнему URI. |
| UserDetails |
Сведения о вызываемом пользователем объекте. |
Псевдонимы типа
| EnhancedAgentDetails | |
| HeadersCarrier |
Тип оператора для заголовков HTTP, используемых в распространении контекста трассировки. Совместимо с Node.js входящегоhttpHeaders и картой простых строк. |
| InputMessagesParam |
Принятые входные данные для |
| MessagePart |
Объединение всех типов частей сообщений на семантические соглашения OTEL gen-ai. Примечание. GenericPart выступает в качестве catch-all для обеспечения совместимости с пользовательскими или будущими типами частей. Так как он |
| ObservabilityConfigurationOptions |
Параметры конфигурации наблюдаемости — расширяет параметры среды выполнения. Все переопределения — это функции, вызываемые для каждого доступа к свойствам. Наследуется от RuntimeConfigurationOptions:
Примечание. |
| OutputMessagesParam |
Принятые входные данные для |
| ParentContext |
Родительский контекст для создания диапазона. Принимает любую из них:
|
| PerRequestSpanProcessorConfigurationOptions |
Параметры конфигурации для PerRequestSpanProcessor — расширяют параметры среды выполнения. Все переопределения — это функции, вызываемые для каждого доступа к свойствам. Наследуется от RuntimeConfigurationOptions:
|
| ResponseMessagesParam |
Принятые входные данные для |
Перечисления
| ExporterEventNames |
Имена событий, используемые агентом 365Exporter для ведения журнала и мониторинга. Это типы событий с низкой кратностью для обеспечения эффективного мониторинга и агрегирования. |
| FinishReason |
Причина, по которой модель перестала создаваться на основе соглашений о семантике OTEL-го поколения. |
| InferenceOperationType |
Представляет различные операции для типов вывода модели |
| InvocationRole |
Представляет различные роли, которые могут вызывать агент |
| MessageRole |
Роль участника сообщения на семантические соглашения OTEL gen-ai. |
| Modality |
Модальность мультимедиа для частей BLOB-объектов, файлов и URI. |
Функции
| create |
Создает новый контекст с явной ссылкой на родительский диапазон. Это позволяет правильно создавать дочерние диапазоны даже при разрыве асинхронного контекста. |
| extract |
Извлекает контекст трассировки из входящих заголовков HTTP с помощью глобально зарегистрированного распространителя W3C. Возвращает OTel ParentContext , который можно передать в классы области в виде ParentContext. Пример
|
| format |
Форматирование объекта ошибки для ведения журнала с помощью трассировки сообщений и стека |
| get |
Получение маркера экспорта для каждого запроса из заданного контекста OTel (или активного). |
| get |
Получение текущего экземпляра средства ведения журнала |
| inject |
Внедряет текущий контекст трассировки ( Пример
|
| is |
Проверьте, включен ли экспорт по запросу. Приоритет: внутренняя переопределяет > переменную среды поставщика > конфигурации. При включении perRequestSpanProcessor используется вместо BatchSpanProcessor. Маркер передается через OTel Context (асинхронное локальное хранилище) во время экспорта. |
| normalize |
Нормализует
|
| normalize |
Нормализует
|
| reset |
Сброс на средство ведения журнала консоли по умолчанию (в основном для тестирования) |
| run |
Запустите функцию в контексте, которая несет маркер экспорта для каждого запроса. Этот маркер сохраняется только в OTel Context (ALS), никогда не в любом реестре. Маркер можно обновить позже |
| run |
Извлекает контекст трассировки из входящих заголовков HTTP и запускает обратный вызов в этом контексте. Все диапазоны, созданные внутри обратного вызова, будут родительскими для извлеченной трассировки. Пример
|
| run |
Выполняет функцию обратного вызова в контексте с явной ссылкой на родительский диапазон. Это полезно для создания дочерних диапазонов в асинхронных обратных вызовах, где распространение контекста нарушается. |
| safe |
Гарантирует, что значение всегда является строкой, доступной для синтаксического анализа JSON.
|
| serialize |
Сериализует версию оболочки сообщений в JSON. Выходные данные — это полный объект-оболочка: Функция try/catch гарантирует, что запись телеметрии не вызывается, даже если части сообщения содержат несериализируемые значения (например, BigInt, циклические ссылки). |
| set |
Настройка пользовательской реализации средства ведения журнала для пакета SDK для наблюдаемости Пример с Winston:
|
| update |
Обновите маркер экспорта в активном контексте OTel. Вызовите этот вызов, чтобы обновить маркер перед завершением корневого диапазона, когда исходный маркер может истекать во время длительного запроса. Должен вызываться в том же асинхронном контексте, который создается |
Переменные
| A365_MESSAGE_SCHEMA_VERSION | |
| default |
Общий поставщик по умолчанию для ObservabilityConfiguration. |
| default |
Общий поставщик по умолчанию для PerRequestSpanProcessorConfiguration. |
| logger | Экземпляр средства ведения журнала по умолчанию для обратной совместимости. Делегаты глобального средства ведения журнала, который можно заменить с помощью setLogger(). |
Сведения о функции
createContextWithParentSpanRef(Context, ParentSpanRef)
Создает новый контекст с явной ссылкой на родительский диапазон. Это позволяет правильно создавать дочерние диапазоны даже при разрыве асинхронного контекста.
function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context
Параметры
- base
-
Context
Базовый контекст для расширения (обычно context.active())
- parent
- ParentSpanRef
Ссылка на родительский диапазон, содержащая traceId и spanId
Возвращаемое значение
Context
Новый контекст с родительским набором диапазонов
extractContextFromHeaders(HeadersCarrier, Context)
Извлекает контекст трассировки из входящих заголовков HTTP с помощью глобально зарегистрированного распространителя W3C. Возвращает OTel ParentContext , который можно передать в классы области в виде ParentContext.
Пример
const parentCtx = extractContextFromHeaders(req.headers);
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, undefined, { parentContext: parentCtx });
function extractContextFromHeaders(headers: HeadersCarrier, baseCtx?: Context): Context
Параметры
- headers
- HeadersCarrier
Входящие заголовки HTTP-запроса, traceparent/tracestateсодержащие .
- baseCtx
-
Context
Необязательный базовый контекст для расширения. По умолчанию используется активный контекст.
Возвращаемое значение
Context
Контекст OTel, содержащий извлеченные сведения трассировки.
formatError(unknown)
Форматирование объекта ошибки для ведения журнала с помощью трассировки сообщений и стека
function formatError(error: unknown): string
Параметры
- error
-
unknown
Возвращаемое значение
string
getExportToken(Context)
Получение маркера экспорта для каждого запроса из заданного контекста OTel (или активного).
function getExportToken(ctx?: Context): string | undefined
Параметры
- ctx
-
Context
Возвращаемое значение
string | undefined
getLogger()
Получение текущего экземпляра средства ведения журнала
function getLogger(): ILogger
Возвращаемое значение
injectContextToHeaders(Record<string, string>, Context)
Внедряет текущий контекст трассировки (traceparent/tracestate заголовки) в предоставленный объект заголовков с помощью глобально зарегистрированного распространителя W3C.
Пример
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>
Параметры
- headers
-
Record<string, string>
Изменяемый объект, в котором записываются заголовки контекста трассировки.
- ctx
-
Context
Необязательный контекст OTel для внедрения. По умолчанию используется активный контекст.
Возвращаемое значение
Record<string, string>
Тот же headers объект для удобства цепочки.
isPerRequestExportEnabled(IConfigurationProvider<PerRequestSpanProcessorConfiguration>)
Проверьте, включен ли экспорт по запросу. Приоритет: внутренняя переопределяет > переменную среды поставщика > конфигурации. При включении perRequestSpanProcessor используется вместо BatchSpanProcessor. Маркер передается через OTel Context (асинхронное локальное хранилище) во время экспорта.
function isPerRequestExportEnabled(configProvider?: IConfigurationProvider<PerRequestSpanProcessorConfiguration>): boolean
Параметры
- configProvider
-
IConfigurationProvider<PerRequestSpanProcessorConfiguration>
Необязательный поставщик конфигурации. Значение по умолчанию DefaultPerRequestSpanProcessorConfigurationProvider, если оно не указано.
Возвращаемое значение
boolean
normalizeInputMessages(InputMessagesParam)
Нормализует InputMessagesParam версию InputMessages оболочки.
-
string/string[]→ преобразованы в и упакованыChatMessage[] -
InputMessages→ возвращены as-is
function normalizeInputMessages(param: InputMessagesParam): InputMessages
Параметры
- param
- InputMessagesParam
Возвращаемое значение
normalizeOutputMessages(OutputMessagesParam)
Нормализует OutputMessagesParam версию OutputMessages оболочки.
-
string/string[]→ преобразованы в и упакованыOutputMessage[] -
OutputMessages→ возвращены as-is
function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages
Параметры
- param
- OutputMessagesParam
Возвращаемое значение
resetLogger()
Сброс на средство ведения журнала консоли по умолчанию (в основном для тестирования)
function resetLogger()
runWithExportToken<T>(string, () => T)
Запустите функцию в контексте, которая несет маркер экспорта для каждого запроса. Этот маркер сохраняется только в OTel Context (ALS), никогда не в любом реестре.
Маркер можно обновить позже updateExportToken() до очистки трассировки. Это полезно, если обратный вызов длительный и исходный маркер может истекать до экспорта.
function runWithExportToken<T>(token: string, fn: () => T): T
Параметры
- token
-
string
- fn
-
() => T
Возвращаемое значение
T
runWithExtractedTraceContext<T>(HeadersCarrier, () => T)
Извлекает контекст трассировки из входящих заголовков HTTP и запускает обратный вызов в этом контексте. Все диапазоны, созданные внутри обратного вызова, будут родительскими для извлеченной трассировки.
Пример
runWithExtractedTraceContext(req.headers, () => {
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails);
scope.dispose();
});
function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T
Параметры
- headers
- HeadersCarrier
Входящие заголовки HTTP-запроса, traceparent/tracestateсодержащие .
- callback
-
() => T
Функция, выполняемая в извлеченном контексте.
Возвращаемое значение
T
Результат обратного вызова.
runWithParentSpanRef<T>(ParentSpanRef, () => T)
Выполняет функцию обратного вызова в контексте с явной ссылкой на родительский диапазон. Это полезно для создания дочерних диапазонов в асинхронных обратных вызовах, где распространение контекста нарушается.
function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T
Параметры
- parent
- ParentSpanRef
Ссылка на родительский диапазон
- callback
-
() => T
Функция, выполняемая с помощью родительского контекста
Возвращаемое значение
T
Результат обратного вызова
safeSerializeToJson(string | Record<string, unknown>, string)
Гарантирует, что значение всегда является строкой, доступной для синтаксического анализа JSON.
- Объекты сериализуются с помощью JSON.stringify.
- Строки, которые уже являются допустимыми объектами и массивами JSON, передаются через.
- Все остальные строки (включая примитивы JSON без примитивов) упаковываются в оболочку:
{ [key]: value }
function safeSerializeToJson(value: string | Record<string, unknown>, key: string): string
Параметры
- value
-
string | Record<string, unknown>
Значение для сериализации.
- key
-
string
Ключ, используемый при оболочке обычной строки.
Возвращаемое значение
string
serializeMessages(InputMessages | OutputMessages)
Сериализует версию оболочки сообщений в JSON.
Выходные данные — это полный объект-оболочка: {"version":"0.1.0","messages":[...]}
Функция try/catch гарантирует, что запись телеметрии не вызывается, даже если части сообщения содержат несериализируемые значения (например, BigInt, циклические ссылки).
function serializeMessages(wrapper: InputMessages | OutputMessages): string
Параметры
- wrapper
Возвращаемое значение
string
setLogger(ILogger)
Настройка пользовательской реализации средства ведения журнала для пакета SDK для наблюдаемости
Пример с 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)
Параметры
- customLogger
- ILogger
Реализация пользовательского средства ведения журнала
updateExportToken(string)
Обновите маркер экспорта в активном контексте OTel. Вызовите этот вызов, чтобы обновить маркер перед завершением корневого диапазона, когда исходный маркер может истекать во время длительного запроса.
Должен вызываться в том же асинхронном контексте, который создается runWithExportToken.
function updateExportToken(token: string): boolean
Параметры
- token
-
string
Новый маркер, используемый для экспорта.
Возвращаемое значение
boolean
Значение true, если маркер был обновлен успешно, значение false, если не найден владелец маркера.
Сведения об переменной
A365_MESSAGE_SCHEMA_VERSION
A365_MESSAGE_SCHEMA_VERSION: "0.1.0"
Тип
string
defaultObservabilityConfigurationProvider
Общий поставщик по умолчанию для ObservabilityConfiguration.
defaultObservabilityConfigurationProvider: DefaultConfigurationProvider<ObservabilityConfiguration>
Тип
defaultPerRequestSpanProcessorConfigurationProvider
Общий поставщик по умолчанию для PerRequestSpanProcessorConfiguration.
defaultPerRequestSpanProcessorConfigurationProvider: DefaultConfigurationProvider<PerRequestSpanProcessorConfiguration>
Тип
logger
Экземпляр средства ведения журнала по умолчанию для обратной совместимости. Делегаты глобального средства ведения журнала, который можно заменить с помощью setLogger().
logger: ILogger