1.0.0b1 (2026-11-02)
Features Added
- Added
FoundryTaskStore, implementing native Task persistence with Core's
generic state store, caller isolation, and native list/filter/page semantics. - Added executor-based
A2AAgentServerHostconstruction with hosted Foundry
storage/local in-memory defaults and explicit task-store overrides. Existing
caller-supplied request handlers keep their storage unchanged. - Added a state-store sample demonstrating Task retrieval after a server restart;
task persistence does not enable automatic execution recovery. - Initial preview release of
azure-ai-agentserver-a2a. - Added
A2AAgentServerHostfor hosting native A2A v1.0AgentCardand
RequestHandlerobjects on the canonical Foundry container routes. - Added request-scoped capture of
x-agent-foundry-call-idand
x-agent-user-id. - Added
x-platform-error-sourceclassification for transport-level HTTP
errors. - Added cooperative composition with other Agent Server protocol hosts.
- Added development-stage OpenTelemetry A2A server spans for JSON-RPC
operations, including Agent Card metadata, request task
and conversation correlation, and unary JSON-RPC error classification. - Added non-advertised aliases at
POST /invocations/a2aand
GET /invocations/a2a/.well-known/agent-card.json.
Other Changes
- Marked the public A2A host and task-store APIs as experimental.
- Added Python 3.15 metadata and
httpx2sample/test HTTP clients. - Simplified A2A tracing to reuse Core's span lifecycle helpers. Response inspection
captures only a missing Task ID for correlation, without collecting response-only
context IDs or task states. - Consolidated tracing into one response wrapper and one span cleanup path for
endpoint execution and response transmission, with shared JSON decoding. - Requires
azure-ai-agentserver-core>=2.3.1b1,<3.0.0for preservation of Agent
Card metadata and the non-blocking span flush helper used by A2A tracing. - Added an opt-in internal manual pipeline mode to publish A2A and core alpha
packages together to the Azure SDK dev feed. - Added sample setup instructions, a native local client, and explicit in-memory
state and durability guidance.
Bugs Fixed
- Bound encoded listing metadata to the storage tag limit without truncating
Tasks; oversized summaries use the full-snapshot listing path. - Bound storage item keys to 128 characters using owner-scoped hashes while
preserving the complete original Task identifier. - Resolve header and query protocol selectors consistently for native dispatch
and tracing. Reject conflicting selectors and unsupported minor versions. - Select native Task-list pages from lightweight metadata before reading full
snapshots, avoiding history/artifact downloads for every retained Task. - Preserve explicit request conversation IDs on both A2A request spans when
inbound baggage contains a conflicting conversation ID. - Use an identifier-safe owner tag for managed state-store queries so hosted
ListTaskssucceeds as well asGetTask. - Add a deployment-aware
invoke_agentparent for hosted A2A message sends so
trace discovery does not depend on model calls or native implementation spans.
Keep Agent Card metadata on the child A2A span and preserve Task-ID correlation
and error classification on both spans. - Support validated brokered storage context when the A2A gateway omits the
optional raw user-ID header; verify actual server-side user isolation before
every item operation and keep per-request call IDs out of storage keys. - Require native
a2a-sdk>=1.2.3so active-task subscription/cancellation
cache hits authorize through the caller-scoped task store. - Preserve shared request ID and server-version headers on exception-generated
error responses. - Read telemetry identifiers only from A2A protocol fields,
without interpreting application metadata or data-part contents. - Omit A2A from the tracing-only live-test pipeline until it has a marked
tracing_e2esuite; normal CI validation remains enabled. - Keep pipeline artifact entries compatible with raw YAML namespace metadata
extraction while limiting manual A2A alpha uploads to A2A and core. - Align manual A2A alpha documentation updates with the packages actually
published, register the native SDK dependency for shared analysis, and add
the required README troubleshooting and next-steps sections.