lineage
La cadena de ediciones que hay detrás de una memoria, de la más antigua a la más reciente. revisions indica cuánto se movió un store; esto indica qué le pasó a un hecho concreto.
Compatible con Tablet 2 y superiores. Solo lectura. A diferencia de
revisions, esta es una llamada facturada normal, porque devuelve contenido de memorias.Pase el id de cualquier memoria de la cadena. Las versiones reemplazadas se conservan en lugar de borrarse, así que una búsqueda que solo devuelve el hecho vigente se puede rastrear hacia atrás.
chain = mem.lineage(memory_id=mid)["chain"]
for step in chain:
print(step["changed_at"], step["action"], step["content"])200
{ "memory_id": "m_9", "count": 3, "truncated": false,
"chain": [
{ "memory_id": "m_3", "content": "lives in Seoul",
"created_at": "2026-03-02T…", "changed_at": "2026-06-11T…",
"action": "replaced", "confidence": 0.94,
"superseded_by": "m_7", "is_current": false },
{ "memory_id": "m_7", "content": "moved to Busan", … },
{ "memory_id": "m_9", "content": "Haeundae, specifically",
"changed_at": null, "superseded_by": null, "is_current": true }
] }| Campo | Qué hace |
|---|---|
| chain | Las versiones, de la más antigua a la más reciente. Cada una lleva los mismos campos que una memoria, más los cuatro de abajo. |
| changed_at | Cuándo se reemplazó esta versión (RFC3339), o null mientras siga vigente. |
| action | Qué ocurrió en este eslabón - cómo se relacionó el reemplazo con esta versión. |
| confidence | Cuánta certeza tenía el motor sobre esa relación, de 0 a 1. |
| is_current | True para la única versión que sigue vigente. Exactamente una por cadena. |
| truncated | True cuando la cadena era más larga de lo que el servicio recorre. Los pasos devueltos siguen siendo los más antiguos. |
Para qué sirve
Dos usos. Depuración: por qué una memoria dice hoy lo que dice. Y permitir que un asistente consulte su propio historial - un hecho corregido tres veces es un tipo de hecho distinto de uno escrito una sola vez, y solo la cadena lo muestra.