Store Memory
engram_storeSave one durable lesson privately for future workspace agents; returns a confirmation. Use engram_reflect for a milestone with several lessons/outcomes and engram_report_outcome to assess an existing memory.
To correct knowledge, supply the complete replacement in content and old ids in supersedes_memory_ids; change_reason explains the replacement. Old entries retain history; this is not permanent deletion. Similar content may deduplicate and boost confidence, so retries can have effects. Consumes memory/call quota; rejects secrets and low-quality content. OAuth: memory:write.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Repository slug, e.g. engram or billing-api, within the authenticated workspace. This is a memory filter, not a filesystem path or workspace selector. | |
| tags | No | Topic labels for storing or filtering memory; omit when no useful labels apply. | |
| type | Yes | Knowledge category: team rule, reusable pattern, pitfall, proven fix, design decision, or library/version quirk. | |
| content | Yes | One durable, self-contained lesson, up to 20,000 characters. State the decision/fix and why it matters; exclude secrets and transient debug logs. | |
| context | No | Non-sensitive supporting metadata, e.g. {language: "typescript", component: "auth"}; never credentials or raw customer data. | |
| agent_tool | No | Calling client name for attribution, e.g. codex, claude-code, cursor, or gemini. Omit if unknown. | |
| session_id | No | Exact journal id from start/rehydrate/list_sessions. Disambiguates parallel work; writing requires your active session. Rehydrate may read shared or closed history. | |
| change_reason | No | Why the supplied memories are superseded, up to 1,000 characters; used with supersedes_memory_ids. | |
| supersedes_memory_ids | No | Up to 20 accessible memory ids explicitly replaced by this lesson; omit for an ordinary new memory. Old entries retain their history. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The same bounded payload as content[0].text; interpret it using format. JSON text contains the endpoint-specific fields described by this tool. | |
| format | Yes | Payload encoding: Markdown context/checkpoint, serialized JSON data, or plain confirmation text. | |
| truncated | Yes | True when the payload exceeded 120,000 characters and was cut with a notice. Narrow the request; truncated JSON is not parseable. |