Skip to content
Docs menu

Concepts

Memory types

Every saved record has one of five types. The type tells the agent how to use the record later, and lets you filter searches.

The five types

TypeUse it forExample
decisionA choice between options, with the reason. Always fill context with the why.”Use pgvector, not ChromaDB. WHY: per-tenant row-level security in one Postgres.”
solutionA fix or recipe that worked, so it can be reused.”Flaky login test: wait for the /session response, not a fixed timeout.”
lessonSomething learned the hard way: a postmortem, a regression, a trap.”Never run migration 0042 twice; it is not idempotent.”
conventionA rule of the codebase or team.”API errors use RFC 9457 problem+json.”
factAnything else worth remembering.”Staging Postgres listens on port 5433.”

memory_recall accepts type to narrow a search ("all" is the default).

Importance

memory_save takes an optional importance: critical, high, medium (default) or low. It multiplies the record’s score at recall time (×1.5, ×1.2, ×1.0, ×0.8). Reserve critical for things like migration blockers and security incidents; if everything is critical, nothing is.

Other kinds of memory

Besides typed records, TAM keeps a few specialised stores. You rarely call them directly; the agent or hooks do.

Duplicates and updates

Saving the same words again (ignoring case and punctuation) replaces the stored record, so it carries the latest date. Any other text, including a changed value, is stored as a new record. To retire the old value explicitly, see Facts that change.

Found a mistake? Open an issue on GitHub.

Search