毎回、ほとんどのAIエージェントは、自身のトランスクリプトを全て再送信します。一方、実際の複数セッションタスクでは、コンパクトなメモリを呼び出すことで、再送信よりも「62.8%–85.9%」少ないコンテキストトークンを使用できます。ここでは、その測定結果、方法、およびオフラインで再現する方法について説明します。
請求書にないコスト
エージェント・ループは、一つのモデル・コールではありません — 数十ものコールです。長い Claude Code または Cursor セッション、自律的なタスク・ランナー、数日間のプロジェクト: 各ターンは、新しいシステム・プロンプト、全ての成長するトランスクリプト、および新しいメッセージを再送信する新しいコールです。トランスクリプトは成長するだけなので、コンテキストのコストもそれに伴って成長します — また、各ターンで前のものを再送信するため、N ターン間の合計コンテキストのコストは、おおよそ O(N²) になるのです。これが、長いセッションが最終的にコンテキスト・ウィンドウに当たって停止する理由でもあります。
代替案があります: トランスクリプトを再送信しないことです。決定、規約、ファイル・パスなどの耐久性のある事実をメモリー・セルとして保持し、各ターンで小さな、上限のあるセットを呼び出します。那によって二乗の再送信を おおよそ O(N · cap) に変換します。明らかな疑問は、それが実際にどれだけのコストを節約するか です。したがって、SAIHM は、それを測定するためのベンチマークを公開しました — また、信頼するのではなく、その数字を確認するためのものです。
実験
ベンチマーク (citw2/saihm-token-benchmark, Apache 2.0) では、1 つの現実的なシナリオをモデル化しています。3 回のセッションにわたる、ビルド・ア・フィーチャー・コーディング・アシスタントで、初期の決定 (「Recharts を使用する」、「タイムスタンプを UTC で保存する」、「名前付きエクスポートのみ」) が蓄積され、後続のターンでそれらを思い出す必要があります。ベンチマークでは、2 つの戦略の下で、入力/コンテキスト トークンのみ を、すべてのターンにわたって合計します。
-
Naive — 各ターンで、システム プロンプト + 成長するトランスクリプトの全体 + 新しいメッセージを送信します。
-
SAIHM — 各ターンで、システム プロンプト + 思い出されたメモリ セルの制限付きセット + 新しいメッセージを送信します。生のトランスクリプトは再送信されません。
トークナイゼーションは gpt-tokenizer (cl100k_base、GPT-4 BPE) です。完全にオフラインで実行されるため、API 呼び出しやキーは不要であり、誰でも同じ結果を得ることができます。
数字
| セッションの長さ | 直感的なトークン | SAIHM トークン | 少ない |
|---|---|---|---|
| 5 ターン | 1,628 | 605 | 62.8% |
| 10 ターン | 6,091 | 1,273 | 79.1% |
| 15 ターン | 13,175 | 2,023 | 84.6% |
| 18 ターン | 18,688 | 2,632 | 85.9% |
セッションが長くなるにつれて、ギャップが広がる — これは正に O(N²)-vs-O(N · cap) の差が予測するものです。
これらの数字は、偏りなく誠実である理由
- 入力のみです。 出力トークンは、両方の戦略で同じなので、カウントされません。勝利は、再送信するコンテキストのみに基づいています。
- 短期間の作業では、保守的です。 5 回のターンでは、62.8% のみを節約できます。85.9% ではありません。節約額は、セッションの長さとメモリセルのコンパクトさの関数です — 実際の成果は、ワークロードに依存します。
- これは、動的であり、価格ではありません。 これは、再送信対回想トークンボリュームです。特定のプロバイダーの請求ではありません。
2分で再現する
git clone https://github.com/citw2/saihm-token-benchmark
cd saihm-token-benchmark && npm install
node benchmark.mjs
node benchmark.mjs --recall-cap 4 # リコールの幅と節約をトレードする
キャップを変更して、自分のシナリオを入れ替えて、再実行してください。「公開する」目的は、パーセンテージを信じる必要がないということです。
リコールの由来
SAIHMは、モデル間でアドレス指定できるメモリ層です。同じストアが、Claude、GPT、DeepSeek、Qwen、Kimi、またはGLMから、そしてLangChain/LlamaIndexを介して機能します。耐久性のある事実は、メモリセルとして保存されます。各ターンで、履歴を再生するのではなく、バウンドされたセットをプルします。メモリはポータブルなので、特定のベンダーの組み込みコンテキストにロックされません。さらに、メモリはあなたのものなので、キーを保持しており、消去はレコードごとに可能で、検証可能です。上記のデモはそれぞれ実行可能です。 — デモセット からリンクされています。
誠実な終了
SAIHMは、無料プランがない有料製品です — これはトライアルの後ろに隠しておくことではなく、最初から明確に述べられています。しかし、ベンチマークと12以上のデモはオープンソースでローカルで実行できるため、主張を検証し、決定を下す前に統合を試すことができます。ツールのサーフェスと接続手順は、/developersにあります。価格は、/pricingに記載されています。
— アーキテクト
試してみてください: ドロップインメモリ契約
ここは違いを感じるための最も速い方法です。エージェントのシステムプロンプトに以下を貼り付けてください — これは、SAIHM MCP ツール saihm_recall / saihm_remember / saihm_forget がハーネスに接続されていることを前提としています。以下に記載されているものが節約を生み出すのです:
## メモリ契約
毎回のターン前に:
1. 再読み込みではなく、**RECALL** を実行します。タスクのキーワードで `saihm_recall` を呼び出し、一定の範囲に収まるセルをロードします。以前のターンの内容を再送信しないでください。呼び出されたセルはあなたのコンテキストです。
2. 現在の事実を優先します。呼び出されたセルが矛盾する場合、最新または上書きされていないものが優先されます。後続のセルで覆われた決定に基づいて行動をとってはなりません。
3. **REMEMBER** を使用して、決定、規約、制約をセルとして永続化します。各事実を1つずつ、自分の言葉で記録します。
4. 「データの削除」を要求された場合、`saihm_forget` を呼び出してセルを削除します。削除はレコードごとに行われ、証明可能です。ソフト削除ではありません。
境界付きの再呼び出しにより、再送信のカーブが O(N²) から O(N·cap) に減少します — このページのベンチマークでは、62.8–85.9% 少ないコンテキスト トークンが表示されます。小さな再呼び出し制限から開始し、再呼び出しにミスがある場合のみ、それを増やします。
_**独立性に関する通知。** SAIHMは、Apache-2.0プロトコルであり、独立して作成されています。このページで説明されているベンチマークはオープンソースであり、オフラインで再現可能です。数字は公開されたスクリプトによって生成され、セッションの長さやシナリオに依存します。アーキテクチャは概念的なレベルで説明されています。権威ある詳細は、公開された仕様と公開されたソースコードです。_
---
_Originally published at [the SAIHM blog](https://t.saihm.coti.global/r/qiita-faff8197) on 2026-06-23. SAIHM is the Sovereign AI Horizontal Memory protocol — Apache 2.0, open spec at [saihm.coti.global](https://saihm.coti.global)._
