自律的にキャッシュをチューニングするエージェントの構築

LLM(大規模言語モデル)アプリケーションの最適化における課題は、多くの場合、試行錯誤の連続です。開発者は通常、直感に基づいてTime-to-Live(TTL)の値やキャッシング戦略を設定し、その後ログを監視してそれが機能するかどうかを確認します。しかし、手動設定と実際の使用パターンとの間には大きな隔たりがあることが多く、コストとレイテンシの両面で非効率性が生じます。

最近のプロジェクトにおいて、BetterDBの作成者は、Valkey/Redis/Dragonflyのドキュメントに基づいて構築されたRAG(Retrieval-Augmented Generation)アプリケーション向けに、エージェントによるキャッシングシステムを開発しました。その目的は、エージェント自身がパフォーマンスを監視し、リアルタイムで設定変更を提案できるようにすることで、自社のキャッシングライブラリを実際に「ドッグフーディング」することでした。

マルチティア・キャッシング・アーキテクチャ

効率を最大化するために、システムは、異なる種類のユーザーインタラクションを処理するために設計された2ティア構成のキャッシング戦略を採用しています。

1. 完全一致ツールキャッシュ

SDKとツールの間に位置するこのティアは、すべての呼び出しを正規化し、完全一致するかどうかを確認します。これは、定義済みの質問、繰り返しコピー&ペーストされるクエリ、またはユーザーが同じ技術的な詳細を何度も確認する場合に理想的です。ヒットした場合、システムはLLMを完全にバイパスして、即座に結果を返します。

2. セマンティック・キャッシュ

人間は質問の言い回しを全く同じにすることは稀であるため、システムはセマンティック・キャッシュを利用します。このティアはプロンプトを埋め込み(embedding)し、valkey-searchを介してK近傍法(KNN)検索を実行します。新しいプロンプトとキャッシュされたプロンプトの間のコサイン距離が十分に近ければ、システムはキャッシュされたレスポンスをストリーミングします。

両方のティアでキャッシュミスが発生した場合、システムはプロンプトの埋め込み、使用されたモデル、およびOpenAIのusage reportから取得した入力/出力トークンを記録します。これにより、システムは、その後のヒットによって回避された正確な金額を追跡することが可能になります。

ループを閉じる:自己チューニングとモニタリング

このプロジェクトにおける真の革新は、静的な設定からエージェントによるループへの移行です。システムはValkey/Redisインスタンスにメタデータを保存し、それをモニタリングプロセスが分析します。

このモニタリングループは次のように動作します:

  • 分析: モニタリングツールがキャッシュのメタデータを読み取り、使用パターンを分析します。
  • 提案: システムはMCP(Model Context Protocol)サーバーを介して、改善策(TTLの変更など)を提案します。
  • 実行: このデモ環境では、エージェントは自身の提案を承認し、適用することが許可されています。ライブラリがValkeyインスタンスから直接設定を読み取るため、サーバーの再起動を必要とせずに変更が即座に反映されます。

教訓:設定 vs コード

テスト中、開発者は興味深い傾向を観察しました。3回の実行にわたって、ツール呼び出しの回数は15回から13回、そして最終的に8回へと減少しました。エージェントはいくつかのTTL変更を提案しましたが、開発者は重要な制限に気づきました:TTLは、多くの場合、制御すべき適切なポイントではありません。

例えば、ユーザーが「How fast is XADD?」と「XADD performance」と質問した場合、これらはセマンティック的には同一ですが、文字列としては異なります。TTLの変更では、これら2つのクエリが完全一致キャッシュにヒットしないという事実を解決することはできません。唯一の真の解決策は、アーキテクチャの変更です。つまり、これらの特定のツールを完全一致ティアからセマンティック・キャッシュのチェックへと移動させることです。

この気づきは、LLM開発者にとって重要な洞察を与えてくれます:すべての最適化は設定によって解決できるわけではありません。 一部の非効率性はルーティング・ロジックに起

未来の方向性

システムをさらに洗練させるために、開発者はルーティング・ロジック自体を設定可能にすることを検討しています。これにより、エージェントが再デプロイを必要とせずに、完全一致ティアとセマンティック・ティアの間でツールを移動させることが可能になり、より迅速なイテレーション・ループと最適化仮説の検証が可能になります。

Sources