Module: LLM::Sequel::Agent

Defined in:
lib/llm/sequel/agent.rb

Overview

Sequel plugin for persisting LLM::Agent state.

This wrapper reuses the same record-backed runtime surface as Plugin, but builds an LLM::Agent instead of an LLM::Context. Agent defaults such as model, tools, schema, instructions, and concurrency are configured on the model class and forwarded to an internal agent subclass.

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Constant Summary collapse

EMPTY_HASH =
LLM::Sequel::Plugin::EMPTY_HASH
DEFAULT_USAGE_COLUMNS =
LLM::Sequel::Plugin::DEFAULT_USAGE_COLUMNS
DEFAULTS =
LLM::Sequel::Plugin::DEFAULTS

Class Method Summary collapse

Class Method Details

.apply(model) ⇒ Object



17
18
19
20
21
# File 'lib/llm/sequel/agent.rb', line 17

def self.apply(model, **)
  model.extend ClassMethods
  model.include LLM::Sequel::Plugin::InstanceMethods
  model.include InstanceMethods
end

.configure(model, options = EMPTY_HASH, &block) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/llm/sequel/agent.rb', line 23

def self.configure(model, options = EMPTY_HASH, &block)
  options = DEFAULTS.merge(options)
  usage_columns = DEFAULT_USAGE_COLUMNS.merge(options[:usage_columns] || EMPTY_HASH)
  model.instance_variable_set(
    :@llm_agent_options,
    options.merge(usage_columns: usage_columns.freeze).freeze
  )
  model.instance_exec(&block) if block
end