Memory
Session
Bases:Protocol
Protocol for session implementations.
Session stores conversation history for a specific session, allowingagents to maintain context without requiring explicit manual memory management.
Source code insrc/agents/memory/session.py
get_itemsasync
get_items(limit:int|None=None,)->list[TResponseInputItem]Retrieve the conversation history for this session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
limit | int | None | Maximum number of items to retrieve. If None, retrieves all items. When specified, returns the latest N items in chronological order. | None |
Returns:
| Type | Description |
|---|---|
list[TResponseInputItem] | List of input items representing the conversation history |
Source code insrc/agents/memory/session.py
add_itemsasync
add_items(items:list[TResponseInputItem])->NoneAdd new items to the conversation history.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
items | list[TResponseInputItem] | List of input items to add to the history | required |
pop_itemasync
pop_item()->TResponseInputItem|NoneRemove and return the most recent item from the session.
Returns:
| Type | Description |
|---|---|
TResponseInputItem | None | The most recent item if it exists, None if the session is empty |
SQLiteSession
Bases:SessionABC
SQLite-based implementation of session storage.
This implementation stores conversation history in a SQLite database.By default, uses an in-memory database that is lost when the process ends.For persistent storage, provide a file path.
Source code insrc/agents/memory/sqlite_session.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 | |
__init__
__init__(session_id:str,db_path:str|Path=":memory:",sessions_table:str="agent_sessions",messages_table:str="agent_messages",)Initialize the SQLite session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session_id | str | Unique identifier for the conversation session | required |
db_path | str |Path | Path to the SQLite database file. Defaults to ':memory:' (in-memory database) | ':memory:' |
sessions_table | str | Name of the table to store session metadata. Defaults to'agent_sessions' | 'agent_sessions' |
messages_table | str | Name of the table to store message data. Defaults to 'agent_messages' | 'agent_messages' |
Source code insrc/agents/memory/sqlite_session.py
get_itemsasync
get_items(limit:int|None=None,)->list[TResponseInputItem]Retrieve the conversation history for this session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
limit | int | None | Maximum number of items to retrieve. If None, retrieves all items. When specified, returns the latest N items in chronological order. | None |
Returns:
| Type | Description |
|---|---|
list[TResponseInputItem] | List of input items representing the conversation history |
Source code insrc/agents/memory/sqlite_session.py
add_itemsasync
add_items(items:list[TResponseInputItem])->NoneAdd new items to the conversation history.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
items | list[TResponseInputItem] | List of input items to add to the history | required |
Source code insrc/agents/memory/sqlite_session.py
pop_itemasync
pop_item()->TResponseInputItem|NoneRemove and return the most recent item from the session.
Returns:
| Type | Description |
|---|---|
TResponseInputItem | None | The most recent item if it exists, None if the session is empty |
Source code insrc/agents/memory/sqlite_session.py
clear_sessionasync
Clear all items for this session.
Source code insrc/agents/memory/sqlite_session.py
close
Close the database connection.
OpenAIConversationsSession
Bases:SessionABC