Redis-based session management for persisting and managing agent sessions in the Strands Agents SDK
Project description
strands-redis-session-manager
Redis-based session management for persisting and managing agent sessions in the Strands Agents SDK.
Description
A community package for Amazon Strands Agents that provides Redis-based session persistence and management. This package allows you to store and retrieve agent conversation history and state using Redis as the backend, enabling stateful conversations across multiple interactions.
Features
- 🔄 Session persistence with Redis
- 💾 Store and retrieve agent conversation history
- 🚀 Simple integration with Strands Agents SDK
- 🔧 Configurable
- 🐍 Python 3.12+ support
Requirements
- Python 3.12+
- Strands Agents SDK 1.16.0+
- Redis 7.0.1+
Installation
pip install strands-agents strands-redis-session-manager
Quick Start
from redis_session_manager import RedisSessionManager
from strands import Agent
# Initialize Redis session manager
session_manager = RedisSessionManager(
session_id='<session_id>',
redis_client=get_redis_client(),
ttl_seconds=600, # Optional[int]
...
)
# Create your agent with session management
agent = Agent(
agent_id='my-agent',
model=your_model,
session_manager=session_manager,
...
)
# Use session manager to persist conversations
# (See examples/ directory for detailed usage)
Running Locally
Prerequisites
- Clone the repository:
git clone https://github.com/lekhnath/strands-redis-session-manager.git
cd strands-redis-session-manager
- Set up Python environment (Python 3.12+):
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies:
pip install -e ".[dev]"
# or using uv
uv pip install -e .
- Start Redis (using Docker):
docker compose -f compose.redis.yml up -d
- Copy environment variables:
cp .env-example .env
# Edit .env with your configuration
Running Tests
Tests use fakeredis for in-memory testing, so no Redis server is required.
Run integration tests:
make test-integration
# or directly with pytest
pytest tests/integration/ -v
Run all tests:
make test
# or directly with pytest
pytest tests/ -v
Run tests with coverage:
make test-cov
# or directly with pytest
pytest tests/ --cov=redis_session_manager --cov-report=term-missing
Run tests with HTML coverage report:
make test-cov-html
# Opens coverage report in htmlcov/index.html
Additional Make Commands
make install # Install dependencies
make lint # Run linter
make format # Format code
make help # Show all available commands
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License.
Links
Acknowledgments
Thanks to the Strands Agents team for creating an excellent SDK for building AI agents.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strands_redis_session_manager-0.1.0.tar.gz.
File metadata
- Download URL: strands_redis_session_manager-0.1.0.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55c63890da3001b9c1c5571770f911e93c07cad1e903fc3c64692881f51cfa74
|
|
| MD5 |
2e0ad5487f04f5d0f0773c5e15e77bad
|
|
| BLAKE2b-256 |
da9d28e0fbda62455a04907903bb95ac4a010fcd7885d29abe78512c49cad7ea
|
File details
Details for the file strands_redis_session_manager-0.1.0-py3-none-any.whl.
File metadata
- Download URL: strands_redis_session_manager-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3608fd0700cb36de1a0bfa84fe586382451b2032e31df1b35f8e34556a203261
|
|
| MD5 |
63b954a2f82238768f5d33529789e72d
|
|
| BLAKE2b-256 |
7c7c926e63e39202d43cdbcec6e7549d6085c4fa6e847ef284dcad80c6213498
|