Skip to content
Open
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
db1c0b0
Implement DaprSession for distributed session management and update M…
filintod Oct 19, 2025
f17fe4f
revert minor doc change
filintod Oct 19, 2025
eefd150
Merge branch 'main' into add-dapr-session
filintod Oct 19, 2025
ffbb8ae
add missing consistency in get methods, tests, use constants for cons…
filintod Oct 19, 2025
0726985
use consistency constants in more places
filintod Oct 19, 2025
d3a558c
increase coverage to be above 95% limit. update docs, add a couple ed…
filintod Oct 20, 2025
7c3aef6
Merge branch 'main' into add-dapr-session
filintod Oct 20, 2025
ade9144
mention encrypted session support in dapr statestore
filintod Oct 20, 2025
23136fa
improve docs, following openai cookbook suggestions
filintod Oct 20, 2025
40a65dc
pros/cons
filintod Oct 20, 2025
1c99128
make consistency constants part of public interface again
filintod Oct 20, 2025
f7e4769
update example to make the devex better, added reference to env var t…
filintod Oct 20, 2025
5ea717e
minor doc update
filintod Oct 21, 2025
f2341d3
Merge branch 'main' into add-dapr-session
filintod Oct 21, 2025
881fd03
remove extra file push by mistake
filintod Oct 21, 2025
d278e7a
Merge branch 'main' into add-dapr-session
filintod Oct 21, 2025
8f34021
correct docstring constant name
filintod Oct 21, 2025
3270020
feedback
filintod Oct 21, 2025
528b6af
let's try simpler let's aggressive docker check
filintod Oct 21, 2025
f4519df
Merge branch 'main' into add-dapr-session
filintod Oct 21, 2025
af03519
incorporate feedback, also add new context manager for session to aut…
filintod Oct 21, 2025
b8881b7
Merge branch 'main' into add-dapr-session
filintod Oct 21, 2025
42c802c
make unit test a unit test (not trying to connect to dapr)
filintod Oct 21, 2025
b0fed87
Merge branch 'main' into add-dapr-session
filintod Oct 21, 2025
7d444c4
Merge branch 'main' into add-dapr-session
filintod Oct 22, 2025
fac26d0
make example experience better by setting up components and starting …
filintod Oct 22, 2025
078e7d1
Merge branch 'main' into add-dapr-session
filintod Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/ref/extensions/memory/dapr_session.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ::: agents.extensions.memory.dapr_session.DaprSession

9 changes: 9 additions & 0 deletions docs/sessions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ session = SQLAlchemySession("user_123", engine=engine, create_tables=True)

See [SQLAlchemy Sessions](sqlalchemy_session.md) for detailed documentation.



### Advanced SQLite sessions

Enhanced SQLite sessions with conversation branching, usage analytics, and structured queries:
Expand Down Expand Up @@ -247,6 +249,10 @@ result = await Runner.run(agent, "Hello", session=session)

See [Encrypted Sessions](encrypted_session.md) for detailed documentation.

### Other session types

There are a few more built-in options. Please refer to `examples/memory/` and source code under `extensions/memory/`.

## Session management

### Session ID naming
Expand All @@ -262,6 +268,8 @@ Use meaningful session IDs that help you organize conversations:
- Use in-memory SQLite (`SQLiteSession("session_id")`) for temporary conversations
- Use file-based SQLite (`SQLiteSession("session_id", "path/to/db.sqlite")`) for persistent conversations
- Use SQLAlchemy-powered sessions (`SQLAlchemySession("session_id", engine=engine, create_tables=True)`) for production systems with existing databases supported by SQLAlchemy
- Use Dapr state store sessions (`DaprSession.from_address("session_id", state_store_name="statestore", dapr_address="localhost:50001")`) for productioncloud-native deployments with support for
30+ database backends with built-in telemetry, tracing, and data isolation
- Use OpenAI-hosted storage (`OpenAIConversationsSession()`) when you prefer to store history in the OpenAI Conversations API
- Use encrypted sessions (`EncryptedSession(session_id, underlying_session, encryption_key)`) to wrap any session with transparent encryption and TTL-based expiration
- Consider implementing custom session backends for other production systems (Redis, Django, etc.) for more advanced use cases
Expand Down Expand Up @@ -427,5 +435,6 @@ For detailed API documentation, see:
- [`OpenAIConversationsSession`][agents.memory.OpenAIConversationsSession] - OpenAI Conversations API implementation
- [`SQLiteSession`][agents.memory.sqlite_session.SQLiteSession] - Basic SQLite implementation
- [`SQLAlchemySession`][agents.extensions.memory.sqlalchemy_session.SQLAlchemySession] - SQLAlchemy-powered implementation
- [`DaprSession`][agents.extensions.memory.dapr_session.DaprSession] - Dapr state store implementation
- [`AdvancedSQLiteSession`][agents.extensions.memory.advanced_sqlite_session.AdvancedSQLiteSession] - Enhanced SQLite with branching and analytics
- [`EncryptedSession`][agents.extensions.memory.encrypt_session.EncryptedSession] - Encrypted wrapper for any session
Loading