Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion sdk/agentserver/azure-ai-agentserver-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## 2.0.0b8 (2026-07-22)

### Features Added

- Added `azure.ai.agentserver.core.storage`, the protocol-neutral Foundry durable state-store layer. `FoundryStateStore.get_or_create(name, ...)` is the primary entry point -- an async classmethod that resolves (or creates, on first use) the store in one call. Store-level operations act on the bound store: `get()` (its descriptor), `update(...)` (its mutable `description` / `tags`), and `delete()` (the whole store, cascade-deleting every item). Item operations are explicit and consistently named: `create_item`, `set_item`, `get_item`, `delete_item`, `list_keys`. Store names are path-encoded with base64url on the wire, store-level `item_ttl_seconds` is configured once at create, optional `user_isolation` is declared at store create, and trusted callers may delegate end-user partitioning with `user_id` (`x-ms-user-id`). Response bodies (`StateStore`, `StateStoreItem`, `StateStoreItemRef`, `DeletedStateStore`, `DeletedStateStoreItem`, `StateStoreItemKey`) are typed model classes generated from a formal TypeSpec contract, not hand-written dataclasses. See the [Durable State Store Guide](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/docs/state-store-guide.md).

### Bugs Fixed

- Fixed span attribute enrichment under `opentelemetry-sdk` >= 1.43.0, where `span._attributes` became a `BoundedAttributes` (backed by `._dict`) that no longer supports item assignment. Enrichment now resolves the backing store so agent identity attributes are written on both older and newer OpenTelemetry SDKs.
Expand All @@ -24,7 +28,6 @@

- Populated agent metadata when operation IDs are zeroed so agent metadata remains available for telemetry and downstream processing.
- Suppressed noisy observability/exporter INFO logs by default in tracing setup while preserving DEBUG visibility when explicitly enabled.

## 2.0.0b5 (2026-05-25)

### Bugs Fixed
Expand Down
33 changes: 33 additions & 0 deletions sdk/agentserver/azure-ai-agentserver-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,39 @@ async def on_shutdown():
pass
```

### Durable state storage

`FoundryStateStore` is a durable, server-backed key-value store for agent state
— session memory, per-user preferences, counters, and checkpoints — bound to
one explicit, caller-named store, with single-item optimistic concurrency,
tag-filtered key listing, and store-level TTL.

```python
from azure.ai.agentserver.core.storage import FoundryStateStore

# Endpoint and credential resolve from FOUNDRY_PROJECT_ENDPOINT + DefaultAzureCredential.
# get_or_create() resolves (or creates, on first use) the store in one call.
store = await FoundryStateStore.get_or_create("checkpoints/thread-abc", user_isolation=True)
Comment thread
shanmukha1200 marked this conversation as resolved.
async with store:
await store.set_item("step-1", {"done": False})
item = await store.get_item("step-1")
print(item.value) # {"done": False}
```

> The default credential path uses `DefaultAzureCredential`, which requires the
> optional `azure-identity` package (`pip install azure-identity`). Alternatively,
> pass any `azure.core.credentials_async.AsyncTokenCredential` explicitly to
> `get_or_create()` and `azure-identity` is not needed.

Reads return typed `StateStoreItem` values; writes return typed item metadata and use
single-item `If-Match` concurrency. Session/conversation scoping is expressed in
the store name itself, and item expiry is controlled by the store's
`item_ttl_seconds` setting. See the [Durable State Store Guide](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/docs/state-store-guide.md)
for the full API, the store lifecycle, and common gotchas, and
[state_store_sample.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/samples/state_store_sample.py)
for a runnable end-to-end example.


### Configuring tracing

Tracing is enabled automatically when an Application Insights connection string is available:
Expand Down
Loading
Loading