Skip to main content

openai-agents-session

PyPI version CI codecov Python versions License: MIT

Redis and DynamoDB session backends for openai-agents-python.

Installation

Install with your preferred backend:

# Redis only
pip install "openai-agents-session[redis]"

# DynamoDB only
pip install "openai-agents-session[dynamodb]"

# Both backends
pip install "openai-agents-session[all]"

Quick Start

Redis Session

import redis.asyncio as redis
from agents import Agent, Runner
from openai_agents_session import RedisSession

# Create Redis client
client = redis.from_url("redis://localhost:6379")

# Create session with optional TTL
session = RedisSession(
    session_id="user-123",
    redis_client=client,
    ttl=3600,  # 1 hour expiration
)

# Use with openai-agents
agent = Agent(name="Assistant", instructions="You are a helpful assistant.")
runner = Runner(agent=agent, session=session)

# Run conversation
result = await runner.run("Hello!")
print(result.final_output)

# Continue the conversation (history is preserved)
result = await runner.run("What did I just say?")
print(result.final_output)

DynamoDB Session

from aiobotocore.session import get_session
from agents import Agent, Runner
from openai_agents_session import DynamoDBSession

# Create DynamoDB client
boto_session = get_session()
async with boto_session.create_client("dynamodb", region_name="us-east-1") as client:
    # Create session
    session = DynamoDBSession(
        session_id="user-123",
        dynamodb_client=client,
        table_name="agent_sessions",
        ttl_seconds=3600,  # 1 hour expiration
    )

    # Use with openai-agents
    agent = Agent(name="Assistant", instructions="You are a helpful assistant.")
    runner = Runner(agent=agent, session=session)

    result = await runner.run("Hello!")
    print(result.final_output)

DynamoDB Table Setup

Create a DynamoDB table with the following schema:

Attribute Type Key
session_id String Partition Key

For TTL support, enable Time to Live with attribute name ttl.

Using AWS CLI

aws dynamodb create-table \
    --table-name agent_sessions \
    --attribute-definitions AttributeName=session_id,AttributeType=S \
    --key-schema AttributeName=session_id,KeyType=HASH \
    --billing-mode PAY_PER_REQUEST

# Enable TTL
aws dynamodb update-time-to-live \
    --table-name agent_sessions \
    --time-to-live-specification Enabled=true,AttributeName=ttl

Using Helper Function (Development Only)

from openai_agents_session.dynamodb import create_table_if_not_exists

await create_table_if_not_exists(client, "agent_sessions", enable_ttl=True)

API Reference

RedisSession

RedisSession(
    session_id: str,           # Unique session identifier
    redis_client: Redis,       # Async Redis client
    key_prefix: str = "openai_agents_session",  # Redis key prefix
    ttl: int | None = None,    # TTL in seconds (None = no expiration)
)

DynamoDBSession

DynamoDBSession(
    session_id: str,           # Unique session identifier
    dynamodb_client: DynamoDBClient,  # aiobotocore DynamoDB client
    table_name: str,           # DynamoDB table name
    ttl_seconds: int | None = None,   # TTL in seconds (None = no expiration)
)

Common Methods (SessionABC)

Method Description
get_items(limit=None) Get conversation history (most recent limit items)
add_items(items) Add items to conversation history
pop_item() Remove and return the most recent item
clear_session() Delete all items in the session

Development

# Clone the repository
git clone https://github.com/xncbf/openai-agents-session.git
cd openai-agents-session

# Install dependencies
uv sync --all-extras

# Run linter
uv run ruff check .

# Run formatter
uv run ruff format .

# Run type checker
uv run ty check src/

# Run tests
uv run pytest

# Run tests with coverage
uv run pytest --cov

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests.

Metadata

Release files for openai-agents-session 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openai-agents-session 0.1.0
File Size Uploaded Provenance
openai_agents_session-0.1.0.tar.gz 10.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for openai-agents-session 0.1.0
File Interpreter ABI Platform
openai_agents_session-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.2 kB

Release files / openai_agents_session-0.1.0.tar.gz

Download URL openai_agents_session-0.1.0.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b9ebdcf1dd913ded550f5f6a0ba2996f98279a9b93cc6b39e74c40a02fb63803
BLAKE2b-256 checksum
How to use checksums
21f097fd57de96459e52506bcf4625e66fdf856c1dc6f5096a7a48fed1e15aa6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.

Transparency log

Release files / openai_agents_session-0.1.0-py3-none-any.whl

Download URL openai_agents_session-0.1.0-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af9865eda7e570f4e267560aa55a6f1f4fea25473ebdbec74d800715106b5c84
BLAKE2b-256 checksum
How to use checksums
0df6e7a6a6ccb9843ae790d21ee9cec76ff8472ec1b4b0e2cddb0cab476283bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.

Transparency log

Security for openai-agents-session 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for openai_agents_session-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page