Skip to content

SessionManager

Defined in: src/session/session-manager.ts:92

Manages session persistence for agents, enabling conversation state to be saved and restored across invocations using pluggable storage backends.

Also supports multi-agent orchestrators (Graph, Swarm) via the MultiAgentPlugin interface. Scope is auto-detected based on whether initAgent or initMultiAgent is called.

import { SessionManager, FileStorage } from '@strands-agents/sdk'
const session = new SessionManager({
sessionId: 'my-session',
storage: { snapshot: new FileStorage() },
})
const agent = new Agent({ sessionManager: session })
new SessionManager(config): SessionManager;

Defined in: src/session/session-manager.ts:107

| Parameter | Type | | --------- | -------------------------------------------------- | | config | SessionManagerConfig |

SessionManager

get name(): string;

Defined in: src/session/session-manager.ts:103

Unique identifier for this plugin.

string

A stable string identifier for the plugin. Used for logging, duplicate detection, and plugin management.

For strands-vended plugins, names should be prefixed with strands:.

Plugin.name

initAgent(agent): void;

Defined in: src/session/session-manager.ts:116

Initializes the plugin by registering lifecycle hook callbacks.

| Parameter | Type | | --------- | ------------ | | agent | LocalAgent |

void

Plugin.initAgent


saveSnapshot(params): Promise<void>;

Defined in: src/session/session-manager.ts:144

Saves a snapshot of the target’s current state.

| Parameter | Type | | ----------------- | --------------------------------------------------- | | params | { target: LocalAgent; isLatest: boolean; } | | params.target | LocalAgent | | params.isLatest | boolean |

Promise<void>

saveSnapshot(params): Promise<void>;

Defined in: src/session/session-manager.ts:145

Saves a snapshot of the target’s current state.

| Parameter | Type | | ----------------- | ---------------------------------------------------------------------------------------------------------------- | | params | { target: Graph | Swarm; state?: MultiAgentState; isLatest: boolean; } | | params.target | Graph | Swarm | | params.state? | MultiAgentState | | params.isLatest | boolean |

Promise<void>


deleteSession(): Promise<void>;

Defined in: src/session/session-manager.ts:163

Deletes all snapshots and manifests for this session from storage.

Promise<void>


listSnapshotIds(params): Promise<string[]>;

Defined in: src/session/session-manager.ts:168

Lists all available immutable snapshot IDs for the given agent target.

| Parameter | Type | | -------------------- | ------------------------------------------------------------------------- | | params | { target: LocalAgent; limit?: number; startAfter?: string; } | | params.target | LocalAgent | | params.limit? | number | | params.startAfter? | string |

Promise<string[]>


restoreSnapshot(params): Promise<boolean>;

Defined in: src/session/session-manager.ts:177

Loads a snapshot from storage and restores it into the target. Returns false if no snapshot exists.

| Parameter | Type | | -------------------- | ----------------------------------------------------- | | params | { target: LocalAgent; snapshotId?: string; } | | params.target | LocalAgent | | params.snapshotId? | string |

Promise<boolean>

restoreSnapshot(params): Promise<boolean>;

Defined in: src/session/session-manager.ts:178

Loads a snapshot from storage and restores it into the target. Returns false if no snapshot exists.

| Parameter | Type | | -------------------- | ------------------------------------------------------------------------------------------------------------------ | | params | { target: Graph | Swarm; state?: MultiAgentState; snapshotId?: string; } | | params.target | Graph | Swarm | | params.state? | MultiAgentState | | params.snapshotId? | string |

Promise<boolean>


initMultiAgent(orchestrator): void;

Defined in: src/session/session-manager.ts:277

Initializes the multi-agent plugin by registering orchestrator lifecycle hooks.

| Parameter | Type | | -------------- | ------------ | | orchestrator | MultiAgent |

void

MultiAgentPlugin.initMultiAgent