lineage
기억 하나가 고쳐져 온 이력을 오래된 순으로 돌려줍니다. revisions 가 저장소 전체가 얼마나 움직였는지라면, 이쪽은 사실 하나에 무슨 일이 있었는지입니다.
Tablet 2 이상에서 지원합니다. 읽기 전용입니다.
revisions 와 달리 기억 내용을 돌려주므로 일반 유료 호출입니다.체인에 속한 아무 기억의 id 나 넘기면 됩니다. 대체된 판은 지우지 않고 보관하므로, 검색이 현재 사실만 돌려줘도 거슬러 올라갈 수 있습니다.
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 }
] }| 필드 | 하는 일 |
|---|---|
| chain | 판들을 오래된 순으로. 각 판은 기억과 같은 필드에 아래 넷이 더 붙습니다. |
| changed_at | 이 판이 대체된 시각(RFC3339). 아직 유효하면 null. |
| action | 이 자리에서 무슨 일이 있었는지. 대체본이 이 판과 어떤 관계였는지입니다. |
| confidence | 엔진이 그 관계를 얼마나 확신했는지, 0~1. |
| is_current | 지금 유효한 판에만 true. 체인당 정확히 하나입니다. |
| truncated | 체인이 서비스가 훑는 길이보다 길었으면 true. 돌려준 판들은 여전히 오래된 쪽입니다. |
어디에 쓰나
둘입니다. 디버깅 — 이 기억이 왜 지금 이 모양인지 추적합니다. 그리고 어시스턴트가 자기 이력을 보는 것 — 세 번 고쳐진 사실은 한 번 쓰인 사실과 다른 종류이고, 그걸 보여주는 건 체인뿐입니다.