Open WebUI v0.12.4は、スキルの指示を毎回送らず必要なときに読み込むようにし、長い会話の圧縮過程をチャットで確認できるようにした。複数のスキルを使うユーザーや長い会話を続ける開発者は、不要な指示の送信を減らし、どの会話が要約されたかを確認できる。
1. スキルの全指示は必要なときに送信
スキルは、モデルが作業に活用する指示のまとまりである。従来は、チャットで選択したスキルやモデルに紐付けたスキルの全指示を、メッセージごとに送っていた。遅延読み込みをオンにすると、まず一覧だけを渡し、モデルが必要なときに全指示を読み込む。毎回マニュアル全体を渡す代わりに、一覧を見て必要なマニュアルを取り出す仕組みである。
管理者は、管理者設定の一般項目で、選択したスキルを必要なときに読み込む設定をオンにするか、環境変数を設定してこの方式を有効にできる。ユーザーはチャットでスキルを選択しておき、すぐに適用するスキルをメッセージで直接指定できる。メッセージで指定したスキルは、待たずに即座に読み込まれる。
この機能はデフォルトではオフになっており、組み込みのスキルツールが必要である。設定をオンにしなければ、従来どおりスキルの全指示がメッセージごとに送信される。関連する環境変数名は次のとおりである。
ENABLE_SKILL_LAZY_LOADING2. 圧縮されたメッセージと要約内容を表示
コンテキスト圧縮は、過去のメッセージを要約して以後の会話に活用する方式である。圧縮が実行されると、会話内の要約が行われた位置に圧縮マーカーが付く。ユーザーはマーカーを展開して要約内容を確認でき、チャット操作の概要画面からもマーカー付きのメッセージを見つけられる。
回答の生成中にツール呼び出しの合間で圧縮が実行された場合は、回答内にもマーカーが残る。ユーザーは会話終了後に別の画面を探すだけでなく、回答を読み進めながら圧縮が入った位置を確認できる。
圧縮が進行中の場合やエラーが発生した場合は、ポップアップの代わりに会話内に状態が表示される。そのため、長い会話のどの時点のメッセージが要約されたか、圧縮が正常に進んでいるかを、チャットを離れずに確認できる。
3. 一時的な会話や上限超過済みのコンテキストも圧縮
コンテキスト圧縮は、一時的な会話にも適用されるようになった。質問1つとツール出力の多い回答だけの短い会話など、すでに圧縮のしきい値を超えている場合にも圧縮が実行され、追加の質問や回答の再生成・編集がコンテキスト長のエラーで失敗する問題を防ぐ。
使用量ゲージは、圧縮を開始する基準に合わせて表示される。個別モデルまたはデフォルトのモデルパラメーターに設定した圧縮のしきい値がその基準となる。以前は、モデルに設定したより低いしきい値がゲージに反映されず、実際の圧縮タイミングより余裕があるように見えることがあった。
ゲージと実際の圧縮に同じ基準が使われるため、ユーザーは表示を見て圧縮のタイミングがどれほど近いかを把握しやすくなる。圧縮機能をオフにすると、適用されないしきい値の設定も画面から非表示になる。
4. 繰り返し送信は減り、要約で会話履歴は変わる
2つの機能は、モデルに送る内容を減らす方法が異なる。遅延読み込みは、繰り返し送信していたスキルの指示を、必要なときに読み込む手順へと変える。コンテキスト圧縮は長い会話の継続を助ける一方、以後の会話に使う過去のメッセージの内容を、原文全体ではなく要約に置き換える。
ツールサーバーのツールが再起動後も同じ形式でモデルに渡されるように変更され、入力を再利用するために保存するプロバイダーのプロンプトキャッシュが維持され、長い会話を最初から処理し直さずに済むようになった。ただし、この変更で削減されるトークンや処理時間の数値は、リリースノートには示されていない。
今回のアップデートの要点は、スキルの指示と長い会話を処理するタイミングを調整し、圧縮結果をユーザーが直接確認できるようにしたことにある。
