Class: Ask::Agent::MemoryWrite

Inherits:
Tool
  • Object
show all
Defined in:
lib/ask/agent/memory_write.rb

Overview

Tool that saves facts to the session's durable memory (Memory). Injected into the session by Session.new(memory: memory).

Instance Method Summary collapse

Constructor Details

#initialize(memory:, session_id:) ⇒ MemoryWrite

Returns a new instance of MemoryWrite.

Parameters:

  • memory (Ask::Agent::Memory)
  • session_id (String)

    stamped into the entry metadata as provenance



21
22
23
24
25
# File 'lib/ask/agent/memory_write.rb', line 21

def initialize(memory:, session_id:)
  @memory = memory
  @session_id = session_id
  super()
end

Instance Method Details

#execute(content:) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/ask/agent/memory_write.rb', line 27

def execute(content:)
  entry = @memory.write(
    content,
    metadata: { session_id: @session_id, written_at: Time.now.iso8601 }
  )
  Ask::Result.ok(data: "Saved to memory (#{entry.id}): #{entry.content}")
rescue ArgumentError => e
  Ask::Result.error(message: e.message)
end