This is a specialized memory system with 8 tools. Tool definitions are visible and well-structured with clear purposes. Descriptions are detailed and contextual, explaining not just WHAT each tool does but WHEN to use it (a strength). However, schema completeness is uneven: core tools like recall/remember have full schemas with descriptions, but some parameters lack type constraints (e.g., 'expand' is boolean but no enum for key_types mapping). The server provides rich guidance for memory key selection and usage patterns in the system prompt, which elevates description quality. However, there are gaps in error handling documentation and output schema specification, the tools return JSON but field types aren't formally documented. Parameter descriptions are generally good (70-120 chars on average) but some lack concrete constraints. Overall, this is a niche domain (memory graph) with thoughtful design but incomplete polish for production agent use.
Update outdated information. Use when user corrects you or info changes (e.g. moved cities, changed job). Old version is preserved but weakened — never lost. Omit keys to keep the same search terms. related_to links the updated memory to other memory IDs.
Permanently delete a memory. Only use for completely wrong information. For outdated info, use correct() instead — it preserves history.
Load raw conversation turns from a past session. Use when a recalled memory lacks detail and you need the original context.
List all stored memories. namespace filters by project/context. Expired memories are excluded. Prefer recall() for normal retrieval.
CALL THIS FIRST before every first response. Search long-term memory by concept. namespace filters to a specific project/context. expand=True returns up to 2x results by following explicit memory links — use when initial results feel insufficient. Returns memories ranked by relevance with hop=1 (direct) or hop=2 (associative). Memories get stronger each time they're recalled.
Output schemas not formally documented for any tool. Tools return JSON strings but field names, types, and presence guarantees are not specified in the tool definition.
Error handling guidance missing. No documentation of what happens when memory_id doesn't exist, namespace is invalid, or session_id is not found. LLM has no recovery path.
key_types parameter in remember/correct lacks constraint documentation. Valid key types (name, proper_noun, etc.) are shown in example but not formally enumerated or described.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Explore connections from a specific memory. Returns memories connected by shared keys OR explicit links (both directions). Use after recall() to drill down: recall → pick ID → related → pick ID → related → ...
Save important information to memory. Keys are search terms — think 'what would I search to find this later?' Use 3-6 diverse keys. namespace groups memories by project/context (e.g. 'work', 'personal'). ttl_seconds sets expiry for temporary memories (e.g. 3600 = 1 hour; None = permanent). related_to links this memory to existing memory IDs for explicit graph traversal.
Save multiple memories in one call. Each item: {content, keys, key_types?, namespace?, ttl_seconds?, related_to?}. Returns list of saved IDs. More efficient than multiple remember() calls.
list_memories has no pagination support and no documented result limit. Could return unbounded results, blowing context window.
remember_batch per-item error handling not specified. If 1 of 50 items fails validation, does the entire batch roll back or return partial success with per-item status?
get_conversation appears to be internal tool but is exposed in public schema. session_id format and turn number constraints are undocumented.