Class: RubynCode::Hooks::BuiltIn::AutoCompactHook

Inherits:
Object
  • Object
show all
Defined in:
lib/rubyn_code/hooks/built_in.rb

Overview

Triggers a compaction check after each LLM call to keep the context window within bounds.

Expects the :post_llm_call context to include:

- conversation: the Agent::Conversation instance
- context_manager: a Context::Manager instance (optional)

Instance Method Summary collapse

Constructor Details

#initialize(context_manager:) ⇒ AutoCompactHook

Returns a new instance of AutoCompactHook.

Parameters:



86
87
88
# File 'lib/rubyn_code/hooks/built_in.rb', line 86

def initialize(context_manager:)
  @context_manager = context_manager
end

Instance Method Details

#call(conversation: nil, **_kwargs) ⇒ void

This method returns an undefined value.

Parameters:

  • conversation (Agent::Conversation) (defaults to: nil)

    the current conversation

  • kwargs (Hash)

    remaining context (ignored)



93
94
95
96
97
98
99
# File 'lib/rubyn_code/hooks/built_in.rb', line 93

def call(conversation: nil, **_kwargs)
  return unless @context_manager && conversation

  @context_manager.auto_compact(conversation)
rescue NoMethodError
  # auto_compact not yet available on this context manager
end