What You'll Learn
Source: IMG_7435
Diagnose the amnesia
See why isolated sessions limit agent usefulness.
Give an agent live memory
Create a memory store, attach it as a session resource, and steer what gets written with the prompt field.
Consolidate history with Dreaming
Run a dream over past transcripts, inspect the output store, and swap it into your next session.
Inspect it all in Console
Read what the agent chose to remember, and compare memory stores.
Core Concepts
Source: IMG_7436
The slide labels these as two new nouns, but places them beside the existing agent/session primitives.
| Concept | Meaning |
|---|---|
| Agent | Model + system prompt + tool config. Reusable across sessions. |
| Environment | The container spec for a session. Also reusable. |
| Session | One conversation thread between a user and an agent. |
| Memory store | Persistent filesystem-like store. Attach as a resource so the agent can read and write across sessions. |
| Dream | Async batch job: reads transcripts and stores, distills them, writes a new memory store. |
Step 1: The Problem
Sources: IMG_7437, IMG_7441
Without a memory store, each session is a silo. A fact you give the agent in one conversation is gone in the next.
The amnesiac baseline
Session A - tell it something
ant beta:sessions create \
--agent "$AGENT" --environment-id "$ENV"
ant beta:sessions:events send \
--session-id "$SES_A" \
--event '{"type":"user.message","content":[{"type":"text",
"text":"Just attended the subagent orchestration talk. Slides at go/cwc-subagents."}]}'
Session B - ask about it
ant beta:sessions create ...
ant beta:sessions:events send \
--session-id "$SES_B" \
--event '{"type":"user.message","content":[{"type":"text",
"text":"Which talks have I been to so far, and where are the slides?"}]}'
Result: the agent has no idea.
Console Demo: No-Memory Recall
Sources: IMG_7438, IMG_7439, IMG_7440
The Claude Console demo shows a session named [no memory] recall. The user asks:
What features did they announce at the CMA talk?
Give me the go link for my notes.
The agent replies that it does not have access to internal notes, go links, or context about the specific "CMA talk". It asks for more context such as which talk, roughly when it happened, and the notes or link directly.
The demo proves the baseline behavior: the agent can answer the current message, but it cannot retrieve a fact from a previous session without attached memory.
Step 2: Attach A Memory Store
Source: IMG_7442
A memory store is a persistent, filesystem-like store the agent can read and write across sessions. Mount the same store on two sessions and they share memory.
Create It, Then Mount It On Every Session
Source: IMG_7443
# 3a - one store
MEM=$(ant beta:memory-stores create --name "$DOMAIN-memory" \
--description "My CwC attendance and resources" --format json | jq -r .id)
# 3b - attach via --resource at session create
MEM_RESOURCE='{"type":"memory_store","memory_store_id":"'"$MEM"'",
"name":"cwc_memory",
"prompt":"Check cwc_memory before answering. Record attended sessions
under attended/ and links under resources/.",
"access":"read_write"}'
SES_C=$(ant beta:sessions create --agent "$AGENT" --environment-id "$ENV" \
--resource "$MEM_RESOURCE" --format json | jq -r .id)
prompt
The lever: steer what gets written and where.
access
read_write by default; lock to read-only when you want it immutable.
Inspect Memory Stores In Console
Sources: IMG_7444, IMG_7445
The Console view exposes memory stores directly. In the demo, a memory store named demo is listed as active, and the slide shows CLI commands for inspecting what the agent chose to remember.
ant beta:memory-stores:memories list \
--memory-store-id "$MEM"
ant beta:memory-stores:memory-versions list \
--memory-store-id "$MEM"
Console route shown on the slide: Memory Stores → search by $MEM.
Step 3: Dreaming
Source: IMG_7446
A batch job reads past transcripts and an existing store, runs a model over them, and writes distilled memories into a new store. Raw history becomes structured recall.
How Dreaming Works
Source: IMG_7447
- Clone the input memory store
$MEMinto an output memory store$MEM_OUT. - An orchestrator runs one subagent per session transcript.
- Subagents read and write to reorganize the output memory store.
| Input | Processing | Output |
|---|---|---|
| Input memory store + Session 1/2/3 transcripts | Orchestrator creates subagents, one per session | Output memory store reorganized into structured recall |
Three Layers
Source: IMG_7448
| Layer | Role |
|---|---|
| Session | One conversation thread. Ephemeral by design. |
| Memory store | Live persistence. Agent reads and writes across sessions, steered by your prompt. |
| Dreaming | Dedicated job for consolidation and re-organization. |