Workflow Patterns

Personal OS

A personal operating system built from goals, memory, schedules, and daily review.

Concept-specific field platePersonal OShx-graph-context-concept-personal-osLoading visual preview…
View full-size visual

Personal OS

What it is

A personal operating system built from goals, memory, schedules, and daily review.

In plain terms

Think of a substitute teacher handed the same class notebook every day, no matter which room she’s covering: she greets each student by name and picks up where yesterday’s lesson left off, because she reads that notebook before the bell rings, not from her own memory of being there. Personal OS gives an AI assistant that same continuity of identity across every conversation and automated task — plus a shared memory of what it knows about you and what’s coming up that follows you through your interactive chats, though scheduled automated jobs are deliberately kept from touching those personal notes.

Why it matters

Several separate mechanisms combine to make this pattern feel like an OS: the built-in memory tool owns MEMORY.md and USER.md, MemoryManager optionally coordinates one external provider, prompt_builder.py loads SOUL.md for identity, and cron/scheduler.py runs scheduled prompts. A cron run can inherit SOUL.md while using skip_memory=True, so identity and scheduled work do not imply that MemoryManager owns or injects the built-in note files.

How it works

Two separate mechanisms combine to give Hermes this continuity. The built-in note store (tools/memory_tool.py) reads MEMORY.md and USER.md once when a session starts and freezes that content into the system prompt — mid-session the model can only add to it by explicitly calling the memory tool to add, replace, or remove an entry, never automatically. Alongside that, MemoryManager (agent/memory_manager.py) manages at most one external memory-provider plugin (Honcho, Mem0, Hindsight, and similar) — a second attempt is rejected outright, and no provider may register a tool name that shadows a core Hermes action like clarify. When an external provider is configured, its prefetch() call runs at the start of a turn to pull in anything relevant before Hermes replies, and its sync_turn() runs on a background worker thread once the turn ends — writes are serialized through a single worker so turn N always lands before turn N+1.

A concrete example

Say you tell Hermes over lunch, in an ordinary chat, that your father’s birthday falls in April, and it decides the fact is worth keeping — it calls the memory tool to add a line to USER.md. A week later, in a brand-new chat, that file is read fresh at session start and baked straight into the system prompt, so when you ask what’s coming up for family this month, Hermes already has the birthday in view without a separate lookup. A scheduled Monday digest job, by contrast, opens with the same SOUL.md identity as any chat session but is started with skip_memory=True — it never loads or writes MEMORY.md or USER.md at all, so it can remind you about a weekly meeting but has no way to bring up April.

How it connects

This note belongs to the Workflow Patterns family. Its closest neighboring concepts are: Agent Team Delegation, Daily Priority Ritual, Agent Runtime.

Source evidence

  • vendor/hermes-agent/agent/memory_manager.py:505-515#MemoryManager.prefetch_all — Verified Source Map evidence for MemoryManager. MemoryManager calls prefetch on each registered provider in order, skips empty results, isolates individual provider failures, and merges the remaining text.
  • vendor/hermes-agent/toolsets.py#<file> — Structural Source Map fallback for toolsets.py. A core source file in the Tool Registry and Toolsets structure within Tools, Toolsets, and MCP.

Workflows

  • Daily Priority Ritual
  • Building a Personal AI System with Hermes, Local Models, Automation, and a Shared Knowledge Base
  • Six Hermes Use Cases for a More Intentional Personal Operating System