𝟰𝟮/𝟲𝟬 𝗗𝗮𝘆𝘀 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀
あなたのAIエージェントはユーザー名を覚えています。
ユーザーがエージェントに、ニューヨーク行きの格安航空券の予約を依頼します。さらに、1泊150ドル以下のホテルを求め、旅行費用の総額比較を依頼します。
ステップ3までに、エージェントは8,000トークンの履歴をLLMに送信します。しかし、エージェントはまるでチャットの初回であるかのように回答します。
これをリリースする前に、メモリ・アーキテクチャを検討する必要があります。
次の中から1つ選んでください:
In-context window: プロンプトに全履歴を保持します。シンプルですが、15ターンまたは8,000トークンを超えると機能しなくなります。
Vector memory store: 過去のやり取りを埋め込み(Embed)します。類似性に基づいて最適な一致を検索します。しかし、「NYC flight」の検索時に、現在のタスクではなく過去の旅行のメモリを呼び出してしまうという問題があります。
Episodic memory with summarization: 過去のやり取りを構造化された要約に圧縮します。関連する要約を各リクエストに注入します。構築はより困難ですが、情報の混乱も起こりにくいです。
Redis session state: 構造化されたキーバリューストアを使用します。エージェントが明示的に読み書きを行います。決定論的(deterministic)ですが、エージェントは何をいつ保存すべきかを把握している必要があります。
ある選択肢は15ターン後に失敗します。ある選択肢は、不適切なタイミングで誤ったコンテキストを呼び出します。そして、タスク指向型エージェントにとっての正解がもう一つあります。
A、B、C、Dのいずれかを選んでください。本番環境でこのような問題に直面したことがあれば教えてください。
詳細な解説はコメント欄で共有します。
Source: https://dev.to/thejoud1997/4260-days-system-design-questions-4018
Optional learning community: https://t.me/GyaanSetuAi