Skip to content

Memory tools

Selu provides built-in memory tools that agents can call without a capability container. They’re handled directly by the orchestrator and are subject to tool policy like any other tool.

There are three distinct memory concepts. Understanding the boundaries helps you write agent prompts and capability prompts that use memory correctly.

ConceptTool(s)ScopeInjected automatically?
User profile (“About you”)—All agents, all sessionsYes — always
Shared notesmemory_remember, memory_searchAll agents, one userNo — agent must search
Agent lessonsManaged by Selu automaticallyOne agent, one userYes — active lessons only

The user profile is edited by the user on the Personality page. It is injected into every agent’s context at the start of every turn. Agents cannot write to it directly.

Shared notes are user-scoped and searchable. Any agent can save a note, and any agent can find it later. The saving agent is recorded as provenance but doesn’t affect access.

When to use shared notes:

  • Persistent facts that are relevant across multiple agents (e.g. “user prefers metric units”, “user’s main email address”)
  • Context that should survive beyond a single conversation

When not to use shared notes:

  • One-off conversational details
  • Temporary state (use store_set instead)
  • Secrets or credentials

Lessons capture behavioral guidance for one specific agent. They’re generated automatically by Selu’s reflection process — agents don’t call a tool to create them. Active lessons are injected into the agent’s context automatically.


Search the user’s shared notes for relevant context.

ParameterTypeRequiredDescription
querystringyesNatural-language query describing the information you’re looking for

Returns: A list of matching notes ranked by relevance.

When to call it: At the start of a turn when stable past context is likely relevant — for example, when the user asks about something they may have discussed before, or when you need to recall a preference or fact.

When not to call it: On every single turn regardless of relevance. Searching unnecessarily adds latency and noise.

Example agent prompt guidance
# In your agent.md or capability prompt.md:
# Use memory_search when the user's question likely relates to something
# they've told you before — preferences, recurring topics, personal facts.
# Don't search on every message; use judgment.

Save a note to the user’s shared notes.

ParameterTypeRequiredDescription
contentstringyesThe fact or context to save, written in natural language

Returns: Confirmation that the note was saved.

When to call it: When the user shares a durable, reusable fact — something that will be useful across future conversations or for other agents. Examples: a stated preference, a recurring goal, a stable personal fact.

When not to call it:

  • For temporary or one-off information
  • For secrets, passwords, or tokens
  • For mutable state that changes frequently (use store_set instead)
  • For things the user didn’t explicitly share or that are obvious from the current turn only

Schedule a one-shot reminder for the user at a specific future time.

ParameterTypeRequiredDescription
promptstringyesWhat the agent should do or say when the reminder fires
whenstringyesNatural-language time expression (e.g. “tomorrow at 9am”, “in 20 minutes”, “next Friday morning”)

Returns: Confirmation with the parsed fire time.

When to call it: When the user asks to be reminded of something during conversation. Prefer calling set_reminder directly over telling the user to use the /remind command.

Default tool policy: Allow

Example usage in agent prompt
# If the user says "remind me to check on the deployment in two hours",
# call set_reminder with:
# prompt = "Check on the deployment status"
# when = "in two hours"
# Don't tell the user to use /remind — just handle it.

Lessons aren’t created by tool calls — they emerge from Selu’s reflection process after conversations.

Here’s how it works:

  1. After a conversation, Selu runs a single five-turn reflection on the interaction.
  2. If the reflection identifies a behavioral pattern, it creates a lesson candidate with an observation.
  3. Lessons with at least two supporting observations and a confidence of 0.85 or higher activate automatically.
  4. Up to ten active lessons can be in effect for one agent at a time.
  5. Lessons below the confidence threshold appear as suggestions the user can activate manually.

Users can activate, pause, or remove lessons from the agent’s detail page.


All memory tools are subject to tool policy and appear in the agent’s Permissions page. Default policies:

ToolDefault policy
memory_searchAllow
memory_rememberAllow
set_reminderAllow

Users can change these to Ask (require approval before each call) or Block (prevent the tool from running).