Class: SwarmSDK::V3::MemoryBuilder
- Inherits:
-
Object
- Object
- SwarmSDK::V3::MemoryBuilder
- Defined in:
- lib/swarm_sdk/v3/agent_builder.rb
Overview
Sub-builder for memory configuration within AgentBuilder
Collects memory-related settings and returns them as a hash with the ‘memory_` prefix expected by AgentDefinition.
Constant Summary collapse
- VALID_ADAPTER_TYPES =
Valid adapter type symbols
[:sqlite, :filesystem].freeze
Class Method Summary collapse
-
.build { ... } ⇒ Hash
Build memory config from a DSL block.
Instance Method Summary collapse
-
#adapter(value) ⇒ void
Set the memory adapter.
-
#associative(value) ⇒ void
Enable associative memory.
-
#directory(value) ⇒ void
Set memory storage directory.
-
#initialize ⇒ MemoryBuilder
constructor
A new instance of MemoryBuilder.
-
#keyword_weight(value) ⇒ void
Set keyword search weight for hybrid retrieval.
-
#retrieval_top_k(value) ⇒ void
Set number of memory cards to retrieve per turn.
-
#semantic_weight(value) ⇒ void
Set semantic search weight for hybrid retrieval.
-
#stm_turns(value) ⇒ void
Set number of recent turns to keep in short-term memory.
-
#to_h ⇒ Hash
Return collected memory configuration.
Constructor Details
#initialize ⇒ MemoryBuilder
Returns a new instance of MemoryBuilder.
437 438 439 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 437 def initialize @config = {} end |
Class Method Details
.build { ... } ⇒ Hash
Build memory config from a DSL block
430 431 432 433 434 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 430 def build(&block) builder = new builder.instance_eval(&block) builder.to_h end |
Instance Method Details
#adapter(value) ⇒ void
This method returns an undefined value.
Set the memory adapter
496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 496 def adapter(value) case value when Symbol unless VALID_ADAPTER_TYPES.include?(value) raise ArgumentError, "Unknown memory adapter type: #{value.inspect}. " \ "Valid types are: #{VALID_ADAPTER_TYPES.map(&:inspect).join(", ")}" end when Memory::Adapters::Base # Valid adapter instance else raise ArgumentError, "Memory adapter must be a Symbol (#{VALID_ADAPTER_TYPES.map(&:inspect).join(", ")}) " \ "or an instance of Memory::Adapters::Base, got: #{value.class}" end @config[:memory_adapter] = value end |
#associative(value) ⇒ void
This method returns an undefined value.
Enable associative memory
When enabled, the agent naturally surfaces tangential memories in conversation, like a person who brings up related topics. Exploration cards get a distinct “YOU ALSO REMEMBER” section and guidance is injected into the system prompt.
521 522 523 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 521 def associative(value) @config[:memory_associative] = value end |
#directory(value) ⇒ void
This method returns an undefined value.
Set memory storage directory
445 446 447 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 445 def directory(value) @config[:memory_directory] = value end |
#keyword_weight(value) ⇒ void
This method returns an undefined value.
Set keyword search weight for hybrid retrieval
477 478 479 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 477 def keyword_weight(value) @config[:memory_keyword_weight] = value end |
#retrieval_top_k(value) ⇒ void
This method returns an undefined value.
Set number of memory cards to retrieve per turn
461 462 463 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 461 def retrieval_top_k(value) @config[:memory_retrieval_top_k] = value end |
#semantic_weight(value) ⇒ void
This method returns an undefined value.
Set semantic search weight for hybrid retrieval
469 470 471 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 469 def semantic_weight(value) @config[:memory_semantic_weight] = value end |
#stm_turns(value) ⇒ void
This method returns an undefined value.
Set number of recent turns to keep in short-term memory
453 454 455 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 453 def stm_turns(value) @config[:memory_stm_turns] = value end |
#to_h ⇒ Hash
Return collected memory configuration
528 529 530 |
# File 'lib/swarm_sdk/v3/agent_builder.rb', line 528 def to_h @config.dup end |