メインコンテンツへスキップ
Kanau Tech™ - かなうテック
← ブログ一覧に戻る
AI開発ツール

Claude Codeに構造を渡して測ってみた:効いた問いと効かなかった問い【2026年版】

2026-08-12by DO XUAN HIEN
Claude Codeに構造を渡して測ってみた:効いた問いと効かなかった問い【2026年版】

この記事の概要

本記事は全4回シリーズの第3回です。

第1回で概念、第2回で標準を扱いました。

今回は実装です。

そして、実際に測った数字を出します。

先に結論を書きます。

422ファイル、約1万行のリポジトリで24回測った範囲では、総コストは下がりませんでした。

探索の回数は23%減りましたが、総コストは7.6%増え、所要時間は25%増えました。

同時に、問いの型によって符号が割れることも分かりました。

以下、測り方と数字と、そこから引ける線を順に書きます。


Part 1. 先例としてのリポジトリマップ

コードの構造をAIに渡すという発想には先例があります。

AIペアプログラミングのCLIであるAiderは、リポジトリマップという仕組みを持っています。

Aiderの公式ブログによれば、このマップはtree-sitterを使ってソースファイルからシンボルの定義を取り出し、自動的に構築されます1

大きなリポジトリではマップ自体が大きくなりすぎるため、絞り込みが入ります。

公式ドキュメントの説明では、各ソースファイルを節点とし、依存関係のあるファイルどうしを辺で結んだグラフを作り、そのグラフに対するランキングのアルゴリズムでマップ全体を分析します2

渡す量は --map-tokens で決まり、既定は1,000トークンです2

ただし固定ではなく、チャットの状態に応じて動的に調整されると説明されています2

設計の考え方は、実装の全体を見せる必要はなく、必要なファイルを自分で特定できるだけの情報があればよい、というものです。

第1回のPart 5で挙げた、探索の回数が減ることと渡す情報の密度が上がることを、コードの領域で実装した形にあたります。


Part 2. MCPのmemoryサーバで手を動かす

Claude Codeで最も手軽に構造を持たせる手段が、MCPの公式リファレンス実装であるmemoryサーバです。

正式名称はKnowledge Graph Memory Serverで、ローカルのナレッジグラフを使って記憶を持続させる基本的な実装だと説明されています3

なお公式リポジトリで現在も維持されているサーバは7つほどで、memoryはその1つです3

データモデル

3つの要素で構成されます3

  • Entities:グラフの節点。一意の名前、entityType(person、organization、event など)、observationsのリストを持つ
  • Relations:節点どうしの有向のつながり。from、to、relationType を持ち、常に能動態で保存される(works_at など)
  • Observations:エンティティに紐づく事実の文字列。独立して追加、削除でき、1つにつき1つの事実にすべきものとされる

Observationsを細かく保つという指針は、後で効いてきます。

1つの文字列に複数の事実を詰め込むと、消したい事実だけを消せなくなります。

提供される道具

9つのツールが提供されます3

create_entitiescreate_relationsadd_observationsdelete_entitiesdelete_observationsdelete_relationsread_graphsearch_nodesopen_nodes の9つです。

加えて、グラフ全体を memory://knowledge-graph というMCPリソースとして読み出せます3

変更系のツールは更新の通知を発行するため、購読しているクライアントは変更を追えます3

導入

claude mcp add memory -- npx -y @modelcontextprotocol/server-memory

転送方式はstdioが既定なので、指定は不要です。

設定の適用範囲は -s で選べます(local、user、project)。

保存先には落とし穴がある

公式実装のソースを読むと、既定の保存先はサーバ本体と同じディレクトリの memory.jsonl です4

プロジェクトの直下ではありません。

npx で導入すると、パッケージが展開された場所に置かれます。

環境変数 MEMORY_FILE_PATH で変更できますが、ここにも注意が要ります。

相対パスを渡した場合、サーバ側のディレクトリを基準に解決されます4

プロジェクトの中に置きたければ、絶対パスを渡す必要があります。

以下は今回の計測で実際に使った設定です。

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"],
      "env": { "MEMORY_FILE_PATH": "/絶対パス/measurement/ontology-memory.jsonl" }
    }
  }
}

Part 3. 自分のリポジトリで測った

ここからが本記事の中心です。

なぜ自分で測るのか

グラフを入れるとコストが何割減る、といった数字はいくつか流通しています。

今回、それらの出典を一次資料まで辿ろうとしましたが、辿り着けませんでした。

引用元をさかのぼると、別の記事に行き当たり、そこにも一次資料がない、という形です。

辿れない数字は本記事には書きません。

代わりに、自分の環境で測った数字だけを出します。

測定条件

