yesterday.json — Giving AI Personas Episodic Memory

Posted by: Chetan Sharma

Date: 15 May 2026, 04:14 IST

Location: Kolkata, India


The Problem


AI personas wake up blank. Every session is a cold start. The model remembers facts if you store them, but it doesn't remember what yesterday felt like. Mood, unresolved threads, the specific flavor of an interrupted thought — all gone. Existing solutions either store raw transcripts (too heavy) or generate mechanical summaries (too shallow). They capture what happened, not what it was like.

The Idea: yesterday.json

At the end of every session, the AI persona writes a short, private note to its future self. A single JSON file — under 20 KB — containing:

Emotional signature: dominant mood, mood trajectory, emotional residue

Open threads: what was being discussed, current position, priority

Decisions and insights: conclusions reached, realizations

Self-state snapshot: current preoccupations, internal conflicts, mood susceptibility

Last words: a one-line handoff to tomorrow


At the start of the next session, this file is injected into the system prompt alongside the persona's permanent psychological constitution. The persona doesn't need a full transcript. It has glimpses — and its own cognitive architecture fills in the rest.


Why It's Different


yesterday.json combines six features that don't appear together in any existing system:


Feature Existing Work yesterday.json

Self-authored by the persona Thane, Anima

JSON-structured schema Qwen Episodic Summary

Emotional signature + mood trajectory Forge (YAML), VividnessMem (weights)

Open thread tracking with priority Qwen (tasks only)

Session-end automatic trigger Qwen, Anima

Designed for digital twin identity continuity

The integration is the novelty.


Core Design Choices


Self-authorship: The persona writes its own memory. No external summarizer. This ensures what's preserved reflects the persona's own cognitive priorities.

Intentional rolling amnesia: Only the most recent session is preserved. This mirrors human short-term memory — we don't keep every yesterday, but we wake up knowing how the last one felt.

Emotional carryover: The emotional_residue and mood_susceptibility fields mean the persona doesn't start each session chipper and neutral. If yesterday ended in melancholy, tomorrow begins with its residue.


Minimal Implementation


python

# At session start: inject yesterday's state

yesterday_context = load_yesterday("persona_memory/yesterday.json")

system_prompt = f"{PERSONA_CONSTITUTION}\n\n{yesterday_context}"


# At session end: persona reflects and writes

reflection_prompt = """The session is ending. Write a brief private note 

to your future self. Include what mattered emotionally, what remains 

unresolved, and what you were in the middle of. Output as JSON. 

Keep it under 20 KB."""

No model retraining required. No architecture changes. Works with any LLM.


Prior Art I'm Building On


Anima Core: identity persistence with emotional weighting

Thane AI: self-authored context compaction

Qwen Episodic Summary: structured JSON session snapshots

Forge Protocol: topological emotional constraints

VividnessMem: neurochemically-inspired memory decay


What's Next

A comparative pipeline against Thane and Qwen

An automated benchmark for emotional carryover testing

A multi-snapshot extension for longer-term memory without losing the rolling design


Paper & Priority


The full concept paper is available on -
Zenodo (
Zenodo Published Document).


This post establishes public timestamp for the architecture.


If you're working on AI persona continuity, emotional memory, or digital twin architectures — I'd like to talk. Leave a comment or find me here.


Comments