ストアがどれだけ書き換えられてきたか
revisions は revised と total で答えます。ストアの記憶のうち、書かれたあとで変えられたものが何件あるかです。大事なことを記憶に委ねる前に、あるいは思い出した事実が今ユーザーの言っていることと噛み合わないときに、尋ねてみる価値があります。十のうち三つの事実が置き換わったストアは、誰も手を入れていないストアほどには信頼できません。
Tablet 2 以降で対応しています。HTTP API から、Python・TypeScript・Rust の SDK から、そして MCP ツールとして呼び出せます。それより前のエンジンは 501 を返し、対応できないモデルの名前を伝えます。
件数
変換が触れたものを数えます - 置き換え、更新、撤回、そして削除された画像です。
mem.revisions()
# {"revised": 3, "unrevised": 37, "total": 40, …}| フィールド | 意味 |
|---|---|
| revised | 変換が触れた記憶の数です。 |
| unrevised | 書き込み以降、何も変更が加えられていない記憶です。revised + unrevised は常に total と一致します。個別に数えた値ではなく導出値のため、同時に書き込みがあっても 3 つの値が食い違うことはありません。 |
| total | ストアに入っている記憶の数です。 |
| counts / excludes | 数値が何を対象としているかを、フラグではなく平文の文で示します。呼び出し側はモデルであることが多いためです。 |
一覧を読む
件数だけでなく記憶そのものを取得するには include を渡します。省略した場合は件数のみが返り、こちらは低コストの呼び出しです。
page = mem.revisions(include="revised", limit=20)
page["memories"], page["matched"], page["has_more"]| フィールド | 動作 |
|---|---|
| include | "revised" または "unrevised" を指定します。それ以外の値は件数へのフォールバックではなく 400 で拒否されます。入力ミスで一覧が黙って落ちると、空のストアと見分けがつかなくなるためです。 |
| limit | 5 から 20 まで、既定は 20 です。範囲外の値や型の誤りは、丸められるのではなく拒否されます。 |
| matched | ページのサイズではなく、このページの背後にある総行数です。 |
| ordered_by | サービス側が並び順を明示します。最後に編集された順ではなく、保存された順で新しいものからです。 |
| next_before | next_skip_ids と組で使う次のページ用のカーソルです。両方をそのまま返送してください。id はページをまたいで蓄積されます。 |
一覧は記憶が変更された日時ではなく、保存された日時で並びます。「最後に編集された順」と想定する呼び出し側はページを読み違えるため、レスポンス側でどちらであるかを明示しています。
削除は数えません。消された記憶には数えるものが残らないため、大きく削り込まれたストアでも
revised は低いまま出ます。この数字が示すのは、どれだけ書き換えられたかであって、どれだけ失われたかではありません。