Skip to main content

MemPalace

Bundles contain custom components that support specific third-party integrations with Orbis Studio.

This page describes the components that are available in the MemPalace bundle.

MemPalace Chat Memory​

The MemPalace Chat Memory component provides long-term, user-scoped memory for agents using a local Chroma vector database organized as a "palace" of rooms and halls.

Each user gets an isolated wing within the shared palace. Memories are organized into rooms (topic areas) and halls (content type classifications), enabling structured semantic retrieval across conversations.

The component operates in three modes:

  • Agent Memory: Automatically injects relevant long-term context into an agent at the start of each conversation (L0 identity layer + L1 essential story).
  • Search: Executes semantic search over stored memories on demand.
  • Ingest: Manually writes a new memory to the palace.

When used in Agent Memory mode, the component also exposes three agent tools — Save to MemPalace, Search MemPalace, and Recall MemPalace — that allow an agent to read and write memories autonomously during a conversation.

MemPalace Chat Memory parameters​

Some parameters are hidden by default in the visual editor. You can modify all component parameters through the component inspection panel that appears when you select a component.

NameTypeDescription
modeStringInput parameter. Operating mode. Options: Agent Memory (inject context into agent), Search (query memories), Ingest (manually write a memory). Default: Agent Memory.
user_idStringInput parameter. Wing identifier — each user has an isolated wing in the palace. Leave empty to use the current platform user (same behavior as Mem0).
identityStringInput parameter. Assistant identity text. Persisted to {palace_​root}/identity.txt and injected as the L0 context layer.
roomStringInput parameter. Room to save or search in. Options: personal, work, health, hobbies, general, conversations. Default: conversations.
room_filterStringInput parameter. Optional room filter for on-demand recall. Leave empty to recall from all rooms.
search_queryStringInput parameter. Natural language query for semantic search over the user's memories. Used in Search mode.
search_roomStringInput parameter. Filter search results by room. Leave empty to search across all rooms.
search_hallStringInput parameter. Filter search by content type (hall). Options: hall_​facts, hall_​events, hall_​discoveries, hall_​preferences, hall_​advice. Leave empty to search all halls.
ingest_messageStringInput parameter. Text to persist into MemPalace. Used in Ingest mode. Defaults to room conversations with importance 3.
importanceIntegerInput parameter. Importance score for the ingested memory (1–5). 5 = milestone, 4 = decision/preference, 3 = general problem, 2 = general conversation.
collectionStringInput parameter. Chroma collection name shared across users. Default: orbisagents.
palace_pathStringInput parameter. Path to the MemPalace palace directory. Can also be set via the MEMPALACE_​PALACE_​PATH environment variable.

MemPalace Chat Memory outputs​

NameTypeDescription
save_memoryToolOutput parameter. Tool that writes a memory to the palace. Available to agents in Agent Memory mode.
search_memoryToolOutput parameter. Tool that performs semantic search over the user's memories. Available to agents in Agent Memory mode.
recall_memoryToolOutput parameter. Tool that fetches drawer snippets for on-demand recall. Available to agents in Agent Memory mode.
memoryMemoryOutput parameter. LangChain-compatible chat memory history built from wake-up context. Connect to an Agent or LLM component.

Memory hierarchy​

MemPalace retrieves memory in layers:

  • L0 (Identity): The assistant's identity and persona, loaded from identity.txt.
  • L1 (Essential story): High-importance memories (importance ≥ 4) for the current user, scanned up to a configurable limit.
  • L2 (On-demand recall): Broader semantic retrieval using the Recall Memory tool.

When two memories conflict on the same fact, the one with the more recent filed_at timestamp is authoritative.

See also​