Anthropicのモデルと対話するためのコマンドラインツールであるClaude Codeには、サブエージェントのリアルタイムなステータス更新を提供するバックグラウンド機能が含まれています。このツールは30秒ごとに、エージェントの会話トランスクリプト全体をモデル(通常はClaude 3 Opus)に送信し、3〜5単語の短い要約を生成します。この要約はエージェントパネルのステータス行を更新するためだけに使用され、実際の会話やモデルの主要なタスクには影響を与えません。しかし、これらのコールにはフルトランスクリプトとツールスキーマが含まれているため、ユーザーのトークン消費の大部分を占める可能性があり、サブエージェントを多用するセッションでは総支出の最大16.4%から26%に達することもあります。

この画像は、装飾的なステータス更新のための高いトークンコストという核心的な問題と、コミュニティによって開発された解決策を例示しています。
この機能はターミナルを監視しているユーザーにとっては視覚的なUXを提供しますが、自動化スクリプト、CI/CDパイプライン、または放置されたセッションでは不要な場合が多いです。現在、バックグラウンドエージェントを完全に無効にすることなく、これらの特定の要約コールのみを無効にする公式の設定はありません。この不一致はOpenTelemetryのエクスポートを通じて特定され、`agent_summary`のクエリソースが時としてメインの会話自体よりもコストがかかっていることが判明しました。これらのコールは標準的なセッションログからは除外されるため、生のテレメトリを監視していない限り、ユーザーにとってコストが見えなくなることがよくあります。
この画像は、バックグラウンドの要約コールを管理するための公式設定を求めるコミュニティの要望を示しています。
これを解決するために、コミュニティによって開発されたBunプリロードスクリプト(`no-agent-summary.js`)が、要約タイマーをインターセプトして無効化するために共有されました。このスクリプトは`setTimeout`および`setInterval`関数をラップすることで動作し、要約タイマーの特定の内部アンカーを含むコールバックを検出すると、決して実行されない不活性なハンドルを返します。これにより、ツールはサブエージェントを正常に実行し続けながら、高コストな要約リクエストをスキップすることができます。ユーザーは`BUN_OPTIONS`環境変数を設定してスクリプトをプリロードすることでこれを適用できます。この修正は有効ですが、あくまで回避策です。ツールは定期的に更新されるため、ユーザーはバイナリの新しいバージョンにおいて内部の文字列アンカーが変更されていないかを確認する必要があります。