MCP-first, local-first hierarchical memory for AI agents. Provides persistent, ranked memory storage with decay-based consolidation, reflection, and recall capabilities.
UMG0 demonstrates solid tool design with well-structured schemas, clear naming conventions, and comprehensive parameter documentation. All 6 tools follow verb_noun patterns (retain, recall, get_memory, reflect, list_memories, prune). Descriptions are substantive (100-200 chars typical), explaining WHAT, WHEN, and consequences. Input schemas use Zod with proper type constraints, enums for tiers, and numeric bounds. However, output schemas are not explicitly documented in the visible code, responses are shaped via textResult() and compactMemory() functions, but the LLM-facing contract is not formally declared. Error handling is minimal; no recovery guidance or actionable error messages visible. Security is reasonable (no secrets in params, namespace isolation), but no explicit permission gates or audit trail declarations.
Read one memory in full by id. recall and list_memories return previews cut at 400 characters and mark a cut with content_truncated; call this before acting on a cut memory, especially a procedural skill.
List stored memories with optional filters.
Run hierarchical consolidation: recompute decay, merge near-duplicates, evict low-value memories under caps. Prefer dry_run first when unsure.
Retrieve ranked memories relevant to a query. Call at session start and when you need prior context.
Extract durable memories from conversation text or notes and optionally write them back. Prefer this after a productive session.
Store a memory in the hierarchical store. Use for facts, preferences, decisions, and important session notes. Low-value content may be rejected. Near-duplicates are merged.
Output schemas not formally documented. Response structure is shaped in code (compactMemory, fullMemory, textResult) but LLM-facing contract is implicit. LLMs cannot plan downstream calls or extract fields reliably without explicit schema documentation.
Error handling lacks recovery guidance. No visible error classification (retryable vs user-fixable vs fatal) or actionable error messages. Agents cannot self-correct on failures.
Destructive tool (prune) lacks confirmation/dry-run enforcement. While dry_run parameter exists, no explicit confirmation pattern or guard prevents accidental data loss.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible in registration. These help LLMs reason about side effects and retry safety.
Parameter descriptions lack format/constraint details. E.g., 'namespace' accepts 'project:voniq' but no pattern or length limits documented. LLMs may pass invalid namespaces.