mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
ca810076e8
* Setting up * Readme * Add redis tests path to all-tests * First pass integration * Keep provider convention * First pass integration * add redis integration tests * update README.md * Add basic sample for redis integration * Add partitioning, add partition-aware tests, improve sample script * Fix code quality check * Try to resolve pytest check * Try to identify if pytest is the cause of failed checks * Re-enable tests * Rename redis test file * Removing some tests to narrow down issue * Revert, no difference * Delete temp files * Starting refactor of RedisProvider * Build dynamic schema builder, still need to do dynamic embedding model config * Add scope control * Complete first pass functionality with OpenAI + HF vectors -> Tests, Samples, Demo to follow * Fix code quality * attempt to identify rootcause of failed test * attempt to identify rootcause of failed test * Attempt to resolve code quality fail * Update pyproject.toml for foundry to pin azure-ai-projects == 1.1.0b3,azure-ai-agents == 1.2.0b3 * Add tests for redisprovider * Remove invalid tests * Add API key handling for openai vectorizer * Update uv.locl * Use master uv.lock * Begin sample file, add lazy index creation, fix faulty override * Index drop and reinit depends on drop_redis_index not overwrite * Add samples, threading included, escaped queries, verify threading works, sample README.md * Refactor filters * Opinionated vars * Allow filter expression combination * Try inline stubs for mypy * Address mypy errors * Better docstrings, tweaks for feedback * Tweak example 3 in redis_threads.py sample * adjust confusing name * Enrich docstrings * Add descriptions and comments to samples, externalize vectorizer choice, remove nltk and sentencetransformers dependnecy * Add descriptions and comments to samples, externalize vectorizer choice, remove nltk and sentencetransformers dependnecy * Incorporate initial feedback from dmytrostruk * Fix uv.lock * Attempt to resolve conflict * Use remote .tomls * Sanity check * fix tests * Remove hardcoded API key from samples * Fix incorrect env var * Make add and redis_search private * Fix tests relying on private funcs * Expand tests * Explainer comments to each test * Add a 'get_conversation_history' function to RedisProvider - This just returns messages in sequential order. Added 'created_at_*' timestamps to facilitate sequential recovery. function has to be manually invoked by user * Add agent-framework-redis to python/pyproject.toml * Remove get_conversation_history * improve redis context provider with pydantic techniques and safe index handling patterns * add RedisChatMessageStore * remove integration test :( * fix mypy error * Remove unused params * Redo schema validation to be order-invariant, handle attrs (previously throwing errors due to strict ==) * Expand explanation * Add ChatMessageStore example * Fix comments in redis_conversation.py * Resolving uv.lock conflict, update to match main * Fix test in redis provider * Apply suggestion from @ekzhu * Update python/packages/main/pyproject.toml --------- Co-authored-by: Tyler Hutcherson <tyler.hutcherson@redis.com> Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
# Get Started with Microsoft Agent Framework Redis
|
|
|
|
Please install this package as the extra for `agent-framework`:
|
|
|
|
```bash
|
|
pip install agent-framework[redis]
|
|
```
|
|
|
|
## 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](../../samples/getting_started/context_providers/redis/README.md) 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 chat message store examples](../../samples/getting_started/threads/redis_chat_message_store_thread.py) including:
|
|
- User session management
|
|
- Conversation persistence across restarts
|
|
- Thread 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
|
|
```bash
|
|
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
|