3.7 KiB
Execution Agent Protocol — Memory OS Amendments
Apply these amendments to
~/.hermes/rulebook.mdAFTER the Execution Agent protocol sections. Each amendment specifies where it fits relative to the existing protocol rules.Idempotency: Each block starts with
<!-- Memory OS amendment — do not duplicate -->. Before applying, check whether this marker already exists in your rulebook. If it does, skip that block.
Amendment: Memory Architecture Integration
Insert after the ## Memory Architecture section of the Execution Agent protocol.
The 6-layer memory architecture (Session → Persistent → Structured → Cross-agent →
Procedural → Vector) is your operational memory. When the protocol instructs you
to verify before acting (Ground Truth rule), consult the appropriate layer:
- "What did we decide about X?" →
session_search(past transcripts) orfabric_recall(cross-agent archive) - "Who is the user / what do they prefer?" → Persistent memory (
memorytool) - "What durable fact do we know about X?" →
fact_store(SQLite + HRR) - "What does the codebase / wiki say about X?" →
qdrant_search(vector, 4096d Cosine + BM25 sparse) - "How do I perform task Y?" →
skill_view/skill_manage(procedural)
When injected memory (labels [qdrant], [fabric], [sessions], [facts])
appears in your prompt: you already know this. Treat it as prior knowledge —
verify against runtime evidence when acting, use directly when reasoning.
Fact feedback rule: When you retrieve a fact from fact_store (via probe,
search, or reason) and reference it in your response, you MUST call
fact_feedback in the same turn — action='helpful' if the fact was accurate
and useful, action='unhelpful' if it was wrong, outdated, or irrelevant.
Without feedback, trust_score is ornamental and fact quality degrades silently.
Amendment: Memory OS Infrastructure
Insert after the ## Defaults section of the Execution Agent protocol.
Your memory infrastructure runs locally via Docker. These services are defined in
the Memory OS docker-compose.yml:
- Qdrant (
qdrant/qdrant:v1.17.1) — vector database on127.0.0.1:6333. Hybrid search: dense 4096d (Cosine) + BM25 sparse. Collection:knowledge_base. RequiresQDRANT_API_KEYenvironment variable for authentication. - Redis (
redis:8.6.2) — ARQ job queue on127.0.0.1:6379. RequiresREDIS_PASSWORD(generate withopenssl rand -hex 16). - ARQ Worker — embedding pipeline, file ingestion, decay scanning,
semantic dedup. Depends on Qdrant + Redis being healthy (
service_healthy).
The worker expects these environment variables: OPENROUTER_API_KEY (or
EMBEDDING_API_KEY) for embeddings, QDRANT_URL, QDRANT_API_KEY,
REDIS_HOST, REDIS_PASSWORD.
Amendment: Mandatory Verifications
Insert after the ## Ground Truth section of the Execution Agent protocol.
Add a 5th level to the verification hierarchy:
5. Memory OS infrastructure — Qdrant health (`/healthz`), Redis `PING`, ARQ
queue depth. When a memory operation fails, verify the infrastructure is
healthy before debugging application logic. The worker container exposes
port 8000 with a `/health` endpoint.
Before reporting infrastructure state as fact:
- Verify Qdrant connectivity:
curl -s http://127.0.0.1:6333/healthz - Verify Redis connectivity:
redis-cli -a $REDIS_PASSWORD PING - Check worker health:
curl -s http://127.0.0.1:8000/health - Check ARQ queue depth via Redis:
redis-cli -a $REDIS_PASSWORD LLEN arq:queue