AI記者が試した確認済

Context Mode、作者のデータでは「299B」「155B」をほぼ再現――ただし減るのは AI が集計コードか intent を渡したときだけ、素の cat の77KB はそのまま返った

AI記者が試した:エージェントの文脈を「98%減らす」MCP サーバーを、arm64・CPU だけのコンテナで動かして測った

鈴木 理恵|2026.10.17|15分|更新: 2026.10.17

今週約4,200スターを集めた Context Mode を、AI記者がコンテナで動かした。Node 22 なら API キーなしで動き、作者のデータでは298B・154B と主張どおりの数字が出た。ただし減るのは集計コードか intent を渡したときで、素の cat なら77KB が丸ごと返った。

Key Points

Context Mode、作者のデータでは「299B」「155B」をほぼ再現――ただし減るのは AI が集計コードか intent を渡したときだけ、素の cat の77KB はそのまま返った

コーディングエージェントを仕事で使っていると、ツールの出力ですぐにコンテキストが埋まってしまう。ブラウザのスナップショット、サーバーのログ、大きな JSON。AI が読む必要のない行まで全部文脈に入り、トークン代がかさみ、会話が途中で圧縮されて流れが途切れる。この悩みに正面から取り組む OSS が Context Mode だ。今週の GitHub 週間トレンドに入り、この1週間で約4,200スターを集めた。

連載「AI記者が試した」では、AI記者が話題の OSS を使い捨てのコンテナに入れて実際に動かし、作者の主張を確かめている。今回は arm64 の Ubuntu 24.04、CPU 4コア、メモリ 6GB、GPU なしのコンテナに Context Mode を入れ、文脈に入る量が本当に減るのかをバイト数で測った。

作者は何と言っているか

Context Mode は MCP サーバーとして動く。ツールの出力をそのまま AI に渡さず、サンドボックスの中で処理して、要約と検索用の索引だけを返す。README の主な主張は次のとおり。

API キーも GPU もモデルのダウンロードも要らないので、CPU だけの小さな環境でも検証できる。

AI記者がやったこと

実行したコマンドは全部で34、失敗は2回。コマンドの実行時間を足すと82.9秒で、最初から最後までは292.1秒(約5分)だった。

まずリポジトリを取得し(2.1秒)、README から数字の主張を拾った。続いて Ubuntu 標準の Node 18.19.1 で npx -y context-mode --version を実行すると、54.4秒かかったうえで exit=1 で止まった。EBADENGINE の警告が並び、要件を満たしていない。

Node 18 で npx -y context-mode を実行、exit=1
Node 18 で npx -y context-mode を実行、exit=1

そこで nodejs.org から Node 22.12.0 を取ってきて入れ直した(4.5秒)。今度は npx -y context-mode --version が10.9秒で通り、context-mode doctor は695ミリ秒で終わった。Server test と FTS5 / SQLite はどちらも PASS だった。

Node 22 で context-mode doctor、FTS5とServer testがPASS
Node 22 で context-mode doctor、FTS5とServer testがPASS

次に、MCP を話す小さなクライアントを Python で自作し、npx -y context-mode を子プロセスとして起動した。initialize と tools/list は通り、バージョンは v1.0.169、ツールは ctx_execute や ctx_search など11個あった。このクライアントから ctx_execute・ctx_execute_file・ctx_index・ctx_search・ctx_stats を呼んで測っていった。

主張ごとの判定

文脈を98%減らす(315KB→5.4KB):一部確かめられた

まず自分で77,710B のアクセスログを作り、同じログを3通りに渡した。

77.7KBのログ: 集計466B、intent付き1580B、素のcatは77739B
77.7KBのログ。集計させると466B、intent付きは1,580B、素の cat は77,739B

つまり、黙っていても勝手に減るわけではない。AI が集計コードを書くか intent を渡したときに初めて減る。また BENCHMARK.md を読むと、315KB→5.5KB という数字は13の場面ごとに作者が書いた集計コードの結果を足した小計だった。この合計そのものは再現していない。作者のテストスイートで確かめようとしたが、リポジトリでの npm install は「Cannot read properties of null (reading edgesOut)」で失敗し、npm ci もロックファイルが無いため失敗した。

Playwright のスナップショット56KB→299B:一部確かめられた

作者が同梱しているフィクスチャ playwright-snapshot.txt(57,521B)に、tests/ecosystem-benchmark.ts にある作者の集計コードを ctx_execute_file で当てた。出力は298Bで、主張の299B とほぼ同じだった。ただしツールの返答は実行したコードも含むので、全体では1,492B になる。要約の Top 5 には、hawksley.org や 8 hours ago のように記事の題名ではないものも混じった。実際のブラウザで Playwright は動かしていない。

アクセスログ45KB→155B:一部確かめられた

作者の access.log(46,216B)に作者の集計コードを当てると、出力は154B(Requests 500、Errors 88 など)だった。ツールの返答全体は913B。

作者の集計コードで57.5KBが298B、46.2KBが154Bに
作者の集計コードで57.5KBが298B、46.2KBが154Bに

数字は作者の材料で再現できた。ただしこれは「作者が用意したデータに、作者が書いた集計コードを当てた」結果だ。実際の AI がその場で同じくらい良い集計コードを書けるかどうかは、今回の検証の範囲外である。

API キーなし、Node.js 22.5 以上だけで動く:一部確かめられた

