Skip to main content
Glama
tomRumi

hermes-memory-rag

by tomRumi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HERMES_RAG_STORENoWhere the store lives.~/hermes-rag
HERMES_RAG_MAX_CHARSNoCharacters allowed per returned hit.600
HERMES_RAG_WIKI_ROOTNoWhere the markdown pages live.~/.hermes/wikis
HERMES_RAG_MEMORY_CAPNoNotes allowed in the staging layer before the oldest are dropped.50
HERMES_RAG_OLLAMA_URLNoWhere ollama is.http://localhost:11434
HERMES_RAG_EMBED_MODELNoWhich ollama model embeds text.nomic-embed-text
HERMES_RAG_EDITOR_MODELNoThe model that merges notes into the wiki.granite4:3b
HERMES_RAG_PROJECTS_FILENoWhich project a directory belongs to.~/.hermes/projects.yaml
HERMES_RAG_CHUNK_CHAR_CAPNoLargest piece of text sent to the embedder.4500
HERMES_RAG_SKIP_JSON_DIRSNoComma-separated directories whose generated JSON should never be indexed.
HERMES_RAG_CONSOLIDATE_THRESHOLDNoWhen a merge is reported as due.10

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
recallA

Layered context recall for a project: wiki (map) → code (detail) → memory (prior session learnings). Bounded output; honest per-layer status. project defaults to whatever the projects file says the working directory belongs to, falling back to its name; layer = auto|wiki|code|memory.

learnA

Deposit ONE learning into the project's episodic memory (staging area). kind may carry a module prefix for consolidation routing, e.g. 'rag:gotcha' or 'config:decision'. Learnings only — routine actions are logging, not learning, and belong in session transcripts.

supersedes names an existing note (the short id recall prints, or a unique prefix of it) that this one replaces. The old note is marked as replaced and stops being returned, but is kept, so the change is reversible and you can still see what the earlier fact was. Use it instead of rewriting history.

retireA

Withdraw a memory note that nothing replaces — a fact found to be wrong, or one that no longer applies. The note stays in the store (so the withdrawal is reversible and the history readable) but recall stops returning it.

node_id is the short id recall prints, or any unique prefix of it. An ambiguous or unknown reference changes nothing and says so.

statsC

Layer counts + wiki-earn suggestion for a project. The suggestion rule: (≥3 sessions AND ≥5 learnings) OR (≥3 architecture-phrased recalls) on a project with no wiki → suggest generating the wiki.

ingest_codeA

Index a repo's source files into the project's code layer. Skips vendored/binary/hidden dirs; deterministic IDs make unchanged chunks idempotent; rebuild=True drops stale chunks of edited files.

ingest_wikiB

(Re)index a code-wiki directory (markdown) into the project's wiki layer. Heading-aware chunking keeps ## sections atomic.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct operation: recall retrieves, learn writes, retire soft-deletes, stats summarizes, and ingest_code/ingest_wiki index different source types. There is no meaningful overlap or ambiguous boundary between them.

Naming Consistency3/5

Most names are lowercase and readable, but conventions are mixed: recall/learn/retire are bare verbs while ingest_code/ingest_wiki use verb_noun, and stats is a noun rather than an imperative verb. The pattern is not uniform, though it is still easy to parse.

Tool Count5/5

Six tools is a well-scoped size for a memory/RAG server; each tool earns its place by covering a distinct lifecycle step. The count is neither bloated nor too thin.

Completeness5/5

The tool surface covers the full cycle: ingesting wiki and code, storing learnings, recalling context, soft-withdrawing obsolete notes, and inspecting project state. Update is handled through learn/supersedes and re-ingestion, so there are no obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues