Skip to content

Commit 9a1aa7d

Browse files
lavish0000seratch
andauthored
fix(memory): #2618 make SQLiteSession satisfy Session protocol (#2619)
Co-authored-by: Kazuhiro Sera <seratch@openai.com>
1 parent c0eac19 commit 9a1aa7d

File tree

8 files changed

+28
-0
lines changed

8 files changed

+28
-0
lines changed

examples/memory/file_session.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@
1414
from uuid import uuid4
1515

1616
from agents.memory.session import Session
17+
from agents.memory.session_settings import SessionSettings
1718

1819

1920
class FileSession(Session):
2021
"""Persist session items to a JSON file on disk."""
2122

23+
session_settings: SessionSettings | None = None
24+
2225
def __init__(self, *, dir: str | Path | None = None, session_id: str | None = None) -> None:
2326
self._dir = Path(dir) if dir is not None else Path.cwd() / ".agents-sessions"
2427
self.session_id = session_id or ""

src/agents/extensions/memory/dapr_session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
class DaprSession(SessionABC):
5858
"""Dapr State Store implementation of :pyclass:`agents.memory.session.Session`."""
5959

60+
session_settings: SessionSettings | None = None
61+
6062
def __init__(
6163
self,
6264
session_id: str,

src/agents/extensions/memory/redis_session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
class RedisSession(SessionABC):
4343
"""Redis implementation of :pyclass:`agents.memory.session.Session`."""
4444

45+
session_settings: SessionSettings | None = None
46+
4547
def __init__(
4648
self,
4749
session_id: str,

src/agents/extensions/memory/sqlalchemy_session.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class SQLAlchemySession(SessionABC):
5656
_metadata: MetaData
5757
_sessions: Table
5858
_messages: Table
59+
session_settings: SessionSettings | None = None
5960

6061
def __init__(
6162
self,

src/agents/memory/openai_conversations_session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ async def start_openai_conversations_session(openai_client: AsyncOpenAI | None =
2121

2222

2323
class OpenAIConversationsSession(SessionABC):
24+
session_settings: SessionSettings | None = None
25+
2426
def __init__(
2527
self,
2628
*,

src/agents/memory/sqlite_session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class SQLiteSession(SessionABC):
1919
For persistent storage, provide a file path.
2020
"""
2121

22+
session_settings: SessionSettings | None = None
23+
2224
def __init__(
2325
self,
2426
session_id: str,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from agents import Session, SQLiteSession
2+
3+
4+
def _accept_session(session: Session) -> None:
5+
"""Static typing helper: mypy should accept concrete sessions here."""
6+
7+
8+
def test_sqlite_session_satisfies_session_protocol() -> None:
9+
session = SQLiteSession("session_protocol_test")
10+
11+
_accept_session(session)
12+
13+
assert isinstance(session, Session)

tests/utils/simple_session.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44

55
from agents.items import TResponseInputItem
66
from agents.memory.session import Session
7+
from agents.memory.session_settings import SessionSettings
78

89

910
class SimpleListSession(Session):
1011
"""A minimal in-memory session implementation for tests."""
1112

13+
session_settings: SessionSettings | None = None
14+
1215
def __init__(
1316
self,
1417
session_id: str = "test",

0 commit comments

Comments
 (0)