Python: Add Cosmos DB NoSQL Checkpoint Storage for Python Workflows (#4916)
* Add CosmosCheckpointStorage for Python workflow checkpointing
Add native Cosmos DB NoSQL support for workflow checkpoint storage in the
Python agent-framework-azure-cosmos package, achieving parity with the
existing .NET CosmosCheckpointStore.
New files:
- _checkpoint_storage.py: CosmosCheckpointStorage implementing the
CheckpointStorage protocol with 6 methods (save, load, list_checkpoints,
delete, get_latest, list_checkpoint_ids)
- test_cosmos_checkpoint_storage.py: Unit and integration tests
- workflow_checkpointing.py: Sample demonstrating Cosmos DB-backed
workflow checkpoint/resume
Auth support:
- Managed identity / RBAC via Azure credential objects
(DefaultAzureCredential, ManagedIdentityCredential, etc.)
- Key-based auth via account key string or AZURE_COSMOS_KEY env var
- Pre-created CosmosClient or ContainerProxy
Key design decisions:
- Partition key: /workflow_name for efficient per-workflow queries
- Serialization: Reuses encode/decode_checkpoint_value for full Python
object fidelity (hybrid JSON + pickle approach)
- Container auto-creation via create_container_if_not_exists
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adding cosmos checkpointer
* Resolving comments
* Fixing builds
* Adding sample for history provider and checkpoint storage
* Resolving comments
* fixing builds
* Resolving comments
---------
Co-authored-by: Aayush Kataria <aayushkataria@Aayushs-MacBook-Pro-2.local>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>