Skip to content

Engraphy v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Sep 02:08
· 43 commits to main since this release
ee999a8

Engraphy 0.3.0 stores a memory that carries a partial or imprecise date, and it scores level with Mem0 on LoCoMo.

Memory writes

  • A date attribute accepts a full ISO date (2026-01-15), a year and month (2026-01), or a year (2026). The engine stores the value exactly as written.
  • The engine refuses an out-of-range month or day, for example 2026-13 or 2026-02-30. A month must be zero-padded, so stored dates sort in chronological order.
  • When an attribute value does not fit its declared type, the engine stores the node and keeps the value under attrs.dropped as {key: {value, error}}. The response names each such value in dropped_attrs.
  • A required attribute stays satisfied by its entry in attrs.dropped. The node keeps its title, its body and its other attributes.
  • The engine refuses a key that the node type does not declare, when the node type has a closed specification.
  • write, supersede and update all use these rules. Import and inbox promotion use them through write.

LoCoMo results

Strict grading: the reader can decline, and the judge requires every item of the gold answer. The interval in brackets is the 95% Wilson interval.

Category Engraphy 0.3.0 Mem0 (published)
Excluding adversarial 66.8% [62 to 71] (260/389) 66.88%
Single-hop 69.0% (129/187) 67.13%
Multi-hop 53.8% (43/80) 51.15%
Temporal reasoning 72.9% [63 to 81] (70/96) 55.51%
Open-domain 69.2% (18/26) 72.93%
Adversarial 89.2% [82 to 94] (99/111) Not reported
  • Excluding adversarial questions, Engraphy is level with Mem0's published 66.88%.
  • Temporal reasoning scores 72.9%. The highest published figure for this category is 58.13% (Mem0g).
  • On adversarial questions, where the correct answer is to decline, Engraphy scores 89.2%. The published comparisons do not report this category.

Configuration and limits

  • Engine. Commit 3df1a4d, which carries the write path in this release.
  • Retrieval. Each question requested 20 search results. A client sets this with the limit argument of search. The default is 10 and the maximum is 25. A run with 10 results, a single-line reader reply, and the skill without its subject-and-occasion section scored 65.0% excluding adversarial questions.
  • Reader. Claude Opus 4.8 loaded the answer-discipline skill in this release. The benchmark harness asked it to name the supporting memory on a line before its answer. That reply format is part of the harness, not the engine.
  • Judge. Claude Sonnet 5, best of three passes.
  • Sample. 3 of the 10 LoCoMo conversations (500 questions, 389 of them not adversarial), measured in one run. Two runs of one configuration can disagree on about one question in five.
  • Comparison. The published figures cover all 10 conversations, average 10 runs, and use a GPT-4o-mini reader. These results therefore do not rank Engraphy above or below the published systems.

Security and administration

  • POST /inbox accepts readwrite tokens only, and each capture counts against the token's write rate limit (rate.write_per_min). The request body limit is 64 KiB.
  • A principal with archived set receives 401 on every token it holds, from its next request. engraphy-admin principal archive and engraphy-admin principal unarchive set and clear the flag. A space_admin can do the same over MCP with admin_member_archive.
  • The engine refuses to mint a token for an archived principal.
  • traverse does not return archived nodes. update and link refuse them with ENGRAPHY_VALIDATION. get reads them by id.
  • The admin image installs dbmate v2.35.0 and verifies its SHA-256 digest for amd64 and arm64 before the binary runs.

Agent skill

The answer-discipline skill tells an agent to check that a returned memory is about the subject and the occasion the question asks about, before it answers or declines. A memory that uses the same words about a different person or event does not answer the question.

Deployment

  • The micro embedding profile (ENGRAPHY_EMBEDDING_PROFILE=micro) runs gte-small on ONNX Runtime. Its embedder holds 143 MB of steady resident memory. Every v* tag publishes a -micro image beside the default one.
  • With the micro profile and compose.small.yaml, the whole stack uses 187 MB of resident memory on a 20,000-node store.
  • A Docker-free Windows distribution installs PostgreSQL 16.15 with pgvector 0.8.6, the server and the embedding model with one installer. Refer to docs/windows-native.md.
  • The embedding runtime is pinned to onnxruntime 1.29.x, the release that the dedup thresholds are calibrated on.
  • The VS Code extension is released separately, from ide/vscode-engraphy, under ide-v* tags.

Upgrade

  1. Check principals.archived in each space. A principal with the flag set cannot authenticate on 0.3.0.
  2. Run engraphy-admin migrate. It applies migrations 0026, 0027 and 0028. The server starts only when the schema is at 0028.
  3. Start the 0.3.0 server.

Assets

  • engraphy-0.3.0-py3-none-any.whl and engraphy-0.3.0.tar.gz.
  • Container images ghcr.io/devon-clarkk/engraphy:0.3.0, engraphy:0.3.0-micro, engraphy-admin:0.3.0 and engraphy-admin:0.3.0-micro.