pinecall memory
What the agent remembers about a contact.
memory#
pinecall memory <contact>
pinecall memory forget <contact> [--yes]
pinecall memory policy [--agent <slug>] [--remember '…' …] [--forget '…' …] [--team] [--note '…']
pinecall memory eval [golden.json] [--k <n>] [--agent <name>] [--file agent.tsx]
$ pinecall memory policy --team --remember alergias --remember "médico habitual" --forget pagos
clinica-norte · sandbox
yours v9 · nothing remembered
team v5
remember alergias
remember médico habitual
forget pagos
production v3 · nothing remembered
$ pinecall memory +34600000001
nothing remembered about +34600000001
Everything memory kept about one contact — the caller's number, or the id the app named — with the
current facts first and the ones a later call superseded dimmed, with the date they stopped
holding. forget erases all of it, the right to be forgotten; on a terminal it asks once, and
prints how many facts went. With nobody at a terminal — a script, CI — it erases only with
--yes, as data erase does, and exits 2 without it; --yes also skips the question.
policy alone prints what the agent remembers and forgets, corner by corner; with flags it writes
yours (--team the team's). Each category is its own flag — --remember allergies --remember 'preferred name' — and the policy written replaces the one before it. To take yours out so the
team's holds again: pinecall agent clear memory.
eval holds recall to a golden of {holds, asks, expects} — test/<name>/goldens/memory.json:
each question brings its own facts, so no
contact of yours is read or written — they go to a scratch contact and are deleted again.
remember#
pinecall remember [paths] [--agent <name>] [--file agent.tsx] [--grep x] [--json]
$ pinecall remember
clinica-norte · anthropic/claude-haiku-5-5 · 3 cases · 3 held · 5445 ms
✓ anota la alergia y nunca la tarjeta
✓ la mañana sustituye a la tarde, no convive con ella
✓ ni guarda un permiso ni borra lo que nadie desmintió
The cases are test/<name>/memory/, one file per call written down.
The other half of memory: the write side. A case is one call written down — both speakers, because nothing is re-run — the facts memory already holds, and what must come of it: which categories got a fact, which never did, which values must not survive in any fact's text, and which held facts the call contradicted.
Each case costs ONE model call, the very one a hang-up makes, run by the gateway against the class this terminal is holding. Every answer is judged by code: a category is the class's own word, a value is a literal, a supersession is an id — never one sentence compared to another, because two ways of writing one fact are one fact.