View a markdown version of this page

エピソードメモリ戦略 - Amazon Bedrock AgentCore

エピソードメモリ戦略

エピソードメモリは、ユーザーとシステムのインタラクションの意味のあるスライスをキャプチャするため、アプリケーションは焦点を絞って関連性があると感じる方法でコンテキストを再現できます。すべての raw イベントを保存する代わりに、重要な瞬間を識別し、それらをコンパクトなレコードに要約して整理し、システムがノイズなしで重要なものを取得できるようにします。これにより、モデルが時間の経過とともにコンテキストがどのように進化したかを理解できるようにすることで、より適応的でインテリジェントなエクスペリエンスが生まれます。

その強みは、多くのインタラクションにまたがる構造化コンテキストを持ちながら、効率的に保存、検索、更新できることにあります。開発者は、独自の要約パイプラインを設計することなく、鮮度、精度、長期的な継続性のバランスを取ります。

リフレクションは、過去のエピソードを分析してインサイト、パターン、高レベルの結論を明らかにすることで、エピソードレコードに基づいています。リフレクションは、発生したことを単に取得するのではなく、特定のイベントが重要である理由と、将来の動作にどのように影響するかをシステムが理解するのに役立ちます。生の経験をアプリケーションがすぐに使用できるガイダンスに変換し、モデルに履歴から学ぶ方法を提供します。

その価値は、個々の瞬間やエピソードを超えて情報をリフティングし、意思決定、パーソナライゼーション、一貫性を向上させる永続的な知識を生み出すことにあります。これにより、アプリケーションはミスの繰り返しを回避し、ユーザーの好みにより迅速に適応し、長期間にわたって一貫性を感じるように動作します。

お客様は、過去の一連のやり取りを理解することで品質が向上するシナリオや、長期的な改善が重要なシナリオでは、エピソードメモリを使用する必要があります。理想的なユースケースには、カスタマーサポートの会話、エージェント主導のワークフロー、セッション履歴に依存するコードアシスタント、個人の生産性向上ツール、トラブルシューティングまたは診断フロー、静的プロファイルではなく実際の過去のイベントに基づくコンテキストを必要とするアプリケーションなどがあります。

エピソード戦略を呼び出すと、AgentCore は会話内のエピソード完了を自動的に検出し、イベントを構造化されたエピソードレコードに処理します。

戦略のステップ

エピソードメモリ戦略には、以下のステップが含まれます。

  • 抽出 – 進行中のエピソードを分析し、エピソードが完了したかどうかを判断します。

  • 統合 – エピソードが完了すると、 は抽出を 1 つのエピソードに結合します。

  • リフレクション – インサイトはエピソード間で生成されます。

戦略出力

エピソードメモリ戦略は、エピソードとリフレクションの両方に対して XML 形式の出力を返します。各エピソードは、状況、意図、評価、根拠、エピソードレベルのリフレクションに分割されます。インタラクションが進むと、エピソードはturn-by-turn分析されます。この情報を使用して、オペレーションとツールの使用の順序をよりよく理解できます。

この戦略でキャプチャされたエピソードの例

  • エージェントが特定のツールを選択し、エラーが発生し、代替アプローチを使用して正常に解決されたコードデプロイインタラクション。

  • ユーザーのインテント、特定のツールを使用するエージェントの決定、成功した結果をキャプチャした予約の再スケジュールタスク。

  • 特定のデータ型に最適なパフォーマンスをもたらしたパラメータを文書化したデータ処理ワークフロー。

エピソード戦略には、メモリ抽出と統合のステップ (他の戦略と共有) が含まれます。さらに、エピソード戦略ではリフレクションも生成され、インタラクションが発生するとバックグラウンドでエピソードが分析されます。リフレクションは複数のエピソードにまたがって統合され、成功した戦略とパターン、潜在的な改善点、一般的な障害モード、複数のインタラクションにまたがる教訓を特定するより広範なインサイトを抽出します。

