A self-hosted memory engine for AI agents, modelled on the human mind. Provides associative memory with deduplication, hybrid search, and graph traversal capabilities.
Engraphy demonstrates solid foundational quality with 20 well-named tools covering a knowledge graph domain. All tools have descriptions (avg ~120 chars) and input schemas with typed parameters. However, several critical gaps limit production readiness: (1) Output schemas are not documented, LLMs cannot predict response structure for chaining; (2) Parameter descriptions are minimal (avg ~40 chars) and lack format/constraint guidance; (3) Error handling is absent, no recovery guidance or actionable error messages; (4) Admin tools lack permission documentation; (5) Confirmation patterns exist (write, scope_create) but are inconsistently applied to destructive ops (supersede, admin_member_archive). Tool naming is strong (verb-first, clear intent), and the domain model is coherent, but LLM-facing descriptions need expansion to meet production standards.
Grant a principal read/write on a scope (space_admin only).
Add a principal to this space (space_admin only).
Archive a member so every token it holds is refused, or restore it with archived: false (space_admin only).
Change a scope's visibility (space_admin only).
Mint a display-once bearer token for a principal (space_admin only).
Pack-driven session-start sections: due commitments, relevant preferences and notes.
Full nodes plus edge summaries, up to 25 ids.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining. Responses for search, traverse, get, briefing lack documented return types.
Parameter descriptions are minimal (avg ~40 chars) and lack format/constraint guidance. E.g., 'scope' param in search has no guidance on valid scope IDs or 'all' semantics; 'limit' params lack min/max bounds; 'detail' enum values lack explanation of what 'full' vs 'summary' returns.
No error handling guidance. Tools lack recovery hints (e.g., 'If node not found, try search() first'). Admin tools (admin_member_add, admin_token_create) do not document permission requirements or failure modes. Destructive ops (supersede, admin_member_archive) lack confirmation patterns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2025-06-18+ | v2 |
Review the capture inbox: list, promote, or discard pending items.
Attach typed edges between existing nodes, rule-checked.
List your pending duplicate-check writes awaiting confirmation (read-only).
Resolve a pending duplicate-check verdict as distinct or merge.
Create a new private scope (requires confirm: true and a non-empty description).
The routing manifest: every scope you can write to, each with a description of what it governs and when to write there. Fetch this to decide where a new memory belongs. Read-only.
List the scopes this token can read.
Hybrid + RRF search across one scope or 'all'.
Usage metrics — totals + a zero-filled daily series, grouped by 'space' (all principals) or 'user' (you); read-only.
Atomically replace a node with a new one and flip the old one's status.
Recursive graph walk from a starting node.
Update a node's title/body/attrs; re-embeds only if the text actually changed.
Dedup-banded write; returns the written node or a duplicate-check verdict, plus a resonance report. If the result is 'merged' but your text contradicted or updated the stored fact rather than restating it, call supersede.
Admin tools lack permission scope documentation. No indication of which roles (space_admin, user, etc.) can invoke each tool. Audit trail and access control patterns are absent.
Inconsistent confirmation patterns. write and scope_create require 'confirm: true', but supersede and admin_member_archive (equally destructive) do not. This invites accidental data loss.