Graphmem memory
Use the graphmem knowledge-graph memory well. Trigger whenever the user asks to remember/recall something, asks "what do you know about X", mentions their memory/knowledge graph, asks where something is deployed, needs a stored credential/env var, or when durable cross-session knowledge should be saved. Also trigger before answering questions about the user's servers, projects, or infrastructure — check the graph first.From its SKILL.md
npx -y skills add sezer-muhammed/graphmem --skill graphmem-memoryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.0 KB, as published. Nobody here has run it
graphmem — how to use the memory well
graphmem MCP tools: remember · recall · search · get · link · walk ·
update · forget · vocab · stats · export. Backend: a shared cloud DB
(Oracle ADB) — every device sees the same graph.
Reading (do this before answering questions about the user's world)
- Always query
recallin ENGLISH. The embedding model is English-centric; a Turkish/other-language query retrieves poorly even for content on the same topic. If the user asks in another language, translate the intent to English for the query. For an exact non-English term, usesearch(keyword, language-agnostic) instead. - Semantic:
recall(query)— returns top hits + their 1-hop neighborhood. Best first move. - Exact/filtered:
search(text, domain, kind)— e.g.search(kind='credential')lists stored secrets. - Deep dive:
get(name)for the full body; followedgesby callinggeton neighbors, orwalk(name, depth)for the weighted neighborhood. - Deployment questions ("where does X run?"):
getthe device nodes (kind=device) or walk from them. - Credentials/env vars: stored as kind=credential nodes, values in
attrs(see nodesecrets-convention).get(name)returns them.
Writing (librarian discipline — the graph must compound, not rot)
- Before creating, check:
recallthe topic. If a node exists →updateit (orlinkto it), don't duplicate. rememberis dedup-first: if it returnsnot_savedwith duplicates, DEFAULT to updating/linking the existing node; onlyforce=truewhen it's genuinely a distinct topic.- Bodies are self-contained mini-READMEs: verbatim commands, exact values, CAPS section labels (WHAT/HOW/RUN/GOTCHA). Never "see file X" — the graph is read from other devices.
summary(1-3 sentences) drives semantic search — write it for retrieval. Machine-readables go inattrs.- Always link: accept sensible
link_suggestions; everything on a machine linksdeployed_on/part_ofits device node (kind=device). No orphans. - Vocabulary is open but registered:
vocab()lists domains/kinds/rels; add viavocab(action='add')only for genuinely new categories. - Facts rot: when you verify something still true,
update(name, verified=true); when superseded, linksupersedesand archive the old one (forget, soft).
Conventions live in the graph itself
Read nodes graphmem-usage-guide, device-registry, secrets-convention,
prompt-onboard-new-device when in doubt — they are the source of truth.