Persistent memory database for AI coding agents. Provides full-text search, knowledge management, and conversation history ingestion with SQLite backend and optional vector embeddings.
Memory Engine provides 10 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun convention (memory_search, memory_save, memory_embed). Descriptions range 50-150 chars, meeting baseline minimums. However, parameter descriptions are often generic ('Filter to specific agent', 'Max results'), lacking actionable constraints. Output schemas are not documented, LLMs cannot predict return structure. Error handling is absent from descriptions. No tool annotations (readOnlyHint/destructiveHint). The server targets a specialized domain (persistent memory for agents) but lacks production-grade polish expected for 70+.
Get all knowledge for a specific agent.
Generate vector embeddings for knowledge entries using Chroma. Enables semantic search.
Ingest JSONL conversation history into the database.
Record observations and patterns discovered during sessions.
Organize sessions into projects for better context management.
Save or update a knowledge entry. Auto-deduplicates by topic+agent.
Search all conversation history. Returns matching entries ranked by relevance.
No output schemas documented. LLMs cannot predict return structure (fields, types, pagination). Forces agents to guess what data is available after each call.
Parameter descriptions lack actionable constraints. 'Max results' does not specify range (1-100? 1-1000?). 'Filter to specific agent' does not explain valid agent names or format.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes (memory_save, memory_ingest, memory_embed modify state but lack destructiveHint).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Search the curated knowledge base (classified, tagged entries).
Semantic search using vector embeddings. Requires embeddings to be generated first.
Show what happened in a time range. Returns entries chronologically.
memory_projects uses overloaded 'action' parameter (create|list|add_session|remove_session) with conditional required params. Undocumented dependencies force LLMs to guess which params apply per action.
No error handling guidance in tool descriptions. If memory_embed fails (Chroma unavailable), LLM has no recovery path. If memory_ingest encounters malformed JSONL, no guidance on retry or fallback.