セキュリティーに関する考慮事項

スコープ: このドキュメントでは、Oracle AI Agent Memory Python SDKに関連するセキュリティ上の考慮事項について説明します。これは、SDKのアクティブ・メモリー機能またはストア・レイヤーのいずれかを使用するアプリケーションにのみ適用されます。

重要である理由: Oracle AI Agent Memoryは、スレッド・コンテンツおよびメモリー・レコードをOracle Databaseに永続化し、LLMにバックアップされた機能が有効になっている場合は、サマリー、メモリー抽出または埋込み用に構成済のモデル・エンドポイントにコンテンツを送信します。したがって、セキュアなデプロイメントは、アプリケーション・データの慎重な処理、取得範囲、データベース・アクセス、外部モデル・エンドポイントおよび保存ポリシーに依存します。

LLMでバックアップされたメモリー処理に関する考慮事項

Oracle AI Agent Memoryは、スレッド要約や自動メモリー抽出などのアクティブメモリー機能をサポートしています。これらの機能を有効にすると、SDKは、構成済のLLMまたは埋込みエンドポイントに、最近のメッセージ、スレッド・サマリー、取得済メモリーまたは検索テキストを送信できます。

重要:構成されたモデル・エンドポイントおよびデプロイメント・ポリシーに適したコンテンツのみをOracle AI Agent Memoryに送信します。シークレット、資格証明または不要な機密データが含まれるように見えるデータに対してアクティブ・メモリーが有効になっている場合は、メッセージがメモリー・パイプラインに入る前にそのコンテンツを最小化またはリダクションします。抽出された記憶、要約、コンテキスト・カードおよびその他のモデル派生テキストを信頼できない出力として処理します。この出力は、統合アプリケーションによって安全にレビューおよび処理する必要があります。

警告:モデル派生テキストが永続メモリー状態になる可能性があります。自動抽出、要約またはコンテキスト・カード機能を有効にすると、アプリケーションがその特定の中間値をレビューする前に、SDKによってサマリー、抽出されたメモリーまたは取得されたレコードが、メモリー抽出、要約、コンテキスト・カードまたはエージェント・プロンプトなどの後のプロンプトに挿入されます。これを通常の信頼できないLLMデータ・フローとして扱います。アプリケーションが消費する出力を確認して検証し、メモリー由来のコンテンツが特権アクションまたはバイパス・ポリシーを認可しないようにします。

アクティブ・メモリー機能を使用する場合は、次の推奨事項に従います。

永続性およびデータの最小化に関する考慮事項

Oracle AI Agent Memoryは、DBバック・ストアが使用されたときに、メッセージ、メモリー、メタデータおよび埋込みをOracle Databaseに永続化するように設計されています。これにより、恒久的な取得およびクロスセッション・メモリーが可能になりますが、保持に適したデータをアプリケーションが計画する必要があることも意味します。

次のガイダンスは、セキュアなデータ処理プラクティスに従ってデプロイメントを維持するのに役立ちます。

取得スコープおよびアクセス制御に関する考慮事項

Oracle AI Agent Memoryは、コール元提供のuser_idagent_idおよびthread_id値を使用して、取得の範囲を指定します。これは強力なフィルタリング・モデルですが、取得したコンテンツの使用方法または表示方法を決定する際にアプリケーションが依存する唯一の制御ではありません。

デフォルトでは、スレッド・スコープ取得では、user_idagent_idの完全一致とthread_idのより広い一致が使用されるため、関連する結果は、同じユーザー・エージェント・ペアの過去のスレッドにまたがることができます。最上位のOracleAgentMemory.search()およびsearch_async()コールでは、明示的なユーザー・スコープ指定と正確なユーザー一致も必要です。パブリック・クライアントAPIが誤って複数のユーザーを検索しないように、省略されたユーザー・スコープおよびexact_user_match=Falseを拒否します。user_id=Noneの受渡しは、ユーザー完全一致でのみ許可され、スコープなしレコードのみをターゲットとします。

取得を設計する際には、次の演習を使用します。

アプリケーション統合および呼出し側の信頼に関する考慮事項

Oracle AI Agent Memoryは、エンド・ユーザーが直接ではなく、統合アプリケーションまたはその他の信頼できるバックエンド・コードによってコールされることを想定しています。エンド・ユーザー向けのセキュリティ境界ではなく、エンド・ユーザーによる認証または認可を単独で実行しません。パッケージは、コール元を信頼して、各操作に対して正しいuser_idagent_idthread_idおよび取得スコープを提供します。

重要:統合アプリケーションは、Oracle AI Agent Memory APIをコールする前に、エンド・ユーザーの認証、アクセスの認可、および正しいuser_idとスコープの導出を担当します。コール元が提供するuser_idは、アイデンティティの証明ではなく、範囲指定値です。

SDKをエージェント・アプリケーションに統合する場合は、次の演習を使用します。

ロギングおよび診断に関する考慮事項

Oracle AI Agent Memoryは、標準のPythonロギングを使用し、統合アプリケーションのアプリケーション・ログ・ハンドラまたはログ・レベルを構成しません。アプリケーションは、oracleagentmemoryロガーを有効にし、既存のロギング構成を介してSDKログをルーティングできます。

SDKログを使用する場合は、次の演習を使用します。

データベース・アクセス、スキーマ管理およびシークレットに関する考慮事項

Oracle AI Agent Memoryは、コール元提供のOracle Database接続またはプールを使用します。パッケージは、データベース資格証明自体を作成または管理しません。また、コール元にかわってデータベース・ネットワーク暗号化を作成、ネゴシエートまたはアップグレードしません。

重要:本番コードは、TLS対応のOracle Database接続またはプールをOracle AI Agent Memoryに渡す必要があります。SDKは、コール元提供の接続またはプールをそのまま使用し、プレーン・テキストDSNをアップグレードしません。信頼できないネットワーク、共有ネットワークまたは外部ネットワーク間でプレーン・テキストのデータベース接続を使用しないでください。python-oracledbを使用する場合は、公式のOracle Databaseへのネットワーク・トラフィックのセキュアな暗号化の項に従い、接続またはプールの作成の一環としてTLSまたは別の承認済暗号化トランスポートを構成します。

重要: APIキー、パスワードまたはその他のシークレットをアプリケーション・コード、チェックイン構成またはエクスポートされたアーティファクトに直接埋め込まないでください。セキュア・インジェクション・メカニズムを常に使用し、資格証明アクセスの最小権限の原則に従います。

次のデプロイメント・プラクティスをお薦めします。

ネットワーク通信および外部エンドポイントに関する考慮事項

Oracle AI Agent Memoryは、デプロイメントがリモートLLMまたは埋込みプロバイダを構成するときに、外部サービスと通信できます。SDKは、構成されたクライアント・パスを介してプロンプトおよびリクエスト・パラメータを転送しますが、周囲のアプリケーションおよびデプロイメントは引き続きこれらの接続を保護します。

次をお薦めします:

リソース疲労ベクトルに関する考慮事項

メモリー・ワークフローは、データベースの使用率を高め、トラフィックを埋め込み、LLMトークンを経時的に消費できます。これは、悪意のある過剰使用と、サイズの超過メッセージや過剰な検索パターンなどの無実の実装ミスの両方に当てはまります。

本番の強化の一環として、次のコントロールを使用します。