Skills, Memory, and Context in Hermes

A practical guide to choosing the right knowledge layer in Hermes: skills, memory, session search, Obsidian, and source control.

Hermes has several ways to remember things. They are not interchangeable. Putting the right information in the right layer is what keeps an agent useful instead of turning it into a haunted clipboard.

The Layers

LayerUse it forDo not use it for
Current contextThe active task and immediate conversationDurable knowledge
Session searchFinding what happened in prior chatsSource-of-truth documentation
MemoryStable preferences and environment factsTask logs, secrets, temporary state
SkillsRepeatable procedures and workflowsOne-off project status
ObsidianPlans, runbooks, incidents, architecture notesCode or manifests
GitCode, manifests, config, published docsPrivate scratch notes

The mistake is treating all of these as “memory.” They are different systems with different jobs.

Current Context

Current context is what Hermes can see in the active turn. It includes the conversation, loaded skills, tool outputs, and selected memories. It is fast and useful, but not durable.

If a decision matters after the session ends, write it somewhere durable:

  • Obsidian for operational notes.
  • Git for code and manifests.
  • Skills for reusable procedures.
  • Memory for stable facts and preferences.

Session search is for archaeology. It answers questions like:

What did we decide about Hermes profiles last week?
Find the session where we debugged the Obsidian search container.

It is useful evidence, not a source of truth. Once a decision is recovered, it should be written into the appropriate note or repo.

Durable Memory

Hermes memory should be compact and stable. Good memory saves you from repeating yourself.

Good examples:

  • The guides site is GitHub Pages-backed.
  • The Obsidian vault path is /home/derekleeds/obsidian/derekleedscloud.
  • The user prefers concise, validation-backed answers.

Bad examples:

  • A commit hash from a task that will be stale next week.
  • A temporary bug status.
  • A pasted API key.
  • A full runbook.

Memory is a scalpel. If it becomes a junk drawer, every future answer gets a little worse.

Skills

Skills are reusable operating procedures. A skill should include:

  1. When to use it.
  2. Exact commands or tool sequence.
  3. Safety checks.
  4. Common pitfalls.
  5. Verification steps.

Skills are ideal for repeated workflows:

  • publishing a guide
  • deploying a Komodo stack
  • checking a Kubernetes incident
  • evaluating a new homelab tool
  • safely using a specific API

When Hermes solves a tricky workflow, the durable lesson should usually become a skill. That is how the agent gets better without stuffing every detail into the base prompt.

Obsidian

Obsidian is the written operational record. Use it for:

  • project plans
  • incident reports
  • architecture decision records
  • runbooks
  • investigation notes
  • guide mirrors

In my setup, guide posts are mirrored under:

2_Areas/AI_LLM_Work/Guides Posts/

That mirror is not a replacement for the published site. It is a local knowledge copy tied into the rest of the vault.

Git

Git is the source of truth for things that execute or publish:

  • Hugo guide source
  • infrastructure manifests
  • Helm charts
  • Docker Compose stacks
  • config templates
  • CI workflows

If a change affects runtime or publication, it belongs in Git. Obsidian can link to it, explain it, and preserve the rationale, but the executable artifact lives in the repository.

A Simple Decision Tree

Ask this before saving anything:

  1. Is it a secret? Put it in 1Password, an env file, or SOPS. Not chat. Not memory. Not docs.
  2. Is it code or config? Put it in Git.
  3. Is it a project decision or runbook? Put it in Obsidian.
  4. Is it a reusable procedure? Put it in a skill.
  5. Is it a stable preference or environment fact? Put it in memory.
  6. Is it temporary task progress? Leave it in the session or task note.

This keeps Hermes useful across long-running work without turning every session into a landfill of stale facts.