【ITニュース解説】Why Saying ‘Hi’ to Our OpenCode Agent Used 177,000 Tokens
2026年10月29日に「Dev.to」が公開したITニュース「Why Saying ‘Hi’ to Our OpenCode Agent Used 177,000 Tokens」について初心者にもわかりやすく解説しています。
ITニュース概要
社内AIエージェントが「hi」と入力されただけで17.7万トークンを消費。原因は、利用可能な全ツールの詳細定義(特に広告連携用)が毎回AIのコンテキストに読み込まれていたためと判明した。OpenCodeのCode Mode(オンデマンド発見機能)を有効化し、必要なツール定義だけを読み込むように変更。結果、初回入力時のトークン消費は1.3万に激減し、コストと効率が大幅に改善した。
ITニュース解説
ある企業で、社内の業務を効率化するためにAIエージェントという便利なツールが使われていた。このAIエージェントは、生産上の問題を調査したり、必要な情報を探し出したり、レポートを作成したりと、多岐にわたる役割を担っていた。しかし、ある時からAIの利用料金が予想以上に高くなり、すぐに利用制限に達してしまうという問題が発生した。原因を調べてみると、AIが情報を処理する際に使う「トークン」という単位の消費量が異常に増えていることが分かった。
トークンとは、AIがテキストを理解したり生成したりする際に使用する、意味を持つ最小単位のことだ。例えば、英語の単語や句読点、日本語の数文字のまとまりなどがこれに該当する。AIはこのトークンを数え、処理量に応じて料金が決まるため、トークン消費量が多ければ多いほど、AIの利用コストも高くなる。利用しているAI「Astra」も例外ではなく、利用が増えるにつれて料金も上がっていたが、それ以上にトークン消費の増加ペースが速いことに担当者は疑問を感じた。
担当者はこの状況を解明するため、なんと別のAIエージェントに調査を依頼した。まず手始めに、AIエージェントが過去に利用された記録が保存されているデータベースを調べた。特定の期間に絞ってデータを抽出すると、驚くべき事実が判明した。ある一つの会話セッションで、何千万ものトークンが消費されており、その大半はAIが過去の情報を繰り返し読み込む「キャッシュ読み込み」に使われていることが分かったのだ。最初は、ユーザーがAIと長時間にわたって会話を続けることで、その会話履歴が膨大になり、結果的に大量のトークンを消費しているのではないかと考えられた。
しかし、さらに詳しく調べていくと、この仮説は覆されることになった。AIエージェントとの会話が始まったばかり、つまりまだほとんど何も情報が入力されていない最初の段階で、すでに約17万7千ものトークンが消費されていることが判明したのだ。これは、長時間の会話が原因であるという説明と矛盾する。この事実を確認するため、担当者は新しいAIエージェントとの会話を始め、単に「こんにちは(hi)」とだけ入力してみた。すると、やはり約17万7千トークンが消費されたのだ。これには過去の会話履歴もなく、もちろん何かを調査しているわけでもない。この時点で、会話の長さが原因であるという考えは通用しなくなった。
では、一体何がこれほど大量のトークンを消費させていたのだろうか。担当者の次の疑いは、AIエージェントに与えられた「指示文」や「スキル」、つまりAIがどのように振る舞うべきか、何ができるかを定義した情報が大きすぎるのではないかというものだった。そこで、「TokenScope」というツールを使って、トークン消費の内訳を詳細に分析した。このツールの報告によると、確かに約17万7千トークンが入力に使われていたが、ユーザーに見える会話の内容や、スキルカタログとして定義されている分はごくわずかで、数千トークン程度にしかならなかった。これでは全体の大部分を説明できない。
TokenScopeが見えていなかった重要な部分があった。それは、AIエージェントが利用できる「ツールの定義」、特に「MCP(Multi-Call-Planner)定義」というものだった。AIエージェントは、様々な外部システムと連携して情報を取得したり操作したりするための「ツール」を持っている。これらのツールを使うためには、AI自身がそのツールの使い方、つまりどのような機能があり、どのような情報を入力すればよいかといった詳細な説明(定義)を知っている必要がある。担当者がその詳細を改めて確認したところ、「Meta Ads」という広告関連のツールが原因であることが判明した。
Meta Adsは、97ものツールで構成されており、その使い方や入力パラメータに関する説明文が、約59万5千文字もの膨大な量に達していた。これは、AIエージェントが利用できる全ツール定義の約72%を占める量だった。問題は、この広告関連のツール定義が、ユーザーが広告について尋ねていないにもかかわらず、AIエージェントが起動するたびに、あるいは新しい会話が始まるたびに、常にAIの「コンテキスト(文脈)」として読み込まれていたことだ。コンテキストとは、AIが思考し、適切な返答を生成するために参照するすべての情報のことを指す。つまり、必要のない大量のツール定義が毎回AIに与えられていたために、それがそのままトークン消費量として計上されていたのだ。
この仮説を検証するため、担当者はMeta Adsの連携機能を一時的に無効にし、再び「こんにちは」と入力してみた。すると、トークン消費量は約17万7千から約5万4千にまで激減したのだ。これは、元のトークン消費量の約69%をMeta Adsのツール定義が占めていたことを意味する。この結果から、AIエージェントが様々なツールを使えるようにすることは重要だが、それらのツールの使い方(定義)を「常に」AIに与え続けることが、莫大なコストにつながっていたことが明らかになった。
しかし、Meta Adsの機能を完全に無効にすることはできない。なぜなら、社内ではこのツールを日常的に利用している人がたくさんいたからだ。担当者が望んだのは、ツールは引き続き利用できるようにしつつ、AIエージェントが必要になったときにだけ、そのツールの使い方を調べて利用するような仕組みだった。幸いなことに、AIエージェントの基盤であるOpenCodeには、すでに「Code Mode」という実験的な機能が搭載されていることが分かった。
Code Modeを有効にし、Meta Adsの連携も元に戻した上で、再び「こんにちは」と入力してみた。結果は劇的だった。トークン消費量は約1万3千にまで減少し、なんと以前と比較して約92%もの削減を達成したのだ。Code Modeの核心は、「オンデマンド発見」という考え方にある。これは、AIモデルが最初からすべてのツールの詳細な定義を持つのではなく、まずコンパクトなツールのリストだけを持つ。そして、ユーザーからの要求に応じて特定のツールが必要になったときに初めて、そのツールの詳細な定義を検索して読み込み、利用するという仕組みだ。
具体的には、AIモデルがツールを呼び出すためのコードを生成し、そのコードを実行することで、必要なツールの定義を動的に取得する。これにより、AIエージェントが起動するたびに、すべてのツールの膨大な定義を毎回読み込む必要がなくなり、大幅なトークン消費の削減につながったのだ。この削減は、単に最初の挨拶だけでなく、実際の業務における調査作業においても、AIがより効率的に、そして低コストで動作することを意味する。
この件で少し恥ずかしいのは、OpenCodeの新しいバージョンではCode Modeがデフォルトで有効になっていることだった。筆者自身は新しいベータ版をローカル環境で使っていたため問題が起きていなかったが、本番環境のAIエージェントは古いバージョンだったため、手動で有効にする必要があったのだ。しかし、この「オンデマンド発見」という仕組みはOpenCodeに特有のものではなく、Claude CodeのMCP Tool SearchやCodexなど、他の主要なAIプラットフォームでも同様のコンセプトが採用され、すでに一般的なデフォルト機能となっている。今回の事例は、なぜこの機能が重要なのか、そしてそれを有効にしないとどのような問題が起こりうるのかを身をもって体験した貴重な教訓となった。最終的に、利用中のツールを無効にすることなく、利用コストを大幅に削減できたことは大きな成果だった。