項目
対象自社サイトのリポジトリ。追跡ファイル422、TypeScript 92ファイル・9,937行
CLIClaude Code 2.1.220
主モデルSonnet
副モデルOpus(1問のみ追試)
実施日2026年8月2日
反復各条件・各問い2回
実行数Sonnet 20回、Opus 4回、グラフ構築1回

測り方

対話画面の数字を目で読む方法は再現性がありません。

headlessの実行とJSON出力を使いました。

claude -p "問い" --output-format json \
  --strict-mcp-config --mcp-config ./mcp-config.json \
  --disable-slash-commands --permission-mode bypassPermissions \
  --model sonnet

返るJSONから、total_cost_usdduration_msnum_turnsusage.cache_read_input_tokensusage.output_tokens を記録しました。

--strict-mcp-config を付けている理由があります。

これを付けないと、その環境につないである他のMCPサーバの定義がすべて読み込まれます。

実際に測ると、「1+1は」という最小の問いですら、環境の定義だけで7万トークンが積まれていました。

サーバとスキル一覧を切ると5万トークンまで下がります。

差の2万トークンは問いと無関係な固定費であり、グラフの効果を測るうえでは純粋なノイズです。

自分の環境の構成を測ってしまわないよう、両条件から他のサーバを外しました。

問いは5本、先に固定した

実行前に問いと正解を決め、実行中も実行後も変えていません。

  1. ブログ記事の必須項目を1つ増やすとき、変更が必要なファイルを全て挙げよ
  2. ビルドを失敗させる検証は何種類あり、どのファイルで実装され、どこから起動されるか
  3. ある関数はどこから呼ばれているか、全て挙げよ
  4. 記事を1本公開するとき、記事ファイル以外に更新が必要なファイルと、更新しなかった場合に起きること
  5. 新しいサービスページを1ページ追加するとき、触るべきファイルを順に挙げよ

条件Aはグラフなし、条件Bはグラフありで、A、B、A、Bと交互に実行しました。

交互にしたのは、プロンプトキャッシュの影響を片側に寄せないためです。

グラフの構築コスト

条件Bのグラフは、手書きではなくAIに作らせました。

リポジトリを読ませ、エンティティと関係を登録させる形です。

結果は63エンティティ、74関係。

構築にかかったのは4分54秒と1.09ドルでした。

この時点で分かることがあります。

構築費は、質問2回から3回分にあたります。

数回しか問わないなら、元が取れません。

結果

Sonnetでの20回の合計です。

指標グラフなしグラフあり
合計コスト3.3507ドル3.6067ドル+7.6%
合計所要時間375.5秒470.6秒+25.3%
合計ターン数9573−23.2%
キャッシュ読み取り4,245,5153,511,286−17.3%
出力トークン24,03234,155+42.1%

探索は確かに減りました。

ターン数が23%、キャッシュ読み取りが17%減っています。

ファイルを片端から開く挙動は、実際に減りました。

しかし出力トークンが42%増え、コストと時間はむしろ悪化しました。

グラフを見たAIは、探索を減らした分だけ長く詳しい回答を書きます。

表が増え、根拠の列挙が増えます。

読む量が減れば安く速くなる、という説明は、読む量の部分だけが当たり、支払いの部分が外れました。

問いごとに符号が割れる

問い種類なしありターン数
1. 影響範囲広くたどる0.79441.1486+44.6%31 → 24
2. 検証の所在grepで済む0.41790.5571+33.3%10 → 12
3. 呼び出し元grepで済む0.28500.4393+54.1%4 → 10
4. 公開時の同期広くたどる1.04280.9014−13.6%30 → 18
5. ページ追加の手順広くたどる0.81050.5603−30.9%20 → 9

はっきり分かれました。

効いたのは問い4と問い5です。

どちらも複数の仕組みをまたいで、順序と依存を答える形の問いです。

問い5はターン数が20から9に半減し、コストが3割下がりました。

逆効果だったのは問い2と問い3です。

どちらもgrep一発で終わります。

グラフなしの条件では、問い3は2ターン、0.048ドルで正解にたどり着いています。

グラフありの条件はグラフを読み、さらにgrepで裏を取るため、6ターン、0.141ドルかかりました。

答えが1か所にある問いに対して、グラフは純粋な上乗せになります。

問い1が広くたどる型なのにグラフありのほうが高いのは、2回目の実行が突出したためです。

2回では外れ値をならせません。

モデルを変えると符号が反転した

同じ問い1をOpusで追試しました。

指標グラフなしグラフあり
合計コスト1.8050ドル1.5500ドル−14.1%
合計所要時間191.4秒155.8秒−18.6%
合計ターン数4131−24.4%

Sonnetで44.6%増だった問いが、Opusでは14.1%減になりました。