リフレクションの例には、次のようなものがあります。

  • どのツールの組み合わせが、特定のタスクタイプの成功につながるかを常に特定します。

  • 失敗した試行のパターンとそれらを解決したアプローチを認識する。

  • 同様のシナリオで複数の成功したエピソードからベストプラクティスを抽出します。

次の図は、エピソードメモリ戦略をスキーマ化したものです。

エピソードメモリ戦略のスキーマ。

保存されたエピソードを参照することで、エージェントはセマンティック検索とリフレクションのレビューを通じて関連する過去の経験を取得し、失敗したアプローチの繰り返しを回避し、成功した戦略を新しいコンテキストに適応させることができます。この戦略は、パターンの特定、情報の継続的な更新、インタラクション間の一貫性の維持、意思決定に静的な知識ではなくコンテキストと推論を必要とするエージェントに役立ちます。

名前空間

エピソード戦略を使用してメモリを作成するときは、エピソードとリフレクションを保存する名前空間を定義します。

注記

エピソードの保存先となる名前空間にかかわらず、エピソードは常に 1 つのセッションから作成されます。

エピソードは、通常、次のいずれかの名前空間に保存されます。

  • /strategy/{memoryStrategyId}/ – エピソードを戦略レベルで保存します。異なるアクターを持つエピソード、または異なるセッションからのエピソードは、同じ戦略に属するが、同じ名前空間に保存されます。

  • /strategy/{memoryStrategyId}/actor/{actorId}/ – すべてのエピソードをアクターレベルで保存します。異なるセッションから送信され、同じアクターに属するエピソードは、同じ名前空間に保存されます。

  • /strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/ – すべてのエピソードをセッションレベルで保存します。同じセッションに属するエピソードは、同じ名前空間に保存されます。

リフレクションはエピソードと同じ名前空間パターンと一致する必要がありますが、リフレクションのネストを減らすことができます。たとえば、エピソード名前空間が /strategy/{memoryStrategyId}/actor/{actorId}/ の場合、リフレクションに次の名前空間を使用できます。

  • /strategy/{memoryStrategyId}/actor/{actorId}/ – インサイトは、アクターのすべてのエピソードで抽出されます。

  • /strategy/{memoryStrategyId}/ – インサイトは、戦略のすべてのエピソードとすべてのアクターにわたって抽出されます。

重要

リフレクションは同じメモリリソース内の複数のアクターにまたがる可能性があるため、リフレクションを取得するときは、クロスアクター分析のプライバシーへの影響を考慮してください。メモリと組み合わせてガードレールを使用すること、またはこれが懸念される場合はアクターレベルでリフレクションすることを検討してください。

エージェントのパフォーマンスを向上させるためにエピソードを最適に取得する方法

エピソードメモリを利用する方法は複数あります。

  • エージェントコード内

    • 新しいタスクを開始するときは、最も類似したエピソードとリフレクションを尋ねるクエリを実行するようにエージェントを設定します。また、いくつかのロジックに基づいて、関連するエピソードとリフレクションをクエリします。

    • CreateEvent を使用して短期記憶を作成する場合、TOOL結果を含めると最適な結果が得られます。

    • 同様の成功したエピソードの場合、エピソード内のターンを線形化し、これをエージェントにのみフィードして、主なステップに焦点を当てます。

  • 手動

    • リフレクションや失敗したエピソードを確認し、エージェントコードの更新でいくつかの問題を解決できるかどうかを検討します。

取得を実行する場合、メモリレコードはエピソードの「目的」とリフレクションの「ユースケース」に基づいてインデックス付けされることに注意してください。

他のメモリ戦略では、メモリレコードはインタラクションを通じて定期的に生成されます。これとは対照的に、エピソードメモリレコードは、AgentCore Memory が完了したエピソードを検出した後にのみ生成されます。エピソードが完了しない場合、システムが会話が続行されているかどうかを確認するのを待機するため、生成に時間がかかります。