Skip to content

Latest commit

 

History

History
114 lines (86 loc) · 4.65 KB

File metadata and controls

114 lines (86 loc) · 4.65 KB

Auto Memory

Auto Memory is ReMe's entry point for conversational memory. Within a target date, it uses session_id to find or update at most one daily memory card, whose filename is a concise topic or event name chosen by the Agent. The day's YYYY-MM-DD.md page indexes those cards. It turns "we talked about it" into "it was remembered" while retaining a source conversation record as evidence.

ReMe Auto Memory and Auto Resource writing daily memory cards

For the general file semantics of daily/, session/, frontmatter, and wikilinks, see Memory as File.

Conversation
  ├─ step 1: daily/YYYY-MM-DD/<generated_name>.md # one topic-named card per session
  ├─ step 2: daily/YYYY-MM-DD.md                  # daily index linking the cards
  └─ source: session/dialog/<session_id>.jsonl    # source conversation record

What It Records

Auto Memory does not preserve a chat transcript as a running summary. It records information that may remain useful later:

  • User preferences: preferred style, collaboration habits, and long-term requirements.
  • Key facts: project background, important numbers, explicit conclusions, and constraints.
  • Process decisions: what happened, why a choice was made, and which alternatives were rejected.
  • Current state: what has been completed, what is blocked, and what comes next.
  • Reusable experience: commands, workflows, diagnostic methods, and solutions.

Write Location

Auto Memory writes distilled memories to daily/. Conversations from the same day first become individual cards:

Example directory:

workspace/
  daily/
    2026-06-20.md
    2026-06-20/
      login-refactor-decision.md
      retrieval-regression.md

The two files under the date directory are topic-named cards distilled from different conversations. daily/2026-06-20.md is the index page for that day. Resource files enter the same daily memory layer; see Auto Resource.

When a call includes session_id, Auto Memory uses it to find the corresponding card through frontmatter, while the Agent chooses a readable filename through name:

name: login-refactor-decision
session_id: session-a
source_conversation: "[[session/dialog/session-a.jsonl]]"

This keeps different conversations separate without forcing opaque IDs into filenames. An update locates the existing note by session_id or source_conversation; if the Agent supplies a better frontmatter name, the system can rename the note and retarget inbound wikilinks. To see what happened on a day, start with YYYY-MM-DD.md.

Preserving the Original Information

The distilled daily note is optimized for readability; a filtered source conversation record is retained for trust and verification.

While generating memory cards, Auto Memory also saves the source messages:

session/
  dialog/
    session-a.jsonl
    session-b.jsonl

Each daily note points to its corresponding conversation record. Saved messages omit tool-result blocks and base64 data blocks, preventing recalled memory and binary payloads from being mistaken for user-provided evidence later.

Message Timestamps

Auto Memory preserves each retained message's created_at in both the prompt and the source conversation JSONL. When importing historical conversations or benchmark data, provide the actual occurrence time for every message so the model does not confuse event time with execution time:

reme auto_memory \
  session_id=locomo-session \
  messages='[
    {"role":"user","content":"Jon lost his job today.","created_at":"2023-01-19T08:00:00"},
    {"role":"assistant","content":"I am sorry to hear that.","created_at":"2023-01-19T08:01:00"}
  ]'

For compatibility with common dataset schemas, auto_memory also checks time_created, timestamp, createdAt, timeCreated, and created_time when created_at is absent. These fields may appear either at the top level of a message or inside metadata.

When a call does not explicitly provide date, Auto Memory uses the latest valid created_at date in the messages. If no message contains a valid timestamp, it falls back to the current date. Historical imports may also specify the target date directly:

reme auto_memory \
  session_id=locomo-session \
  date=2023-01-19 \
  messages='[{"role":"user","content":"Jon lost his job today."}]'

What Happens Next

Auto Memory only creates memory in the daily layer. To distill this material further into long-term digest/ nodes, use Auto Dream. To search daily and digest content, use Memory Search.