Universal, local-first, persistent memory layer for AI agents, LLM apps, and chatbots.
MemOS defines 9 tools with basic naming (verb-noun structure like 'store', 'search', 'update') and descriptions present for all. However, schema quality is inconsistent: input parameters are partially documented but lack full type specifications and constraints. Parameter descriptions exist but are generic ('The memory content to store' is minimal). No documented output schemas. Error handling and recovery guidance are absent. The server shows foundational structure but lacks the rigor expected for production agent interaction.
Delete a memory from the graph
Export memories in various formats (JSON, CSV, etc.)
Retrieve a specific memory by ID
Import memories from external sources or formats
List all memories in the graph with optional pagination
Search memories using hybrid search combining semantic, keyword, and entity-based retrieval
Get statistics about the memory graph
Store a memory in the graph with optional metadata and type classification
No documented output schemas for any tool. LLMs cannot plan downstream calls or extract required data without knowing response structure.
Parameter descriptions are generic and lack format/constraint guidance. E.g., 'The memory content to store' provides no guidance on length limits, structure, or type. 'Optional filter criteria' omits what fields are filterable.
No error handling guidance. Tools declare no error cases, recovery paths, or what to do when a memory is not found (get, update, delete all lack this).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Update an existing memory with new content and metadata
Destructive operations (delete) lack confirmation/dry-run support. Agents could accidentally destroy data without a confirmation step.
Metadata parameter type is declared as 'object' with no schema defining allowed fields. Tools like 'store' accept metadata but provide no guidance on valid structure (e.g., can it contain arbitrary JSON? Are there reserved keys?).
Export format parameter lacks enum constraint. Description says 'json, csv, markdown' but no formal enum prevents LLMs from hallucinating other formats like 'xml' or 'yaml'.
List tool lacks documented pagination behavior. Parameters include limit and offset, but no guidance on max limit, default values, or total count in response.
No tool composition guidance. Tools operate on memories but lack clarity on what IDs/references they return for chaining (e.g., does 'store' return a memory ID?). Agents cannot compose operations.