API キーを一つも設定せずに、全ツールが動いた。Node 18.19.1 では EBADENGINE の警告が出て exit=1 になったので、Node の要件は本当にある。ただし動かしたのは Node 22.12.0 で、要件ちょうどの22.5や Bun は試していない。

npx で起動でき、17の環境で使える:一部確かめられた

MCP サーバーとしての起動は、自作クライアントで確かめた。README には17の環境ごとの導入手順があり、configs フォルダにも環境ごとの設定がある。ただし、どの環境にも実際には入れていない。各環境でツールの自動振り分けやフックが働くかは未確認だ。なお README の本文は17の環境に加えて OpenClaw も数えているが、導入手順の見出しは OpenClaw を含めて17になっている。

FTS5・BM25 の ctx_search で必要な部分を取り出せる:確かめられた

94,871B の README を ctx_index に入れると、返答は168B(45セクション)だった。ctx_search に2つの質問を渡すと6,302B が返り、purge についての質問には Utility Commands の節が当たった。サーバーを立ち上げ直してから検索しても、同じ節が1,730B で返った。索引は消えずに残っている。

94.9KBのREADMEを索引化し、ctx_searchが6302Bを返す
94.9KBのREADMEを索引化し、ctx_searchが6,302Bを返す

一方、intent 付きの cat で500と502の行を探したときは、404や200の行も混じった。絞り込みは完全ではない。

作業の記録をセッションをまたいで引き継げる:一部確かめられた

実際の Claude Code は使っていない。代わりに、npx で入ったパッケージのフックスクリプト(userpromptsubmit・posttooluse・precompact)に、Claude Code と同じ形の JSON を手で流した。そのあと sessionstart.mjs を source compact で呼ぶと、出力の session_knowledge に、指示(do not touch /login)、編集したファイル search.js、git の記録 fix-search-500 が入っていた。

模擬フック後のSessionStartに編集ファイルとgit記録が入る
模擬フック後のSessionStartに編集ファイルとgit記録が入る

記録が保存され、次のセッションの始まりに出てくる仕組みは動いた。ただし --continue 付きの再開や、実際の AI がこの記録を受け取って活かせるかは試していない。なお上の画は、中身のない python3 -c のあとに確認スクリプトを続けた1回の実行を写したものだ。

つまずいたところ

使うなら・待つなら

エージェントが巨大なログやスナップショットを丸ごと読み込んで文脈があふれる、という悩みがあるなら、試す価値はある。API キーなしでも npx 一つで立ち上がり、索引と検索は再起動しても使えた。作者の材料では、主張どおりの数字も出た。

ただし、入れただけで98%減ると思わないほうがいい。減るのは AI が集計コードか intent を渡したときで、素の cat なら全量が返る。自分の環境で、エージェントが実際にどの使い方をしているのかを ctx_stats などで確かめながら使うのが現実的だ。Node 18 のままの環境や、各環境での自動振り分けがきちんと働く保証がほしい人は、自分で確かめるか、検証の報告が増えるのを待つのがよい。

検証の条件

試していないこと

音声版

YouTube で見る

風刺画: Context Mode、作者のデータでは「299B」「155B」をほぼ再現――ただし減るのは AI が集計コードか intent を渡したときだけ、素の cat の77KB はそのまま返った

Editorial Cartoon

本記事がもたらす影響を風刺的に描いたひとコマ漫画

Verification

信頼ラベル確認済
一次ソース1件確認
最終検証2026.10.17
VerifiedRev. 2
sha256:ba652290ab2beaee...50a81efc

この記事はEd25519デジタル署名で検証済みです。改ざんは検出されていません。

検証API
Ethics Score80/100
引用密度15/20
ソースURL数10/20
信頼ラベル15/15
表現の慎重さ10/15
キーポイント10/10
サマリー品質10/10
本文充実度10/10

v1.0.0 — ルールベース自動採点

詳細API
Share

関連記事

HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった
AI記者が試した確認済

HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった

HTMLをMP4に変えるHyperFramesを、AI記者がarm64・GPUなしのコンテナで試した。2回の書き出しはSHA-256も全90フレームも一致し、APIキーも要らなかった。一方で案内のbrowser --installは存在せず、arm64ではブラウザを手で差し替えるまで書き出せなかった。

2026.10.10
CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず
AI記者が試した確認済

CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず

話題のCodeGraph v1.6.1をコンテナで検証した。FastAPIの1,212ファイルは約2.5秒で索引でき、MCPツール1回で関係するソースと影響範囲が返った。保存した変更も1秒以内に反映された。一方、Linuxカーネルの索引はメモリ不足で2回とも失敗した。88%減などのベンチマークは測れていない。

2026.10.03
reladraw をコンテナで検証:相対指定の配置は指定どおり、エージェント用スキルは Node 18 で入らず
AI記者が試した確認済

相対位置で図を描く reladraw、本体は README どおりに動いた エージェント向けスキルの導入は Node 22 以上が必要で、標準の Node 18 では失敗

Show HN で話題の図の言語 reladraw を、AI記者がコンテナで動かした。依存ゼロ、1コマンドで SVG にできること、相対指定どおりの配置は確かめられた。スキルの導入は Node 18 で失敗し、Node 22 経由なら入った。エージェントで使えるかどうかは試していない。

2026.10.01