ある企業のBedrock Agentは複雑な多段階カスタマーサポート会話を処理しています。ユーザーから「会話が約20ターンを超えると、エージェントが会話の序盤の内容を忘れる」という報告が相次いでいます。エージェントはClaude 3 Sonnet(200Kトークンコンテキスト)を使用しており、調査の結果、会話履歴がコンテキストウィンドウの大半を消費していることが判明しました。最も効果的な解決策はどれですか?
選択肢Aは、maxTokensは生成トークン数の上限を設定するパラメータであり、コンテキストウィンドウの消費量とは無関係のため、この問題の解決策にはなりません。 選択肢Bは、古い会話ターンを定期的に要約してSession Attributesに保存し、エージェントのオーケストレーションプロンプトの$session.属性変数経由でシステムプロンプトに注入する方法です。重要情報を圧縮しながら長期的な会話コンテキストを維持でき、コンテキストウィンドウの消費を効率的に抑える最も有効な解決策です。 選択肢Cは、Claude 3 OpusもSonnetと同じ200Kコンテキストウィンドウを持つため、モデルを切り替えても問題の根本的な解決にはなりません。 選択肢Dは、Amazon Bedrock Guardrailsにはコンテキスト削除機能は存在しないため、この問題の解決策にはなりません。