AgentDock Core Documentation

Session Management Overview

Sessions in AgentDock provide a foundation for stateful interactions between users and AI agents. This document outlines the core concepts, architecture, and design principles of the session management system.

Core Concepts

What is a Session?

A session represents a single conversation between a user and an agent. It maintains state across multiple interactions, ensuring continuity and context preservation. Each session is identified by a unique ID (SessionId) and contains all the state necessary for the conversation to progress.

Session Isolation

Session isolation is a critical feature that prevents different conversations from interfering with each other. This is especially important in multi-user environments where multiple conversations may be happening concurrently.

Single Source of Truth

AgentDock follows a "single source of truth" principle for session management, where:

  1. Session IDs are generated at a single point in the system
  2. Session state is managed centrally
  3. All components access the same session state

This design eliminates issues with duplicate sessions or inconsistent state.

Architecture

The session management system consists of several key components:

SessionManager

The SessionManager is a generic class that provides core session creation, retrieval, and update capabilities. It is designed to be extended for different types of session state.

Session State Types

AgentDock uses several types of session state:

  1. Base Session State - Core session data including the session ID
  2. AgentSession - Extended state for agent interactions
  3. OrchestrationState - State specific to orchestration workflows
  4. Tool-specific State - Some tools maintain their own session state

Session Lifecycle

  1. Creation - Sessions are created when a user starts a new conversation
  2. Access - Components access session state to perform operations
  3. Updates - State is updated as the conversation progresses
  4. Cleanup - Sessions are eventually deleted when they expire

Implementation Principles

Immutability

Session states are treated as immutable objects. Updates create new state objects rather than modifying existing ones, preventing race conditions in concurrent access.

Lazy Loading

Sessions are loaded only when needed, improving performance by avoiding unnecessary state creation.

TTL (Time-to-Live)

Sessions have a configurable TTL, after which they are automatically cleaned up to prevent memory leaks.

Conditional Creation

Session state is only created for components that need it, reducing memory usage.

Integration Points

LLM Integration

Sessions provide context for LLM interactions, including:

  • Conversation history
  • System prompts
  • Tool usage patterns

Tool System Integration

Tools access session state to:

  • Maintain tool-specific context
  • Track previous tool invocations
  • Share data between invocations

Orchestration Integration

The orchestration system relies on sessions to:

  • Track active steps
  • Manage tool availability
  • Store transition conditions
  • Record tool sequences

Conclusion

The session management system forms a critical foundation for AgentDock's stateful agent capabilities. By providing consistent, isolated, and efficient state management, it enables complex conversational interactions while maintaining performance and reliability.