Packages
AI agent framework for Elixir built on OTP. TEA-based agents with crash isolation, inter-agent messaging, team supervision, and real SSE streaming to Anthropic, OpenAI, Ollama, and more.
Current section
Files
Jump to
Current section
Files
lib/raxol/agent/actions/memory/remember.ex
defmodule Raxol.Agent.Actions.Memory.Remember do
@moduledoc "Persist a fact to cross-session memory."
use Raxol.Agent.Action,
name: "memory_remember",
description:
"Persist a fact to cross-session memory so it can be recalled in future sessions.",
schema: [
input: [
content: [type: :string, required: true, description: "The fact to remember."],
type: [
type: :string,
description: "One of: decision, pattern, gotcha, link, insight, note."
],
tags: [type: {:list, :string}, description: "Optional tags to aid retrieval."]
],
output: [
id: [type: :string],
stored: [type: :boolean]
]
]
alias Raxol.Agent.Memory.Record
@impl true
def run(params, context) do
case Map.fetch(context, :memory) do
{:ok, {mod, opts}} -> remember(mod, opts, params)
:error -> {:error, :memory_not_configured}
end
end
defp remember(mod, opts, params) do
record =
Record.new(%{
content: params.content,
type: Map.get(params, :type),
tags: Map.get(params, :tags, []),
agent_id: Keyword.get(opts, :agent_id)
})
case mod.store(record, opts) do
{:ok, stored} -> {:ok, %{id: stored.id, stored: true}}
{:error, reason} -> {:error, reason}
end
end
end