1つのモデルで測った数字を、オントロジーの効果として一般化することはできません。

回答の質は変わらなかった

コストと時間を見ない状態で、回答本文だけを正解表と突き合わせて採点しました。

グラフなしは8つが正解、2つが一部漏れ。

グラフありは7つが正解、3つが一部漏れ。

どちらも致命的な誤りはありませんでした。

この規模で精度が上がる、とは言えません。


Part 4. 観測できた2つの失敗モード

数字より重要かもしれない部分です。

グラフが粗いと、確認作業がかえって増える

構築されたグラフには、あるページがライブラリを呼び出す、という関係が記録されていました。

しかし実際に呼んでいたのは別の関数です。

関係がファイル単位で記録されており、関数単位ではありませんでした。

グラフありの条件は、これを見たうえでgrepで裏を取り直しています。

回答本文に「grepで実際のコードを確認し、上記4箇所のみが正しいことを検証済み」と書かれていました。

グラフが粗いと、AIはグラフを信じずに検証します。

検証の分だけターンが増えます。

問い3でグラフありが3倍かかった主な原因はこれです。

グラフに無いものは「無い」として報告される

問い5で、グラフありの条件はヘッダーとフッターについてこう答えました。

グラフに関係が記録されていないので、必要なら別途確認すること。

事実としては、どちらもリンクを持っています。

グラフの欠落が、そのまま回答の欠落として出ました。

一方、グラフなしの条件は実ファイルを読み、フッターを行番号つきで指したうえで、既存のリンク漏れという不整合まで見つけています。

第2回のPart 4で扱った開放世界仮定が、ここで具体的な形を取りました。

書いていないことは未知であって、無いことではありません。

しかし運用上は、未知はそのまま欠落として現れます。

今回のグラフは構築直後で、鮮度は最良の状態でした。

それでもこの欠落が起きています。

時間が経てば悪化します。

グラフを持つなら、いつ、誰が、どう更新するかを先に決めることになります。


Part 5. CLAUDE.mdとの役割分担

ここからは、かなうテックが実務で使っている整理であり、公式の指針ではありません。

CLAUDE.mdとオントロジーは競合しません。

役割が違います。

CLAUDE.mdは指示です。

「APIはこのディレクトリに置く」「テストは必ず書く」のような、常に守るべきルールを書きます。

毎回のセッションで全文が読み込まれるので、少数である必要があります。

オントロジーは事実です。

何があり、どうつながっているかを書きます。

数が多くてよく、必要な部分だけを取り出して使います。

依存関係をCLAUDE.mdに箇条書きで全部書くと、毎回のセッションで全トークンを消費したうえ、結局は平らな並びなのでたどれません。

逆に「テストを必ず書け」をグラフに入れても、AIが読みに行かなければ効きません。

なお、グラフをどこに置き、誰が運用し、どの順序で導入するかという保存と運用の設計は、ナレッジグラフをいつ持ち込むかで扱っています。


Part 6. 文書からグラフを組み立てる方法

memoryサーバは、AIに手作業でグラフを作らせる方式です。

文書の集まりから体系的に組み立てる方法を、Anthropicの公式Cookbookが公開しています5

扱うのは、固有表現の認識、関係の抽出、エンティティの解決、エンティティの要約という古典的な4つの作業です5

手順は、抽出、エンティティ解決、グラフの組み立て、エンティティの要約、問い合わせと進み、抽出品質を測る評価の仕組みが同梱されています6

数字も具体的です。

Apollo計画に関するWikipediaの要約6本から、36のエンティティと34の関係が抽出され、名寄せを経て22の正規エンティティになりました6

できたグラフは22節点、34辺、連結成分は1つです6

連結成分が1つであることには意味があります。

Cookbookは、連結成分が1つであることはエンティティ解決が機能した印であり、島に分かれている場合は本来まとめるべき表記ゆれがまとまっていないことを示す、と説明しています6

運用の指針も書かれています。

抽出は高速で安価なモデル、エンティティ解決と要約は矛盾する証拠を評価する必要があるため上位のモデル、という使い分けです6

24時間待てる処理はバッチ処理のAPIで半額になります6

保存については、数十万辺まではメモリ上のライブラリで足り、それを超えるならプロパティグラフのデータベースか、3つのテーブルに分けた関係データベースに移す、という目安が示されています6

失敗のしかたも2つ明記されています6

1つは、まとめる処理から漏れた名前がグラフから静かに消えること。

もう1つは、まとめすぎて別の実体を1つに統合してしまうことです。

前者は節点を失い、後者は精度を失います。

Part 4で書いた2つの失敗モードのうち、後者はこのまとめすぎと同じ構造です。

