Entwickler

lineage

Die Kette der Änderungen hinter einer Erinnerung, älteste zuerst. revisions gibt an, wie stark sich ein Store verändert hat; dies gibt an, was mit einer einzelnen Tatsache geschehen ist.

Unterstützt ab Tablet 2. Nur lesend. Anders als revisions ist dies ein normal abgerechneter Aufruf, da er Inhalte von Erinnerungen zurückgibt.

Übergeben Sie die ID einer beliebigen Erinnerung in der Kette. Ersetzte Versionen werden aufbewahrt statt gelöscht, sodass eine Suche, die nur die aktuelle Tatsache zurückgibt, weiterhin zurückverfolgt werden kann.

chain = mem.lineage(memory_id=mid)["chain"]
for step in chain:
    print(step["changed_at"], step["action"], step["content"])
const { chain } = await mem.lineage(undefined, mid);
for (const step of chain) {
  console.log(step.changed_at, step.action, step.content);
}
let r = mem.lineage(None, mid).await?;
for step in r["chain"].as_array().unwrap_or(&vec![]) {
    println!("{} {} {}", step["changed_at"], step["action"], step["content"]);
}
curl -X POST https://api.wontopos.com/api/v1/memory/lineage \
  -H "X-API-Key: $WOS_KEY" -H "Content-Type: application/json" \
  -d '{"user_id":"alice","memory_id":"m_9"}'
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 }
  ] }
FeldWas er tut
chainDie Versionen, älteste zuerst. Jede enthält dieselben Felder wie eine Erinnerung, dazu die vier folgenden.
changed_atWann diese Version ersetzt wurde (RFC3339), oder null, solange sie noch gilt.
actionWas an diesem Kettenglied geschah - wie die Ersetzung zu dieser Version stand.
confidenceWie sicher sich die Engine bei dieser Beziehung war, 0-1.
is_currentTrue für die eine Version, die noch gilt. Genau eine pro Kette.
truncatedTrue, wenn die Kette länger war, als der Dienst sie verfolgt. Die zurückgegebenen Schritte sind weiterhin die ältesten.

Wofür es gedacht ist

Zwei Anwendungsfälle. Debugging: warum eine Erinnerung heute so lautet, wie sie lautet. Und einem Assistenten den Blick auf seine eigene Historie zu ermöglichen - eine dreimal korrigierte Tatsache ist eine andere Art von Tatsache als eine einmal geschriebene, und nur die Kette zeigt das.