Skip to content

SlidingWindowConversationManager

Defined in: src/conversation-manager/sliding-window-conversation-manager.ts:43

Implements a sliding window strategy for managing conversation history.

This class handles the logic of maintaining a conversation window that preserves tool usage pairs and avoids invalid window states. When the message count exceeds the window size, it will either truncate large tool results or remove the oldest messages while ensuring tool use/result pairs remain valid.

As a Plugin, it registers callbacks for:

  • AfterInvocationEvent: Applies sliding window management after each invocation
  • AfterModelCallEvent: Reduces context on overflow errors and requests retry
new SlidingWindowConversationManager(config?): SlidingWindowConversationManager;

Defined in: src/conversation-manager/sliding-window-conversation-manager.ts:59

Initialize the sliding window conversation manager.

ParameterTypeDescription
config?SlidingWindowConversationManagerConfigConfiguration options for the sliding window manager.

SlidingWindowConversationManager

get name(): string;

Defined in: src/conversation-manager/sliding-window-conversation-manager.ts:50

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/conversation-manager/sliding-window-conversation-manager.ts:73

Initialize the plugin by registering hooks with the agent.

Registers:

  • AfterInvocationEvent callback to apply sliding window management
  • AfterModelCallEvent callback to handle context overflow and request retry
ParameterTypeDescription
agentAgentDataThe agent to register hooks with

void

Plugin.initAgent