なお、この手順を実装する足場については既存記事で扱っているため、本記事では手順の紹介にとどめます。


Part 7. どこから導入すべきか

実測から引ける線を書きます。

これはかなうテックの判断です。

効かない可能性が高い場合

ファイル数が数百規模のリポジトリ。

今回測った規模がここにあたり、総コストは増えました。

答えが1か所にある問いが中心の場合。

grepやファイル検索で終わる問いに対して、グラフは上乗せにしかなりません。

グラフを誰も更新しない場合。

Part 4で見たとおり、欠落はそのまま回答の欠落になります。

構築直後ですらこれが起きます。

効く可能性がある場合

複数の仕組みをまたいで、順序と依存を答える問いが多い場合。

今回の測定でも、この型の問いだけは3割の改善が出ました。

同じ問いを何度も投げる場合。

構築費は1回ですが、効果は問うたびに出ます。

今回は構築に質問2回から3回分のコストがかかりました。

問いの回数が増えるほど、この初期費用は薄まります。

測ってから決める

今回いちばん強く言えることは、これです。

自分の環境で測れば、判断できます。

必要なのはコマンド1つと、事前に固定した問いと、正解表だけです。

流通している数字を根拠にするより、24回の実測のほうが自社の判断材料になります。

測定範囲の限界

本記事の数字は次の範囲に限られます。

反復は2回で、中央値は出せていません。

1つのリポジトリ、1つの規模でしか測っていません。

グラフは1回の自動構築のみで、人手で精緻化したものは試していません。

数百から数千ファイルの規模は測っていません。

効かなかったのではなく、この条件では効かなかった、というのが正確な言い方です。


Part 8. 業務で言うと何にあたるか

今回の結果は、ソフトウェア以外の場面にもそのまま当てはまります。

業務手順を関係として書き出す作業には、作る手間と、更新し続ける手間がかかります。

書き出しただけで放置すると、現場と食い違った手順書が残ります。

食い違った手順書は、手順書が無い状態より危険です。

書いてあるので、確認されないまま使われるからです。

一方で、影響範囲を問う場面は、書き出す価値が最も出る場面です。

「この規程を変えたら、どの様式に波及するか」は、今回の測定で効いた問い5と同じ形をしています。

導入の判断は、次の順序になります。

まず、自社で実際によく出る問いを書き出す。

その問いが、たどる型なのか、探す型なのかを分ける。

たどる型が多いなら、関係を書き出す価値があります。

自社の業務でどの問いが繰り返し出ているか、それが探す型かたどる型かの切り分けは、無料相談でも承っています。


シリーズ一覧

内容
第1回概念。5つの構成要素、関係の型、RAGとの使い分け、参考情報と実行基盤の区別
第2回標準。RDFのトリプル、OWL、推論、開放世界仮定、厳密さの止めどころ
第3回(本記事)実装と実測。24回の測定、効いた問いと効かなかった問い、2つの失敗モード
第4回業務への適用。書き起こしの5つの手順

関連記事


参考文献

すべての出典は2026年8月2日時点のものです。

  1. Aider 公式ブログ「Building a better repository map with tree sitter」(2023年10月22日) — https://aider.chat/2023/10/22/repomap.html
  2. Aider 公式ドキュメント「Repository map」 — https://aider.chat/docs/repomap.html
  3. Model Context Protocol 公式リポジトリ「Knowledge Graph Memory Server」README — https://github.com/modelcontextprotocol/servers/tree/main/src/memory
  4. 同上、src/memory/index.ts の保存先解決処理 — https://github.com/modelcontextprotocol/servers/blob/main/src/memory/index.ts
  5. Anthropic Cookbook「Knowledge Graph Construction with Claude」README — https://github.com/anthropics/anthropic-cookbook/tree/main/capabilities/knowledge_graph
  6. 同上、guide.ipynb の本文および実行結果 — https://github.com/anthropics/anthropic-cookbook/blob/main/capabilities/knowledge_graph/guide.ipynb

注記:本記事のうち、Part 1からPart 2、およびPart 6は、公式ドキュメント、公式リポジトリのソース、公式Cookbookに基づく記述です。Part 3とPart 4の数値と観察は、かなうテック(屋号:Kanau Tech™)が2026年8月2日に自社リポジトリで実施した測定の結果であり、他の環境で同じ数字が出ることを保証するものではありません。Part 5とPart 7の判断は、かなうテックが実務で用いている整理です。ツールの仕様とモデルの挙動は変更されうるため、導入前に公式の情報をご確認ください。

御社のDX力、3分でチェックしませんか?

10問の簡単な質問でIT基盤・業務デジタル化・AI活用度を無料診断。改善のヒントもわかります。

無料DX診断を受ける →