Skip to content

Sessions API Reference

Complete API reference for the session framework and backends.

Session Interface

type Session interface {
    Load(sessionID string) ([]openai.ChatCompletionMessageParamUnion, error)
    Save(sessionID string, messages []openai.ChatCompletionMessageParamUnion) error
}

Memory Session

In-memory session storage (thread-safe, zero dependencies).

func NewMemorySession() Session

Use cases: Development, testing, single-instance apps

File Session

File-based JSON storage with atomic writes.

func NewFileSession(directory string) (Session, error)

Parameters: - directory: Path to store session files

Use cases: Single-server production, persistent storage

Conversations Session

Cloud-based storage using OpenAI Conversations API.

func NewConversationsSession(client *openai.Client) (Session, error)

Parameters: - client: OpenAI client with API key

Use cases: Distributed systems, cloud deployments

Run Option

Use sessions with agents:

func WithSession(session Session, sessionID string) RunOption

Parameters: - session: Session backend implementation - sessionID: Unique identifier for the conversation

Example

sess := session.NewMemorySession()
result, err := runner.Run(
    ctx, agent, messages, nil,
    agents.WithSession(sess, "user-123"),
)

See Also