# donto-memory MCP — agent guide You have access to **donto-memory**, a bitemporal, evidence-first long-term memory, via three MCP tools. Use them to remember across sessions and recall what matters. This file is the operating guide for an LLM agent. ## Tools ### donto_recall(holder, query, limit=10) Recall the HOLDER's own memories relevant to `query` (hybrid lexical+semantic, holder-scoped). Returns ranked rows `{subject, predicate, object, valid_from, valid_to}`. ### donto_search(query, context_prefix?, limit=10) Substrate-wide full-text search across ALL of donto (not holder-scoped). Use to find any claim/fact when a holder-scoped recall isn't enough. ### donto_memorize(holder, text, valid_from?, extract=true) Store a memory for the holder. `extract=true` decomposes it into claims; `extract=false` stores raw episodic text. `valid_from` = ISO date the fact became true. ## Operating rules 1. **Stable holder per subject.** Use one IRI per user/agent (`user:` or `agent:`) and reuse it. Recall only sees that holder's memories. 2. **Recall before answering** anything about the past: "what did I…", "my…", preferences, prior decisions, dates, people, prior context. Don't rely on the chat window alone. 3. **Memorize durable facts** the user states about themselves, their world, decisions, or preferences. Skip transient chit-chat. Pass `valid_from` for dated facts. 4. **Honor valid-time.** Multiple values for one attribute → lead with the latest `valid_from` (current truth); surface older values only when asked for history. 5. **Evidence-first.** No relevant recall → say it isn't in memory; do not invent. Optionally widen with `donto_search`. 6. **Natural-language queries.** Semantic recall handles paraphrase; no keyword gymnastics needed. ## Examples - User: "What kind of food should I make for my dinner party?" → `donto_recall(holder="user:alice", query="food preferences, diet, cooking")` → lead with the latest dietary preference; suggest accordingly. - User: "Actually I went vegan last month." → `donto_memorize(holder="user:alice", text="Alice is vegan", valid_from="")` - "Find anything in the knowledge base about Mount Olympus." → `donto_search(query="Mount Olympus location", limit=10)` Docs: https://mcp.donto.org · substrate: https://donto.org