エージェント・メモリー
このページでは、Oracle AI Agentの具体的なメモリー実装について説明します。
Oracle Agentメモリー
ノート: OracleAgentMemory.delete_thread()は、スレッド・スコープのカスケード・クリーンアップでサポートされるパスです。スレッドは、関連するメッセージ、永続メモリーおよび管理対象取得データとともに削除されます。これは、RAWメッセージ行のみを削除するOracleThread.delete_message()よりも大きくなります。スレッドを削除する前に、そのスレッドについてこのクライアントにすでに認識されている、以前に受け入れられたバックグラウンド抽出を待機します。削除の進行中は、同じスレッドに対するすべての同時操作をシリアライズしません。
クラス oracleagentmemory.core.OracleAgentMemory
ベース: IAgentMemory
Oracle DBまたはコール元提供のストアによってバックアップされるエージェント・メモリー・クライアント。
メモリー・クライアントを作成します。
- パラメータ:
- store
OracleMemoryStore– オプションの事前構成済みストアインスタンス。指定した場合、クライアントは独自のストアをインスタンス化するのではなく、このストアを直接使用します。これは、呼出し側がOracleAgentMemoryによって公開されるコンストラクタ・オプション以外のストア構成を必要とする場合に便利です。 - connection
object– オプションの Oracle DB接続/プール。指定すると、DBストアが使用されます。RAW接続を渡すと、このクライアント・インスタンスに対してシングルセッション・モードが有効になるため、コンカレント要求ではかわりに接続プールを使用する必要があります。省略した場合、呼出し側は明示的なstoreを渡す必要があります。 - embedder
IEmbedder | str–Embedder実装インスタンスまたはLiteLLM埋込みモデル識別子。省略すると、エンベダーがアタッチされません。ベクトルのみのDB検索では、下位レベルのストアAPIを介して事前計算されたベクトルが必要になりますが、キーワードDB検索は問合せテキストから直接実行できます。ハイブリッドDB検索ではOracleDBEmbedderインスタンスが必要であるため、管理対象ハイブリッド索引とメイン・エンベダで同じデータベース内モデルが使用されます。 - LLM
ILlm– メモリー抽出またはコンテキスト要約、あるいはその両方のためにスレッドによって使用されるオプションのLLMアダプタ。デフォルトでは、このクライアントから作成またはロードされたスレッドにはLLMが必要であるため、最新のメッセージを永続メモリー用にマイニングできます。ここでllmを渡すか、後でcreate_threadに指定するか、memory_extraction_config=MemoryExtractionConfig(extract_memories=False)による自動抽出を無効にします。 - memory_extraction_config
MemoryExtractionConfig– オプションのクライアントレベルのメモリー抽出構成。これを使用して、抽出モード、サマリー動作、抽出制限などの自動メモリー抽出設定を制御します。省略されたフィールドには、SDKのデフォルトが使用されます。 - schema_policy
SchemaPolicy | str–connectionからDBストアを構築する場合にのみ使用されるDBスキーマ設定ポリシー。デフォルトはSchemaPolicy.REQUIRE_EXISTINGです。SchemaPolicy.CREATE_IF_NECESSARYは、既存のスキーマで最初にキーワード検索またはハイブリッド検索を有効にする場合、またはサポートされている古いリリース済の管理対象スキーマを開く場合に使用します。これにより、SDKは非破壊スキーマ・アップグレードを適用し、必要なテキスト検索オブジェクトを追加できます。現在のリリース・シェイプをすでに要求している開発または部分的に更新されたスキーマは、かわりに再作成する必要があります。 - memory_store_id
str–connectionからDBストアを構築する場合にのみ使用される管理対象DBメモリー・ストアの安定したID。同じIDを再利用して、同じ管理対象ストアを再オープンします。IDはアンダースコアを使用して管理対象DBオブジェクト名に結合されるため、先頭は文字で、使用できるのは文字、数字およびアンダースコアのみで、最大16文字である必要があります。これまたはtable_name_prefixのいずれかを渡します。両方は渡しません。省略した場合、table_name_prefixも省略すると、DBストアはtable_name_prefixまたは接頭辞なしのデフォルトを使用します。 -
table_name_prefix
str–オプションのDB表/索引接頭辞は、
connectionからDBストアを構築する場合にのみ使用されます。これまたはmemory_store_idのいずれかを渡します。両方は渡しません。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_store_idを使用してください。 - search_strategy
SearchStrategy–connectionからDBストアを構築するときにDB検索バックエンドを選択するSearchStrategy値。ベクトルのみの取得にはSearchStrategy.VECTOR(デフォルト)、格納された検索テキストに対して管理されたOracleハイブリッド・ベクトル索引を問い合せるにはSearchStrategy.HYBRID、ベクトル・フュージョンのない格納された検索テキストに対してキーワード/テキスト一致でランク付けするにはSearchStrategy.KEYWORDを使用します。KEYWORDには埋込みは必要ありません。HYBRIDでは、embedderがOracleDBEmbedderである必要があります。互換性のない戦略を既存のスキーマとともに使用すると、そのスキーマに戦略に必要なストアド・サーチ状態が含まれない可能性があるため、クライアントの起動に失敗します。 - search_index_sync
SearchIndexSyncMode–SearchStrategy.HYBRIDおよびSearchStrategy.KEYWORDの管理対象検索索引リフレッシュ動作を選択するSearchIndexSyncMode値。SearchIndexSyncMode.ON_COMMITがデフォルトであり、書込みトランザクションがコミットされるとすぐにレコードを検索可能にします。SearchIndexSyncMode.MANUALは、明示的なデータベース側の同期操作へのリフレッシュを残します。SearchIndexSyncMode.AUTOを使用すると、Oracleは管理対象ハイブリッド索引を非同期的にリフレッシュでき、SearchStrategy.HYBRIDでのみサポートされます。キーワード検索ではAUTOが拒否されます。 -
extract_memories
bool–Trueの場合、このクライアントによって作成またはロードされるスレッドにはLLMが必要であり、自動メモリー抽出は有効なままです。自動メモリー抽出を無効にし、これらのスレッドをLLMなしで操作できるようにするには、Falseに設定します。デフォルトではTrueであるため、抽出LLMの欠落は高速で失敗します。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_custom_instructions
str–このクライアントによって作成またはロードされたスレッドの自動メモリー抽出システムプロンプトに追加されるオプションのカスタム命令。
create_thread、get_threadまたはupdate_threadに渡されるスレッド単位の値が優先されます。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 - memory_retention_config
MemoryRetentionConfig–connectionからDBストアを構築する場合にのみ使用されるオプションのメモリー保持構成。MemoryRetentionConfig.default_ttl_daysは、書込みコールでttl_daysが省略された新しいメッセージおよびメモリーに適用されます。MemoryRetentionConfig.max_ttl_daysは、構成済の最大値を上回る明示的なレコードごとの期間を警告付きでクランプし、設定されている場合、ttl_days=Noneは失効しないレコードを作成するかわりにその最大値を使用します。SchemaPolicy.CREATE_IF_NECESSARYを使用すると、明示的な構成では、既存の管理対象スキーマに格納されているメタデータがリフレッシュされますが、既存の有効期限は更新されず、省略すると既存の設定が維持されます。明示的な構成がNOT_SET_MARKERにdefault_ttl_daysまたはmax_ttl_daysを残す場合、SDKはスキーマ・メタデータを比較または格納する前に、その属性をデフォルト値(None)に解決します。この構成は、レコードに格納される予想情報、アプリケーションが保持する理由、およびアプリケーションまたは規制保持のコミットメントに基づいて選択します。
- store
警告: SchemaPolicy.CREATE_IF_NECESSARYは、初期化が成功する前に管理対象スキーマDDLおよびベストエフォート・データ・リライトを適用する可能性があるため、通常のクライアント起動よりもコストがかかることがあります。古い管理対象スキーマの最初のオープンを移行またはメンテナンス操作として計画します(そのスキーマに多数の行が含まれている可能性がある場合)。
スキーマ設定で管理対象の期限切れレコード・パージ・ジョブを作成する必要があるが、データベース・ユーザーにスケジューラ・ジョブ権限がない場合、初期化は警告して続行します。期限切れのメッセージおよびメモリーは読取りおよび検索から非表示のままですが、ジョブがCREATE JOBまたは同等のスケジューラ権限を持つユーザーによって作成されるまでは物理的にパージされません。
SchemaPolicy.CREATE_IF_NECESSARYが最初に既存のスキーマに対して管理対象ハイブリッド索引を作成する場合、Oracleは格納された検索テキストをスキャンし、構成済のデータベース内モデルから管理対象ハイブリッド索引状態を構築します。クライアントの起動は、そのDDLが終了するまで待機するため、大規模なスキーマの移行またはメンテナンス操作として最初のハイブリッド・アップグレードを計画します。SearchIndexSyncModeは、索引が存在した後の継続的なメンテナンスを制御します。最初の索引ビルドを非同期にすることはありません。
- Raises: ValueError– 競合するストア構成(
storeとconnectionの両方を渡す、DB接続のないDB固有のオプション、storeとconnectionの両方を省略するなど)が指定されている場合。 - パラメータ:
- store
OracleMemoryStore - 接続
object - embedder
IEmbedder | str - llm
ILlm - memory_extraction_config
MemoryExtractionConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - table_name_prefix
str - search_strategy
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - memory_extraction_custom_instructions
str - memory_retention_config
MemoryRetentionConfig
- store
例
from oracleagentmemory.core import (
MemoryExtractionConfig,
SearchIndexSyncMode,
OracleAgentMemory,
SchemaPolicy,
SearchStrategy,
)
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
read_only_client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
Oracleハイブリッド索引検索を利用するには、DB内埋込みモデルを使用します。
from oracleagentmemory.core.embedders import OracleDBEmbedder
db_embedder = OracleDBEmbedder(
connection=db_pool,
model="DOC_MODEL",
embedding_dimension=768,
)
hybrid_client = OracleAgentMemory(
connection=db_pool,
embedder=db_embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
search_strategy=SearchStrategy.HYBRID,
search_index_sync=SearchIndexSyncMode.ON_COMMIT,
)
メソッド add_agent
ストアにエージェント・プロファイル・レコードを追加します。
- パラメータ:
- agent_id
str– エージェント識別子。 - information
str– エージェントに関するフリーフォーム情報。 - metadata
dict[str, Any] | None– エージェント・プロファイル行に格納されているオプションのメタデータ・マッピング。
- agent_id
- 戻り値:ストアド・エージェント・プロファイルの識別子。
- 戻り型: str
ノート:
エージェント・プロファイル・レコードは、クライアント・レベルのストアに格納され、意図的にスコープ設定されていません。返されるレコード識別子は、アプリケーションがagent_idとして使用するパブリック識別子と同じです。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
'a1'
メソッド add_memory
指定されたユーザー、エージェント、およびスレッドに起因するメモリーシステムをメモリーシステムに追加します。
- パラメータ:
- content
str– 永続化するメモリー・コンテンツ。 - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– 格納するメモリーカテゴリ。サポートされている値は、"memory"、"fact"、"guideline"および"preference"です。省略すると、コンテンツは一般的な"memory"として格納されます。 - user_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。 - agent_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。 - thread_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。 - memory_id
str– このメモリー行の呼び出し元提供の安定した識別子(オプション)。 - metadata
dict[str, Any] | None– 格納されているメモリーで保持するオプションのメタデータ。 - timestamp
str | None– このメモリー用に保存するオプションのタイムスタンプ。これは、メモリーが作成された時間を表します。省略またはNoneの場合、ストアは現在の時間を使用します。ttl_anchorがTimeToLiveAnchor.TIMESTAMPの場合、タイムゾーンなしのISO-8601タイムスタンプはUTCとして扱われます。 - ttl_days
int | None– オプションの稼働時間(日数)。スキーマ・デフォルトの存続時間を使用するには、この引数を省略します。Noneを渡して、保存構成の設定時にMemoryRetentionConfig.max_ttl_daysを使用するか、有効期限が切れないメモリーを格納します。MemoryRetentionConfig.max_ttl_daysを超える値は、警告付きでその最大値に固定されます。 - ttl_anchor
TimeToLiveAnchor– オプションの稼働時間アンカー。データベース作成時間にはTimeToLiveAnchor.CREATED_ATを、メモリー・タイムスタンプにはTimeToLiveAnchor.TIMESTAMPを使用します。タイムゾーンのないISO-8601タイムスタンプはUTCとして扱われます。 - **store_kwargs (任意)– バッキングストアに転送されるストア固有の書き込みオプション。
- content
- 戻り値:挿入されたメモリー・レコードの識別子。
- 戻り型: str
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
memory_id = client.add_memory("User likes pizza", memory_id="mem-1")
memory_id
'mem-1'
method add_memory_async (非同期)
メモリーレコードをクライアントに非同期に追加します。
- パラメータ:
- content
str– メモリーとして格納するテキスト・コンテンツ。 - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– 格納するメモリーカテゴリ。サポートされている値は、"memory"、"fact"、"guideline"および"preference"です。省略すると、コンテンツは一般的な"memory"として格納されます。 - user_id
str– メモリーに関連付けるオプションのユーザー識別子。 - agent_id
str– メモリーに関連付けるオプションのエージェント識別子。 - thread_id
str– メモリーに関連付けるオプションのスレッド識別子。 - memory_id
str– オプションの呼び出し元提供の安定した識別子。省略すると、ストアによって生成されます。 - metadata
dict[str, Any] | None– メモリー行で永続化するオプションのメタデータ。 - timestamp
str | None– このメモリー用に保存するオプションのタイムスタンプ。これは、メモリーが作成された時間を表します。省略またはNoneの場合、ストアは現在の時間を使用します。 - ttl_days
int | None– オプションの稼働時間(日数)。スキーマ・デフォルトの存続時間を使用するには、この引数を省略します。失効しないメモリーを格納するには、Noneを渡します。 - ttl_anchor
TimeToLiveAnchor– オプションの稼働時間アンカー。データベース作成時間にはTimeToLiveAnchor.CREATED_ATを、メモリー・タイムスタンプにはTimeToLiveAnchor.TIMESTAMPを使用します。 - **store_kwargs (Any)– バッキングストアに転送される実装固有の書き込みオプション。
- content
- 戻り値:挿入されたメモリー・レコードの識別子。
- 戻り型: str
メソッド add_user
ストアにユーザー・プロファイル・レコードを追加します。
- パラメータ:
- user_id
str– ユーザー識別子。 - information
str– ユーザーに関する自由形式の情報。 - metadata
dict[str, Any] | None– ユーザープロファイル行に格納されているオプションのメタデータマッピング。
- user_id
- 戻り値:格納されたユーザー・プロファイルの識別子。
- 戻り型: str
ノート:
ユーザー・プロファイル・レコードは、クライアント・レベルのストアに格納され、意図的にスコープ設定されません。返されるレコード識別子は、アプリケーションがuser_idとして使用するパブリック識別子と同じです。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_user(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
)
'u1'
メソッド close
エージェント・メモリー・コンポーネントをクローズします。
クローズは、新しいバックグラウンド抽出作業の受入れを停止し、構成されたタイムアウトまで保留中のバックグラウンド・メモリー抽出が終了するまで待機します。そのタイムアウトが期限切れになると、close()は、バックグラウンド抽出作業がまだ完了していない場合でも戻ります。このメソッドはべき等です。
- パラメータ: timeout
float | None– 受け入れられたバックグラウンド抽出作業が終了するまで待機する、オプションの最大秒数。デフォルトは300です。Noneを渡して無期限に待機します。 - 戻り型:なし
例
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.close()
method close_async (非同期)
エージェント・メモリー・コンポーネントを非同期でクローズします。
このメソッドは、close()と同じ停止動作に従います。タイムアウトが期限切れになると、バックグラウンド抽出作業がまだ実行されている間に戻ってきます。
- パラメータ: timeout
float | None– 受け入れられたバックグラウンド抽出作業が終了するまで待機する、オプションの最大秒数。デフォルトは300です。Noneを渡して無期限に待機します。 - 戻り型:なし
例
await client.close_async()
メソッド create_thread
スレッドを作成して登録する。
- パラメータ:
- thread_id
str– スレッド識別子。省略すると、新しいものが生成されます。 - user_id
str– このスレッドレコードに添付されたユーザー識別子。省略すると、新しいものが生成されます。 - agent_id
str– このスレッドレコードに添付されたエージェント識別子。省略すると、新しいものが生成されます。 - metadata
dict[str, Any] | None– 会話スレッドで保持されるオプションのJSONのようなメタデータ。 - LLM
ILlm– このスレッドのオプションのLLMオーバーライド。省略すると、構築時に構成されたクライアントレベルのLLMが使用されます。デフォルトでは、自動メモリー抽出を実行できるように、クライアントまたはスレッドのいずれかがLLMを提供する必要があります。この要件からオプトアウトするには、memory_extraction_config=MemoryExtractionConfig(extract_memories=False)をここまたはクライアントに設定します。 - max_message_token_length
int– メモリーの抽出およびコンテキストサマリーの更新中に、切り捨てまたはサマリーを実行するまでのプロンプト時間の最大メッセージサイズ。格納されたメッセージ・コンテンツは変更されません。省略すると、デフォルトで15_000トークンになります。 - message_shortening_input_token_limit
int– オーバーサイズのプロンプトタイムメッセージコピーを短縮するときにLLMに送信されたメッセージ抜粋の最大サイズ(トークン単位)。省略すると、デフォルトで30_000トークンになります。 - memory_extraction_config
MemoryExtractionConfig– オプションのスレッドごとのメモリー抽出構成。省略されたフィールドは、エージェント・メモリー・コンポーネントから継承します。解決された構成はスレッドとともに格納されるため、後でロードすると作成時の動作が維持されます。 - context_card_token_limit
int– コンテキスト・カードに含まれるサマリーおよびトピック・リストの作成に使用されるLLMプロンプトの最大入力トークン予算。省略した場合、デフォルトは100_000です。 - context_card_type_search_concurrency
int–min_relevant_results_by_typeを使用してコンテキスト・カードを構築するときに同時に実行するメモリーに似たレコード検索の最大数。省略した場合、デフォルトは5です。 -
extract_memories
bool–自動メモリー抽出用のオプションのスレッドごとのオーバーライド。
Trueの場合、自動抽出を実行できるように、このスレッドにはLLMが必要です。このスレッドの自動抽出を無効にし、LLMのない操作を許可するには、Falseに設定します。省略すると、クライアント・レベルのextract_memories設定が使用されます。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_window
int–メモリー抽出中に含める最近のメッセージの数。
-1に設定すると、新しく追加されたメッセージの全バッチを使用して、add_messagesコールごとに1つの抽出が実行されます。省略した場合、デフォルトは-1です。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
context_summary_update_frequency
int–コンテキスト・サマリーのリフレッシュの頻度。
-1に設定すると、新しく追加されたメッセージの全バッチを使用して、add_messagesコールごとに1つのサマリー更新が実行されます。省略した場合、デフォルトは-1です。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_frequency
int–メモリー抽出更新の頻度。
-1に設定すると、新しく追加されたメッセージの全バッチを使用して、add_messagesコールごとに1つの抽出が実行されます。省略した場合、デフォルトは-1です。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_token_limit
int–メモリー抽出およびサマリー更新の実行に使用されるLLMプロンプトの最大サイズ(トークン単位)。省略した場合、デフォルトは
100_000です。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_custom_instructions
str–このスレッドのメモリー抽出システムプロンプトに追加されるオプションのカスタム命令。指定した場合、解決された値はスレッド・ランタイム構成で維持されます。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–ソース・メッセージから自動的に抽出されたメモリーにコピーされるメタデータのスレッドごとのオーバーライド(オプション)。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
enable_context_summary
bool–このスレッドの実行中のコンテキストサマリーを保持するかどうか。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 - **kwargs (Any)– 追加の実装固有のスレッドオプション。
- thread_id
- 戻り値:
OracleThreadインスタンス。 - 戻りタイプ: OracleThread
- Raises: ValueError– 自動メモリー抽出に使用できるLLMがなく、スレッドおよびクライアントが
memory_extraction_config=MemoryExtractionConfig(extract_memories=False)で構成されていない場合。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
thread = client.create_thread(thread_id="c1", user_id="u1")
thread.thread_id
'c1'
メソッド delete_agent
識別子によるエージェント・プロファイル・レコードの削除。
- パラメータ:
- agent_id
str– プロファイルを削除するエージェント識別子。 - cascade
bool–True(デフォルト)の場合は、このエージェントにスコープ指定されたレコードも削除します。これには、所有スレッド自体の削除、それらのスレッドで削除されたメッセージおよびメモリーに似たレコードの削除、およびメッセージ、メモリー、ガイドライン、ファクト、プリファレンスなどのエージェント・スコープの残りの直接レコードが含まれます。このスコープ指定クリーンアップは、一致するエージェント・プロファイル行がすでにない場合でも実行されます。プロファイル・レコードのみを削除するには、Falseに設定します。
- agent_id
- 戻り値:削除されたエージェント・プロファイル行の数(
0または1)。これは、カスケード・クリーンアップ中にスコープ指定された行が削除された場合でも0になることがあります。 - 戻り型: int
- Raises: TimeoutError– 既知のスレッドのバックグラウンド抽出を以前に受け入れた場合、内部削除待機がタイムアウトする前に終了しない場合に呼び出されます。
ノート:
カスケード削除は、バッキング・ストア内で計画および実行されるため、1つのストア操作でプロファイルの削除およびすべてのスコープ指定子削除が発生します。カスケード削除が実行される前に、このメソッドは、このエージェント・メモリー・コンポーネントを介してその時点で認識されている所有スレッドに対して、以前のバックグラウンド抽出がすでに受け入れられているのを待機します。待機の開始後、または別のエージェント・メモリー・コンポーネントまたはプロセスによって開始された作業が受け入れられるまで待機しません。削除の進行中にアクターを有効範囲にした同時使用はサポートされていません。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent("a-delete", "Support assistant")
'a-delete'
client.delete_agent("a-delete")
1
メソッド delete_memory
メモリーに似たレコード(メモリー、ファクト、プリファレンス、ガイドラインなど)を識別子で削除します。
- パラメータ: memory_id
str– メモリー識別子。識別子は、格納されているmemory、guideline、factまたはpreferenceレコードを参照できます。 - 戻り値:削除されたメモリーに似た行の数(
0または1)。 - 戻り型: int
例
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
memory_id = client.add_memory("Temporary memory", memory_id="mem-delete")
client.delete_memory(memory_id)
1
method delete_memory_async (非同期)
メモリーに似たレコード(メモリー、ファクト、プリファレンス、ガイドラインなど)を識別子で非同期に削除します。
- パラメータ: memory_id
str– 削除するメモリーに似たレコードの識別子。 - 戻り値:削除されたメモリーに似たレコードの数。
- 戻り型: int
メソッド delete_thread
スレッド識別子に関連付けられているすべてのレコードを削除します。
- パラメータ: thread_id
str– 削除するスレッド識別子。 - 戻り値:削除された会話スレッドの数(
0または1)。 - 戻り型: int
- Raises: TimeoutError– 内部削除待機がタイムアウトする前に、このスレッドのバックグラウンド抽出が以前に受け入れられた場合に呼び出されます。
ノート:
この操作は、スレッドの保存期間を完全に削除する必要がある場合に使用します。バッキング・ストアは、スレッド・スコープの関連付けられたメッセージ、永続メモリーおよび管理対象取得データとともにスレッドを削除します。これは、RAWメッセージ・レコードのみを削除し、そのメッセージから作成された派生メモリーにカスケードしないOracleThread.delete_message()とは異なります。スレッドを削除する前に、このメソッドは、このエージェント・メモリー・コンポーネントを介してそのスレッドに対してすでに受け入れられている以前のバックグラウンド抽出を待機します。待機の開始後、または別のエージェント・メモリー・コンポーネントまたはプロセスによって開始された作業の後、バックグラウンド作業が受け入れられるまで待機しません。削除の進行中に同じスレッドを同時に使用することはサポートされていません。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
thread = client.create_thread(thread_id="c-delete")
client.delete_thread(thread.thread_id)
1
メソッド delete_user
識別子によるユーザー・プロファイル・レコードの削除。
- パラメータ:
- user_id
str– プロファイルを削除するユーザー識別子。 - cascade
bool–True(デフォルト)の場合は、このユーザーにスコープ指定されたレコードも削除します。これには、所有されているスレッド自体の削除、それらのスレッドで削除されたメッセージやメモリーに似たレコードの削除、およびメッセージ、メモリー、ガイドライン、ファクト、プリファレンスなどの残りの直接ユーザー・スコープのレコードが含まれます。このスコープ指定クリーンアップは、一致するユーザー・プロファイル行がすでにない場合でも実行されます。プロファイル・レコードのみを削除するには、Falseに設定します。
- user_id
- 戻り値:削除されたユーザー・プロファイル行の数(
0または1)。これは、カスケード・クリーンアップ中にスコープ指定された行が削除された場合でも0になることがあります。 - 戻り型: int
- Raises: TimeoutError– 既知のスレッドのバックグラウンド抽出を以前に受け入れた場合、内部削除待機がタイムアウトする前に終了しない場合に呼び出されます。
ノート:
カスケード削除は、バッキング・ストア内で計画および実行されるため、1つのストア操作でプロファイルの削除およびすべてのスコープ指定子削除が発生します。カスケード削除が実行される前に、このメソッドは、このエージェント・メモリー・コンポーネントを介してその時点で認識されている所有スレッドに対して、以前のバックグラウンド抽出がすでに受け入れられているのを待機します。待機の開始後、または別のエージェント・メモリー・コンポーネントまたはプロセスによって開始された作業が受け入れられるまで待機しません。削除の進行中にアクターを有効範囲にした同時使用はサポートされていません。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_user("u-delete", "Prefers concise answers.")
'u-delete'
client.delete_user("u-delete")
1
メソッド get_thread
以前に作成したスレッドを取得します。
- パラメータ:
- thread_id
str– スレッドの作成時に使用される識別子。 - LLM
ILlm– 再オープンされたスレッドのオプションのLLMオーバーライド。省略すると、構築時に構成されたクライアントレベルのLLMが使用されます。 - max_message_token_length
int– メモリー抽出時およびコンテキストサマリー更新時の切り捨てまたはサマリーの前に、プロンプト時の最大メッセージサイズをオプションでオーバーライドします。格納されたメッセージ・コンテンツは変更されません。 - message_shortening_input_token_limit
int– オーバーサイズのプロンプトタイムメッセージコピーを短縮するときにLLMに送信されたメッセージ抜粋の最大サイズ(トークン単位)をオーバーライドします(オプション)。 - memory_extraction_config
MemoryExtractionConfig– 返されたOracleThreadインスタンスに対するオプションのグループ化された抽出構成。省略されたフィールドは、ストアド・スレッド構成およびエージェント・メモリー・コンポーネントから継承されます。オーバーライドは、戻されたOracleThreadインスタンスにのみ適用され、格納された会話スレッド構成には書き込まれません。 - context_card_token_limit
int– 返されるOracleThreadインスタンスに対するオプションのオーバーライド。コンテキスト・カードに含まれるサマリーおよびトピック・リストの作成に使用されるLLMプロンプトの入力トークン予算を設定します。 - context_card_type_search_concurrency
int– 返されるOracleThreadインスタンスに対するオプションのオーバーライド。min_relevant_results_by_typeを使用してコンテキスト・カードを作成するときに同時に実行されるメモリーに似たレコード検索の数を設定します。 -
extract_memories
bool–再オープンされたスレッドでの自動メモリー抽出のオプションのオーバーライド。省略すると、クライアント・レベルの
extract_memories設定が使用されます。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_window
int–メモリーの抽出時に使用された最近のメッセージ数に対するオプションのオーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
context_summary_update_frequency
int–コンテキスト・サマリーのリフレッシュの頻度に対するオプションの上書き。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_frequency
int–メモリー抽出更新の頻度に対するオプションのオーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_token_limit
int–メモリー抽出およびサマリー更新の実行に使用されるLLMプロンプトの最大サイズ(トークン単位)に対するオプションのオーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_custom_instructions
str | None–カスタム・メモリー抽出命令のオプションのオーバーライド。
Noneを渡すと、格納された会話スレッド構成を更新せずに、戻されたOracleThreadインスタンスのスレッド・レベルのカスタム命令がクリアされます。クライアント・レベルのデフォルトが構成されている場合も適用されます。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–ソース・メッセージから自動的に抽出されたメモリーにコピーされるメタデータのオプション・オーバーライド。オーバーライドは、戻された
OracleThreadインスタンスにのみ適用されます。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
enable_context_summary
bool–再オープンされたスレッドが実行中のコンテキスト・サマリーを保持するかどうかのオプションのオーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。
- thread_id
- 戻り値:ストア・メタデータから再構築された
OracleThreadインスタンス。 - 戻りタイプ: OracleThread
- 引き上げ:
- KeyError– このクライアントインスタンスに対してスレッドIDが不明な場合。
- ValueError– 自動メモリー抽出に使用できるLLMがなく、クライアントが
memory_extraction_config=MemoryExtractionConfig(extract_memories=False)を使用して構成されていない場合。
ノート:
明示的なコールごとのオーバーライドが優先されます。実行時オーバーライドを省略すると、再オープンされたスレッドは、SDKのデフォルトにフォールバックする前に、使用可能な場合、永続化された実行時構成を使用します。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
created = client.create_thread(thread_id="c1", user_id="u1")
loaded = client.get_thread("c1")
loaded.user_id
'u1'
メソッド search
クエリーに関連するレコードを同期的に検索します。
- パラメータ:
- query
str– 自然言語の問合せ文字列。 - user_id
str | None– ユーザー識別子フィルタ。OracleAgentMemoryクライアント検索では、scopeが指定されていないかぎり、明示的なユーザー・スコープが必要です。そのユーザーのターゲットに具体的なuser_idを渡すか、スコープなしユーザー・レコードのみをターゲットにNoneを渡します。 - agent_id
str | None– オプションのエージェント識別子フィルタ。scopeが指定されている場合は無視されます。 - thread_id
str | None– オプションのスレッド識別子フィルタ。scopeが指定されている場合は無視されます。 - exact_user_match
bool– ユーザーの一致を厳密にするかどうか。OracleAgentMemoryクライアントの検索では、Falseを完全一致させ、拒否する必要があります。scopeが指定されている場合は無視されます。 - exact_agent_match
bool– エージェントの一致を厳密にするかどうか。scopeが指定されている場合は無視されます。 - exact_thread_match
bool– スレッドの照合を厳密にするかどうか。scopeが指定されている場合は無視されます。 - max_results
int– 返す結果の最大数(オプション)。指定する場合は、1以上である必要があります。この引数を省略すると、デフォルト値の10が使用されます。これは上限です。フィルタが制限しすぎている場合、有効期限が切れていない一致レコードが少ない場合、または実装固有の検索動作のために、コールで返される結果がmax_resultsより少ない場合があります。 - record_types
list[str]– 含めるレコード・タイプのオプションのリスト("memory"や"message"など)。 -
metadata_filter
dict[str, Any] | None–スコープおよびレコード・タイプのフィルタリングの後に追加フィルタとして使用されるオプションのメタデータ・フィルタ・マッピング。
metadata_filterのエントリはANDセマンティクスと結合されます。値がフィールド・レベルの演算子ディクショナリでないエントリは、完全一致セマンティクスを使用します。つまり、リクエストされたキーは、格納されたレコード・メタデータに存在する必要があります。ネストされたディクショナリは、ネストされたメタデータ・オブジェクトを再帰的に一致させます。スカラー値とリスト値は完全に一致する必要があります。リストの順序と長さも一致する必要があります。メタデータ・フィルタリングなしで検索するには、この引数を省略するか、Noneを渡します。例として、スカラー・フィールドの場合はmetadata_filter={"source": "profile_import"}、ネストしたフィールドの場合はmetadata_filter={"prefs": {"category": "travel"}}、完全リスト一致の場合はmetadata_filter={"tags": ["survey", "travel"]}があります。条件を結合して、これらすべてを要求します。metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }配列メンバーシップをテストするには、フィールド・レベルの演算子ディクショナリを使用します。
"$array_contains"は、1つの値またはリスト内のすべての値と一致します。"$array_contains_any"は、リスト内の少なくとも1つの値と一致します。"$not"は、演算子ディクショナリまたはRAW完全一致値を含む、同じフィールド内の別のフィールド・レベル式を否定します。否定された式は、欠落しているフィールドを含め、正の式が失敗すると一致します。否定された配列メンバーシップは、非配列フィールドにも一致します。metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - scope
SearchScope– オプションの事前構築済み検索範囲。scopeまたは明示的な識別子と完全一致引数のいずれか(両方ではなく)を指定します。OracleAgentMemoryクライアント検索では、exact_user_match=Trueを含む明示的なuser_idを含めるために解決されたスコープが必要です。スコープなしのユーザー・レコードのみをターゲットにするには、user_id=Noneを使用します。
- query
- 戻り値:検索結果は、関連性の低下順に並べられます。リストに含まれるエントリ数は
max_results未満です。 - 戻りタイプ: list[SearchResult]
- Raises: ValueError–
scopeが明示的な識別子または完全一致引数と組み合されている場合、max_resultsが1より小さい場合、metadata_filterがディクショナリでもNoneでもない場合、または実装が解決されたクライアント検索スコープを拒否する場合。OracleAgentMemoryクライアントは、省略されたユーザー・スコープを拒否し、exact_user_match=Falseを拒否します。
ノート:
明示的なNoneスコープ値は、解決された完全一致ルールに従います。つまり、exact_*_match=Falseはそのディメンションを制約なしのままにし、exact_*_match=Trueはそのディメンションでスコープ指定されていないレコードのみに一致します。
method search_async (非同期)
クエリーに関連するレコードを非同期で検索します。
- パラメータ:
- query
str– 自然言語の問合せ文字列。 - user_id
str | None– ユーザー識別子フィルタ。OracleAgentMemoryクライアント検索では、scopeが指定されていないかぎり、明示的なユーザー・スコープが必要です。そのユーザーのターゲットに具体的なuser_idを渡すか、スコープなしユーザー・レコードのみをターゲットにNoneを渡します。 - agent_id
str | None– オプションのエージェント識別子フィルタ。scopeが指定されている場合は無視されます。 - thread_id
str | None– オプションのスレッド識別子フィルタ。scopeが指定されている場合は無視されます。 - exact_user_match
bool– ユーザーの一致を厳密にするかどうか。OracleAgentMemoryクライアントの検索では、Falseを完全一致させ、拒否する必要があります。scopeが指定されている場合は無視されます。 - exact_agent_match
bool– エージェントの一致を厳密にするかどうか。scopeが指定されている場合は無視されます。 - exact_thread_match
bool– スレッドの照合を厳密にするかどうか。scopeが指定されている場合は無視されます。 - max_results
int– 返す結果の最大数(オプション)。指定する場合は、1以上である必要があります。この引数を省略すると、デフォルト値の10が使用されます。 - record_types
list[str]– 含めるレコード・タイプのオプションのリスト("memory"や"message"など)。 -
metadata_filter
dict[str, Any] | None–スコープおよびレコード・タイプのフィルタリングの後に追加フィルタとして使用されるオプションのメタデータ・フィルタ・マッピング。
metadata_filterのエントリはANDセマンティクスと結合されます。値がフィールド・レベルの演算子ディクショナリでないエントリは、完全一致セマンティクスを使用します。つまり、リクエストされたキーは、格納されたレコード・メタデータに存在する必要があります。ネストされたディクショナリは、ネストされたメタデータ・オブジェクトを再帰的に一致させます。スカラー値とリスト値は完全に一致する必要があります。リストの順序と長さも一致する必要があります。メタデータ・フィルタリングなしで検索するには、この引数を省略するか、Noneを渡します。例として、スカラー・フィールドの場合はmetadata_filter={"source": "profile_import"}、ネストしたフィールドの場合はmetadata_filter={"prefs": {"category": "travel"}}、完全リスト一致の場合はmetadata_filter={"tags": ["survey", "travel"]}があります。条件を結合して、これらすべてを要求します。metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }配列メンバーシップをテストするには、フィールド・レベルの演算子ディクショナリを使用します。
"$array_contains"は、1つの値またはリスト内のすべての値と一致します。"$array_contains_any"は、リスト内の少なくとも1つの値と一致します。"$not"は、演算子ディクショナリまたはRAW完全一致値を含む、同じフィールド内の別のフィールド・レベル式を否定します。否定された式は、欠落しているフィールドを含め、正の式が失敗すると一致します。否定された配列メンバーシップは、非配列フィールドにも一致します。metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - scope
SearchScope– オプションの事前構築済み検索範囲。scopeまたは明示的な識別子と完全一致引数のいずれか(両方ではなく)を指定します。OracleAgentMemoryクライアント検索では、exact_user_match=Trueを含む明示的なuser_idを含めるために解決されたスコープが必要です。スコープなしのユーザー・レコードのみをターゲットにするには、user_id=Noneを使用します。
- query
- 戻り値:検索結果は、関連性の低下順に並べられます。
- 戻りタイプ: list[SearchResult]
- Raises: ValueError–
scopeが明示的な識別子または完全一致引数と組み合されている場合、max_resultsが1より小さい場合、metadata_filterがディクショナリでもNoneでもない場合、または実装が解決されたクライアント検索スコープを拒否する場合。OracleAgentMemoryクライアントは、省略されたユーザー・スコープを拒否し、exact_user_match=Falseを拒否します。
ノート:
明示的なNoneスコープ値は、解決された完全一致ルールに従います。つまり、exact_*_match=Falseはそのディメンションを制約なしのままにし、exact_*_match=Trueはそのディメンションでスコープ指定されていないレコードのみに一致します。
メソッド update_memory
格納されているメモリーに似たレコードを識別子で更新します。
- パラメータ:
- memory_id
str– 更新するメモリーに似たレコードの識別子。 - content
str– オプションの置換コンテンツ。格納されているコンテンツを置き換えるための文字列を指定します。省略すると、格納されたコンテンツは保持されます。Noneを渡すことはサポートされていません。contentを省略して現在の値を保持するか、delete_memory()を使用してレコードを削除します。 - metadata
dict[str, Any] | None– オプションの置換メタデータマッピング。省略すると、格納されたメタデータは保持されます。指定すると、格納されたメタデータ・オブジェクトが置き換えられます。このAPIはメタデータをディープ・マージしません。 - timestamp
str | None– このメモリー用のオプションの新しいタイムスタンプ。これは、メモリーが作成された時間を表します。省略すると、格納されているタイムスタンプが保持されます。Noneを渡して、保存されたタイムスタンプをクリアし、ストアでレコードが作成された時刻を使用します。ttl_anchorがTimeToLiveAnchor.TIMESTAMPの場合、タイムゾーンなしのISO-8601タイムスタンプはUTCとして扱われます。 - ttl_days
int | None– オプションの有効期限のリフレッシュ(日数)。ttl_anchorが指定されていないかぎり、現在の有効期限を変更しない場合は、この引数を省略します。Noneを渡して、保存構成が1つ設定されているときにMemoryRetentionConfig.max_ttl_daysを使用するか、そうでない場合は有効期限をクリアします。MemoryRetentionConfig.max_ttl_daysを超える値は、警告付きでその最大値に固定されます。失効したメモリーはこのクライアントAPIで使用できず、リフレッシュできません。 - ttl_anchor
TimeToLiveAnchor– 有効期限リフレッシュのオプションの存続時間アンカー。メモリー作成時間にはTimeToLiveAnchor.CREATED_AT、同じ更新で指定された置換timestampにはTimeToLiveAnchor.TIMESTAMP、timestampを省略した場合は格納されたイベント・タイムスタンプを使用します。ttl_daysを指定せずにttl_anchorを指定すると、スキーマのデフォルトの存続期間が使用されます。リフレッシュ中にttl_anchorを省略すると、クライアントはTimeToLiveAnchor.CREATED_ATを使用します。タイムゾーンのないISO-8601タイムスタンプはUTCとして扱われます。 - **kwargs (Any)– 予期しないキーワード引数が拒否されます。
- memory_id
- 戻り値:更新されたメモリーに似たレコードの識別子。
- 戻り型: str
ノート:
省略されたフィールドは、格納されたレコードから保持されます。ストアド・スコープは変更されません。メタデータの置換はオブジェクト全体の置換であり、再帰的なJSONマージではありません。
method update_memory_async (非同期)
格納されているメモリーに似たレコードを識別子で非同期に更新します。
- パラメータ:
- memory_id
str– 更新するメモリーに似たレコードの識別子。 - content
str– オプションの置換コンテンツ。格納されているコンテンツを置き換えるための文字列を指定します。省略すると、格納されたコンテンツは保持されます。Noneを渡すことはサポートされていません。contentを省略して現在の値を保持するか、delete_memory()を使用してレコードを削除します。 - metadata
dict[str, Any] | None– オプションの置換メタデータマッピング。省略すると、格納されたメタデータは保持されます。指定すると、格納されたメタデータ・オブジェクトが置き換えられます。このAPIはメタデータをディープ・マージしません。 - timestamp
str | None– このメモリー用のオプションの新しいタイムスタンプ。これは、メモリーが作成された時間を表します。省略すると、格納されているタイムスタンプが保持されます。Noneを渡して、保存されたタイムスタンプをクリアし、ストアでレコードが作成された時刻を使用します。 - ttl_days
int | None– オプションの有効期限のリフレッシュ(日数)。ttl_anchorとともにこの引数を省略すると、現在の有効期限は変更されません。Noneを渡して有効期限をクリアします。 - ttl_anchor
TimeToLiveAnchor– 有効期限リフレッシュのオプションの存続時間アンカー。メモリー作成時間にはTimeToLiveAnchor.CREATED_AT、同じ更新で指定された置換timestampにはTimeToLiveAnchor.TIMESTAMP、timestampを省略した場合は格納されたイベント・タイムスタンプを使用します。ttl_daysを指定せずにttl_anchorを指定すると、スキーマのデフォルトの存続期間が使用されます。リフレッシュ中にttl_anchorを省略すると、ストアはTimeToLiveAnchor.CREATED_ATを使用します。 - **kwargs (Any)– 予期しないキーワード引数が拒否されます。
- memory_id
- 戻り値:更新されたメモリーに似たレコードの識別子。
- 戻り型: str
ノート:
省略されたフィールドは変更されません。スコープの更新は、このAPIではサポートされていません。メタデータの置換はオブジェクト全体の置換であり、再帰的なJSONマージではありません。
メソッド update_thread
スレッド・メタデータおよび永続ランタイム構成の更新を保持します。
- パラメータ:
- thread_id
str– 更新するスレッドの識別子。 - metadata
dict[str, Any] | None– 会話スレッドのオプションのメタデータ更新。省略すると、格納されたメタデータは変更されません。Noneを渡すと、格納されているメタデータが明示的にクリアされます。マッピングを指定すると、格納されているメタデータ・オブジェクトが置換されます。 - LLM
ILlm– 返されるOracleThreadインスタンスに対するオプションのLLMオーバーライド。これは永続化されませんが、get_threadおよびcreate_threadと同じ検証ルールに含まれます。 -
extract_memories
bool–自動メモリー抽出のオプションの永続オーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 - max_message_token_length
int– 抽出および要約時に使用される最大プロンプト時間メッセージサイズに対するオプションの永続オーバーライド。 - message_shortening_input_token_limit
int– オーバーサイズメッセージを短縮するときにLLMに送信される最大抜粋サイズに対するオプションの永続オーバーライド。 -
memory_extraction_window
int–抽出ウィンドウ・サイズのオプションの永続オーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
context_summary_update_frequency
int–コンテキスト・サマリー・リフレッシュをトリガーする追加メッセージ数に対するオプションの永続オーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_frequency
int–自動メモリー抽出をトリガーする追加メッセージ数の永続オーバーライド(オプション)。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_token_limit
int–抽出および実行要約プロンプト予算に対するオプションの永続上書き。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 - context_card_token_limit
int– コンテキスト・カードに含まれるサマリーおよびトピック・リストの作成に使用されるLLMプロンプトの入力トークン予算に対する、オプションの永続オーバーライド。 -
enable_context_summary
bool–実行中のコンテキスト・サマリーを有効にしたままにするかどうかのオプションの永続オーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_custom_instructions
str | None–メモリー抽出システム・プロンプトに付加される、オプションの永続カスタム命令。
Noneを渡すと、格納されているスレッド・レベルのカスタム命令がクリアされます。クライアント・レベルのデフォルトは、構成時に引き続き適用されます。情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–ソース・メッセージから自動的に抽出されたメモリーにコピーされるメタデータに対する、オプションの永続オーバーライド。
情報:バージョン26.6.0以降非推奨: このパラメータは26.6.0で非推奨となり、27.1で削除されます。かわりに
memory_extraction_configを使用してください。 - memory_extraction_config
MemoryExtractionConfig– オプションのグループ化された永続抽出構成の更新。指定されたフィールドは、格納されたスレッド構成に書き込まれ、後でロードされたOracleThreadインスタンスおよびそれ以降のバックグラウンド抽出ジョブで使用されます。 - **kwargs (Any)– 追加の実装固有のオプション。
OracleAgentMemoryは現在、不明なキーワード引数を拒否しています。
- thread_id
- 戻り値:永続メタデータおよびランタイム構成を反映して
OracleThreadインスタンスを更新しました。 - 戻りタイプ: OracleThread
- 引き上げ:
- KeyError– このクライアントインスタンスに対してスレッドIDが不明な場合。
- ValueError– 有効な実行時構成の解決後に自動メモリー抽出に使用できるLLMがない場合。
ノート:
ランタイム構成は、格納された会話スレッドと、このコールに渡された明示的なオーバーライドから解決され、結果を永続化する前にget_threadセマンティクスと一致します。省略されたメタデータおよび実行時構成の更新は、以前にロードされたOracleThreadインスタンスからではなく、格納されたデータから解決され、明示的に指定されたメタデータ更新または永続ランタイム構成オーバーライドのみがライトバックされます。メタデータの置換はオブジェクト全体の置換であり、再帰的なJSONマージではありません。スレッド所有権は、このAPIを介して変更できないため、user_idおよびagent_idは変更されません。抽出カウンタなどの可変の実行時状態は変更されません。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
updated = client.update_thread(
"c1",
metadata={"flags": {"vip": True}},
message_shortening_input_token_limit=12_000,
)
updated.message_shortening_input_token_limit
12000
メソッド wait_for_memory_extraction
このクライアントによって開始された以前のバックグラウンドメモリーの抽出を待ちます。
このメソッドは、このエージェント・メモリー・コンポーネントが所有するすべてのスレッドにわたって、このOracleAgentMemoryインスタンスを介してすでに開始されたバックグラウンド抽出を待機します。この待機の開始後、別のエージェント・メモリー・コンポーネントによって開始された抽出、または別のプロセスで実行された抽出の開始後、抽出が開始されるまで待機しません。この待機の終了時に抽出の失敗がカウントされます。
- パラメータ: timeout
float | None– 待機する最大秒数(オプション)。デフォルトは300です。Noneを渡して、このエージェント・メモリー・コンポーネントに保留中の抽出がないまで待機します。 - Raises: TimeoutError– 以前のバックグラウンド抽出が終了する前にタイムアウトが期限切れになると発生します。
- 戻り型:なし
例
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.wait_for_memory_extraction(timeout=10)
method wait_for_memory_extraction_async (非同期)
以前のバックグラウンド・メモリー抽出を非同期に待機します。
このメソッドは、wait_for_memory_extraction()と同じ動作に従います。
- パラメータ: timeout
float | None– 待機する最大秒数(オプション)。デフォルトは300です。Noneを渡して無期限に待機します。 - Raises: TimeoutError– 以前のバックグラウンド抽出が終了する前にタイムアウトが期限切れになると発生します。
- 戻り型:なし
例
await client.wait_for_memory_extraction_async(timeout=10)
メモリー抽出
クラス oracleagentmemory.core.MemoryExtractionConfig
ベース: object
自動メモリー抽出のグループ化された設定。
このオブジェクトをOracleAgentMemory、create_thread、get_threadまたはupdate_threadに渡して、自動抽出を構成します。省略されたフィールドは、次の広い設定から継承されます。たとえば、memory_extraction_frequencyなしで作成されたスレッドでは、エージェント・メモリー・コンポーネントのデフォルトが使用され、コンポーネントのデフォルトはSDKのデフォルトに戻ります。
- パラメータ:
- memory_extraction_window
int– 抽出プロンプトに使用される最近のメッセージウィンドウ。-1は、抽出プロンプトが新しく追加されたメッセージのみを使用することを意味します。値を継承するには、このフィールドを省略します。 - context_summary_update_frequency
int– 実行中のコンテキスト・サマリー・リフレッシュ間の追加メッセージ数。0未満の値は、追加するたびにリフレッシュされます。値を継承するには、このフィールドを省略します。 - memory_extraction_frequency
int– メモリー抽出実行間の追加メッセージの数。0より小さい値は、追加されるたびに抽出されます。値を継承するには、このフィールドを省略します。 - memory_extraction_token_limit
int– 抽出およびサマリープロンプトの入力トークン予算。1未満の値は、プロンプトの予算制限を無効にします。値を継承するには、このフィールドを省略します。 - extract_memories
bool– 自動メモリー抽出が有効になっているかどうか。自動抽出を無効にし、抽出LLMのない操作を許可するには、Falseに設定します。値を継承するには、このフィールドを省略します。 - enable_context_summary
bool– 抽出プロンプトが、実行中のコンテキストサマリーを維持して使用するかどうか。値を継承するには、このフィールドを省略します。 - memory_extraction_custom_instructions
str | None– 抽出システムプロンプトに追加されるオプションの呼び出し元命令。Noneをupdate_threadに渡して、格納されているスレッド・レベルの命令をクリアします。値を継承するには、このフィールドを省略します。 - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]– ソース・メッセージから抽出されたメモリーにコピーされるメタデータを制御します。Trueでは、すべてのソース・メッセージ・メタデータがコピーされ、Falseでは何もコピーされず、順序では一致する最上位メタデータ・キーのみがコピーされます。値を継承するには、このフィールドを省略します。 - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode–MemoryExtractionMode.INLINEは、書込みメソッドが返される前に自動抽出を実行します。MemoryExtractionMode.BACKGROUNDは、RAW書込みが成功し、原因抽出作業がバックグラウンドで試行された後で戻されます。バックグラウンド・モードでは、導出されたメモリーは後で表示されるか、一時的に失効するか、バックグラウンド作業を完了できない場合には書き込まれない可能性があります。たとえば、update_message()は、後のメモリー読取りが更新されたメッセージ・コンテンツを反映する前に戻すことができます。値を継承するには、このフィールドを省略します。より広い値が構成されていない場合、有効モードはINLINEです。 - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior– バックグラウンドモードでは、自動抽出がすぐにキューに入れられない場合に行われる処理を制御します。DROPは警告をログに記録し、待機せずに続行します。WAIT_THEN_DROPは、構成されたタイムアウトまでのキュー容量を待機してから、警告を記録して続行します。WAIT_THEN_RAISEは、構成されたタイムアウトまでのキュー容量を待機してから、RAW書込みが成功した後、TimeoutErrorを呼び出します。値を継承するには、このフィールドを省略します。より広い値が構成されていない場合、有効なデフォルトはDROPです。 - background_extraction_queue_put_timeout_seconds
float– バックグラウンド・モードでは、background_extraction_queue_full_behaviorがWAIT_THEN_DROPまたはWAIT_THEN_RAISEの場合、自動抽出がキュー容量を待機する最大秒数。値を継承するには、このフィールドを省略します。より広い値が構成されていない場合、有効なデフォルトは300.0秒です。
- memory_extraction_window
例
from oracleagentmemory.core import MemoryExtractionConfig, MemoryExtractionMode
config = MemoryExtractionConfig(
extract_memories=True,
extraction_mode=MemoryExtractionMode.BACKGROUND,
)
クラス oracleagentmemory.core.MemoryExtractionMode
ベース: str、Enum
自動メモリー抽出作業が実行されるタイミングを制御します。
INLINEは、書込みメソッドが返される前に自動抽出を実行します。BACKGROUNDは、RAW書込みが成功し、原因抽出作業がバックグラウンドで試行された後で戻されます。バックグラウンド抽出はベスト・エフォートです。導出されたメモリーは後で表示されるか、バックグラウンド作業を完了できない場合には決して書き込まれない可能性があります。
背景 = '背景'
RAWメッセージの永続化後に戻り、バックグラウンド作業でベストエフォート抽出を実行します。
インライン = 'インライン'
writeメソッドが返される前に抽出を実行します。
クラス oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
ベース: str、Enum
バックグラウンド抽出が時間内にキューに入れられない場合の動作を制御します。
= 'DROP'を削除します
警告を記録し、キュー容量が使用不可になったらすぐに続行します。
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
構成されたタイムアウトまでのキュー容量を待ってから、警告を記録して続行します。
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
構成されたタイムアウトまでのキュー容量を待機してから、TimeoutErrorを呼び出します。