Every memory is a small file on this computer, and you can read or edit it yourself. This page covers what a memory file contains, the limits that apply to it, how Oda keeps its older versions, and how the memories reach the model. To save and manage memories in the app, see Memory.
Oda keeps each memory as its own file on this computer, named with the memory's id.
0 to 9 and the lowercase letters a to f. A file whose name is not a valid id is not treated as a memory.. or . ..--- lines, the frontmatter, and the memory's text follows the block:--- title: Reply language enabled: true source: user --- Reply in short bullet points.
title (required): the memory's name. Oda normalises it to a single line with single spaces.enabled (required): true or false. A memory that is turned off stays in the list and is not sent to the model.source (required): user or ai, whoever saved the memory. A memory Oda saved itself is marked saved by the agent.sessionId, created and updated (optional): the chat an Oda-saved memory came from, and when the memory was created and last saved.The text below the block is the memory itself; Oda trims it at the ends.
The defaults, and the range each value can be set to:
| What it bounds | Default | Range |
|---|---|---|
| One memory's title | 120 characters | 10 to 1000 |
| One memory's text | 2000 characters | 100 to 100000 |
| One memory's file | 64 KiB | 1 KiB to 16 MiB |
| Older texts kept per memory | 10 | 2 to 100 |
| All memory sent to one chat | about 8000 tokens | 100 to 1000000 |
Every change to a memory keeps the text it replaced as a version. Versions are kept in a history area, apart from the memory files.
YYYYMMDDTHHMMSSmmmZ-<source>, with a number added when two versions carry the same moment.chat for a change from a chat, settings for one created or edited in Settings > Memory, restore for a version restored, undo for a chat change undone, external for an edit made outside the app, and found for the first text of a file created outside the app.No saved version "<id>" of this memory exists.In the app, a change to a memory goes through a check first:
Give a new title, a new text, or both.A memory needs a title., A memory needs some text., A memory title is limited to <n> characters; this one has <m>., and A memory is limited to <n> characters; this one has <m>. Shorten it or split it into several memories.No memory with the id "<id>" exists in this chat's memory. Call memory_list for the current ids.The memory could not be changed: <reason>.You can also change a memory in its file. Oda reads the files again as it works, so a change you save there applies from the next step, with no restart. When Oda next saves that memory, it keeps your outside text as a version first.
Oda checks each memory file it reads. A file that fails is listed as a problem in Settings > Memory and is not sent with your messages.
The file does not start with a --- frontmatter block., The frontmatter is not valid YAML: <message>, or The frontmatter fields <names> are missing or invalid.The file is larger than <n> bytes., or The memory is longer than <n> characters or its title longer than <m>; shorten it in the file.Correct the file and save it again; Oda reads the files again as it works, so the fix is picked up at the next step.
In Oda's own folder inside your user profile on this computer: one set of files holds your global memories and one set for each workspace folder. Each memory is a plain text file named with its id, and Oda never syncs them anywhere.
Yes. Save it in the right set, with a valid id as its name and a valid settings block, and Oda picks it up as it works, so your change applies from the next step. When Oda next saves that memory, it keeps your outside text as a version first. A file whose name is not a valid id is not treated as a memory.
title, enabled and source are required, and sessionId, created and updated are optional; the memory's text goes below the block. enabled turns the memory on or off, and source records who saved it.
One memory's title, text and file each have a default limit: 120 characters, 2000 characters and 64 KiB. The whole memory a chat receives is bounded as well, at about 8000 tokens counted at four characters per token.
The ten newest by default, and an installation can keep between 2 and 100. Older versions drop as new ones arrive, and saving the same text again saves nothing.
From the next step, whether it was made in a chat, in Settings > Memory, or in the file itself: Oda reads the memory files again as it works.
It is turned off, or its file has a problem. A memory turned off stays in the list but is not sent; a file Oda cannot read, or one over a size, title or text limit, is listed as a problem in Settings > Memory and is never sent.
It records who saved the memory: user for one you saved yourself, ai for one Oda saved for you. A memory Oda saved is marked saved by the agent in the list.
It is Oda's estimate of how much of the model's reading space the memory takes, counted at about four characters per token. Settings > Memory shows the estimate, and the same figure is used for the message limit.