1.0.0-beta.24 (2026-05-21)
Features Added
- Added Agent365 tracing export support with managed identity token acquisition when
FOUNDRY_AGENT365_TRACING_ENABLEDis set. - Added
AgentInstanceClientId,AgentBlueprintClientId,AgentTenantId, andIsAgent365TracingEnabledproperties toFoundryEnvironment. - Added
FoundryEnrichmentProcessorattributes:gen_ai.agent.blueprint.id,microsoft.tenant.id, andmicrosoft.foundry.agent.typeon telemetry spans. - Added
W3CBaggagePropagatormiddleware that parses the W3Cbaggageheader intoActivity.Baggageon all target frameworks (net8.0, net9.0, net10.0). - Configured W3C Trace Context and Baggage propagators via
Sdk.SetDefaultTextMapPropagatorfor outgoing request propagation. - Added conditional exporter registration: Azure Monitor, OTLP, and Agent365 exporters activate only when their respective environment variables are set.
- Added
PlatformHeaders.ErrorSource(x-platform-error-source),PlatformHeaders.ErrorDetail
(x-platform-error-detail), and error source value constants (ErrorSourceUser,
ErrorSourcePlatform,ErrorSourceUpstream) for error classification per container-image-spec §8. - Replaced
Azure.Monitor.OpenTelemetry.AspNetCorewith the unifiedMicrosoft.OpenTelemetrydistro for telemetry. The new distro auto-detects Azure Monitor and OTLP exporters from environment variables and eliminates the need for duplicate-instrumentation guards. - Added
FoundryEnvironment.WebSocketKeepAliveInterval(sourced from the
WS_KEEPALIVE_INTERVALenvironment variable) for the new
invocations_ws(WebSocket) protocol. Wired through
AgentHostMiddlewareExtensions.UseAgentServerCoreinto Kestrel's
WebSocketOptions.KeepAliveInterval, so a positive value emits RFC 6455
protocol-level Ping frames (opcode0x9) that keep idle WebSocket
connections alive across upstream proxy / load-balancer idle timeouts.
Disabled by default (Timeout.InfiniteTimeSpan). UseAgentServerCorenow also callsIApplicationBuilder.UseWebSockets,
so any protocol library that hosts WebSocket endpoints (e.g., the
Invocations/invocations_wsendpoint) works out of the box without
the consumer having to wireUseWebSocketsthemselves.