エージェント・メモリー
このページでは、Oracle AI Agent Memoryの具体的な実装について説明します。
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のデフォルトが使用されます。特に、省略されたイメージ・コンテキストはDISABLEDです。 - image_input_limit_config
ImageInputLimitConfig– オプションのクライアントレベルのrawイメージおよびLLMイメージ要求の制限。省略されたフィールドは、SDKのデフォルトを使用し、スレッドがオーバーライドを提供しないかぎりスレッドによって継承されます。検証は無効にできません。 - schema_policy
SchemaPolicy | str–connectionからDBストアを構築する場合にのみ使用されるDBスキーマ設定ポリシー。デフォルトはSchemaPolicy.REQUIRE_EXISTINGです。SchemaPolicy.CREATE_IF_NECESSARYは、既存のスキーマで最初にキーワード検索またはハイブリッド検索を有効にする場合、またはサポートされている古いリリース済の管理対象スキーマを開く場合に使用します。これにより、SDKは非破壊スキーマ・アップグレードを適用し、必要なテキスト検索オブジェクトを追加できます。現在のリリース・シェイプをすでに要求している開発または部分的に更新されたスキーマは、かわりに再作成する必要があります。schema_ownerが設定されている場合、SchemaPolicy.REQUIRE_EXISTINGのみが許可されます。これにより、スキーマの作成、アップグレード、レクリエーション、および最初のハイブリッド索引作成を含む管理対象スキーマDDLが防止され、schema_ownerなしで所有データベース・ユーザーとして接続している間にそれらのアクションが実行されます。クライアントを読取り専用にすることはありません。通常のメモリー読取りおよび書込みでは、接続ユーザーに付与されたデータベース権限が使用されます。 - memory_store_id
str–connectionからDBストアを構築する場合にのみ使用される管理対象DBメモリー・ストアの安定したID。同じIDを再利用して、同じ管理対象ストアを再オープンします。IDはアンダースコアを使用して管理対象DBオブジェクト名に結合されるため、先頭は文字で、使用できるのは文字、数字およびアンダースコアのみで、最大16文字である必要があります。DBストアはそれを大文字に正規化するため、大/小文字は別のストア・アイデンティティを作成しません。これまたは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を使用してください。 - schema_owner
str– 既存の管理対象メモリー・ストアのオプションのスキーマ所有者。接続ユーザーのスキーマを使用するには、このオプションを省略します。connection(RAWデータベース接続または接続プール)が、別のユーザーが所有する表に対する権限を持っているアプリケーションDBユーザーに属している場合に使用します。このオプションは、すでに作成されている管理対象メモリー・ストアへの実行時アクセス専用であり、SchemaPolicy.REQUIRE_EXISTINGが必要です。スキーマ所有者として接続しているときに管理対象メモリー・ストアを作成、アップグレードまたは再作成し、このオプションを省略します。引用符で囲まれていない識別子を渡します。小文字の入力は大文字に正規化され、引用符で囲まれた大/小文字を区別するスキーマ所有者はサポートされません。事前構成済のstoreを渡す場合は、かわりにそのストアでschema_ownerを構成します。CREATE SESSIONおよび必要なオブジェクト権限をアプリケーションDBユーザーに付与します。正確な付与については、トラブルシューティング・ガイドのDatabase Users and Privilegesの項を参照してください。別の方法として、ランタイム・スキーマで同じ名前の管理対象オブジェクト・ビューを公開し、schema_ownerを省略します。これは、SchemaPolicy.REQUIRE_EXISTINGでのみサポートされます。 - search_strategy
SearchStrategy–connectionからDBストアを構築するときにDB検索バックエンドを選択するSearchStrategy値。ベクトルのみの取得にはSearchStrategy.VECTOR(デフォルト)、格納された検索テキストに対して管理されたOracleハイブリッド・ベクトル索引を問い合せるにはSearchStrategy.HYBRID、ベクトル・フュージョンのない格納された検索テキストに対してキーワード/テキスト一致でランク付けするにはSearchStrategy.KEYWORDを使用します。KEYWORDには埋込みは必要ありません。HYBRIDでは、embedderがOracleDBEmbedderである必要があります。互換性のない戦略を既存のスキーマとともに使用すると、そのスキーマに戦略に必要なストアド・サーチ状態が含まれない可能性があるため、クライアントの起動に失敗します。schema_policy=SchemaPolicy.REQUIRE_EXISTINGおよびこの引数を省略すると、DBストアのベストエフォートでは、管理対象メタデータからスキーマの格納済検索モードが検出され、使用可能な場合はそのモードが使用されます。 - 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)に解決します。この構成は、レコードに格納される予想情報、アプリケーションが保持する理由、およびアプリケーションまたは規制保持のコミットメントに基づいて選択します。 - search_config
MemorySearchConfig– 新しいスレッドおよびロードされたスレッドによって継承される、オプションのクライアントレベルの検索構成。省略すると、検索は固定されたtop-k検索構成を使用します。 - pruner_llm
ILlm– クライアント全体の結果プルーニングを有効にするために使用されるオプションのLLM。設定すると、ダイレクト・クライアント検索および継承されたスレッド検索では、デフォルトでFAST評価モードのプルーニングが使用されます。検索構成が格納されている既存のスレッドは、再オープン時にその構成を保持します。search_config=PruningMemorySearchConfig(...)を使用して、プルーニング動作をカスタマイズします。pruner_llmをsearch_configと組み合せることはできません。
- 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 - image_input_limit_config
ImageInputLimitConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - table_name_prefix
str - schema_owner
str - search_strategy
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - memory_extraction_custom_instructions
str - memory_retention_config
MemoryRetentionConfig - search_config
MemorySearchConfig - pruner_llm
ILlm
- store
例
別のデータベース・ユーザーが作成したスキーマにアクセスするには、アプリケーションDBユーザーのmemory_rw_poolを構成し、memory_schema_ownerを所有ユーザーの引用符で囲まれていないデータベース名に設定します。
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),
)
pruned_search_client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
pruner_llm=llm,
)
shared_client = OracleAgentMemory(
connection=memory_rw_pool,
embedder=embedder,
llm=llm,
schema_owner=memory_schema_owner,
)
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,
memory_store_id=memory_store_id,
)
メソッド 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'
method add_agent_async (非同期)
エージェント・プロファイル・レコードを非同期的にストアに追加します。
- パラメータ:
- 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,
)
import asyncio
asyncio.run(client.add_agent_async(
"a1",
"Support assistant",
metadata={"source": "catalog"},
))
'a1'
メソッド add_image
クライアントにイメージ・レコードを追加します。
- パラメータ:
- image
bytes– イメージとして格納するイメージのバイト数。 - description
str | None– イメージに関連付けられたオプションの説明。省略するか、Noneを渡して、構成されたLLMで生成します。 - mime_type
ImageMimeType– イメージのMIMEタイプ。サポートされている値は、ImageMimeTypeによって提供されます。省略すると、SDKはイメージ・バイトからタイプを検出して検証します。サポートされている検出タイプは、PNG、JPEGおよびWEBPです。 - image_id
str– オプションのコール元提供の安定した識別子。省略すると、1つが生成されます。 - user_id
str | None– オプションのユーザー所有者。user_id、agent_idまたはthread_idの少なくとも1つを指定します。3つすべてをNoneにすることはできません。 - agent_id
str | None– イメージに関連付けるオプションのエージェント識別子。 - thread_id
str– イメージに関連付けるオプションのスレッド識別子。 - metadata
dict[str, Any] | None– イメージ行で永続化するオプションのメタデータ。 - timestamp
str | None– このイメージ用に保存するオプションのイベントタイムスタンプ。この引数を省略するか、Noneを渡してNULLイベント・タイムスタンプを格納します。イメージが読み取られると、その作成時間が有効なタイムスタンプとして返されます。 - ttl_days
int | None– オプションの稼働時間(日数)。スキーマ・デフォルトの存続時間を使用するには、この引数を省略します。失効しないイメージを格納するには、Noneを渡します。 - ttl_anchor
TimeToLiveAnchor– オプションの稼働時間アンカー。データベース作成時間にはTimeToLiveAnchor.CREATED_ATを、イメージ・タイムスタンプにはTimeToLiveAnchor.TIMESTAMPを使用します。 - **store_kwargs (Any)– バッキングストアに転送される実装固有の書き込みオプション。
- image
- 戻り値:挿入されたイメージ・レコードの識別子。
- 戻り型: str
例
image_id = client.add_image(
b"image-bytes",
description="Image description",
mime_type=ImageMimeType.PNG,
image_id="img-1",
user_id="user-1",
)
image_id
'img-1'
method add_image_async (非同期)
構成済ストアを介して1つのスタンドアロン・イメージを保持します。
descriptionを省略するか、Noneを指定すると、構成されたLLMによってキャプションが生成されます。
- パラメータ:
- image
bytes– 永続化するrawイメージバイト数。 - description
str | None– オプションの説明またはキャプション。省略してキャプションを生成します。 - mime_type
ImageMimeType– イメージの永続性およびキャプションの生成に使用されるオプションのMIMEタイプ。省略すると、SDKはイメージ・バイトからタイプを検出して検証します。サポートされている検出タイプは、PNG、JPEGおよびWEBPです。 - image_id
str– オプションの識別子。省略すると生成されます。 - user_id
str | None– 所有者のスコープ識別子。少なくとも1つはNone以外である必要があります。thread_idを指定すると、そのストアド・ユーザーおよびエージェントの所有権は認可され、省略されたユーザーおよびエージェントの値は継承されます。 - agent_id
str | None– 所有者のスコープ識別子。少なくとも1つはNone以外である必要があります。thread_idを指定すると、そのストアド・ユーザーおよびエージェントの所有権は認可され、省略されたユーザーおよびエージェントの値は継承されます。 - thread_id
str– 所有者のスコープ識別子。少なくとも1つはNone以外である必要があります。thread_idを指定すると、そのストアド・ユーザーおよびエージェントの所有権は認可され、省略されたユーザーおよびエージェントの値は継承されます。 - metadata
dict[str, Any] | None– イメージとともに格納されるオプションのメタデータ。 - timestamp
str | None– このイメージ用に保存するオプションのイベントタイムスタンプ。この引数を省略するか、Noneを渡してNULLイベント・タイムスタンプを格納します。イメージが読み取られると、その作成時間が有効なタイムスタンプとして返されます。 - ttl_days
int | None– オプションの有効期限設定。 - ttl_anchor
TimeToLiveAnchor– オプションの有効期限設定。 - store_kwargs
Any– 追加のストア固有オプション。
- image
- 戻り値:永続イメージ識別子。
- 戻り型: str
メソッド add_memory
指定されたユーザー、エージェント、およびスレッドに起因するメモリーシステムをメモリーシステムに追加します。
- パラメータ:
- content
str– 永続化するメモリー・コンテンツ。 - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– 格納するメモリーカテゴリ。サポートされている値は、"memory"、"fact"、"guideline"および"preference"です。省略すると、コンテンツは一般的な"memory"として格納されます。 - user_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。user_idを省略し、DB接続にエンド・ユーザー・セキュリティ・コンテキストがある場合、ストアはそのコンテキストのユーザー名を使用します。 - agent_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。user_idを省略し、DB接続にエンド・ユーザー・セキュリティ・コンテキストがある場合、ストアはそのコンテキストのユーザー名を使用します。 - thread_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。user_idを省略し、DB接続にエンド・ユーザー・セキュリティ・コンテキストがある場合、ストアはそのコンテキストのユーザー名を使用します。 - memory_id
str– このメモリー行の呼び出し元提供の安定した識別子(オプション)。 - metadata
dict[str, Any] | None– 格納されているメモリーで保持するオプションのメタデータ。 - timestamp
str | None– このメモリー用に保存するオプションのイベントタイムスタンプ。この引数を省略するか、Noneを渡してNULLイベント・タイムスタンプを格納します。レコードが読み取られると、その作成時間が有効なタイムスタンプとして返されます。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として扱われます。 - status
RecordStatus– 初期ライフサイクル・ステータス。RecordStatus.VALIDを格納する場合は省略します。 - autonomous_linking
bool– クライアントのLLMを使用して、この新しいメモリーから関連する格納済みメモリーへのリンクを作成するかどうか。省略すると、LLMが存在する場合に有効になり、Falseを渡してスキップします。失敗すると、メモリーが格納されます。 - memory_id_to_link
str– 新しいメモリーからこの既存のメモリーへの有向リンク(別のスコープ内のものを含む)を一緒に作成します。省略されたユーザー、エージェントおよびスレッド・スコープは、そのターゲットから継承されます。 - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker– 新しいメモリーからこの既存のメモリーへの有向リンク(別のスコープ内のものを含む)を一緒に作成します。省略されたユーザー、エージェントおよびスレッド・スコープは、そのターゲットから継承されます。 - link_id
str– 明示的リンクのオプションの識別子、タイムスタンプ、およびメタデータ。 - link_timestamp
str | None– 明示的リンクのオプションの識別子、タイムスタンプ、およびメタデータ。 - link_metadata
dict[str, Any] | None– 明示的リンクのオプションの識別子、タイムスタンプ、およびメタデータ。 - **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– 格納されたメモリーに関連付けられたオプションのスコープ識別子。user_idを省略し、DB接続にエンド・ユーザー・セキュリティ・コンテキストがある場合、ストアはそのコンテキストのユーザー名を使用します。 - agent_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。user_idを省略し、DB接続にエンド・ユーザー・セキュリティ・コンテキストがある場合、ストアはそのコンテキストのユーザー名を使用します。 - thread_id
str– 格納されたメモリーに関連付けられたオプションのスコープ識別子。user_idを省略し、DB接続にエンド・ユーザー・セキュリティ・コンテキストがある場合、ストアはそのコンテキストのユーザー名を使用します。 - memory_id
str– このメモリー行の呼び出し元提供の安定した識別子(オプション)。 - metadata
dict[str, Any] | None– 格納されているメモリーで保持するオプションのメタデータ。 - timestamp
str | None– このメモリー用に保存するオプションのイベントタイムスタンプ。この引数を省略するか、Noneを渡してNULLイベント・タイムスタンプを格納します。レコードが読み取られると、その作成時間が有効なタイムスタンプとして返されます。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として扱われます。 - status
RecordStatus– 初期ライフサイクル・ステータス。RecordStatus.VALIDを格納する場合は省略します。 - autonomous_linking
bool– クライアントのLLMを使用して、この新しいメモリーから関連する格納済みメモリーへのリンクを作成するかどうか。省略すると、LLMが存在する場合に有効になり、Falseを渡してスキップします。失敗すると、メモリーが格納されます。 - memory_id_to_link
str– 新しいメモリーからこの既存のメモリーへの有向リンク(別のスコープ内のものを含む)を一緒に作成します。省略されたユーザー、エージェントおよびスレッド・スコープは、そのターゲットから継承されます。 - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker– 新しいメモリーからこの既存のメモリーへの有向リンク(別のスコープ内のものを含む)を一緒に作成します。省略されたユーザー、エージェントおよびスレッド・スコープは、そのターゲットから継承されます。 - link_id
str– 明示的リンクのオプションの識別子、タイムスタンプ、およびメタデータ。 - link_timestamp
str | None– 明示的リンクのオプションの識別子、タイムスタンプ、およびメタデータ。 - link_metadata
dict[str, Any] | None– 明示的リンクのオプションの識別子、タイムスタンプ、およびメタデータ。 - **store_kwargs (任意)– バッキングストアに転送されるストア固有の書き込みオプション。
- content
- 戻り値:挿入されたメモリー・レコードの識別子。
- 戻り型: str
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
memory_id = asyncio.run(client.add_memory_async(
"User likes pizza", memory_id="mem-1"
))
memory_id
'mem-1'
メソッド 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'
method add_user_async (非同期)
ユーザー・プロファイル・レコードを非同期的にストアに追加します。
- パラメータ:
- 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,
)
import asyncio
asyncio.run(client.add_user_async(
"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を渡して無期限に待機します。 - 戻り型:なし
例
import asyncio
asyncio.run(client.close_async())
メソッド create_thread
スレッドを作成して登録する。
- パラメータ:
- thread_id
str– スレッド識別子。省略すると、新しいものが生成されます。 - user_id
str– このスレッドレコードに添付されたユーザー識別子。省略し、DB接続にエンド・ユーザーのセキュリティ・コンテキストが含まれている場合は、そのコンテキストのユーザー名が使用されます。それ以外の場合は、新しい識別子が生成されます。 - 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– オプションのスレッドごとのメモリー抽出構成。指定されたフィールドは、クライアント構成をオーバーライドします。省略されたイメージ・コンテキストでは、クライアント値、DISABLEDが使用されます。解決された構成はスレッドとともに格納されるため、後でロードすると作成時の動作が維持されます。 - image_input_limit_config
ImageInputLimitConfig– オプションのスレッドごとのrawイメージおよびLLMイメージ要求の制限。省略されたフィールドは、クライアント構成から継承されます。解決された制限はスレッドとともに格納されます。 - search_config
MemorySearchConfig– スレッドに対するオプションの検索構成。省略すると、クライアントレベルの構成が使用されます。 - 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–最新の有効なサマリーの後に自動的にリフレッシュするまでのメッセージ数。メモリー抽出が有効になっている場合、チェックは各抽出の期限後に行われるため、あとでリフレッシュが発生する可能性があります。
0以下の値は、チェックごとにリフレッシュされます。省略した場合、デフォルトは-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'
method create_thread_async (非同期)
スレッドを作成して非同期に登録します。
- パラメータ:
- thread_id
str– スレッド識別子。省略すると、新しいものが生成されます。 - user_id
str– このスレッドレコードに添付されたユーザー識別子。省略し、DB接続にエンド・ユーザーのセキュリティ・コンテキストが含まれている場合は、そのコンテキストのユーザー名が使用されます。それ以外の場合は、新しい識別子が生成されます。 - 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– オプションのスレッドごとのメモリー抽出構成。指定されたフィールドは、クライアント構成をオーバーライドします。省略されたイメージ・コンテキストでは、クライアント値、DISABLEDが使用されます。解決された構成はスレッドとともに格納されるため、後でロードすると作成時の動作が維持されます。 - image_input_limit_config
ImageInputLimitConfig– オプションのスレッドごとのrawイメージおよびLLMイメージ要求の制限。省略されたフィールドは、クライアント構成から継承されます。解決された制限はスレッドとともに格納されます。 - search_config
MemorySearchConfig– スレッドに対するオプションの検索構成。省略すると、クライアントレベルの構成が使用されます。 - 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–最新の有効なサマリーの後に自動的にリフレッシュするまでのメッセージ数。メモリー抽出が有効になっている場合、チェックは各抽出の期限後に行われるため、あとでリフレッシュが発生する可能性があります。
0以下の値は、チェックごとにリフレッシュされます。省略した場合、デフォルトは-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,
)
import asyncio
thread = asyncio.run(client.create_thread_async(
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– 既知のスレッドのバックグラウンド抽出を以前に受け入れた場合、内部削除待機がタイムアウトする前に終了しない場合に呼び出されます。
ノート
プロファイルを削除する前に、このメソッドは、このエージェント・メモリー・コンポーネントを介して認識される所有スレッドに対して、以前のバックグラウンド抽出がすでに受け入れられるまで、最大300秒待機します。この待機は、カスケード・クリーンアップが有効かどうかに適用されます。カスケード・クリーンアップは、バッキング・ストア内で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
method delete_agent_async (非同期)
エージェント・プロファイル・レコードを識別子で非同期に削除します。
- パラメータ:
- agent_id
str– プロファイルを削除するエージェント識別子。 - cascade
bool–True(デフォルト)の場合は、このエージェントにスコープ指定されたレコードも削除します。これには、所有スレッド自体の削除、それらのスレッドで削除されたメッセージおよびメモリーに似たレコードの削除、およびメッセージ、メモリー、ガイドライン、ファクト、プリファレンスなどのエージェント・スコープの残りの直接レコードが含まれます。このスコープ指定クリーンアップは、一致するエージェント・プロファイル行がすでにない場合でも実行されます。プロファイル・レコードのみを削除するには、Falseに設定します。
- agent_id
- 戻り値:削除されたエージェント・プロファイル行の数(
0または1)。これは、カスケード・クリーンアップ中にスコープ指定された行が削除された場合でも0になることがあります。 - 戻り型: int
- Raises: TimeoutError– 既知の所有スレッドに対して以前に受け入れたバックグラウンド抽出が300秒以内に終了しない場合は、プロファイルを削除せずに呼び出されます。
ノート
このメソッドは、delete_agent()で説明されているバックグラウンド抽出待機および同時実行性の動作に従います。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_agent_async("a-delete", "Support assistant"))
'a-delete'
asyncio.run(client.delete_agent_async("a-delete"))
1
メソッド delete_image
イメージ・レコードを識別子で削除します。
- パラメータ: image_id
str– 削除するイメージ・レコードの識別子。 - 戻り値:削除されたイメージ・レコードの数。
- 戻り型: int
- Raises: ValueError– イメージがメッセージに添付されている場合。かわりに親メッセージを削除または更新してください。
method delete_image_async (非同期)
構成済ストアを介して1つのスタンドアロン・イメージを削除します。
- パラメータ: image_id
str– 削除するイメージの識別子。 - 戻り値:削除する場合は
1、それ以外の場合は一致するイメージが存在しない場合は0。 - 戻り型: int
- Raises: ValueError– イメージがメッセージに添付されている場合。かわりに親メッセージを削除または更新してください。
メソッド delete_memory
メモリーに似たレコード(メモリー、ファクト、プリファレンス、ガイドラインなど)を識別子で削除します。
- パラメータ: memory_id
str– メモリー識別子。識別子は、格納されているmemory、guideline、factまたはpreferenceレコードを参照できます。 - 戻り値:削除されたメモリーに似た行の数(
0または1)。 - 戻り型: int
- Raises: TimeoutError– 以前に格納されたスレッドのバックグラウンド抽出が300秒以内に終了しなかった場合に、レコードを削除せずに呼び出されます。
ノート
スレッド・スコープのレコードを削除する前に、このメソッドはストアド・スレッドを解決し、このエージェント・メモリー・コンポーネントを介して受け入れた以前のバックグラウンド抽出を待機します。無関係のスレッド、待機開始後に受け入れられた作業、または別のエージェント・メモリー・コンポーネントまたはプロセスによって開始された作業を待機しません。スレッド・スコープおよび識別子が不明なレコードでは、抽出待機は発生しません。
例
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– メモリー識別子。識別子は、格納されているmemory、guideline、factまたはpreferenceレコードを参照できます。 - 戻り値:削除されたメモリーに似た行の数(
0または1)。 - 戻り型: int
- Raises: TimeoutError– 以前に格納されたスレッドのバックグラウンド抽出が300秒以内に終了しなかった場合に、レコードを削除せずに呼び出されます。
ノート
このメソッドは、delete_memory()で記述されたターゲットとなるバックグラウンド抽出待機および同時実行性の動作に従います。
例
import asyncio
memory_id = asyncio.run(client.add_memory_async(
"Temporary memory", memory_id="mem-delete"
))
asyncio.run(client.delete_memory_async(memory_id))
1
メソッド delete_record_link
識別子または完全なエンドポイント・タプルによるリレーションの削除。
relation_idが指定されていない場合は、格納されているソースからターゲットへの方向ですべてのソース、ターゲット、型およびリレーション・ラベル引数を指定します。
- パラメータ:
- source_record_id
str– エンドポイント・タプルによる選択時のソース識別子。 - source_record_type
str– エンドポイント・タプルによる選択時の論理ソース・レコード・タイプ。 - target_record_id
str– エンドポイント・タプルによる選択時のターゲット識別子。 - target_record_type
str– エンドポイント・タプルによる選択時の論理ターゲット・レコード・タイプ。 - relation_type
str– エンドポイント・タプルで選択する場合のソースからターゲットへのラベル。 - relation_id
str– 直接選択するリレーション識別子。これを単独で提供してください。
- source_record_id
- 戻り値:削除されたリレーションの数(
0または1)。 - 戻り型: int
例
client.delete_record_link(relation_id="relation-id")
1
method delete_record_link_async (非同期)
リレーションをIDまたは完全なエンドポイント・タプルで非同期に削除します。
- パラメータ:
- source_record_id
str - source_record_type
str - target_record_id
str - target_record_type
str - relation_type
str - relation_id
str
- source_record_id
- 戻り型: 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
method delete_thread_async (非同期)
スレッド識別子に関連付けられているすべてのレコードを非同期的に削除します。
- パラメータ: 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,
)
import asyncio
thread = asyncio.run(client.create_thread_async(thread_id="c-delete"))
asyncio.run(client.delete_thread_async(thread.thread_id))
1
メソッド delete_user
識別子によるユーザー・プロファイル・レコードの削除。
- パラメータ:
- user_id
str– プロファイルを削除するユーザー識別子。 - cascade
bool–True(デフォルト)の場合は、このユーザーにスコープ指定されたレコードも削除します。これには、所有されているスレッド自体の削除、それらのスレッドで削除されたメッセージやメモリーに似たレコードの削除、およびメッセージ、メモリー、ガイドライン、ファクト、プリファレンスなどの残りの直接ユーザー・スコープのレコードが含まれます。このスコープ指定クリーンアップは、一致するユーザー・プロファイル行がすでにない場合でも実行されます。プロファイル・レコードのみを削除するには、Falseに設定します。
- user_id
- 戻り値:削除されたユーザー・プロファイル行の数(
0または1)。これは、カスケード・クリーンアップ中にスコープ指定された行が削除された場合でも0になることがあります。 - 戻り型: int
- Raises: TimeoutError– 既知のスレッドのバックグラウンド抽出を以前に受け入れた場合、内部削除待機がタイムアウトする前に終了しない場合に呼び出されます。
ノート
プロファイルを削除する前に、このメソッドは、このエージェント・メモリー・コンポーネントを介して認識される所有スレッドに対して、以前のバックグラウンド抽出がすでに受け入れられるまで、最大300秒待機します。この待機は、カスケード・クリーンアップが有効かどうかに適用されます。カスケード・クリーンアップは、バッキング・ストア内で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
method delete_user_async (非同期)
識別子によるユーザー・プロファイル・レコードを非同期的に削除します。
- パラメータ:
- user_id
str– プロファイルを削除するユーザー識別子。 - cascade
bool–True(デフォルト)の場合は、このユーザーにスコープ指定されたレコードも削除します。これには、所有されているスレッド自体の削除、それらのスレッドで削除されたメッセージやメモリーに似たレコードの削除、およびメッセージ、メモリー、ガイドライン、ファクト、プリファレンスなどの残りの直接ユーザー・スコープのレコードが含まれます。このスコープ指定クリーンアップは、一致するユーザー・プロファイル行がすでにない場合でも実行されます。プロファイル・レコードのみを削除するには、Falseに設定します。
- user_id
- 戻り値:削除されたユーザー・プロファイル行の数(
0または1)。これは、カスケード・クリーンアップ中にスコープ指定された行が削除された場合でも0になることがあります。 - 戻り型: int
- Raises: TimeoutError– 既知の所有スレッドに対して以前に受け入れたバックグラウンド抽出が300秒以内に終了しない場合は、プロファイルを削除せずに呼び出されます。
ノート
このメソッドは、delete_user()で説明されているバックグラウンド抽出待機および同時実行性の動作に従います。
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_user_async("u-delete", "Prefers concise answers."))
'u-delete'
asyncio.run(client.delete_user_async("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インスタンスに対するオプションのグループ化された抽出構成。指定されたフィールドは、保存されたスレッド値を上書きします。省略されたイメージ・コンテキストでは、保存されたスレッド値、クライアント値、DISABLEDが使用されます。オーバーライドは、戻されたOracleThreadインスタンスにのみ適用され、格納された会話スレッド構成には書き込まれません。 - image_input_limit_config
ImageInputLimitConfig– オプションのrawイメージおよびLLMイメージ要求制限オーバーライド。省略されたフィールドは、格納されたスレッド制限を継承します。このオーバーライドは、戻されたスレッドにのみ適用され、永続化されません。 - search_config
MemorySearchConfig– 返される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="c2", user_id="u1")
loaded = client.get_thread("c2")
loaded.user_id
'u1'
method get_thread_async (非同期)
以前に作成したスレッドを非同期で取得します。
- パラメータ:
- thread_id
str– スレッドの作成時に使用される識別子。 - LLM
ILlm– 再オープンされたスレッドのオプションのLLMオーバーライド。省略すると、構築時に構成されたクライアントレベルのLLMが使用されます。 - max_message_token_length
int– メモリー抽出時およびコンテキストサマリー更新時の切り捨てまたはサマリーの前に、プロンプト時の最大メッセージサイズをオプションでオーバーライドします。格納されたメッセージ・コンテンツは変更されません。 - message_shortening_input_token_limit
int– オーバーサイズのプロンプトタイムメッセージコピーを短縮するときにLLMに送信されたメッセージ抜粋の最大サイズ(トークン単位)をオーバーライドします(オプション)。 - memory_extraction_config
MemoryExtractionConfig– 返されたOracleThreadインスタンスに対するオプションのグループ化された抽出構成。指定されたフィールドは、保存されたスレッド値を上書きします。省略されたイメージ・コンテキストでは、保存されたスレッド値、クライアント値、DISABLEDが使用されます。オーバーライドは、戻されたOracleThreadインスタンスにのみ適用され、格納された会話スレッド構成には書き込まれません。 - image_input_limit_config
ImageInputLimitConfig– オプションのrawイメージおよびLLMイメージ要求制限オーバーライド。省略されたフィールドは、格納されたスレッド制限を継承します。このオーバーライドは、戻されたスレッドにのみ適用され、永続化されません。 - search_config
MemorySearchConfig– 返される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,
)
import asyncio
created = asyncio.run(client.create_thread_async(
thread_id="c2", user_id="u1"
))
loaded = asyncio.run(client.get_thread_async("c2"))
loaded.user_id
'u1'
メソッド link_records
格納された2つのレコード間の有向リレーションを作成します。
現在、両方のエンドポイントはメモリーに似たレコード("memory"、"fact"、"guideline"または"preference")である必要があります。組込みのリレーション型は、"supersedes" ("is_superseded_by")、"contradicts"、"refines" ("is_refined_by")、"supports" ("is_supported_by")および"duplicates"です。"contradicts"と"duplicates"は、同じラベルを逆に使用します。
1つのエンドポイント・ペアに対して格納できる方向は1つのみです。opposite_relation_typeは、ターゲットからソースへのトラバース時にリレーションを指定します。たとえば、new "supersedes" oldの場合、逆走はold "is_superseded_by" newです。
- パラメータ:
- source_record_id
str– ソースレコードの識別子。 - source_record_type
str– ソース・レコードの論理型。 - target_record_id
str– ターゲットレコードの識別子。 - target_record_type
str– ターゲット・レコードの論理型。 - relation_type
str– ソースからターゲットへの方向のラベル。 - opposite_relation_type
str– このリレーションを逆方向に走査するときに使用するオプションのラベル。組込みメモリー・リレーション・タイプの場合、事前定義済のリバース・ラベルを格納するには、これを省略します(たとえば、"supports"は"is_supported_by"になります)。カスタムリレーションタイプの場合、省略は両方向に同じラベルを使用します。 - relation_id
str– オプションの安定したリレーション識別子。これを省略して生成します。 - timestamp
str | None– リレーションに関連付けられたオプションのタイムスタンプ。 - metadata
dict[str, Any] | None– リレーションに格納されるオプションのメタデータ。
- source_record_id
- 戻り値:作成されたリレーションの識別子。
- 戻り型: str
例
client.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
method link_records_async (非同期)
格納されたレコード間の型付きリレーションを非同期的に作成します。
現在、両方のエンドポイントはメモリーに似たレコード("memory"、"fact"、"guideline"または"preference")である必要があります。組込みのリレーション型は、"supersedes" ("is_superseded_by")、"contradicts"、"refines" ("is_refined_by")、"supports" ("is_supported_by")および"duplicates"です。"contradicts"と"duplicates"は、同じラベルを逆に使用します。
- パラメータ:
- source_record_id
str - source_record_type
str - target_record_id
str - target_record_type
str - relation_type
str - opposite_relation_type
str - relation_id
str - タイムスタンプ
str | None - メタデータ
dict[str, Any] | None
- source_record_id
- 戻り型: str
メソッド list_agents
永続エージェント・プロファイル・レコードをリストします。
- パラメータ:
- metadata_filter
dict[str, Any] | None– エージェント・プロファイル・メタデータに適用されるメタデータ・フィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないプロファイルのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- metadata_filter
- 戻り値:バッキング・ストアから返されたエージェント・プロファイル・レコード。
- 戻りタイプ: list[AgentProfileRecord]
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent("a1", "Support assistant", metadata={"source": "catalog"})
'a1'
[record.id for record in client.list_agents(metadata_filter={"source": "catalog"})]
['a1']
method list_agents_async (非同期)
永続化されたエージェント・プロファイル・レコードを非同期的にリストします。
- パラメータ:
- metadata_filter
dict[str, Any] | None– エージェント・プロファイル・メタデータに適用されるメタデータ・フィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないプロファイルのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- metadata_filter
- 戻り値:バッキング・ストアから返されたエージェント・プロファイル・レコード。
- 戻りタイプ: list[AgentProfileRecord]
例
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_agent_async(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
records = await client.list_agents_async(metadata_filter={"source": "catalog"})
return [record.id for record in records]
anyio.run(main)
['a1']
メソッド list_images
永続スタンドアロン・イメージ・レコードをリストします。
- パラメータ:
- image_id
str– バッキングストアによって返されるレコードを絞り込むために使用されるオプションのイメージ識別子。省略すると、識別子フィルタは適用されません。識別子フィルタは、limitの前に適用されます。 - user_id
str | None– オプションの正確なユーザーフィルタ。省略すると、すべてのユーザーのイメージが返されます。Noneを渡して、ユーザー・スコープのないイメージのみをリストします。None以外のユーザー、エージェントまたはスレッド・スコープが少なくとも1つ必要です。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントのイメージが返されます。Noneを渡して、エージェント・スコープのないイメージのみをリストします。 - thread_id
str | None– オプションの完全スレッドフィルタ。省略すると、すべてのスレッドのイメージが返されます。スレッド・スコープのないイメージのみをリストするには、Noneを渡します。 - metadata_filter
dict[str, Any] | None– イメージ・メタデータに適用されるメタデータ・フィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないイメージのみをリストします。 - include_bytes
bool– 返された各レコードにイメージバイトをロードするかどうか。省略またはFalseの場合、イメージ・バイトはロードされません。image_idおよび少なくとも1つの正確なユーザー、エージェントまたはスレッド・スコープ・フィルタがある場合にのみ、これをTrueに設定します。 - limit
int | None– バッキング・ストアからリクエストされるレコードの最大数(オプション)。省略すると、ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- image_id
- 戻り値:バッキング・ストアで順序付けされた一致するイメージ・レコード。
- 戻り型: list[ImageRecord]
例
images = client.list_images(user_id="u1", limit=10)
[image.id for image in images]
['img-1']
method list_images_async (非同期)
永続化されたスタンドアロン・イメージ・レコードを非同期的にリストします。
- パラメータ:
- image_id
str– バッキングストアによって返されるレコードを絞り込むために使用されるオプションのイメージ識別子。省略すると、識別子フィルタは適用されません。識別子フィルタは、limitの前に適用されます。 - user_id
str | None– オプションの正確なユーザーフィルタ。省略すると、すべてのユーザーのイメージが返されます。Noneを渡して、ユーザー・スコープのないイメージのみをリストします。None以外のユーザー、エージェントまたはスレッド・スコープが少なくとも1つ必要です。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントのイメージが返されます。Noneを渡して、エージェント・スコープのないイメージのみをリストします。 - thread_id
str | None– オプションの完全スレッドフィルタ。省略すると、すべてのスレッドのイメージが返されます。スレッド・スコープのないイメージのみをリストするには、Noneを渡します。 - metadata_filter
dict[str, Any] | None– イメージ・メタデータに適用されるメタデータ・フィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないイメージのみをリストします。 - include_bytes
bool– 返された各レコードにイメージバイトをロードするかどうか。省略またはFalseの場合、イメージ・バイトはロードされません。image_idおよび少なくとも1つの正確なユーザー、エージェントまたはスレッド・スコープ・フィルタがある場合にのみ、これをTrueに設定します。 - limit
int | None– バッキング・ストアからリクエストされるレコードの最大数(オプション)。省略すると、ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- image_id
- 戻り値:バッキング・ストアで順序付けされた一致するイメージ・レコード。
- 戻り型: list[ImageRecord]
例
images = await client.list_images_async(
user_id="u1",
limit=10,
)
[image.id for image in images]
['img-1']
メソッド list_memories
永続メモリーのようなレコードをリストします。
- パラメータ:
- user_id
str | None– オプションの正確なユーザーフィルタ。省略すると、すべてのユーザーのメモリーが返されます。Noneを渡して、ユーザー・スコープのないメモリーのみをリストします。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントの記憶が戻されます。Noneを渡して、エージェント・スコープのないメモリーのみをリストします。 - thread_id
str | None– オプションの完全スレッドフィルタ。省略すると、スレッドのメモリーが返されます。Noneを渡して、スレッド・スコープのないメモリーのみをリストします。 - metadata_filter
dict[str, Any] | None– メモリーメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないメモリーのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- user_id
- 戻り値:バッキング・ストアによって返されるメモリーに似たレコード(
"memory"、"guideline"、"fact"および"preference"レコードを含む)。 - 戻り型: list[MemoryRecord]
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_memory("User likes pizza.", user_id="u1", memory_id="mem-1")
'mem-1'
[record.id for record in client.list_memories(user_id="u1", limit=10)]
['mem-1']
method list_memories_async (非同期)
永続メモリーに似たレコードを非同期的にリストします。
- パラメータ:
- user_id
str | None– オプションの正確なユーザーフィルタ。省略すると、すべてのユーザーのメモリーが返されます。Noneを渡して、ユーザー・スコープのないメモリーのみをリストします。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントの記憶が戻されます。Noneを渡して、エージェント・スコープのないメモリーのみをリストします。 - thread_id
str | None– オプションの完全スレッドフィルタ。省略すると、スレッドのメモリーが返されます。Noneを渡して、スレッド・スコープのないメモリーのみをリストします。 - metadata_filter
dict[str, Any] | None– メモリーメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないメモリーのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- user_id
- 戻り値:バッキング・ストアによって返されるメモリーに似たレコード(
"memory"、"guideline"、"fact"および"preference"レコードを含む)。 - 戻り型: list[MemoryRecord]
例
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_memory_async("User likes pizza.", user_id="u1", memory_id="mem-1")
records = await client.list_memories_async(user_id="u1", limit=10)
return [record.id for record in records]
anyio.run(main)
['mem-1']
メソッド list_messages
永続チャット・メッセージ・レコードをリストします。
- パラメータ:
- user_id
str | None– オプションの正確なユーザーフィルタ。省略すると、すべてのユーザーのメッセージが返されます。ユーザー・スコープのないメッセージのみをリストするには、Noneを渡します。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントのメッセージが返されます。エージェント・スコープのないメッセージのみをリストするには、Noneを渡します。 - thread_id
str | None– オプションの完全スレッドフィルタ。省略すると、スレッドのメッセージが返されます。Noneを渡して、スレッド・スコープのないメッセージのみをリストします。 - metadata_filter
dict[str, Any] | None– メッセージのメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡すと、メタデータが格納されていないメッセージのみがリストされます。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。 - include_image_bytes
bool– 返されるメッセージに添付されたイメージ部分に、格納されたバイトが含まれているかどうか。省略またはFalseの場合、添付されたイメージ・メタデータは、バイトをロードせずに返されます。バイトをロードするには、Trueに設定します。
- user_id
- 戻り値:バッキング・ストアから返されたメッセージ・レコード。
- 戻り型: list[MessageRecord]
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
thread = client.create_thread(thread_id="c1", user_id="u1")
message_id = thread.add_messages([{"role": "user", "content": "Hello"}])[0]
[record.id for record in client.list_messages(thread_id="c1", limit=10)] == [message_id]
True
method list_messages_async (非同期)
永続化されたチャット・メッセージ・レコードを非同期的にリストします。
- パラメータ:
- user_id
str | None– オプションの正確なユーザーフィルタ。省略すると、すべてのユーザーのメッセージが返されます。ユーザー・スコープのないメッセージのみをリストするには、Noneを渡します。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントのメッセージが返されます。エージェント・スコープのないメッセージのみをリストするには、Noneを渡します。 - thread_id
str | None– オプションの完全スレッドフィルタ。省略すると、スレッドのメッセージが返されます。Noneを渡して、スレッド・スコープのないメッセージのみをリストします。 - metadata_filter
dict[str, Any] | None– メッセージのメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡すと、メタデータが格納されていないメッセージのみがリストされます。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。 - include_image_bytes
bool– 返されるメッセージに添付されたイメージ部分に、格納されたバイトが含まれているかどうか。省略またはFalseの場合、添付されたイメージ・メタデータは、バイトをロードせずに返されます。バイトをロードするには、Trueに設定します。
- user_id
- 戻り値:バッキング・ストアから返されたメッセージ・レコード。
- 戻り型: list[MessageRecord]
例
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
thread = await client.create_thread_async(thread_id="c1", user_id="u1")
message_ids = await thread.add_messages_async(
[{"role": "user", "content": "Hello"}]
)
records = await client.list_messages_async(thread_id="c1", limit=10)
return [record.id for record in records] == message_ids
anyio.run(main)
True
メソッド list_threads
永続化された会話スレッドをリストします。
- パラメータ:
- user_id
str | None– 必要な正確なユーザーフィルタ。ユーザー・スコープのないスレッドのみをリストするには、Noneを渡します。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントのスレッドが返されます。Noneを渡して、エージェント・スコープのないスレッドのみをリストします。 - metadata_filter
dict[str, Any] | None– スレッドメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないスレッドのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- user_id
- 戻り値:バッキング・ストアから返されたスレッド・レコード。
- 戻り型: list[ThreadRecord]
例
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.create_thread(thread_id="c1", user_id="u1").thread_id
'c1'
[record.thread_id for record in client.list_threads(user_id="u1", limit=10)]
['c1']
method list_threads_async (非同期)
永続化された会話スレッドを非同期的にリストします。
- パラメータ:
- user_id
str | None– 必要な正確なユーザーフィルタ。ユーザー・スコープのないスレッドのみをリストするには、Noneを渡します。 - agent_id
str | None– オプションの完全エージェントフィルタ。省略すると、エージェントのスレッドが返されます。Noneを渡して、エージェント・スコープのないスレッドのみをリストします。 - metadata_filter
dict[str, Any] | None– スレッドメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないスレッドのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- user_id
- 戻り値:バッキング・ストアから返されたスレッド・レコード。
- 戻り型: list[ThreadRecord]
例
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.create_thread_async(thread_id="c1", user_id="u1")
records = await client.list_threads_async(user_id="u1", limit=10)
return [record.thread_id for record in records]
anyio.run(main)
['c1']
メソッド list_users
永続ユーザー・プロファイル・レコードをリストします。
- パラメータ:
- metadata_filter
dict[str, Any] | None– ユーザープロファイルメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないプロファイルのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- metadata_filter
- 戻り値:バッキング・ストアから返されたユーザー・プロファイル・レコード。
- 戻りタイプ: list[UserProfileRecord]
例
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'
[record.id for record in client.list_users(metadata_filter={"source": "crm"})]
['u1']
method list_users_async (非同期)
永続ユーザー・プロファイル・レコードを非同期的にリストします。
- パラメータ:
- metadata_filter
dict[str, Any] | None– ユーザープロファイルメタデータに適用されるメタデータフィルタ。省略した場合、メタデータのフィルタリングは適用されません。Noneを渡して、格納されたメタデータがないプロファイルのみをリストします。 - limit
int | None– 返されるレコードの最大数(オプション)。省略すると、バッキング・ストアはデフォルトのリスト上限を適用できます。Noneを渡して、その上限を無効にします。
- metadata_filter
- 戻り値:バッキング・ストアから返されたユーザー・プロファイル・レコード。
- 戻りタイプ: list[UserProfileRecord]
例
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_user_async(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
)
records = await client.list_users_async(metadata_filter={"source": "crm"})
return [record.id for record in records]
anyio.run(main)
['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より少ない場合があります。 - token_budget
int– 最終的にフォーマットされた結果の推定トークン数に対するオプションの強い制限。省略すると、解決された検索構成が使用されます。正の値は完全な結果をランク順に保持し、累積見積は予算に適合します。最初の結果が収まらない場合、結果は返されません。正以外の値は、この出力境界を無効にします。 - soft_token_budget
int– 最終的な書式付き結果の推定トークン数に対するオプションのターゲット。省略すると、解決された検索構成が使用されます。このターゲットに到達または超えた完全な結果が保持されます。非正の値は、このターゲットを無効にします。出力にも絶対制限が必要な場合は、token_budgetを大きい値に設定します。 - record_types
list[str]– 含めるレコード・タイプのオプションのリスト("memory"、"message"、"image"など)。 -
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"}, }, } - include_invalid_results
bool– 結果に無効なステータスのレコードが含まれるかどうか。この引数を省略するか、Trueを渡して含めます。Falseを渡して除外します。 - num_hops
int– 各ダイレクトメモリー結果から従うメモリーリンクエッジの数。0から5までの値がサポートされています。直接の結果の場合のみ省略してください。拡張はどちらの方向にもリンクに従います。 - max_linked_results
int– 各直接結果にアタッチされたすべてのホップ間でリンクされたメモリーの最大数。デフォルトの100を省略し、0を渡してリンクされたコンテキストを返しません。 - 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が使用されます。 - token_budget
int– 最終的にフォーマットされた結果の推定トークン数に対するオプションの強い制限。省略すると、解決された検索構成が使用されます。正の値は完全な結果をランク順に保持し、累積見積は予算に適合します。最初の結果が収まらない場合、結果は返されません。正以外の値は、この出力境界を無効にします。 - soft_token_budget
int– 最終的な書式付き結果の推定トークン数に対するオプションのターゲット。省略すると、解決された検索構成が使用されます。このターゲットに到達または超えた完全な結果が保持されます。非正の値は、このターゲットを無効にします。出力にも絶対制限が必要な場合は、token_budgetを大きい値に設定します。 - record_types
list[str]– 含めるレコード・タイプのオプションのリスト("memory"、"message"、"image"など)。 -
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"}, }, } - include_invalid_results
bool– 結果に無効なステータスのレコードが含まれるかどうか。この引数を省略するか、Trueを渡して含めます。Falseを渡して除外します。 - num_hops
int– 各ダイレクトメモリー結果から従うメモリーリンクエッジの数。0から5までの値がサポートされています。直接の結果の場合のみ省略してください。拡張はどちらの方向にもリンクに従います。 - max_linked_results
int– 各直接結果にアタッチされたすべてのホップ間でリンクされたメモリーの最大数。デフォルトの100を省略し、0を渡してリンクされたコンテキストを返しません。 - 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_image
格納されたイメージ・レコードを識別子で更新します。
- パラメータ:
- image_id
str– 更新するイメージレコードの識別子。 - image
bytes– オプションの置換イメージバイト数。格納されているイメージを置換するバイト数を指定します。省略すると、格納されたイメージは保持されます。 - description
str | None– オプションの置換の説明。省略すると、格納された説明は保持されます。Noneを渡すと、構成されたLLMで新しい説明が生成されます。NULL以外の文字列は、格納された説明と検索可能なテキストを直接置き換えます。 - mime_type
ImageMimeType– 置換イメージバイトのMIMEタイプ。imageとmime_typeを一緒に指定する必要があります。保存されたイメージとMIMEタイプの両方を保持するには、省略します。 - metadata
dict[str, Any] | None– オプションの置換メタデータマッピング。省略すると、格納されたメタデータは保持されます。指定すると、格納されたメタデータ・オブジェクトが置き換えられます。このAPIはメタデータをディープ・マージしません。 - timestamp
str | None– このイメージのオプションの新しいタイムスタンプ。省略すると、格納されているタイムスタンプが保持されます。Noneを渡してクリアします。 - ttl_days
int | None– オプションの有効期限のリフレッシュ(日数)。ttl_anchorとともにこの引数を省略すると、現在の有効期限は変更されません。Noneを渡して有効期限をクリアします。メッセージに添付されたイメージの有効期限は、親メッセージを通じて変更する必要があります。 - ttl_anchor
TimeToLiveAnchor– 有効期限リフレッシュのオプションの存続時間アンカー。ttl_daysを指定せずにttl_anchorを指定すると、スキーマのデフォルトの存続期間が使用されます。リフレッシュ中に省略した場合、ストアはTimeToLiveAnchor.CREATED_ATを使用します。 - **kwargs (Any)– 予期しないキーワード引数は、実装によって拒否されます。
- image_id
- 戻り値:更新されたイメージ・レコードの識別子。
- 戻り型: str
- Raises: ValueError– メッセージに添付されたイメージに有効期限設定が指定されている場合。
ノート
省略されたフィールドは変更されません。スコープの更新は、このAPIではサポートされていません。メタデータの置換はオブジェクト全体の置換であり、再帰的なJSONマージではありません。
method update_image_async (非同期)
構成済ストアを介して1つのスタンドアロン・イメージを更新します。
既存のバイトを保持するには、imageを省略します。imageを指定する場合は、mime_typeを指定する必要があります。既存の説明を保持するには、descriptionを省略します。Noneを渡して、構成されたLLMで新しい説明を生成します。nullでない説明によって、その説明が直接置き換えられます。メタデータ、タイムスタンプおよび有効期限の設定は、指定すると更新されます。
- パラメータ:
- image_id
str– 更新するイメージの識別子。 - image
bytes– オプションの置換rawイメージバイト。 - description
str | None– オプションの置換の説明。現在の説明を保持するには、これを省略します。Noneを渡して、構成されたLLMで新しい説明を生成します。 - mime_type
ImageMimeType– 置換イメージバイトが指定されている場合に必要なMIMEタイプ。 - metadata
dict[str, Any] | None– オプションの置換メタデータ。 - timestamp
str | None– オプションの置換イベントタイムスタンプ。 - ttl_days
int | None– オプションの有効期限設定。これらは、イメージがメッセージに添付されている場合、この方法では変更できません。 - ttl_anchor
TimeToLiveAnchor– オプションの有効期限設定。これらは、イメージがメッセージに添付されている場合、この方法では変更できません。 - kwargs
Any
- image_id
- 戻り値:更新されたイメージ識別子。
- 戻り型: str
- Raises: ValueError– メッセージに添付されたイメージに有効期限設定が指定されている場合。
メソッド update_memory
格納されているメモリーに似たレコードを識別子で更新します。
- パラメータ:
- memory_id
str– 更新するメモリーに似たレコードの識別子。 - content
str– オプションの置換コンテンツ。格納されているコンテンツを置換する文字列を指定します。省略すると、格納されたコンテンツは保持されます。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として扱われます。 - status
RecordStatus– このメモリーに似たレコードの置換ライフサイクルステータス(オプション)。現在のステータスを保持するには、これを省略します。 - **kwargs (Any)– 予期しないキーワード引数が拒否されます。
- memory_id
- 戻り値:更新されたメモリーに似たレコードの識別子。
- 戻り型: str
ノート
省略されたフィールドは、格納されたレコードから保持されます。ストアド・スコープは変更されません。メタデータの置換はオブジェクト全体の置換であり、再帰的なJSONマージではありません。
method update_memory_async (非同期)
格納されたメモリーに似たレコードを識別子で非同期的に更新します。
- パラメータ:
- memory_id
str– 更新するメモリーに似たレコードの識別子。 - content
str– オプションの置換コンテンツ。格納されているコンテンツを置換する文字列を指定します。省略すると、格納されたコンテンツは保持されます。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として扱われます。 - status
RecordStatus– このメモリーに似たレコードの置換ライフサイクルステータス(オプション)。現在のステータスを保持するには、これを省略します。 - **kwargs (Any)– 予期しないキーワード引数が拒否されます。
- memory_id
- 戻り値:更新されたメモリーに似たレコードの識別子。
- 戻り型: str
ノート
省略されたフィールドは、格納されたレコードから保持されます。ストアド・スコープは変更されません。メタデータの置換はオブジェクト全体の置換であり、再帰的なJSONマージではありません。
例
import asyncio
memory_id = asyncio.run(client.add_memory_async("Original memory"))
(
asyncio.run(client.update_memory_async(
memory_id, content="Updated memory"
))
== memory_id
)
True
メソッド update_record_link
格納されている1つのリレーションの可変フィールドを更新します。
省略された値は保持されます。relation_typeが組込みメモリー・リレーション型に変更されると、その固定逆ラベルがopposite_relation_typeに置換されます。timestampにNoneを渡すか、metadataを渡してその値をクリアします。
- パラメータ:
- relation_id
str– 更新するリレーションの識別子。 - relation_type
str– オプションの置換ソースとターゲットのラベル。 - opposite_relation_type
str– オプションの置換逆方向ラベル。格納されているラベルを保持するには、これを省略します。 - timestamp
str | None– オプションの置換タイムスタンプ。Noneを渡してクリアします。 - metadata
dict[str, Any] | None– オプションの置換メタデータ。格納されたオブジェクトを置き換えます。
- relation_id
- 戻り値:更新されたリレーションの数(
0または1)。 - 戻り型: int
例
client.update_record_link("relation-id", relation_type="supports")
1
method update_record_link_async (非同期)
1つのストアド・リレーションを非同期的に更新します。
- パラメータ:
- relation_id
str - relation_type
str - opposite_relation_type
str - タイムスタンプ
str | None - メタデータ
dict[str, Any] | None
- relation_id
- 戻り型: int
メソッド 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インスタンスおよびそれ以降のバックグラウンド抽出ジョブで使用されます。省略されたフィールドは、保存された値が存在する場合、その値が保持されます。イメージ・コンテキスト設定が永続化される前に作成されたスレッドは、保存されたイメージ・コンテキストが存在しない場合、クライアント値、DISABLEDにフォールバックします。 - image_input_limit_config
ImageInputLimitConfig– オプションの永続rawイメージおよびLLMイメージ要求制限の更新。省略されたフィールドは格納された値を保持します。指定したフィールドは、後でロードされたスレッド・インスタンスによって使用されます。 - search_config
MemorySearchConfig– スレッド用に格納するオプションの検索構成。指定された構成は、後続のロード済スレッド・インスタンスによって使用されます。 - **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
method update_thread_async (非同期)
更新されたスレッド・メタデータと永続的なランタイム構成を非同期に保持します。
- パラメータ:
- thread_id
str– 更新するスレッドの識別子。 - metadata
dict[str, Any] | None– 会話スレッドのオプションのメタデータ更新。省略すると、格納されたメタデータは変更されません。Noneを渡すと、格納されているメタデータが明示的にクリアされます。マッピングを指定すると、格納されているメタデータ・オブジェクトが置換されます。 - **kwargs (Any)–
update_thread()によって受け入れられる、耐久性のある追加の実行時構成更新および呼び出しごとのオーバーライド。
- thread_id
- 戻り値:永続メタデータおよびランタイム構成を反映して
OracleThreadインスタンスを更新しました。 - 戻りタイプ: OracleThread
メソッド 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– 以前のバックグラウンド抽出が終了する前にタイムアウトが期限切れになると発生します。
- 戻り型:なし
例
import asyncio
asyncio.run(client.wait_for_memory_extraction_async(timeout=10))
イメージ入力制限
クラス oracleagentmemory.core.ImageInputLimitConfig
ベース: object
RAWイメージおよびLLMイメージ・リクエスト制限を構成します。
省略されたフィールドは、次の広範な構成スコープから継承されます。クライアント・フィールドはSDKのデフォルトを継承しますが、スレッドごとのフィールドはクライアント構成を継承します。検証を無効にできず、解決された値はSDKの絶対maximaを超えることはできません。
- パラメータ:
- max_raw_image_bytes
int–1つのイメージの最大rawバイト長。SDKのデフォルトは10MiBで、絶対最大は32MiBです。 - max_images_per_llm_request
int–1つのLLMリクエスト内の最大イメージ数。SDKのデフォルトは100で、絶対最大は512です。 - max_total_raw_image_bytes_per_llm_request
int–1つのLLMリクエストにおけるイメージの最大結合rawバイト長。テキスト、メタデータ、JSONフレーミングおよびbase64拡張は除外されます。SDKのデフォルトは100MiBで、絶対最大は256MiBです。
- max_raw_image_bytes
例
from oracleagentmemory.core import ImageInputLimitConfig
config = ImageInputLimitConfig(
max_raw_image_bytes=16 * 1024 * 1024,
max_images_per_llm_request=200,
)
メモリー抽出
クラス oracleagentmemory.core.MemoryExtractionImageContext
ベース: str、Enum
イメージが自動メモリー抽出にどのように関与するかを選択します。
DISABLEDは、抽出プロンプトからイメージおよびイメージの説明を省略します。イメージは、元のイメージ・パーツを送信します。CAPTIONはイメージの説明をテキストとして送信し、選択したすべてのイメージに空白でない説明が必要です。
キャプション = 'CAPTION'
説明をテキストとして含め、選択したイメージごとに1つ必要です。
DISABLED = 'DISABLED'
抽出プロンプトにイメージまたはイメージの説明を含めないでください。
イメージ = 'IMAGE'
元のイメージ・パーツを抽出プロンプトに含めます。
MEMORY = 'MEMORY'
イメージ固有のメモリー抽出は現在サポートされていません。
クラス oracleagentmemory.core.MemoryExtractionConfig
ベース: object
自動メモリー抽出のグループ化された設定。
このオブジェクトをOracleAgentMemory、create_thread、get_threadまたはupdate_threadに渡して、自動抽出を構成します。extraction_modeおよびバックグラウンド・キューの設定により、イメージ説明の自動生成も制御されます。各フィールドは独立して変換されます。操作に指定された値が優先され、その後に保存されたスレッド値、クライアント値および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_link_extraction_custom_instructions
str | None– 自動リンク解決システムプロンプトに追加されるオプションの呼び出し元命令。Noneをupdate_threadに渡して、格納されているスレッド・レベルの命令をクリアします。省略した場合は、前述の解決順序を使用します。memory_link_extraction_modeがMemoryLinkExtractionMode.DISABLEDの場合、この設定は無視されます。 - memory_extraction_image_context
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionImageContext– 抽出時に使用されるイメージ表現を選択します。DISABLEDは、プロンプトからイメージおよびイメージの説明を省略し、IMAGEはRAWイメージの部分を送信し、CAPTIONはイメージの説明をテキストとして送信し、選択したすべてのイメージに空白以外の説明が必要です。MEMORYは現在サポートされていません。省略した場合は、保存されたスレッド値、クライアント値、DISABLEDを使用します。このフィールドを省略しても、イメージ処理は有効になりません。 - 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()は、後のメモリー読取りが更新されたメッセージ・コンテンツを反映する前に戻すことができます。省略した場合は、前述の解決順序を使用します。SDKのデフォルトはBACKGROUNDです。extract_memories=Falseを設定すると、メモリーの抽出は無効になりますが、イメージ記述の生成は無効になりません。 - memory_link_extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryLinkExtractionMode– 新規に抽出されたメモリーについて、既存のメモリーへのリンクを解決する方法。DURING_EXTRACTIONは、抽出リクエストにバインドされた候補を含めます。POST_EXTRACTIONは、抽出バッチに対して1つの追加リンク解決要求を使用します。DISABLEDでは、自動リンクは作成されません。省略した場合は、前述の解決順序を使用します。SDKのデフォルトはPOST_EXTRACTIONです。 - memory_link_extraction_token_limit
int–1つの抽出パス内のすべての抽出後リンク解決要求の入力トークン予算の合計。1未満の値は、プロンプト予算を無効にします。memory_link_extraction_modeがDURING_EXTRACTIONまたはDISABLEDの場合、この設定は無視されます。add_memory(autonomous_linking=True)へのコールでは、抽出モードとは関係なく、同じストア後リゾルバおよび予算が使用されます。省略した場合は、前述の解決順序を使用します。 - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior– バックグラウンドモードでは、自動抽出またはイメージ記述生成がすぐにキューに入れられない場合に行われる処理を制御します。DROPは警告をログに記録し、待機せずに続行します。WAIT_THEN_DROPは、構成されたタイムアウトまでのキュー容量を待機してから、警告を記録して続行します。WAIT_THEN_RAISEは、構成されたタイムアウトまでのキュー容量を待機してから、RAW書込みが成功した後、TimeoutErrorを呼び出します。省略した場合は、前述の解決順序を使用します。SDKのデフォルトはDROPです。 - background_extraction_queue_put_timeout_seconds
float– バックグラウンド・モードでは、background_extraction_queue_full_behaviorがWAIT_THEN_DROPまたはWAIT_THEN_RAISEの場合、自動抽出またはイメージ記述生成がキュー容量を待機する最大秒数。省略した場合は、前述の解決順序を使用します。SDKのデフォルトは、300.0秒。
- memory_extraction_window
例
from oracleagentmemory.core import (
MemoryExtractionImageContext,
MemoryExtractionConfig,
MemoryExtractionMode,
MemoryLinkExtractionMode,
)
config = MemoryExtractionConfig(
extract_memories=True,
memory_extraction_image_context=MemoryExtractionImageContext.CAPTION,
extraction_mode=MemoryExtractionMode.BACKGROUND,
memory_link_extraction_mode=MemoryLinkExtractionMode.POST_EXTRACTION,
memory_link_extraction_token_limit=8_000,
)
抽出またはイメージの説明がすぐにキューに入れられない場合の処理。
省略された値はDROPに解決されます。
キュー容量を待機モードで待機するバックグラウンド作業の最大秒数。
省略された値は300.0秒に解決されます。
自動リフレッシュ前の、最新の有効なサマリー後のメッセージ。
0以下の値は、チェックごとにリフレッシュされます。
OAMがスレッド読取りおよび抽出プロンプトのコンテキスト・サマリーを保持するかどうか。
抽出とイメージの説明をインラインで実行するか、バックグラウンドで実行するか。
省略された値はBACKGROUNDに解決されます。
抽出実行間のメッセージ。0未満の値は、追加するたびに抽出されます。
イメージ表現。省略はスレッド、クライアント、DISABLEDに解決されます。
ソース・メッセージ・メタデータが抽出されたメモリーにコピーされました。
プロンプトの入力トークン予算。1未満の値は制限を無効にします。
抽出プロンプトに使用される最近のメッセージ・ウィンドウ。-1では、新しいメッセージのみが使用されます。
自動リンク解決プロンプトに追加されるオプションのコール元命令。
抽出された記憶に対する自動リンクの解決方法。
省略された値はPOST_EXTRACTIONに解決されます。
POST_EXTRACTIONリンク解決の入力トークン予算合計。
1未満の値は、制限を無効にします。
クラス oracleagentmemory.core.MemoryExtractionMode
ベース: str、Enum
自動抽出およびイメージの説明を実行するタイミングを制御します。
INLINEは、書込みメソッドが返される前に導出された作業を完了します。BACKGROUNDは、RAW書込みが成功した後、その動作をキューに入れようとします。バックグラウンド・ワークはベスト・エフォートです。生成された説明と導出された記憶は後で表示されるか、完了できない場合は決して書き込まれない可能性があります。
背景 = '背景'
raw書き込みおよびバックグラウンドでの派生作業の実行後に戻ります。
インライン = 'インライン'
書込みが戻される前に、完全な抽出およびイメージの説明。
クラス oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
ベース: str、Enum
構成されたバックグラウンド作業が時間内にキューに入れられない場合の動作を制御します。
抽出固有の名前にもかかわらず、この設定はバックグラウンド・モードでのイメージ説明の自動生成にも適用されます。
= 'DROP'を削除します
警告を記録し、キュー容量が使用不可になったらすぐに続行します。
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
構成されたタイムアウトまでのキュー容量を待ってから、警告を記録して続行します。
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
構成されたタイムアウトまでのキュー容量を待機してから、TimeoutErrorを呼び出します。