agentgit.sessions package
Submodules
agentgit.sessions.external_session module
External session model for the LangGraph rollback agent system.
Represents user-visible sessions that contain multiple internal LangGraph sessions.
- class agentgit.sessions.external_session.ExternalSession(id=None, user_id=0, session_name='', created_at=None, updated_at=None, is_active=True, internal_session_ids=<factory>, current_internal_session_id=None, metadata=<factory>, branch_count=0, total_checkpoints=0)[source]
Bases:
objectExternal session model visible to users.
External sessions are the main conversation containers that users interact with. Each external session can contain multiple internal sessions created during rollback operations, forming a branching timeline structure.
- id
Unique identifier for the session.
- user_id
ID of the user who owns this session.
- session_name
User-friendly name for the session.
- created_at
When the session was created.
- updated_at
When the session was last updated.
- is_active
Whether the session is currently active.
- internal_session_ids
List of internal session IDs (supports LangGraph IDs).
- current_internal_session_id
The currently active internal session ID.
- metadata
Additional session metadata (model config, preferences, etc.).
- branch_count
Number of branches created from rollbacks.
- total_checkpoints
Total number of checkpoints across all internal sessions.
Example
>>> session = ExternalSession( ... user_id=1, ... session_name="Project Discussion", ... created_at=datetime.now() ... ) >>> session.add_internal_session("langgraph_session_123")
- add_internal_session(session_id, is_branch=False)[source]
Add a new internal session ID to this external session.
- Parameters:
session_id (
str) – The internal session ID to add.is_branch (
bool) – Whether this is a branch from a rollback.
-
branch_count:
int= 0
-
created_at:
Optional[datetime] = None
-
current_internal_session_id:
Optional[str] = None
- classmethod from_dict(data)[source]
Create an ExternalSession from dictionary data.
- Parameters:
data (
dict) – Dictionary containing session data.- Return type:
- Returns:
ExternalSession instance.
- get_branch_info()[source]
Get information about session branches.
- Return type:
Dict[str,Any]- Returns:
Dictionary with branch statistics.
- get_session_age()[source]
Get the age of the session in hours.
- Return type:
Optional[float]- Returns:
Age in hours if created_at is set, None otherwise.
-
id:
Optional[int] = None
-
internal_session_ids:
List[str]
-
is_active:
bool= True
-
metadata:
Dict[str,Any]
-
session_name:
str= ''
- set_current_internal_session(session_id)[source]
Set the current active internal session.
- Parameters:
session_id (
str) – The internal session ID to set as current.- Return type:
bool- Returns:
True if the session ID exists and was set, False otherwise.
- to_dict()[source]
Convert session to dictionary representation.
- Return type:
dict- Returns:
Dictionary with session data.
-
total_checkpoints:
int= 0
- update_metadata(metadata)[source]
Update session metadata.
- Parameters:
metadata (
Dict[str,Any]) – Metadata to merge with existing metadata.
-
updated_at:
Optional[datetime] = None
-
user_id:
int= 0
agentgit.sessions.internal_session module
Internal session model for the LangGraph rollback agent system.
Represents the actual LangGraph agent sessions within an external session.
- class agentgit.sessions.internal_session.InternalSession(id=None, external_session_id=0, langgraph_session_id='', session_state=<factory>, conversation_history=<factory>, created_at=None, is_current=True, checkpoint_count=0, parent_session_id=None, branch_point_checkpoint_id=None, tool_invocation_count=0, metadata=<factory>)[source]
Bases:
objectInternal session model for LangGraph agents.
Represents an actual LangGraph agent session that runs within an external session. Stores the session state and conversation history with support for branching timelines.
- id
Unique identifier for the internal session.
- external_session_id
ID of the parent external session.
- langgraph_session_id
The session ID (supports LangGraph IDs).
- session_state
The agent’s session state dictionary.
- conversation_history
List of conversation messages.
- created_at
When this internal session was created.
- is_current
Whether this is the current active session.
- checkpoint_count
Number of checkpoints created from this session.
- parent_session_id
ID of parent internal session (for branches).
- branch_point_checkpoint_id
ID of checkpoint this was branched from.
- tool_invocation_count
Total number of tool invocations in this session.
- metadata
Additional session metadata.
Example
>>> session = InternalSession( ... external_session_id=1, ... langgraph_session_id="langgraph_abc123", ... session_state={"counter": 0} ... )
- add_message(role, content, **kwargs)[source]
Add a message to the conversation history.
- Parameters:
role (
str) – The role of the message sender (user, assistant, system).content (
str) – The message content.**kwargs – Additional message metadata.
-
branch_point_checkpoint_id:
Optional[int] = None
-
checkpoint_count:
int= 0
-
conversation_history:
List[Dict[str,Any]]
- classmethod create_branch_from_checkpoint(checkpoint, external_session_id, parent_session_id)[source]
Create a new internal session branched from a checkpoint.
- Parameters:
checkpoint – The checkpoint to branch from.
external_session_id (
int) – ID of the external session.parent_session_id (
int) – ID of the parent internal session.
- Return type:
- Returns:
New InternalSession branched from the checkpoint.
-
created_at:
Optional[datetime] = None
-
external_session_id:
int= 0
- classmethod from_dict(data)[source]
Create an InternalSession from dictionary data.
- Parameters:
data (
dict) – Dictionary containing session data.- Return type:
- Returns:
InternalSession instance.
- get_branch_info()[source]
Get branch information for this session.
- Return type:
Dict[str,Any]- Returns:
Dictionary with branch details.
- get_statistics()[source]
Get session statistics.
- Return type:
Dict[str,Any]- Returns:
Dictionary with session statistics.
-
id:
Optional[int] = None
- increment_tool_count(count=1)[source]
Increment the tool invocation counter.
- Parameters:
count (
int) – Number to increment by.
- is_branch()[source]
Check if this session is a branch from another session.
- Return type:
bool- Returns:
True if this is a branched session.
-
is_current:
bool= True
-
langgraph_session_id:
str= ''
-
metadata:
Dict[str,Any]
-
parent_session_id:
Optional[int] = None
-
session_state:
Dict[str,Any]
- to_dict()[source]
Convert internal session to dictionary representation.
- Return type:
dict- Returns:
Dictionary with session data.
-
tool_invocation_count:
int= 0