Metadata-Version: 2.4
Name: strands-agents-extensions
Version: 0.1.0
Summary: Community extensions for the Strands Agents SDK
Project-URL: Homepage, https://github.com/afarntrog/strands-agents-extensions
Project-URL: Repository, https://github.com/afarntrog/strands-agents-extensions
Author: afarntrog
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: strands-agents>=1.32.0
Provides-Extra: all
Requires-Dist: boto3>=1.28; extra == 'all'
Requires-Dist: litellm<=1.82.6; extra == 'all'
Provides-Extra: budget
Requires-Dist: litellm<=1.82.6; extra == 'budget'
Provides-Extra: dynamodb
Requires-Dist: boto3>=1.28; extra == 'dynamodb'
Provides-Extra: fallback
Provides-Extra: plugins
Requires-Dist: litellm<=1.82.6; extra == 'plugins'
Provides-Extra: rate-limiter
Provides-Extra: redaction
Provides-Extra: session-managers
Requires-Dist: boto3>=1.28; extra == 'session-managers'
Provides-Extra: sqlite
Description-Content-Type: text/markdown

# strands-agents-extensions

Community extensions for the Strands Agents SDK — session managers and plugins in one package with optional extras.

## Installation

Install the base package:

```bash
pip install strands-agents-extensions
```

Install with specific extras:

```bash
# SQLite session manager
pip install strands-agents-extensions[sqlite]

# DynamoDB session manager
pip install strands-agents-extensions[dynamodb]

# All plugins
pip install strands-agents-extensions[plugins]

# All session managers
pip install strands-agents-extensions[session-managers]

# Everything
pip install strands-agents-extensions[all]
```

## Quick Start

### Session Managers

```python
from strands_agents_extensions.session_managers import SQLiteSessionManager

# Create a SQLite-backed session manager
session_manager = SQLiteSessionManager(db_path="sessions.db")

# Use with Strands Agent
agent = Agent(
    session_manager=session_manager,
    # ... other config
)
```

### Plugins

```python
from strands_agents_extensions.plugins import BudgetPlugin, RateLimiterPlugin

# Add budget control to your agent
budget_plugin = BudgetPlugin(max_budget_usd=10.0)

# Add rate limiting
rate_limiter = RateLimiterPlugin(max_requests_per_minute=60)

agent = Agent(
    plugins=[budget_plugin, rate_limiter],
    # ... other config
)
```

## Available Extras

| Extra | Description | Dependencies |
|-------|-------------|--------------|
| `sqlite` | SQLite session manager | None (stdlib) |
| `dynamodb` | DynamoDB session manager | boto3>=1.28 |
| `budget` | Budget control plugin | litellm<=1.82.6 |
| `rate-limiter` | Rate limiting plugin | None |
| `redaction` | PII redaction plugin | None |
| `fallback` | Model fallback plugin | None |
| `session-managers` | All session managers | sqlite + dynamodb |
| `plugins` | All plugins | budget + rate-limiter + redaction + fallback |
| `all` | Everything | session-managers + plugins |

## Available Components

### Session Managers

- **SQLiteSessionManager**: Local SQLite-backed session storage with full conversation history
- **DynamoDBSessionManager**: AWS DynamoDB-backed session storage for distributed systems

### Plugins

- **BudgetPlugin**: Track and enforce token budget limits
- **RateLimiterPlugin**: Control request rate to avoid API throttling
- **RedactionPlugin**: Automatically redact PII from messages
- **FallbackPlugin**: Implement model fallback strategies on failures

## License

Apache-2.0

## Contributing

Contributions welcome! This is a community-maintained package for extending the Strands Agents SDK.
