class

Autobot::Agent::MemoryManager

Inherits Reference < Object

Manages memory consolidation for sessions.

Responsible for:

  • Determining when consolidation is needed
  • Converting old messages into summarized memory
  • Updating long-term memory and history files
  • Trimming session messages after consolidation

Constants

DISABLED_MEMORY_WINDOW = 0

Memory consolidation settings

Log = ::Log.for("agent.memory_manager")
MAX_KEEP_COUNT = 10
MAX_MESSAGES_WITHOUT_CONSOLIDATION = 10
MIN_KEEP_COUNT = 2

Constructors

new(workspace : Path, provider : Providers::Provider, model : String, memory_window : Int32, sessions : Session::Manager)
Source

Instance methods

consolidate_if_needed(session : Session::Session) : Nil

Check if session needs consolidation and perform it if necessary.

Trims the session synchronously to avoid racing with the agent loop's save_to_session. The LLM summarization runs in a background fiber and only writes to memory files (no session mutation).

Source
enabled?

Check if consolidation is enabled

Source
trim_if_disabled(session : Session::Session) : Nil

Trim messages when consolidation is disabled

Source