Persistent intelligent memory system for AI agents with vector search, knowledge management, and graph-based memory organization
O_Owl Memory provides 12 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (memory_search, memory_store, etc.). All tools have descriptions (avg ~120 chars) and parameters include types and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is minimal; no recovery guidance or actionable error messages visible. Parameter descriptions lack format constraints (e.g., 'memory_id' accepts 'ID or source_file' but no validation rules stated). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Missing idempotency guarantees for write operations.
Generate a bootstrap prompt with relevant memories for context injection into LLM
List all knowledge entries with optional filtering by tier
Read a knowledge entry with metadata
Write or update a knowledge entry with confidence tier management
Delete or archive a memory entry
Create a relationship edge between two memories
Traverse memory graph starting from a memory ID, following relationship edges
Search memory using vector similarity and keyword matching with optional MMR reranking
No output schemas documented. LLMs cannot predict response structure, breaking tool chaining. E.g., memory_search returns results but fields are undocumented, agent cannot extract memory_id for downstream memory_update calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). memory_delete is destructive but unmarked; memory_search is read-only but unmarked. LLMs cannot reason about safety or retry semantics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Store a new memory entry with optional tags, tier, and metadata
Update an existing memory entry with new content or metadata
Get current working memory state, optionally filtered by slot type or tier
Set a working memory slot (goal, focus, context, or agent_state)
Parameter descriptions lack format constraints. 'memory_id' accepts 'ID or source_file' but no validation rules, length limits, or format patterns stated. LLMs cannot self-validate input.
No error handling guidance visible. No recovery hints (e.g., 'If memory not found, try memory_search first'). No categorization of errors as retryable vs user-fixable.
Idempotency not guaranteed for write operations. memory_store, memory_update, knowledge_write lack idempotency guarantees, agents retrying on ambiguous failures risk duplicate records.