3.7 KiB
3.7 KiB
name: memory-gateway
description: Use this skill when an agent or harness needs reusable memory: search prior context, retrieve OpenViking resources, upload documents into knowledge, summarize arbitrary content with the Memory Gateway LLM, commit final conclusions, or cite related Obsidian notes. This skill is domain-neutral.
version: 2.0.0
metadata:
hermes:
tags: [memory, openviking, obsidian, knowledge, retrieval, summarization, document-ingestion, agent-context]
Memory Gateway
Use this skill as a generic memory layer for any agent / harness. It connects Hermes to the local Memory Gateway at http://127.0.0.1:1934, which fronts OpenViking and an Obsidian vault.
Trigger Rule
Use this skill when the user asks to:
- search prior memory or retrieve related context
- upload a document and make it reusable knowledge
- summarize content and store it as memory/resource
- commit final conclusions, decisions, lessons learned, or research notes
- cite related OpenViking resources or Obsidian notes
- prepare context for another agent or workflow
Do not assume any domain-specific workflow. Treat Memory Gateway as a reusable memory and knowledge entrypoint.
Environment
Defaults:
- Memory Gateway URL:
http://127.0.0.1:1934 - Obsidian vault:
/home/tom/memory-gateway/obsidian-vault - Default namespace:
memory-gateway
Optional env vars:
MEMORY_GATEWAY_URLMEMORY_GATEWAY_API_KEYMEMORY_GATEWAY_OBSIDIAN_VAULT
Core Workflows
1. Retrieve Context
python /home/tom/.hermes/skills/memory-gateway/scripts/retrieve_memory.py \
--query "project decision memory gateway LLM summary" \
--uri viking://resources \
--limit 5
Use retrieval before answering when prior context may materially improve correctness.
2. Summarize And Commit
python /home/tom/.hermes/skills/memory-gateway/scripts/commit_summary.py \
--title "Project decision summary" \
--namespace memory-gateway \
--memory-type decision \
--tag project --tag decision \
--persist-as resource \
--text "<final conclusion or reusable knowledge>"
This calls POST /api/summary, which uses the configured LLM and writes to OpenViking when persist-as is not none.
3. Upload Document As Knowledge
python /home/tom/.hermes/skills/memory-gateway/scripts/upload_knowledge.py \
--file /path/to/document.pdf \
--title "Design Notes" \
--namespace memory-gateway \
--knowledge-type design_doc \
--tags project,design,reference \
--persist-as resource
This calls POST /api/knowledge/upload: document -> MarkItDown Markdown -> Obsidian note -> LLM summary -> OpenViking resource.
4. Search Obsidian Notes
python /home/tom/.hermes/skills/memory-gateway/scripts/search_obsidian.py \
--query "design notes memory gateway" \
--limit 5
Output Template
When using this skill, answer with:
## Answer
<direct answer or synthesis>
## Memory / Resource References
- `<title or URI>` — `<viking://...>` — why it matters
## Obsidian References
- `<note.md>` — `<relative path>` — why it matters
## Suggested Memory Commit
- commit: yes/no
- namespace:
- memory_type:
- tags:
- resource_uri: if committed
Guardrails
- Do not store raw noisy data as long-term memory when a concise summary is enough.
- Prefer LLM summaries and structured artifacts over full chat transcripts.
- Do not commit secrets, credentials, tokens, private keys, or unnecessary personal data.
- If content is sensitive, summarize and redact before committing.
- If retrieval quality looks noisy, state that and cite only useful results.
- Always report whether a commit/upload actually succeeded and include the returned resource URI when available.