12 KiB
The Three-Tier Memory System
The core idea is simple: not all information needs the same treatment. Some facts change every day. Some are stable for months. Some are just event logs. I split memory into three tiers:
Tier 1 — Hot Memory (per-session, ~9K characters)
This is injected into every conversation turn automatically. It covers things like communication preferences, active projects, recent corrections, and procedural quirks. Think of it as the assistant's working memory — fast to access, but limited in size. When it gets full, something has to move.
Tier 2 — Vault Living Files (stable reference, on-demand)
When hot memory hits about 67% capacity, I scan for entries that are stable enough to promote. Things like environment configs, operational context, and known failure patterns get written to markdown files in the Obsidian vault. The assistant reads these on-demand when deeper context is needed. This keeps the per-turn context window lean while still having access to months of accumulated knowledge.
Tier 3 — Daily Notes (searchable timeline)
Every day, a dated note is created with tasks, schedule, and a log section. Events get recorded throughout the day. This creates a searchable history of decisions and actions. The assistant can search past daily notes to recall what happened on a specific date or track how a project evolved over time.
The Morning Briefing Pipeline
This is the workflow that runs every weekday morning and it's the one that shows the system best in action.
6:50 AM — Data Collection
A cron job fires and does three things:
- Fetches tasks from Todoist via API, categorizing them by project (work, personal, side business)
- Fetches calendar events from Google Calendar, filtering out noise like sleep tracking entries
- Creates or updates the daily note at
Daily/YYYY-MM-DD.mdin the Obsidian vault
The daily note follows a strict format:
- Tasks section with checkboxes, priority tags, and overdue tracking
- Schedule section with time-blocked events
- Empty log section for recording things during the day
- Wins section for end-of-day wrap-up
- Context section with backlinks to people, decisions, and files
7:00 AM — Delivery
A second cron job reads the cached data and delivers a formatted briefing directly to my Telegram. It's clean — no checkboxes, just bullets organized by category with an overdue count. I wake up, check my phone, and know exactly what the day looks like.
The Finance Briefing
Every weekday at 9 AM, another cron job runs:
- Navigates to Yahoo Finance for each tracked ticker
- Extracts current price, daily change, and recent headlines
- Classifies each headline's sentiment (bullish, neutral, bearish)
- Delivers a summary table to Telegram
The output looks like a mini market report. If there's nothing new for a ticker, it says so. The whole thing runs autonomously — no prompting needed.
How Information Moves Through the System
Here's the data flow in simple terms:
External APIs (Calendar, Todoist, Stocks, Email, Weather) feed into the AI assistant. The assistant processes this data through scheduled cron jobs and interactive skills. The results land in two places:
- Hot memory for immediate context (preferences, corrections, active state)
- Obsidian vault for persistent storage (daily notes, operational docs, stable reference files)
The vault also feeds back — the assistant reads vault files on-demand when it needs deeper context that isn't in hot memory. It's a two-way street.
Why Obsidian Specifically
A few reasons this works well with Obsidian specifically:
- Plain text markdown — The AI can read and write Obsidian notes without any special plugins or APIs. It's just files on disk.
- Backlinks and graph view — When the assistant links to a person, decision, or file in a daily note, Obsidian's native linking creates a visual graph of connections over time. You can actually see how topics relate.
- Searchable history — Every daily note is a timestamped record. Need to know what happened last Tuesday? Search the vault. The AI can do the same thing.
- Works without the AI — The vault is still a fully functional PKM system even if the assistant goes offline. No vendor lock-in.
Vault Structure
Here's what the folder hierarchy looks like:
Vault/
├── Daily/ # YYYY-MM-DD.md daily notes
├── System/
│ └── Assistant/
│ ├── context.md # Operations overview
│ ├── preferences.md # Communication style
│ └── environment.md # Hardware, services, known issues
├── Work/
│ ├── Business-A/ # Workplace safety operations
│ └── Business-B/ # Cleaning services operations
├── Personal/
│ ├── Finance/ # Stock tracking, budgets
│ └── Health/ # Weight, sleep, Steps protocol
├── People/ # Contacts map of content
└── Inbox/ # Unclassified incoming
The key discipline is the filing rules: operational events go to the daily log, system issues go to a separate troubleshooting log, learned corrections go to hot memory (or vault if stable), and recurring workflows become skill files.
What This Enables
- Persistent context across sessions — The assistant remembers corrections, preferences, and project state without me repeating myself
- Automated daily standups — Morning briefing, finance report, and check-in reminders all run on schedule
- Searchable decision history — Every daily note is a timestamped record of what happened, what was decided, and what files were involved
- Separation of concerns — Work and personal contexts are clearly separated in both the vault structure and the briefing output
Getting Started (High Level)
Here is the template you can copy paste to your Hermes.
Obsidian + AI Assistant — Starter Template
Copy and paste the instructions below into your AI assistant (Hermes, Claude, Cursor, etc.) to set up an Obsidian vault that works as persistent long-term memory.
Part 1 — Tell Your AI Assistant This
Paste the following block into your AI assistant as system instructions or a persistent prompt. Adjust the vault path to match where you actually create the vault.
OBSIDIAN VAULT INTEGRATION
You have access to an Obsidian vault that serves as persistent long-term memory.
The vault root is: /PATH/TO/YOUR/VAULT/
VAULT STRUCTURE:
Vault/
├── Daily/ # YYYY-MM-DD.md daily notes — append-only
├── System/
│ └── Assistant/
│ ├── context.md # Operations, health, family overview
│ ├── preferences.md # Communication style, delivery rules
│ └── environment.md # Hardware, services, known issues
├── Work/
│ └── Business/ # Work documents, reports, logs
├── Personal/
│ └── Projects/ # Side projects, personal tracking
├── People/ # Contacts, relationships, MOC
└── Inbox/ # Unclassified incoming — file these later
RULES FOR VAULT ACCESS:
1. DAILY NOTES
- Create Daily/YYYY-MM-DD.md each day if it does not exist
- Use frontmatter:
---
date: YYYY-MM-DD
type: daily
tags: [daily]
---
- Sections in order: ## Tasks, ## Schedule, ## Log, ## Wins, ## Context
- Tasks use checkboxes: - [ ] Task Description (p2), (p3), (p4)
- Log entries: - HH:MM AM/PM — what happened
- Wins: completed items with checkmark: ✅ Task Description
- Context section: backlinks to People, Decisions, Files
- APPEND ONLY — never delete content from daily notes
2. MEMORY PIPELINE (Three Tiers)
- Tier 1 — Hot Memory: Your per-session memory (MEMORY.md or equivalent).
Injected every turn. Keep it under 6000 characters. Covers active projects,
recent corrections, communication preferences, procedural quirks.
- Tier 2 — Vault Living Files: When hot memory hits ~67% capacity, promote
stable entries to System/Assistant/ files (context.md, preferences.md,
environment.md). Read these on-demand when deeper context is needed.
- Tier 3 — Daily Notes: Searchable timeline. Every event logged during the day
creates a permanent timestamped record. Search past daily notes to recall
what happened on a specific date.
3. CONTENT ROUTING
When the user says "log it" or "save it", route by type:
- Operational events (meetings, calls, decisions) → Daily/YYYY-MM-DD.md ## Log
- System issues, technical fixes → System/Assistant/logs/issues-fixes-log.md
- Learned corrections, preferences → Hot memory (or vault if stable)
- Recurring workflows → Save as a reusable skill/procedure file
- Unknown incoming → Inbox/ until classified
4. VAULT HYGIENE
- Always use Obsidian wiki-links: [[People/Name]], [[Daily/2026-04-23]]
- Build the link graph — every person, decision, and file mentioned in daily
notes should be linked so the vault graph view shows real connections
- Notice orphaned notes unprompted — if a note has no incoming links, flag it
- Never delete vault content without explicit user confirmation
- Use absolute paths when referencing vault files
5. PERSONA FILE SETUP
Tell the user to create the following three files in System/Assistant/:
System/Assistant/context.md — Current life situation, active things to track.
Include: operations overview, health goals, family, work dependencies,
location/timezone, admin tendencies.
System/Assistant/preferences.md — How the user likes things done.
Include: communication style, agenda ordering, delivery preferences,
session style, task management conventions.
System/Assistant/environment.md — Hardware, tools, known issues.
Include: hardware specs, services/ports, key file paths,
known failure patterns, troubleshooting steps.
6. HOT MEMORY FILES
The AI assistant uses two memory files that are injected into every session:
MEMORY.md — Your personal notes (procedural knowledge, environment facts,
tool quirks, lessons learned). Format each entry with a § separator.
Keep entries compact and factual. Delete entries that are no longer relevant.
USER.md — Who the user is (name, role, preferences, timezone, family,
vault lookup map). This helps the assistant personalize responses.
Both files live in the AI's memory directory (e.g., ~/.hermes/memories/)
and are automatically loaded at the start of each session.
Part 2 — Create the Vault Folder Structure
Run this in your terminal to scaffold the vault:
VAULT_PATH="/PATH/TO/YOUR/VAULT"
mkdir -p "$VAULT_PATH"/{Daily,System/Assistant/logs,Work/Business,Personal/Projects,People,Inbox}
# Create the three core assistant files
cat > "$VAULT_PATH/System/Assistant/context.md" << 'EOF'
# Assistant — Context
Current life situation, health protocols, and active things to track.
Read when context matters for decisions or advice.
---
## Operations
- Describe your main work or business here
- Note any secondary projects or side operations
## Health
- Goals and baselines
- Any recurring protocols or reminders
## Family
- Key people and relationships
- Link to People/ folder for details
## Work Dependencies
- Who you wait on for approvals or sign-offs
- Blockers and their schedules
## Location & Timezone
- Home address (optional)
- Timezone
- Weather location
---
*Last updated: YYYY-MM-DD*
EOF
(The rest of the template follows the same pattern for preferences.md, environment.md, logs, and People MOC. The full cleaned version is committed below.)
Note: This is a cleaned and reformatted version of the original Reddit post. The structure, headings, and code blocks have been restored for readability. The core content remains unchanged.