Skip to content

agent memory: durable working notes / findings across turns (identity, not one-shot) #550

Description

@btipling

Parent

#548 (agent session architecture)

Problem

Thinking is ephemeral (not in SessionStore). That is fine — CoT should not
survive refresh.

What is not fine: nothing durable carries findings, decisions, or
identity
across turns. The assistant refers to “the previous assistant.”
Each send feels one-shot. Other harnesses feel like the same agent walked
back into the room.

#536 (session TODOs) is adjacent (task list in the prompt). This issue is
semantic memory: “we decided X, the bug is in Y, don’t touch Z.”

Goal

The agent can choose to persist important findings/ideas across turns
(and we may auto-extract a small working-memory block). New/Clear resets it
(new session = new mind). Refresh keeps it (session-owned, like cwd).

Success: mid-session, “what did we conclude last turn?” is answerable from
session state, not from hoping the last 400 assistant paragraphs still
contain it after the 3.5M slice.

Constraints (lock)

  • Thinking rows stay ephemeral. Do not dump CoT into Redis/Blob as the
    memory mechanism.
  • Memory is session-owned (rides the session architecture — addressable per-user sessions with session-owned state (cwd, sandbox binding) #408 object / envelope meta or a
    dedicated small field) — not a new cloud product, not local-only.
  • Bounded. A novel is not memory; it is another 8 MiB problem. Future plan
    Caps table (generous NEW cap, Function-safe if it rides a Function body).
  • Feature-divide: canvas may show a compact “notes” affordance later; v1
    can be host-folded into the system/prompt only (no dual chat).
  • Agent-authored persist is the honesty bar: we do not silently invent a
    persona from truncated history.

Non-goals

Suggested next

create-plan against #548 A2. Decide: reserved meta.workingNotes vs a
small Blob sidecar vs a first-class tool (remember / recall).

Peer harness notes

Pi CustomMessageEntry / CustomEntry inject extension state into (or
beside) the LLM context without dumping CoT. Oh My Pi “advisor” notes are a
separate window — we do not want a second agent; we want a small
session-owned notes block
(#550) the fold can always include.

Compaction should keep notes (they are the identity), not summarize them
away (#552). Skills catalog (#557) is playbooks, not findings.

Orrery (2026-08-15)

Their durable-spec slot (stable prefix region) is the right home for notes: compact into it at phase boundaries (#552), do not append “earlier: …” onto growing history. Notes stay byte-stable across turns so #558’s block 1/2 split still caches. New/Clear wipes the slot (new mind).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions