Field reference:
memory_schema — every field, type, default, and tier for this page.
For how memory works under the hood — storage layout, per-channel identity, namespaces,
the widget’s browser-side store, and durability — see User Memory.Page layout
The Memory page (owner side) has these areas, top to bottom:- Recommended-schema banner — appears when any of the recommended Operating Manual private fields are missing; Apply merges them in non-destructively.
- Generate Fields Schema — a button that opens the AI schema generator (see Generate a schema with AI).
- Memory Engine — per-agent settings that override the platform defaults, plus a View Insights link to per-user memory analytics.
- Public fields — a structured schema of fields the subscriber can see and edit.
- Private fields — the agent’s working notes, hidden from the user by default but inspectable on request.
- Your agent’s memory — a list of owner-side namespaces (preview, owner API keys, IM senders, email senders) with live memory counts. Click any row to inspect what the agent has remembered in that scope.
Memory Engine
Per-agent overrides that sit on top of the platform defaults. The card header shows live stats (total memories, users, recent credit spend) and a View Insights link to the per-user analytics and trust/contradiction tools.
Toggles auto-save. Each override is dropped from the saved file when it equals the platform default, so the per-agent config stays minimal.
Public fields
Visible and editable by the subscriber. The agent can also propose updates from conversation context.
You can drag field cards by their header to reorder them.
Private fields
Agent’s working notes — hidden by default, but the user can inspect them on request. Each field has Guidance for the agent (what to observe and when to record it) plus a Field type:- Text (single value / rolling log) — the default. A single text value; use rolling retention to keep the last N updates as a log.
- Structured list (queryable records) — a
record_array: a list of structured records the agent upserts by a key field and filters withquery_user_memory_field(e.g. per-topic mastery).
Structured-list (
record_array) fields:
Pinned (always-injected) fields and the recommended schema
Most private fields are retrieved on demand and are subject to trust-decay and a character budget. A field markedalwaysInject is different: its value is pinned verbatim into the always-on <agent_user_memory> prompt block every turn, exempt from eviction. This is for stable directives — the recommended preferences and hard_rules fields both carry it.
If your schema is missing any of the recommended Operating Manual private fields (preferences, hard_rules, workflows, decision_style, what_matters, what_to_ignore, tradeoffs), a banner appears at the top of the page. Apply merges the missing ones in non-destructively — your custom fields stay untouched — so the auto-extraction pipeline can populate the Operating Manual layer.
The schema shape (JSON)
Under the hood each private field is one JSON object. A minimal text field:memory_schema for every field, type, and default.
Generate a schema with AI
Rather than hand-authoring fields, you can let the AI draft them from a document. Click Generate Fields Schema on the Memory page (or open the Generate Schema from File page) and:- Paste or upload a
memory.md/CLAUDE.md-style file describing what the agent should know about its users. - Click Analyse. The AI returns a suggested schema: a set of private fields (key, label, guidance, retention), custom entity types, and focus instructions.
- Review the preview, then click Apply to Memory Schema.
Schema versioning
Every save bumps aschemaVersion number when the set of keys or types changes. This is how downstream consumers know to refresh their cached schema.
Examples
Hello world — remember a name
The simplest useful memory: one public field, Preferred name (short text, high elicitation). The agent asks the visitor’s name early, remembers it, and greets them by name on every future visit. One field, immediate payoff — a chat that feels like it knows you.Customer support agent
Public fields:
Private fields:
Language tutoring agent
Public fields:
Private fields:
Complex — a longitudinal health-coaching agent
This pushes memory to its limit: a coach that tracks a client across months of sessions, where what to remember is nuanced and privacy-sensitive. Public fields (structured, the client can see and correct these):
Private fields (free-form agent notes, never shown to the client):
Use the Memory focus instructions on the Memory Engine to steer how the agent writes these notes — e.g. “Be clinical and specific in private notes. Never restate sensitive context unless the client raises it first. Prefer behavioural observations over judgements.” Combined with the rolling-limit retention, the agent builds a rich, current picture of each client that informs every session without ballooning the stored profile or surfacing private notes inappropriately. This is the system at full stretch: structured facts the client owns, plus disciplined free-form notes the agent maintains under explicit guidance.
Trust and contradictions
Every memory and Operating Manual field carries a trust score (0–100%). Trust starts from the source of the value — a value the user typed in a form or explicitly corrected is trusted more than one the agent inferred — and drives how memories are ranked and thresholded on retrieval. The View Insights link on the Memory Engine card opens memory analytics; drilling into a single subscriber opens their insights page, where you can:- Resolve contradictions. When the merge step flags two memories as making incompatible claims about a user, they appear under Open contradictions with a severity. Resolve each with Kept new, Kept old, Merged, or User clarified to clear the caveat the agent shows on retrieval.
- Revert an adaptation. The Adaptations table lists the Operating Manual fields the agent has populated for that user, with their source and trust. Revert clears a field and signals a user-correction (resetting trust on the empty state) — use it when the agent has guessed wrong.
- Wipe a user’s memory. Wipe this user’s memory is the full destructive erase: every memory in every namespace for that user, plus the structured profile and the complete memory history. It cannot be undone.
Memories are shown on the owner’s insights view as metadata only — the full text stays private to the subscriber, who manages it on their own memory page.
What subscribers see and control
Registered subscribers get their own memory page (“What this agent remembers about you”), available on every tier. From it they can:- Pause memory. A single Agent may remember things about you toggle. When off, the agent saves nothing new; existing memories stay visible and are still used in conversation until deleted.
- Edit their Operating Manual. Each Operating Manual field shows its source and trust, the agent’s guidance, and an editable value. Save marks the user’s version as authoritative (overriding any agent guess); Clear tells the agent to stop using that field.
- Delete or forget memories. Individual memories can be deleted, or Forget everything wipes them all. A checkbox additionally purges the memory history (change log, extraction audit, contradiction records) — that purge cannot be undone.
- Restore an earlier version. The append-only memory change log records every change (what, when, why, and what triggered it). Where a prior version was captured, Restore this version rolls a memory back to it. The log can also be downloaded as JSON.
Enabling the Memory tool
For the agent to read and write memory mid-conversation, the Memory tool must be enabled on the Tools page. Once enabled, the agent will check what it already knows at the start of relevant conversations, update fields naturally as it learns new information, and ask the user for fields based on the elicitation priority.Tips
- Start with a few high-priority public fields. You can always add more later.
- Use private fields for things the agent should track silently — communication preferences, topics to avoid, patterns you notice.
- Set elicitation priority to Never — form only for fields you want users to fill in themselves on the memory page rather than the agent asking mid-conversation.
- Write clear guidance for private fields. For example: “Note whether the user prefers brief bullet answers or detailed prose — record which style they respond better to.”
Manage via the Management MCP
This area is managed through the Management MCP athttps://manage.agentheya.com/mcp.
All tools take
owner_id + agent_id as required arguments. See the Management MCP guide for authentication and the full tool catalogue.