* [BREAKING] Redesign Python exception hierarchy Replace the flat ServiceException family with domain-scoped branches: - AgentException (with InvalidAuth, InvalidRequest, InvalidResponse, ContentFilter) - ChatClientException (same consistent suberrors) - IntegrationException (same + InitializationError) - WorkflowException (Runner, Convergence, Checkpoint, Validation, Action, Declarative) - ContentError (AdditionItemMismatch) - ToolException / ToolExecutionException (unchanged) - MiddlewareException / MiddlewareTermination (unchanged) Key changes: - All Service* exceptions removed (ServiceException, ServiceInitializationError, etc.) - AgentExecutionException split into AgentInvalidRequest/ResponseException - AgentInvocationError removed, split into AgentInvalidRequest/ResponseException - Workflow exceptions moved from _workflows/_exceptions.py into main exceptions.py - _workflows/__init__.py emptied; main __init__.py imports directly from submodules - Purview exceptions re-parented under IntegrationException hierarchy - Init validation errors use built-in ValueError/TypeError instead of custom exceptions - CODING_STANDARD.md updated with hierarchy design and rationale Fixes microsoft/agent-framework#3410 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clarify ToolException vs ToolExecutionException docstrings ToolException: base class for all tool-related exceptions (preconditions, connection/init failures). ToolExecutionException: runtime call failures (tool call failed, reconnect failed, MCP errors). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix remaining stale imports from agent_framework._workflows - azurefunctions: _context.py, _app.py, _serialization.py, test_func_utils.py used 'from agent_framework._workflows import X' which broke after emptying _workflows/__init__.py; changed to direct submodule imports - azure-ai-search: test still referenced ServiceInitializationError; updated to ValueError to match production code Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Get Started with Microsoft Agent Framework Redis
Please install this package via pip:
pip install agent-framework-redis --pre
Components
Memory Context Provider
The RedisProvider enables persistent context & memory capabilities for your agents, allowing them to remember user preferences and conversation context across sessions and threads.
Basic Usage Examples
Review the set of getting started examples for using the Redis context provider.
Redis Chat Message Store
The RedisChatMessageStore provides persistent conversation storage using Redis Lists, enabling chat history to survive application restarts and support distributed applications.
Key Features
- Persistent Storage: Messages survive application restarts
- Thread Isolation: Each conversation thread has its own Redis key
- Message Limits: Configurable automatic trimming of old messages
- Serialization Support: Full compatibility with Agent Framework thread serialization
- Production Ready: Connection pooling, error handling, and performance optimized
Basic Usage Examples
See the complete Redis history provider examples including:
- User session management
- Conversation persistence across restarts
- Session serialization and deserialization
- Automatic message trimming
- Error handling patterns
Installing and running Redis
You have 3 options to set-up Redis:
Option A: Local Redis with Docker
docker run --name redis -p 6379:6379 -d redis:8.0.3
Option B: Redis Cloud
Get a free db at https://redis.io/cloud/
Option C: Azure Managed Redis
Here's a quickstart guide to create Azure Managed Redis for as low as $12 monthly: https://learn.microsoft.com/en-us/azure/redis/quickstart-create-managed-redis