TOMC Memory について
TOMC Memoryは、AIアシスタント向けのオープンソースのコンテキスト準備・タスクメモリツールです。指定した履歴をCPU上で整理し、MCPサーバーまたはPython APIから明示的にメモを保存・呼び出せます。
主な機能
- 01CPUでのコンテキスト整理
- 02タスク別のコンテキスト予算
- 03メモの明示的な保存と呼び出し
- 04MCPサーバーとPython API
- 05複数アシスタントで共有するローカルノートブック
活用シーン
- 01長い履歴をタスク用に準備
- 02新しいチャットで決定事項を継続
- 03アシスタント間でメモを引き継ぎ
MCP 対応
MCPサーバーは、コンテキストの準備とタスクメモの明示的な保存・呼び出しを行うツールを提供します。クライアントはローカルで実行し、ノートブックデータベースを共有できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
![]() |
累計クローン数 · 2026-10-02から記録 · 2026-10-23 UTCに更新。測定方法と更新情報
TOMCが役に立ったら、右上の⭐ Starをクリックしてプロジェクトを応援してください。
TOMC Memory
Codex / Claude Code / Cursor / TRAE / WorkBuddy向けのコンテキスト圧縮とタスクメモリ
長い履歴を圧縮・整理し、保存したタスクメモをCPU上で呼び出します。
APIで使用 · TOMC Memoryをインストール · アシスタントを切り替える · デモを見る · 論文の解説 · 論文の結果 · 英語 | 简体中文
CPUでの処理 · 学習や追加のモデルサービスは不要 · プレーンテキスト出力 · 研究プレビュー
公式GitHubホーム · プラグインのダウンロード · インストールガイド
こちらはTOMC Memoryの公式リポジトリです。ソースコード、プラグインのダウンロード、インストールガイドを掲載しています。
Part 1 · TOMC Memory を使う
TOMC Memory は、Task-Oriented Memory Compilation(TOMC)に基づいて構築されたオープンソースのツールです。AI アシスタント向けにコンテキストを圧縮・コンパイルし、明示的に保存したメモを通じてタスクメモリを提供します。MCP サーバーと Python API から利用できます。履歴、次のタスク、メモリの予算を渡してください。ソーステキストを選び、サポートされている状態、関係、または件数のレコードを計算するため、アプリケーションは履歴全体の代わりに準備されたコンテキストを送信できます。準備処理は CPU 上で実行され、トレーニングや追加のモデルサービスは必要ありません。
動画の制作、素材の整理、ファイルの処理、コードの開発でタスクメモリを活用できます。remember_memory を使って概要、決定事項、制約、完了した手順、残作業を保存し、次のタスクに向けてメモを準備するには recall_memory を使います。これらは保存したメモの活用例です。以下に記載する測定値は、合成されたプロジェクト履歴と論文のベンチマークを対象に、それぞれ独自のタスクとプロトコルで得られたものです。これらのワークフローにおけるすべてのタスクの性能を示すものではありません。
Python API を独自のアプリケーションに追加したり、Codex または Claude Code にプラグインをインストールしたり、ローカル MCP 経由で Cursor、TRAE、Tencent WorkBuddy、Claude Desktop に接続したりできます。削減量は履歴とタスクによって異なります。短い履歴はそのまま保持できます。デフォルトでは、長い履歴の約 80% を保持します。より小さなリクエストが必要な場合は、独自のタスクで 40% または 60% の予算を比較してください。別途掲載しているCodex と Claude の結果をご覧ください。
同じアシスタントまたは別のアシスタントとの新しいチャットで、保存したタスクメモを再利用できます。両方のクライアントが同じコンピューター上の同じ TOMC データベースを使用していれば、保存した決定事項、制約、次の手順を再利用できます。Codex → Claude Code → Codex の引き継ぎをお試しください。
これはプレビュー版、バージョン 0.1.0 です。プラグインはMIT ライセンスのアシスタントプレビューからダウンロードしてください。PyPI パッケージや公開マーケットプレイスへの掲載はありません。
動画の概要
動画全編(1:37、音声あり) · 中国語の動画 · メディアとテストの範囲
API 統合では、次のリクエストの前に TOMC を呼び出して、準備されたコンテキストを送信します。Codex と Claude Code では、ツールを使ってタスクメモを保存または呼び出します。動画内の数値は、独自のプロトコルに基づく特定のテストから得られたものであり、プロバイダーによる推奨を意味するものではありません。
測定結果では、Codex と Claude Code のプロトコルおよび元の記録を確認できます。
初回起動ガイド · Python API · 結果と制限事項の全容。
TOMC は研究プレビューです。フィードバック、課題報告、プルリクエスト、研究協力を歓迎します。デバイスとアシスタントは個別に選択できます。デバイス間でノートブックを転送するには、手動で Git を使用します。
アシスタントにインストールする
クライアントに合わせてセットアップを選択してください。TOMC は CPU 上でローカルにコンテキストを準備し、アシスタントが回答を生成します。プラグイン自体に追加のモデル API キーや GPU は不要です。
アクティブなチャットはホストが管理します。 Codex、Claude Code、または別のホストが会話の圧縮を管理している場合、TOMC はそのチャットを先回りして再圧縮しません。ホストの状態が不明な場合も、デフォルトでホストが管理するものとします。TOMC は、別途提供された外部の履歴や、明示的に保存されたメモに使用してください。これはツール使用のポリシーであり、自動圧縮検出機能ではありません。コンテキストの所有権。プラグインパッケージ 0.1.1 にはこのポリシーが含まれています。コンパイラーのコアは引き続き 0.1.0 です。
初回起動
Claude Code:メモを 1 件保存し、新しいチャットで呼び出します。 まず UV をインストールしてください。Claude Code で次を実行します。
/plugin marketplace add ZipengWu365/TOMC
/plugin install tomc-memory@tomc
新しいセッションを開始するか VS Code を再読み込みし、/mcp で plugin:tomc-memory:tomc を確認します。アシスタントにツールを実行するよう明示的に依頼します。
Use TOMC's remember_memory to save a note named api-refactor:
keep public API routes unchanged; pagination tests have not been written.
Show the tool result.
同じローカルのノートブックデータベースを使用する新しいチャットで、次のように依頼します。
Use TOMC's recall_memory on api-refactor.
Report the saved constraints and unfinished work. Show the tool result.
保存と呼び出しは明示的なツール呼び出しです。プラグインがチャット全体を自動的に記録することはありません。Claude Code の詳細なセットアップ · ノートブック共有時の確認。
Codex CLI:プラグインをインストールして、ツールが利用可能か確認します。 Codex 用 0.1.2 ZIP をダウンロードし、今後も保持するディレクトリに展開して、UV と互換性のある Codex CLI を使ってそのディレクトリで実行します。
uv run --no-project --python 3.12 install.py --check
uv run --no-project --python 3.12 install.py
最初のコマンドは、Codex の設定を変更せずに前提条件を確認します。インストール後に新しい Codex セッションを開始し、名前を指定したメモの保存/呼び出しを明示的に依頼します。Codex の詳しい手順 · プラットフォームの検証。
Python API:モデルを呼び出す前に、オフラインのコンテキスト例を確認します。 Python 3.10 以降の場合:
git clone https://github.com/ZipengWu365/TOMC.git && printf '\n%s\n%s\n' \
'If TOMC helps with your work, consider a Star on GitHub (optional):' 'https://github.com/ZipengWu365/TOMC'
cd TOMC
python -m pip install -e .
python examples/api_context.py
上記の Bash / Git Bash コマンドは、クローンに成功すると任意の Star 招待を表示します。通常の git clone では表示されません。また、クローンするだけでは TOMC はインストールされません。
この例ではコンテキストをローカルで準備し、件数を数えます。モデルは呼び出しません。TOMC を統合するには、アプリケーションの指示とプロトコルを維持したまま、元の履歴の代わりに prepared.messages を送信します。API の例 · リファレンス。
その他のクライアント連携
| クライアント | こちらから開始 | 前提条件 |
|---|---|---|
| Codex CLI | プラグイン ZIP をダウンロード | プラグインコマンドに対応した最新の Codex CLI と、PATH 上にある、または --uv で指定した uv |
| Codex IDE 拡張機能 | ローカル MCP サーバーを設定 | .[mcp] をインストールしたローカル TOMC 環境 |
| Cursor | インストールリンクを生成するか、MCP 設定を追加 | ローカル TOMC ランタイム。クライアントのツール呼び出しは未検証です |
| TRAE(International / CN) | TOMC をローカル MCP サーバーとして追加 | ローカル TOMC ランタイム。クライアントのツール呼び出しは未検証です |
| Tencent WorkBuddy | ローカル MCP 経由で TOMC を設定 | ローカル TOMC ランタイム。クライアントのツール呼び出しは未検証です |
| Claude Desktop | .mcpb 拡張機能をダウンロード | UV 拡張機能に対応した最新の Claude Desktop。初回インストール時にネットワークアクセスが必要です |
| Claude Code | /plugin marketplace add ZipengWu365/TOMC、続いて /plugin install tomc-memory@tomc(詳細) | uv。Claude Code VS Code 拡張機能でテスト済みです |
Codex のインストール手順
Codex CLI
上記の ZIP をダウンロードして、今後も使用するディレクトリに展開し、そのディレクトリでターミナルを開きます。次を実行します。
uv run --no-project --python 3.12 install.py --check
uv run --no-project --python 3.12 install.py
1 つ目のコマンドは、プラグインの登録や設定の書き込みをせずに前提条件を確認します。2 つ目のコマンドは、お使いのコンピューターに合わせてパスを準備し、ローカルマーケットプレイスを登録して TOMC をインストールします。使用するには、新しい Codex セッションを開始してください。必要に応じて、UV が Python と依存関係をダウンロードします。実行ファイルが PATH の外にある場合は、--uv /absolute/path/to/uv または --codex /absolute/path/to/codex を指定してください。UV 自体が PATH の外にある場合は、UV 実行ファイルのパスを指定してコマンドを起動します。展開したディレクトリはそのまま維持してください。移動した場合は、インストーラーを再実行します。パスを含む設定済みのコピーではなく、元の ZIP を他の人と共有してください。
Codex IDE 拡張機能を使用する場合は、インストール済みの .[mcp] 環境から python -m tomc setup --client codex を実行し、出力された MCP エントリーを設定に追加します。セットアップガイドには、直接登録するコマンドも記載されています。ツールの重複を避けるため、クライアントではネイティブプラグインまたはスタンドアロンの TOMC MCP 登録のいずれかを使用してください。
Cursor のインストール手順
Cursor
リポジトリをクローンし、アシスタントのセットアップガイドを使ってローカル環境を有効化します。その環境で、次を実行します。
python -m pip install -e '.[mcp]'
python -m tomc setup --client cursor --link
表示されたリンクを開き、Add to Cursor を確認します。新しいチャットを開始し、TOMC が有効になっていることを確認してください。このリンクはインストール済みの環境を登録します。その環境は維持し、移動した場合はリンクを再生成してください。あるコンピューターで生成したリンクは、別のコンピューター用のインストーラーではありません。
TRAE のインストール手順
#### TRAECursor / TRAE ガイドと、すぐに編集できる JSON テンプレートを使用してください。Settings → MCP → Add → Create Manuallyで追加し、ローカル環境を選択します。または、プロジェクトの MCP を有効にして.trae/mcp.jsonを使用します。.[mcp]をインストール済みの現在のソースチェックアウトから、python -m tomc setup --client traeを実行すると、環境用の設定が出力されます。TRAE ではスペースを含まないコマンドパスが必要です。ガイドには、バージョンを固定した UV ランタイムも用意されています。セットアップコマンドは設定を出力するだけで、クライアントの設定は変更しません。
TRAE と Cursor のクライアントにおけるツールの検出とモデル呼び出しは、まだ検証されていません。これは手動で行う MCP 連携のプレビューです。接続エラーを報告する際は、クライアントのバージョンとオペレーティングシステムをお知らせください。
Tencent WorkBuddy のインストール手順
Tencent WorkBuddy
WorkBuddy ガイドに従い、ローカルのランタイムに合わせて JSON テンプレートを編集してください。Plugins → MCP Servers → Configure MCPを開きます。既存のサーバーを保持したまま、tomcエントリをユーザーの~/.workbuddy/mcp.jsonまたはプロジェクトの.workbuddy/mcp.jsonにマージします。.[mcp]をインストール済みの現在のソース環境から、python -m tomc setup --client workbuddyを実行して設定を生成することもできます。このコマンドは設定を出力するだけです。
これは手動で行うローカル MCP 連携のプレビューです。WorkBuddy クライアントにおけるツールの検出とモデル呼び出しは未検証です。TOMC は Tencent のマーケットプレイスには掲載されていません。
Claude Desktop のインストール手順
Claude Desktop
- 上記の
.mcpbファイルをダウンロードします。 - **Settings → Extensions → Advanced settings → Install Extension…**を開き、ファイルを選択します。
- インストール手順に従い、新しいチャットを開始して、TOMC の 5 つのツールが利用できることを確認します。
対応ホストは UV ランタイムを通じて Python と固定バージョンの依存関係をインストールします。このパッケージを使用するために、リポジトリをクローンしたり、Python を手動でセットアップしたりする必要はありません。
Claude Code のインストール手順
Claude Code
Claude Code は、ローカルの MCP サーバーとして同じ固定ランタイムを実行します。上記の.mcpbファイル(ZIP アーカイブ)を、今後も保持するディレクトリに展開し、実際に展開したパスを使って次のコマンドを実行します。
uv sync --locked --directory "/absolute/path/to/extracted"
claude mcp add tomc-memory --scope user -- uv run --locked --directory "/absolute/path/to/extracted" src/server.py
新しい Claude Code セッションを開始し、/mcpを実行して 5 つのツールを確認します。リクエストではツール名を指定してください。たとえば、*「この履歴について、タスク…と予算 200 で tomc-memory prepare_context を使用してください」*のように指定します。claudeが PATH にない場合は、VS Code 拡張機能のresources/native-binaryフォルダーに同梱されている CLI(Windows ではclaude.exe)を使用します。手順、VS Code に関する注意事項、使用上のヒント
Claude Opus 5.5 を使用した VS Code 拡張機能の試用では、予算を 8,192 に設定した場合、ノートブックを想起させることで 5 つの質問に正しく回答できました。また、20K トークンと 40K トークンの履歴をプロンプトに貼り付ける場合と比べ、コストはそれぞれ 38%、65%低くなりました。約 10K トークンではコストに変化はありませんでした。長い履歴はチャット外でインポートしてください。
**Windows、macOS、Linux、および Claude Code でテスト済みです。**3 つのシステムすべてでインストールとツールの確認に合格しました。実際のモデル呼び出しは、Codex ではWindows の preview.4と macOS で、Claude Code では Claude Opus 5.5 を使用して成功しました。Claude Desktop、Cursor、Codex アプリでの GUI インストールは、まだ検証されていません。プラットフォームの確認状況と日付
使用上のヒント(英語) · 使用上のヒント(中国語) · Windows のインストールに関するフィードバック · インストールガイド全文 · 検証記録 · Claude のチェックサム · Codex のチェックサム.
アシスタントを切り替えても、プロジェクトのメモはそのまま
Codex にプロジェクトの概要を保存し、Claude Code で作業を続けて、更新したメモを戻します。両方のクライアントに TOMC をインストールし、両方のサーバーが同じ SQLite ファイルを開くようにします。保存と呼び出しは、いずれも明示的なツール呼び出しです。共有パスの設定。
3 つのプロンプトで引き継ぎを試す
この例では計画メモを保存します。テストを実行したという主張ではありません。
| 場所 | アシスタントへの依頼 |
|---|---|
| Codex | TOMC の remember_memory を使い、これを api-refactor として保存してください。公開 API のルートとレスポンスフィールドは変更しないでください。ページネーションのテストはまだ作成も実行もされていません。 |
| 新しい Claude Code のチャット | TOMC の recall_memory を使い、api-refactor をタスク「ページネーションのテストを計画する」、予算 1024 で呼び出してください。次に remember_memory を使って、「テスト計画 — 結果が空の場合、最後のページ、無効なページパラメーターをカバーする」と追記してください。テストは未実行のままです。両方のツールの結果を表示してください。 |
| 新しい Codex のチャット | TOMC の recall_memory を使い、api-refactor をタスク「API の制約、最新のテスト計画、未完了の作業を要約する」、予算 1024 で呼び出してください。回答する前に、返されたメモを表示してください。 |
ノートブックには元のメモと追記した更新が保持され、呼び出しによって次のタスク向けにその履歴が準備されます。共有されるのは保存済みのメモであり、各クライアント固有のチャット履歴の移行や、デバイス間のクラウド同期ではありません。MCP の相互運用性とユーザー主導の確認。
API リクエストの自動ループ
既存の同期型 Chat Completions 呼び出しの前に AutomaticChatSession を使います。デフォルトでは、キャッシュに適した安定したプレフィックス(リクエストに収まらなくなるまで、コンパイル済みメモは同一に保たれます)、キャッシュされたモデルの上限、1 回限りのウィンドウ境界でのバックオフ、ネイティブ圧縮後の短いクールダウンを利用できます。変更されるのは送信する古い履歴の表示だけです。元の履歴、指示、直近のメッセージ、ツールプロトコルは呼び出し元に保持されます。デフォルトの語彙ベースのパッキング処理では、プレフィックスの繰り返しスキャンが発生しないようになりました。34 モデルのコンテキスト容量スナップショット。インストール済みの MCP プラグインがクライアント内蔵のリクエストを横取りするわけではなく、ネイティブクライアントやモデルでの受け入れを主張するものでもありません。
API 呼び出しの前に使う
このチェックアウトから python -m pip install -e . でコアパッケージをインストールします。履歴を準備し、prepared.prompt を確認したうえで、既存のチャット補完クライアントを使って prepared.messages を送信します。
from tomc import prepare_context
prepared = prepare_context(history, task)
response = client.chat.completions.create(
model=model,
messages=prepared.messages,
)
ここでの history、task、client、model は、アプリケーションに既存の入力とクライアントです。このリクエストでは元の履歴を置き換えてください。準備済みコンテキストを元の履歴に追加すると、入力が増えます。アプリケーションに必要な指示は保持してください。他のテキスト API では、メッセージをプロバイダーの形式に変換します。TOMC はモデルの重みを変更せずにリクエストテキストを変更します。API ガイドとトークンのカウント。
実測した削減量
Windows Codex · gpt-6.1-sol
各予算で45/45問に正解。 約10K、20K、40Kの履歴トークンを含む9つの合成チームチャット履歴(各3シード)で、Windows Codex 0.160.0は各履歴について、最新のプロジェクト状態に関する5つの質問に回答しました。元のモデル、ultra の推論レベル、インストール済みプラグインはそのまま使用しました。TOMCは、新しい回答用チャットを始める前に、インストール済みのMCPツールを通じてコンテキストを準備しました。
正確な値(コピー可能なテキスト)
| 送信したコンテキスト | 平均リクエスト入力トークン数 | ペア比較による平均入力削減率 | 正解数 |
|---|---|---|---|
| 全履歴 | 42,191 | 基準 | 45/45 |
| TOMC · 履歴予算40% | 28,713 | 29.7% | 45/45 |
| TOMC · 履歴予算60% | 33,344 | 19.5% | 45/45 |
| TOMC · デフォルトの履歴予算80% | 38,035 | 9.2% | 45/45 |
入力はCodexが報告した合計値で、キャッシュ済み入力、ホストの指示、ツール定義が含まれます。削減率は、9件の履歴それぞれについて算出したペア比較の比率の平均であり、表中の平均値の比率ではありません。この数値は、各履歴と条件につき1回の回答ターンを対象としています。チャット内でモデルに準備や想起をさせる場合は、ターン数が増えます。準備したすべてのコンテキストでは、コンパイル済みの操作記録を使わず、tomc_raw によるソース選択を使用しました。これは合成データにおける最新状態の検索をテストするものであり、一般的なコーディング品質を評価するものではありません。英語版レポート · 中国語版レポート · 記録データ · 予算のヒント。全履歴のリクエストでは、TOMCをインストールし、既存のプラグインをすべて有効にした同じプロファイルを使用しました。この表は、テストハーネスにおける各条件1回の回答ターンを対象としています。エージェントのワークフロー全体では、ターン数が増える場合があります。
Claude Code · Claude Opus 5.5
約10K、20K、40Kトークンの合成チームチャット履歴を使って、数十から数百の状態更新や、よく似た紛らわしい情報を含む環境で、Claude Opus 5.5が最新のプロジェクト状態に関する5つの質問に回答しました。TOMCが履歴の40%を保持した場合、5つすべての回答が全履歴の場合と一致しました。回答リクエストのコストは次のとおりです。
正確な値(コピー可能なテキスト)
| 履歴 | 全履歴 | TOMCが40%を保持 | TOMCが60%を保持 |
|---|---|---|---|
| 約10Kトークン | US$0.169 · 5/5 | US$0.075 · 5/5(−56%) | US$0.103 · 5/5(−39%) |
| 約20Kトークン | US$0.334 · 5/5 | US$0.141 · 5/5(−58%) | US$0.195 · 5/5(−42%) |
| 約40Kトークン | US$0.628 · 5/5 | US$0.255 · 5/5(−59%) | US$0.369 · 5/5(−41%) |
Claude Codeのデフォルト予算の確認。 budget を指定しない場合、TOMCは履歴の推定トークン数の約80%を保持します(最低1,024トークン。短い履歴はそのまま保持されます)。各長さで異なる3つの履歴を使ったところ、Claude Opus 5.5は45問すべてに正解し、入力を約20%削減しました。50%、60%、70%を保持する設定でも45問すべてに正解し、削減率はそれぞれ約49%、39%、30%でした。さらに小さい予算では、古い値を回答するようになりました。10~20%を保持する設定では、5問中3問または4問に正解しました。小さい budget を指定する前に、自分のタスクのサンプルで全履歴と比較して確認してください。これらは、Claude CodeとCodexのテストとは別のリクエストワークフローで、単一のモデルを使った合成履歴です。検証記録 · 予算のヒント
アシスタントプラグインは、コンテキスト準備用のツールを提供します。すべてのAPIリクエストを傍受したり、アクティブなチャットにすでにあるメッセージを消去したりするものではありません。小さいリクエストを使うには、アプリケーションから準備済みのコンテキストを送信するか、それを新しいチャットに渡してください。ノートブックへの保存は任意です。
コンテキストを準備する
インストール後、アシスタントに TOMC の prepare_context ツールを呼び出すよう依頼してください。以下のテキストを history として渡し、task を "What are the current framework and backup_framework values?"、budget を 64 に設定してから、返されたメモリーを使って回答するようアシスタントに依頼します。
framework = Flask
backup_framework copies framework
framework = FastAPI
Monday notes: the team reviewed the project backlog, discussed deployment windows and agreed to keep the public API routes and response fields unchanged during the refactor.
Tuesday notes: the migration plan still needs a review from the database owner, and the pagination tests have not yet been written or run.
Wednesday notes: the team checked the release checklist, added a rollback task, and postponed the documentation update until after the test results are available.
この例では、値を明示的に割り当て、スナップショットのコピーを使っています。TOMC は framework = FastAPI と backup_framework = Flask を、ソースへのリンクとともに準備します。ツールの使用はホストが制御し、既存のモデルが回答を生成します。
同じ指示とタスクを使った場合、この例のメッセージテキストは cl100k_base で 147 トークンから 108 トークンになります。これは、プロバイダーのチャット形式やツールを除いたメッセージ本文のカウントです。あくまで単一の例であり、課金対象の使用量でも、一定の削減率でもありません。オフラインで語彙ベースの推定を行うには python examples/api_context.py を実行するか、BPE によるカウントについては API ガイドを参照してください。
prepare_context はこの履歴を保存しません。すでに予算内に収まる履歴はそのまま保持され、長い文章には、型付きレコードの代わりに検索を利用できます。budget は語彙ベースのカウンターにおけるメモリーを対象としており、タスクのテキストとツール形式によるオーバーヘッドは別途加わります。
任意:チャット間で履歴を保持する
ノートブックには、渡されたテキストが元の形式で保存されます。recall_memory は、指定されたタスク用にその履歴を準備します。prepare_context を直接呼び出す場合は、ノートブックは不要で、ノートブックへの書き込みも行いません。
2つのチャットまたはアシスタント間でメモリーを試す
たとえば Codex の最初のチャットで、次のように入力します。
TOMC を使って、これを api-refactor として記憶してください。公開 API のルートとレスポンスフィールドは変更しないでください。ページネーションのテストはまだ作成する必要があります。
同じデータベースを使う Claude Code などの新しいチャットで、次のように入力します。
TOMC から api-refactor を呼び出してください。作業を続ける前に、制約と未完了の作業を思い出させてください。
デフォルトのデータベースは ~/.tomc/memory.sqlite3 です。両方のサーバーが同じファイルを参照する必要があります。カスタムの --store または TOMC_MEMORY_PATH を使うと、クライアントを別々にできます。パスを確認して引き継ぎを試す。TOMC が認識するのは、ツールに渡されたメモだけです。インストールしても、すべてのチャットが自動的に記録されるわけではありません。アシスタントは、権限設定に従って呼び出すツールを決定します。
デモを試す
デモでは、TOMC がタスク用のコンテキストをどのように準備するかを示します。チャット間でノートブックは作成されません。
ローカルで実行する
Gradio インターフェースには Python 3.10~3.13 が必要です。リポジトリをクローンします。
git clone https://github.com/ZipengWu365/TOMC.git && printf '\n%s\n%s\n' \
'If TOMC helps with your work, consider a Star on GitHub (optional):' 'https://github.com/ZipengWu365/TOMC'
cd TOMC
macOS では、まず python3 --version を確認してください。システムの Python 3.9 では TOMC を実行できません。UV のインストールが済んでいれば、Python 3.12 を用意してデモを直接起動できます。
uv run --python 3.12 --extra demo python -m demo.app
または、以下の環境構築手順で、すでにインストールされている互換性のある Python を使用します。macOS ガイド。
Linux/macOS では、UVを使って Python を管理し、システムに venv/ensurepip モジュールがない問題を避けてください。以下のコマンドは Linux の検証に合格しています。
uv venv --python 3.12 --seed .venv
source .venv/bin/activate
システムの Python を使う場合は、python3 -m venv .venv を実行し、上記の手順で有効化してください。Debian/Ubuntu では、対応する python3-venv パッケージが必要です。コマンドの失敗後に不完全な環境が作成されている場合は、uv venv --python 3.12 --allow-existing --seed .venv で復旧できます。
または、Python 3.12 がインストールされた Windows PowerShell で実行します。
py -3.12 -m venv .venv
.venv\Scripts\Activate.ps1
続いて、デモをインストールして起動します。
python -m pip install -e '.[demo]'
python -m demo.app
- http://127.0.0.1:7860 を開き、Use now を選択します。
- Try demo をクリックしてサンプルを準備するか、履歴を貼り付けて次のタスクを入力し、Prepare をクリックします。
- コピーアイコンで準備したプロンプトをコピーし、普段使用しているモデルに貼り付けます。
テキスト、Markdown、メッセージ JSON、JSONL に対応しています。インストール後は、ローカルでの準備をオフラインで行えます。準備したプロンプトを使うと、モデルが回答を生成します。デフォルトのデモではリーダーへの API 呼び出しは行われません。ホストされたプレビューでは、入力は Space サーバーで処理されます。
ガイド付きの例には 30-second tour、戦略の比較には Workbench、アーカイブされた論文の結果を見るには Research evidence を使用してください。デスクトップ表示 · モバイル表示。
新規ダウンロードは、Python 3.12.13 を使用した Ubuntu 24.04.5 で、Linux のインストールとブラウザーのチェックに合格しました。レポートには、スクリーンショット、プラグインのチェック、インストールに関するフィードバックが含まれています。
実用的なヒント
- まずは Try demo と、その Small request の例から始めてください。一般的な文章では Balanced または More detail を試し、予算を減らす前に保持されたソースを確認してください。
- 次の API リクエストでは、元の履歴ではなく、準備したメッセージを送信してください。手動で使う場合は、プロンプトを新しいチャットに貼り付けてください。既存の長いチャットに追加すると、そのチャットの以前の入力が残ります。
- タスクの質問は具体的にしてください。履歴やメモリのサイズを変更した後は特に、状態の記録とソーステキストを確認してください。トークン表示はメッセージ内容の推定値であり、プロバイダーへの請求額ではありません。
- プラグインを使う場合は、インストールディレクトリと Python 環境をそのまま維持してください。クライアントごとに TOMC の登録を 1 つ使用してください。ローカルパスを含む設定ではなく、元のパッケージを共有してください。Linux レポートでは、検証と復旧について説明しています。
パート 2 · 論文の解説
論文のタイトルは Task-Oriented Memory Compilation: Executable State Representations for Long-Context Language Models です。arXiv へのリンクは近日中に追加予定です。このセクションでは、その手法とアーカイブされた結果を解説します。
論文では、GPT-5.1、Rednote preview、DeepSeek V4.1 Flash が API リーダーモデルです。各 TOMC 比較では、ベースラインと TOMC で同じリーダーを使用しています。プラグイン試験では、Codex と Claude Code がアシスタントのホストであり、それぞれ gpt-6.1-sol と Claude Opus 5.5 を使用しています。これらの試験は論文のベンチマークとは別です。リーダーモデルとエージェントホスト
TOMC が計算する内容
長い会話には、変更された事実、以前のコピー、メッセージ間に散らばった証拠が含まれます。TOMC は LLM を呼び出す前に、現在の質問に向けてメモリを準備します。状態、関係、または件数のレコードを計算し、トークン予算内で選択したソーステキストと組み合わせます。
CPU 上で構築 · トレーニングや補助的なニューラルモデルは不要 · プレーンテキスト出力 · 研究プレビュー
原稿に基づく手法の概要です。デモでは小規模な参照パーサーを使用しています。手法のドキュメントでは、ベンチマーク実装との違いを説明しています。
履歴に次の更新が含まれているとします。
drink = tea
backup_drink copies drink
drink = decaf tea
現在の値は drink = decaf tea であり、backup_drink = tea にはコピー時点の値が保持されています。TOMC はこれらの操作を順番に実行し、生成されたレコードをソースの行に関連付けます。
Python でこの例を実行する
from tomc import compile_memory
result = compile_memory(
messages="drink = tea\nbackup_drink copies drink\ndrink = decaf tea",
query="What are the current drink and backup_drink values?",
token_budget=128,
strategy="tomc",
)
print(result.compiled_memory)
print(result.ledger) # records and their sources
全例を実行するには python examples/snapshot.py を実行してください。この例では seat も追跡します。この例ではコピーのセマンティクスを示します。ソースラベルによってトークン数が増加しますが、回答の品質を測定するものではありません。
関係や件数も同じ考え方に従います。メモリをリーダーに渡す前に、質問に必要な操作を計算します。理由、引用、または状態レコードでは表現できないその他の詳細に関する質問には、ソースの表現をそのまま残します。
同じリーダーでのベースラインメモリと TOMC メモリ
BEAM の研究では、GPT-5.1、Rednote preview、DeepSeek 4.1 Flash を使用して、100K、500K、1M、10M トークンの履歴に関する質問に回答します。各リーダーは、TOMC メモリ、または 6 種類のベースラインメモリ構成のいずれかを使って回答します。
- 品質: 500K、1M、10M では、TOMC はすべての リーダー × ベースライン × 長さの 54 比較で平均スコアが高く、全体の 18 比較すべてでも高いスコアを示しています。
- リーダーへの入力: 100K~10M では、全体の入力は LIGHT より 36.57%少なく、階層型 LLMLingua-2 より 37.38%少なくなっています。リーダーごとの変化を等しく平均しています。他の一部のベースラインでは、TOMC より入力が少なくなります。
- CPU 上での構築: 測定された TOMC の処理ステージは、6 回のリプレイで平均 4.21 秒/呼び出しとなり、CUDA 割り当ては 0 GiB、プロセスのピーク RSS は 3.75 GiBでした。記録されたステージでは、呼び出しごとの構築時間は BRIEF-Pro より 11.4 倍、LongLLMLingua より 17.1 倍短くなっています。これらはステージ時間の比率であり、リーダーの推論時間は含まれていません。
各ペアでは、同じリーダーが、名前が示されたベースラインまたは TOMC で構築したメモリを使って、条件をそろえた質問に回答します。ペア内では、採点条件もそろえています。
テキスト形式の表
| Baseline | GPT-5.1 | Δ (%) | Rednote preview | Δ (%) | DeepSeek 4.1 Flash | Δ (%) | Mean Δ (%) | |---|---:|:---|---:|:---|---:|:---|:---| | **Overall (all lengths)** | | | | | | | | | LLMLingua-2-D (2024) | 34.60 / **55.75** | ↑ 61.1 | 31.23 / **50.75** | ↑ 62.5 | 29.90 / **53.48** | ↑ 78.8 | ↑ 67.5 | | LongLLMLingua (2024) | 32.77 / **51.68** | ↑ 57.7 | 32.75 / **47.73** | ↑ 45.7 | 36.32 / **53.45** | ↑ 47.2 | ↑ 50.2 | | BRIEF-Pro (2026) | 34.85 / **51.41** | ↑ 47.5 | 33.87 / **48.04** | ↑ 41.9 | 37.51 / **53.29** | ↑ 42.1 | ↑ 43.8 | | LLMLingua-2-H (2024) | 40.98 / **56.25** | ↑ 37.3 | 36.50 / **51.76** | ↑ 41.8 | 33.36 / **53.08** | ↑ 59.1 | ↑ 46.1 | | BEAM-RAG (2026) | 47.94 / **54.90** | ↑ 14.5 | 48.10 / **51.90** | ↑ 7.9 | 47.48 / **53.26** | ↑ 12.2 | ↑ 11.5 | | LIGHT (2026) | 48.65 / **55.32** | ↑ 13.7 | 47.32 / **51.63** | ↑ 9.1 | 51.44 / **53.16** | ↑ 3.3 | ↑ 8.7 | | TOMC w/o compilation | 55.00 / **56.20** | ↑ 2.2 | **51.25** / 50.34 | ↓ 1.8 | 49.74 / **52.74** | ↑ 6.0 | ↑ 2.1 | | **100K tokens** | | | | | | | | | LLMLingua-2-D (2024) | 51.70 / **62.78** | ↑ 21.4 | 45.03 / **56.24** | ↑ 24.9 | 44.73 / **58.22** | ↑ 30.1 | ↑ 25.5 | | LongLLMLingua (2024) | 39.23 / **57.29** | ↑ 46.0 | 35.36 / **50.53** | ↑ 42.9 | 43.55 / **57.63** | ↑ 32.3 | ↑ 40.4 | | BRIEF-Pro (2026) | 36.67 / **55.90** | ↑ 52.5 | 34.54 / **52.18** | ↑ 51.1 | 44.43 / **57.63** | ↑ 29.7 | ↑ 44.4 | | LLMLingua-2-H (2024) | 53.37 / **63.58** | ↑ 19.1 | 45.19 / **58.53** | ↑ 29.5 | 45.05 / **56.65** | ↑ 25.7 | ↑ 24.8 | | BEAM-RAG (2026) | 53.58 / **62.26** | ↑ 16.2 | 53.48 / **58.25** | ↑ 8.9 | 51.57 / **58.21** | ↑ 12.9 | ↑ 12.7 | | LIGHT (2026) | 60.50 / **62.26** | ↑ 2.9 | 57.05 / **58.25** | ↑ 2.1 | **61.01** / 58.21 | ↓ 4.6 | ↑ 0.1 | | TOMC w/o compilation | 57.89 / **58.45** | ↑ 1.0 | **55.78** / 52.78 | ↓ 5.4 | 53.05 / **53.19** | ↑ 0.3 | ↓ 1.4 | | **500K tokens** | | | | | | | | | LLMLingua-2-D (2024) | 36.68 / **58.99** | ↑ 60.8 | 33.96 / **56.71** | ↑ 67.0 | 30.49 / **59.22** | ↑ 94.3 | ↑ 74.0 | | LongLLMLingua (2024) | 34.36 / **56.82** | ↑ 65.4 | 34.86 / **54.54** | ↑ 56.5 | 36.54 / **59.43** | ↑ 62.6 | ↑ 61.5 | | BRIEF-Pro (2026) | 37.42 / **55.18** | ↑ 47.5 | 35.71 / **54.00** | ↑ 51.2 | 39.49 / **59.43** | ↑ 50.5 | ↑ 49.7 | | LLMLingua-2-H (2024) | 37.31 / **59.00** | ↑ 58.1 | 37.13 / **57.94** | ↑ 56.0 | 33.53 / **59.58** | ↑ 77.7 | ↑ 63.9 | | BEAM-RAG (2026) | 53.09 / **59.10** | ↑ 11.3 | 52.88 / **56.04** | ↑ 6.0 | 53.08 / **59.46** | ↑ 12.0 | ↑ 9.8 | | LIGHT (2026) | 49.48 / **59.60** | ↑ 20.4 | 52.38 / **56.04** | ↑ 7.0 | 54.78 / **59.46** | ↑ 8.5 | ↑ 12.0 | | TOMC w/o compilation | 56.13 / **57.47** | ↑ 2.4 | **50.99** / 50.85 | ↓ 0.3 | 50.25 / **56.02** | ↑ 11.5 | ↑ 4.5 | | **1M tokens** | | | | | | | | | LLMLingua-2-D (2024) | 24.67 / **58.69** | ↑ 137.9 | 23.90 / **50.54** | ↑ 111.5 | 24.56 / **54.47** | ↑ 121.7 | ↑ 123.7 | | LongLLMLingua (2024) | 32.66 / **50.91** | ↑ 55.9 | 32.81 / **45.75** | ↑ 39.4 | 36.94 / **54.47** | ↑ 47.5 | ↑ 47.6 | | BRIEF-Pro (2026) | 35.10 / **53.03** | ↑ 51.1 | 35.66 / **46.88** | ↑ 31.5 | 36.58 / **54.47** | ↑ 48.9 | ↑ 43.8 | | LLMLingua-2-H (2024) | 43.34 / **58.78** | ↑ 35.6 | 36.01 / **51.97** | ↑ 44.3 | 32.74 / **55.10** | ↑ 68.3 | ↑ 49.4 | | BEAM-RAG (2026) | 50.75 / **56.38** | ↑ 11.1 | 48.51 / **53.40** | ↑ 10.1 | 50.05 / **53.06** | ↑ 6.0 | ↑ 9.1 | | LIGHT (2026) | 51.25 / **56.59** | ↑ 10.4 | 45.83 / **53.40** | ↑ 16.5 | 51.15 / **53.06** | ↑ 3.7 | ↑ 10.2 | | TOMC w/o compilation | 50.96 / **52.68** | ↑ 3.4 | 46.92 / **47.34** | ↑ 0.9 | 45.90 / **49.02** | ↑ 6.8 | ↑ 3.7 | | **10M tokens** | | | | | | | | | LLMLingua-2-D (2024) | 25.36 / **42.57** | ↑ 67.8 | 22.05 / **39.54** | ↑ 79.3 | 20.35 / **42.20** | ↑ 107.4 | ↑ 84.8 | | LongLLMLingua (2024) | 24.86 / **41.74** | ↑ 67.9 | 27.97 / **40.10** | ↑ 43.4 | 28.25 / **42.28** | ↑ 49.7 | ↑ 53.7 | | BRIEF-Pro (2026) | 30.25 / **41.59** | ↑ 37.5 | 29.60 / **39.13** | ↑ 32.2 | 29.52 / **41.63** | ↑ 41.0 | ↑ 36.9 | | LLMLingua-2-H (2024) | 29.88 / **43.65** | ↑ 46.1 | 27.66 / **38.66** | ↑ 39.8 | 22.56 / **41.58** | ↑ 84.3 | ↑ 56.7 | | BEAM-RAG (2026) | 34.39 / **41.89** | ↑ 21.8 | 37.46 / **39.83** | ↑ 6.3 | 35.20 / **42.29** | ↑ 20.1 | ↑ 16.1 | | LIGHT (2026) | 33.38 / **42.87** | ↑ 28.4 | 34.02 / **38.81** | ↑ 14.1 | 38.76 / **41.86** | ↑ 8.0 | ↑ 16.8 || ベースライン | 入力全体の変化 | 10M 入力の変化 |
|---|---|---|
| LLMLingua-2-D (2024) | -10.95% | -43.81% |
| LongLLMLingua (2024) | -11.75% | -19.03% |
| BRIEF-Pro (2026) | +280.37% | +297.87% |
| LLMLingua-2-H (2024) | -37.38% | -45.65% |
| BEAM-RAG (2026) | +8.79% | -3.27% |
| LIGHT (2026) | -36.57% | -41.99% |
D/H は、それぞれ直接型/階層型の LLMLingua-2 を表します。全体の値は、各リーダーについてすべての長さにわたる有効なペアを集計したものです。行によってペアのセットとスコアリングプロトコルが異なるため、比較は各セル内で行ってください。平均スコアが高くても、統計的有意性が示されるわけではありません。入力の変化はベースラインに対する TOMC の値です。負の値はトークン数が少ないことを意味します。直接型 LLMLingua-2 の 1M 実行では空のメモリが 200 件生成されました。スコアには含めていますが、この入力削減は圧縮の成功とは見なしません。
10M は 2026-10-10 に追加されました。10 セッションからの BEAM 質問 200 件のうち、3,600 ペア中 3,596 ペアが有効で、匿名化された位置バランス型のペアワイズ評価基準でスコアリングしました。LLMLingua-2 の 10M の行はどちらも、空でないメモリを使用した修正版バッチの結果です。コンパイルなしの行は 100K~1M を対象としています。10M のアブレーションは現在も実行中です。10M のデータとスコアリング。
上部の比較では、リーダーごとに有効な 500K/1M の質問を集計し、その後、リーダー間の相対的な変化を平均しています。能力パネルでは、共通の有効な質問を使用し、長さごとの平均を均等に扱っています。すべての長さ、ペア数、プロトコル。
コンパイル済みレコードによって何が加わるのでしょうか? BEAM の別個のアブレーションでは、レコードとそれに付随する指示を除き、ソーステキストと上流のルーティングを保持します。3 つすべてのリーダーで、コンパイルを行うと時間的推論のスコアが高くなります。一方、全体への影響はリーダーによって異なります。これはコンパイルあり/なしの比較であり、上記のベースライン表とは別のものです。
RULER 由来の診断では、状態追跡と、NIAH および QA2 に必要なソーステキストを調べます。修正版の NIAH ソース除去ペアの平均 F1 スコアは 87.28 / 82.26 で、除去後の入力は約 43%~44% 減少します。これは別個のペア再実行を使用しています。スコアは過去の Query の結果と合算していません。タスクの結果と制限事項。
原稿の図 3 です。パネル a、b では入力の参照として Query 選択を使用し、c、d では完全な TOMC/状態ルートを使用しています。修正版 NIAH ペアには † を付けています。VT は状態ルートの診断です。拡大版の 2×2 レビュー用レイアウト · 数値結果。
論文の構築コストに関する表 3には、測定された各段階の所要時間と CPU/GPU/RAM の対象範囲が記載されています。リーダーの推論は除外しています。図のソース。
エビデンスのスナップショットは、2026-09-28 に原稿のコミット 7399657 から同期されました。これらのスコアはベンチマークアダプターによって生成されています。デモでは、より小規模なパーサーと行レベルの BM25 を使用します。デモの rag は BEAM-RAG とは異なり、デモの hybrid ルーターは過去の Hybrid-RAG コントロールとは異なります。
戦略を選択する
| 戦略 | リーダーに送信されるメモリ | 適した用途 |
|---|---|---|
raw | 予算を超える場合でも入力全体 | 圧縮されていない参照情報 |
head / tail | テキストの先頭または末尾 | 位置に基づく制御 |
rag | BM25 で順位付けされたソース行 | 字句検索 |
tomc | レコードのみの方式。レコードが見つからない場合は検索 | 対応する状態、関係、件数の操作を調べる |
tomc_raw(コンパイラーのデフォルト) | レコードと、選択されたソーステキスト | 計算済みのレコードと元の表現の両方が必要なタスク |
hybrid | 固定のタスクルールで選択される表現 | 複合的なタスクや引用のリクエスト |
文字列照合と入力制限
参照パーサーは、key = value、B copies A、x -[rel]-> y などの形式を認識します。エビデンスの選択とルーティングにも固定の字句ルールが使われます。言い換え、曖昧な名前、暗黙の更新、見慣れない形式では、エビデンスを見落としたり、不適切なルートが選ばれたりすることがあります。
構造化された状態には、ドキュメントに記載された構文を使用し、ソースリンクを確認してください。通常の文章には、検索を使用するか、ソーステキストを保持するルートを使用してください。これらの方法では有用なエビデンスを保持できますが、関連するすべての詳細が予算内に収まることを保証するものではありません。対応している操作 · 既知の制限事項。
トークン数
デモでは、デフォルトで字句的な推定値を表示します。メモリのカウントには、タスク、チャットのフレーミング、リーダーの出力、インスペクターは含まれません。オプションの tiktoken:cl100k_base は、そのエンコーディングでカウントします。プロバイダーの課金額とは異なる場合があります。retention_ratio は出力/入力を、compression_ratio は入力/出力を意味します。表示される価格は、ユーザーが指定した料金に基づきます。デフォルトのデモでは、リーダー API は呼び出されません。
Python から使用する
Python アプリケーションでは、既存のリーダー呼び出しの前に prepare_context(history, task) を呼び出してください。
リーダーのモデルはそのまま使えます。 TOMC は、テキストベースのあらゆる LLM API で使用できるテキストを返すほか、チャットインターフェースにコピーすることもできます。組み込みコネクターはチャット補完互換の API に対応しています。その他のプロバイダーでは、独自のクライアントとメッセージ形式を使用してください。メモリの構築にモデルの重みや API キーは必要ありません。回答の生成には、通常どおり選択したモデルを使用します。
History + current task → TOMC on CPU → prepared context → your existing LLM API
コアパッケージには Python 3.10 以降が必要で、ランタイム依存関係はありません。チェックアウトで有効化した環境から、python -m pip install -e . を実行してインストールしてください。
from tomc import prepare_context
context = prepare_context(
"The workshop now has 28 attendees. Room B is available but not booked.",
"What should we do next?",
)
print(context.prompt) # paste into a chat interface
# Or pass context.messages to your existing chat-completions client.
# For other APIs, use context.prompt or map the messages to their input format.
結果を確認してデモを拡張する
python -m pip install -e '.[demo,dev,mcp]'
python -m pytest -q
python benchmarks/reproduce/current.py
python benchmarks/reproduce/results.py
python -m mkdocs build --strict
現在の結果を確認するスクリプトは、スナップショットのハッシュと集計計算を検証します。過去の結果を確認するスクリプトは、会話の集計値から以前の 4 つのリーダーの統計を再構成します。再現性では、各バッチで利用できる内容について説明しています。
独自のリーダーを実行するには、result.reader_messages(query) をクライアントに渡すか、オプションの API コネクターを使用してください。LLMLingua アダプターは別途インストールします。CONTRIBUTING.mdでは、チェック方法と、コンパイラーが正しく処理できない入力の報告方法を説明しています。
引用とライセンス
TOMCのソースコードとオリジナルの合成例は、MIT Licenseのもとで、商用利用、改変、再配布、他のプロジェクトへの統合を含め、自由に利用できます。ソフトウェアの複製または実質的な部分を配布する場合は、著作権表示とライセンス表示を保持する必要があります。フィードバック、貢献、協力を歓迎します。
TOMCが研究に役立った場合は、この論文を引用してください。引用は推奨されていますが、追加のライセンス条件ではありません。この論文はZipeng Wu、Yanjun Zhao、Fabian Spill、James Andrewsによるプレプリントです。arXivの識別子は、利用可能になり次第追加されます。CITATION.cffには、GitHubのこのリポジトリを引用ボタンと同じ情報が記載されています。フィードバックや協力については、Zipeng Wu([email protected])までお問い合わせください。
@misc{wu2026tomc,
title = {Task-Oriented Memory Compilation: Executable State Representations for Long-Context Language Models},
author = {Wu, Zipeng and Zhao, Yanjun and Spill, Fabian and Andrews, James},
year = {2026},
note = {Preprint},
url = {https://github.com/ZipengWu365/TOMC}
}
例は合成データです。このリポジトリでは、質問文、読者の回答、非公開のAPIペイロードを含まない、数値によるベンチマーク集計データを配布しています。データの出所 · データとライセンス。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

