Amazon Q Developer IDE の会話履歴の圧縮機能(/compact)を使ってみた
いわさです。
Amazon Q Developer のドキュメントを眺めていたところ、会話履歴を圧縮する機能があることを知りました。
コンテキストウィンドウサイズに一定の上限があることは知られていますが、上限に近づくと応答時間が悪くなったりするようです。
また、コンテキストウィンドウの上限を超えるとコンテキストを失ってしまい会話履歴に基づく回答を得られなくなるとのこと。
このあたり気を付けて使う必要がありそうですが、Amazon Q Developer IDE では使用状況の確認などが出来ないと思います。
どうやらドキュメント仕様によるとコンテキストウィンドウ上限の 80 % に達すると自動で圧縮機能を使うかユーザーに尋ねるボタンが表示され、それを押すと会話履歴が圧縮されるとのことです。
また、ユーザーが手動で/compact
コマンドを使うことで会話履歴を圧縮することも出来るみたいです。
Amazon Q Developer CLI で/compact
コマンドが使えるのはどこかで見たことがあったのですが、IDE でも使えるのを知りませんでした。
今回実際の挙動を確認してみたので紹介します。
コンテキストウィンドウサイズ上限に達すると会話履歴が自動で消去される
上限がどの程度なのかわからないので、文章量の多いドキュメントを大量に読み込ませ続けてみました。
具体的には臼田さんのトレンドチェック勉強会の記事を本日時点最新である 2025 年 7 月分から過去に遡って読み込ませます。
応答は最小限でインプットの読み込みだけするように事前に指示した上で、2024 年 6 月くらいまで読み込ませたタイミングで、次のようなエラーが発生しました。
「Too much context loaded. I have cleared the conversation history. Please retry your request with smaller input.」
どうやらコンテキストサイズの上限に達したようです。
このエラーが発生するまでは、各月のブログのアップデート件数や AWS サービスごとの集計を行うことが出来たのですが、エラーメッセージが表示されたあとは次のように会話履歴に基づく応答が得られなくなりました。
エラーメッセージをよく見てみると、「上限に達したので会話履歴をクリアしたぜ」と言っていますね。なんてこったい。
どうやら会話履歴がクリアされてしまったことでそれまでのコンテキストが失われてしまったようです。
その後も何度か試したのですが、上記メッセージが表示されるタイミングは同じだったので、コンテキストウィンドウの上限はこのあたりなんだなということがわかりました。
自動圧縮通知が確認できなかった
そして、公式ドキュメント上は容量の約 80% に達すると圧縮の提案が通知され、ボタンを押すと圧縮を開始できるらしいのですが、その自動圧縮通知は確認出来ませんでした。なんでだろう。
本日時点の私の環境では自動圧縮通知は使えず、そのままコンテキストサイズの上限に達してしまいました。
手動圧縮は使えた
この会話履歴の圧縮機能ですが、手動で好きなタイミングで圧縮を行うことも出来ます。
ユースケースとしては会話履歴が増えてきて Amazon Q Developer の応答性能などが悪くなってきたタイミングで使うことが想定されています。
使用方法ですが、チャットウィンドウ上で/compact
と入力することで実行できます。
トレンドチェック勉強会のブログ記事を 2024 年 7 月くらいまで入力したタイミングで実行してみました。
圧縮してるからちょっと待っててな〜と言われます。
数秒・数十秒待つと何やら圧縮した結果みたいなものが出力されました。
「Conversation history has been compacted successfully!」とのことなので、処理が終わったみたいですね。
これで圧縮とやらが終わったみたいなのですが、何がどうなったのでしょう。
過去の会話履歴に基づく質問をしてみましょう。具体的にはアップデート件数を聞いてみました。
すると次のような応答が。
どうやら圧縮すると、先程の要約情報のみが残ってそれ以外のインプット情報は消えるみたいです。
アップデート件数は得られず、要約情報のみ保持しているよーと言われました。
公式ドキュメント上は現在セッションが終了するまでは詳細な会話履歴についても残り続けるとのことでしたがこの検証したタイミングではコンテキストウィンドウサイズの上限が近いことで失われてしまったのかもしれません。
入力量がそこまで多くないタイミングで/compact
を使ってみると詳細情報についてもアクセスすることが出来ました。
また、先ほど要約情報に主要な情報が含まれていなかった点が気になったのですが、おそらく応答は最小限で一方的にインプットだけ繰り返していたのであのくらいの要約だったみたいです。
もう少し会話を行うと要約情報に残りやすいことを確認しています。
アップデート件数など気にしている点をいくつか事前情報として渡しておくと、要約時に次のように情報が残っていました。
さいごに
本日は Amazon Q Developer IDE の会話履歴の圧縮機能(/compact)を使ってみたのでその様子を紹介してみました。
本日時点では私の環境では自動圧縮通知機能については確認出来ませんでしたね。
手動圧縮については機能していました。ただし、要約にどの程度の情報を残せるかがポイントになるので、一方的にインプットしているだけだとあまり効果的ではないようです。
圧縮機能は一応ありますが、回答品質なども考えるとコンテキストウィンドウサイズの上限以内にどう収めるかは気にしないといけませんね。