資産ストアをタイトルでグループ化したら、「重複」が 30 グループ見つかった。コンテンツハッシュで判定し直すと、そのうち 24 グループが溶けて消えた。本物は 5 つ。残る 1 グループは判定不能 — 行の中身が空だったからだ。
対象は複数プラットフォームから収集した AI エージェント資産(会話・スキル・メモリ・指示ファイル)のストア。2026-08-19 に実施したライブ監査の数字だ。
30 グループはタイトルの完全一致から出てきた。候補を「見つける」方法としては悪くない。「決める」方法としては最悪だ。各グループは代わりに 4 つの軸で判定した。
30 グループの実際の内訳がこうだ。
同一コンテンツが 2 回入っていた。原因はどれも地味だ。同じ資産がアンダースコアのスラッグとハイフンのスラッグで二重登録。同じメモリが英語キーとローカライズ済みキーで二度保存。本物の重複は退屈だ — そしてそれこそが要点で、安全に畳んでいいのは退屈な行だけだ。
同じタイトルの会話が 2 本、作成間隔 45 日、本文類似度 8%。213KB のスレッドと 27KB のスレッドが名前だけ共有している。類似度 85% で間隔 10 ヶ月というペアもあった — ほぼ確実に、人が昔の会話を貼り付けて続きを書いたものだ。それは 1 件ではなく 2 件の資産だ。ここを畳むと履歴が消える。タイトルの再利用は人間の通常運転であって、破損ではない。
パイプラインをテストするために書き込まれた合成資産は、埋め込まれたマーカーだけが違う。別々の実行から生まれた 2 つのプローブは、どんな曖昧マッチャにも重複に見える。だが実体は別々の「イベント」で、畳めば片方の実行記録が消える。テスト成果物を本番ストレージに書くシステムなら、重複判定ロジックはプローブの見た目を知っていなければならない。
一番奇妙な発見。本文が完全に空 — ヘッダだけの行。実在の資産と同じタイトルで、中身がない。全部が同じ日の約 8.7 分の窓の中で生成され、1 つのタイトルに最大 5 コピー、数秒間隔。
これは重複問題ではない。書き込み経路の事故の化石記録だ。教訓はこうだ — 手元にある唯一の証拠が「不在」なら、分類はできない。 この行が行くべきは統合キューではなく隔離だ。
完全に無関係なコンテンツを持つ 3 ペアが、同じ出所参照を共有していた。出所だけを信じて「収集済み、スキップ」と判定するパイプラインなら、実在の資産を黙って落としていたはずだ。見つかったのはコンテンツハッシュが出所フィールドと食い違ったからだ。2 つのシグナルが喧嘩すること — それが監査の存在意義だ。
| 判定 | グループ数 | 安全な処置 |
|---|---|---|
| 本物の重複(バイト同一) | 5 | 片方をアーカイブ |
| 同名の別資産 | 6 | 両方残す |
| 別々のテストプローブ | 7 | 両方残す・プローブとしてタグ |
| 中身が空の行 | 4(12行) | 隔離して書き込み側を調査 |
| 出所参照の衝突 | 3ペア | ソースで再検証 |
重複に見えたものの 8 割は重複ではなかった。逆も成り立つ — タイトル基準で「重複ゼロ」のストアが、別名の同一コンテンツだらけかもしれない。どちらの誤りも根は同じで、いちばん安いキーで同一性を判定したことだ。
*untactit — AI エージェントのスキル・指示・メモリを一元管理する基盤(プレローンチ)— の開発メモです。プラットフォーム横断の資産同一性がまさに本業で、コンテンツハッシュ+出所+読み直し検証、タイトル単独では決して判定しません。*