에이전트 메모리
이 페이지에서는 구체적인 Oracle AI Agent Memory 구현을 제공합니다.
Oracle 에이전트 메모리
주: OracleAgentMemory.delete_thread()는 스레드 범위의 계단식 정리에 대해 지원되는 경로입니다. 연관된 메시지, 내구성 있는 메모리 및 관리되는 검색 데이터와 함께 스레드를 제거합니다. 원시 메시지 행만 삭제하는 OracleThread.delete_message()보다 큽니다. 클라이언트 레벨 삭제는 관련 이전 백그라운드 추출을 기다립니다. 스레드 삭제는 해당 스레드에 대해 대기하고, 메모리 삭제는 저장된 대상의 스레드가 있을 때 대기하며, 캐스케이드 정리가 사용으로 설정되었는지 여부에 관계없이 사용자 또는 에이전트 삭제는 알려진 소유 스레드를 기다립니다. 이러한 대기는 대기가 시작되기 전에 동일한 클라이언트가 수락한 작업만 포함합니다.
클래스 oracleagentmemory.core.OracleAgentMemory
기준: IAgentMemory
Oracle DB 또는 호출자가 제공한 저장소에서 지원하는 에이전트 메모리 클라이언트입니다.
메모리 클라이언트를 만듭니다.
- 매개변수:
- store
OracleMemoryStore– 미리 구성된 저장소 인스턴스(선택사항)입니다. 제공된 경우 클라이언트는 자체 저장소를 인스턴스화하는 대신 이 저장소를 직접 사용합니다. 이 기능은 호출자가OracleAgentMemory에 의해 표시되는 생성자 옵션 이상으로 저장소 구성을 필요로 하는 경우에 유용합니다. - connection
object– 선택적 Oracle DB 연결/풀입니다. 제공된 경우 DB 저장소가 사용됩니다. 원시 연결을 전달하면 이 클라이언트 Instance에 대해 단일 세션 모드가 활성화되므로 동시 요청에서는 대신 연결 풀을 사용해야 합니다. 생략할 경우 호출자는 명시적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– 선택적 클라이언트 레벨 원시 이미지 및 LLM 이미지 요청 제한입니다. 생략된 필드는 SDK 기본값을 사용하며 스레드가 재정의를 제공하지 않는 한 스레드에서 상속됩니다. 검증을 사용 안함으로 설정할 수 없습니다. - schema_policy
SchemaPolicy | str–connection에서 DB 저장소를 구성할 때만 사용되는 DB 스키마 설정 정책입니다. 기본값은SchemaPolicy.REQUIRE_EXISTING입니다. 기존 스키마에서 키워드 또는 하이브리드 검색을 먼저 사용으로 설정하거나 지원되는 이전 릴리스 관리 스키마를 열 때 SDK가 비파괴적 스키마 업그레이드를 적용하고 필요한 텍스트 검색 객체를 추가할 수 있도록SchemaPolicy.CREATE_IF_NECESSARY를 사용합니다. 현재 릴리스 구성을 이미 주장하는 개발 또는 부분 업데이트된 스키마를 대신 재생성해야 합니다.schema_owner가 설정된 경우SchemaPolicy.REQUIRE_EXISTING만 허용됩니다. 이렇게 하면 스키마 생성, 업그레이드, 재생성 및 첫번째 하이브리드 인덱스 생성을 포함하여 관리 스키마 DDL을 방지하고,schema_owner없이 소유 데이터베이스 사용자로 연결된 상태에서 해당 작업을 수행합니다. 클라이언트는 읽기 전용으로 만들지 않습니다. 일반 메모리 읽기 및 쓰기는 사용자에게 부여된 연결 데이터베이스 권한을 사용합니다. - memory_store_id
str–connection에서 DB 저장소를 구성할 때만 사용되는 관리 DB 메모리 저장소의 안정적 ID입니다. 동일한 ID를 재사용하여 동일한 관리 저장소를 다시 엽니다. ID는 밑줄로 관리되는 DB 객체 이름에 조인되므로 문자로 시작하고 문자, 숫자 및 밑줄만 포함해야 하며 최대 16자여야 합니다. DB 저장소는 대문자로 정규화하므로 대소문자는 다른 저장소 ID를 생성하지 않습니다. 이 항목 또는table_name_prefix중 하나만 전달합니다. 생략할 경우 DB 저장소는table_name_prefix도 생략할 때table_name_prefix또는 접두어가 없는 기본값을 사용합니다. -
table_name_prefix
str–connection에서 DB 저장소를 생성할 때만 사용되는 선택적 DB 테이블/인덱스 접두어입니다. 이 항목 또는memory_store_id중 하나만 전달합니다.지원 중단됨
버전 26.6.0 이후 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_store_id를 사용하십시오. - schema_owner
str– 기존 관리 메모리 저장소에 대한 선택적 스키마 소유자입니다. 접속 사용자의 스키마를 사용하려면 이 옵션을 생략합니다. 원시 데이터베이스 연결 또는 연결 풀인connection가 다른 사용자가 소유한 테이블에 대한 권한이 있는 애플리케이션 DB 사용자에게 속한 경우 사용합니다. 이 옵션은 이미 생성된 관리 메모리 저장소에 대한 런타임 액세스에만 사용되며SchemaPolicy.REQUIRE_EXISTING가 필요합니다. 스키마 소유자로 연결된 상태에서 관리 메모리 저장소를 생성, 업그레이드 또는 재생성하고 이 옵션을 생략합니다. 따옴표로 묶지 않은 식별자를 전달합니다. 소문자 입력은 대문자로 정규화되고 따옴표로 묶인 스키마 소유자는 지원되지 않습니다. 사전 구성된store를 전달할 경우 대신 해당 저장소에서schema_owner를 구성합니다. 응용 프로그램 DB 사용자에게CREATE SESSION및 필요한 객체 권한을 부여합니다. 정확한 권한 부여는 문제 해결 설명서의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를 사용할 경우 명시적 구성은 기존 최신 관리 스키마에서 저장된 메타데이터를 새로 고치지만 기존 만료 날짜를 업데이트하지 않습니다. 생략하면 기존 설정이 유지됩니다. 명시적 구성이default_ttl_days또는max_ttl_days를NOT_SET_MARKER에 남겨 두는 경우 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는 인덱스가 존재하는 후의 지속적인 유지 관리를 제어하며 첫번째 인덱스가 비동기적으로 생성되지 않습니다.
- 확장: ValueError – 충돌하는 저장소 구성(예:
store및connection모두 전달, DB 연결 없이 DB 특정 옵션 또는store및connection모두 생략)이 제공되는 경우 - 매개변수:
- 스토어
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
- 스토어
예제
다른 데이터베이스 사용자가 생성한 스키마에 액세스하려면 애플리케이션 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,
)
DB 내 임베딩 모델을 사용하여 Oracle 하이브리드 인덱스 검색 활용:
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– 에이전트 식별자입니다. - 정보
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– 에이전트 식별자입니다. - 정보
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– 호출자가 제공하는 안정적인 식별자입니다(선택 사항). 생략하면 하나가 생성됩니다. - user_id
str | None– 선택적 사용자 소유자입니다.user_id,agent_id또는thread_id중 하나 이상을 제공합니다. 세 가지 모두None일 수는 없습니다. - agent_id
str | None– 이미지와 연결할 선택적 에이전트 식별자입니다. - thread_id
str– 이미지와 연결할 선택적 스레드 식별자입니다. - metadata
dict[str, Any] | None– 이미지 행과 함께 지속되는 선택적 메타데이터입니다. - timestamp
str | None– 이 이미지에 대해 저장할 선택적 이벤트 시간 기록입니다. 이 인수를 생략하거나None를 전달하여NULL이벤트 시간 기록을 저장합니다. 이미지를 읽으면 생성 시간이 유효 시간 기록으로 반환됩니다. - ttl_days
int | None– 선택적 TTL 기간(일)입니다. 스키마 기본 TTL 기간을 사용하려면 이 인수를 생략하십시오.None를 전달하여 만료되지 않는 이미지를 저장합니다. - ttl_anchor
TimeToLiveAnchor– 선택적 TTL(Time-to-Live) 앵커 데이터베이스 생성 시간에TimeToLiveAnchor.CREATED_AT를 사용하고 이미지 시간 기록에TimeToLiveAnchor.TIMESTAMP를 사용합니다. - **store_kwargs(임의) – 보조 기억 장치로 전달된 구현별 쓰기 옵션입니다.
- 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(비동기)
구성된 저장소를 통해 하나의 독립형 이미지를 유지합니다.
description가 생략되거나 None인 경우 구성된 LLM이 캡션을 생성합니다.
- 매개변수:
- image
bytes– 지속할 원시 이미지 바이트입니다. - description
str | None– 선택적 설명 또는 캡션입니다. 캡션을 생성하려면 생략합니다. - mime_type
ImageMimeType– 이미지 지속성 및 캡션 생성에 사용되는 선택적 MIME 유형입니다. 생략할 경우 SDK는 이미지 바이트에서 유형을 감지하고 검증합니다. 지원되는 감지 유형은 PNG, JPEG 및 WEBP입니다. - image_id
str– 선택적 식별자입니다. 하나는 생략될 때 생성됩니다. - user_id
str | None– 소유자 범위 식별자입니다. 하나 이상의 값은None가 아니어야 합니다.thread_id가 제공되면 저장된 사용자 및 에이전트 소유권은 신뢰할 수 있으며, 생략된 사용자 및 에이전트 값이 상속됩니다. - agent_id
str | None– 소유자 범위 식별자 하나 이상의 값은None가 아니어야 합니다.thread_id가 제공되면 저장된 사용자 및 에이전트 소유권은 신뢰할 수 있으며, 생략된 사용자 및 에이전트 값이 상속됩니다. - thread_id
str– 소유자 범위 식별자입니다. 하나 이상의 값은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– 선택적 TTL 기간(일)입니다. 스키마 기본 TTL 기간을 사용하려면 이 인수를 생략하십시오. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 만료되지 않는 메모리를 저장하려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. - ttl_anchor
TimeToLiveAnchor– 선택적 TTL(Time-to-Live) 앵커 데이터베이스 생성 시간에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– 선택적 TTL 기간(일)입니다. 스키마 기본 TTL 기간을 사용하려면 이 인수를 생략하십시오. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 만료되지 않는 메모리를 저장하려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. - ttl_anchor
TimeToLiveAnchor– 선택적 TTL(Time-to-Live) 앵커 데이터베이스 생성 시간에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()가 반환됩니다. 메소드는 idempotent입니다.
- 매개변수: 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– 이 스레드 레코드에 연결된 에이전트 식별자입니다. 생략할 경우 새 항목이 생성됩니다. - 메타데이터
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– 스레드별 원시 이미지 및 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–메모리 추출 중 포함할 최근 메시지 수입니다. 새로 추가된 메시지의 전체 일괄 처리를 사용하여
add_messages호출당 하나의 추출을 수행하려면-1으로 설정합니다. 생략할 경우 기본값은-1입니다.지원 중단됨
버전 26.6.0 이후 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
context_summary_update_frequency
int–최근 적합한 요약 후 자동으로 새로고침되기 전의 메시지 수입니다. 메모리 추출이 활성화된 경우 검사는 만기될 때마다 수행되므로 나중에 Refresh가 발생할 수 있습니다. 모든 검사 시
0보다 작거나 같은 값이 새로 고쳐집니다. 생략할 경우 기본값은-1입니다.지원 중단됨
버전 26.6.0 이후 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
memory_extraction_frequency
int–메모리 추출 업데이트의 빈도입니다. 새로 추가된 메시지의 전체 일괄 처리를 사용하여
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(임의) – 추가 구현별 스레드 옵션입니다.
- 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– 이 스레드 레코드에 연결된 에이전트 식별자입니다. 생략할 경우 새 항목이 생성됩니다. - 메타데이터
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– 스레드별 원시 이미지 및 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–메모리 추출 중 포함할 최근 메시지 수입니다. 새로 추가된 메시지의 전체 일괄 처리를 사용하여
add_messages호출당 하나의 추출을 수행하려면-1으로 설정합니다. 생략할 경우 기본값은-1입니다.지원 중단됨
버전 26.6.0 이후 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
context_summary_update_frequency
int–최근 적합한 요약 후 자동으로 새로고침되기 전의 메시지 수입니다. 메모리 추출이 활성화된 경우 검사는 만기될 때마다 수행되므로 나중에 Refresh가 발생할 수 있습니다. 모든 검사 시
0보다 작거나 같은 값이 새로 고쳐집니다. 생략할 경우 기본값은-1입니다.지원 중단됨
버전 26.6.0 이후 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
memory_extraction_frequency
int–메모리 추출 업데이트의 빈도입니다. 새로 추가된 메시지의 전체 일괄 처리를 사용하여
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(임의) – 추가 구현별 스레드 옵션입니다.
- 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
- 발생: TimeoutError – 내부 삭제 대기 시간이 초과되기 전에 이미 알려진 소유 스레드에 대해 이전에 수락된 백그라운드 추출이 완료되지 않은 경우 발생합니다.
노트
프로파일을 삭제하기 전에 이 메소드는 이 에이전트 메모리 구성 요소를 통해 알려진 소유 스레드에 대해 이미 수락된 이전 백그라운드 추출에 대해 최대 300초 동안 기다립니다. 이 대기는 계단식 정리가 사용으로 설정되었는지 여부에 관계없이 적용됩니다. 계단식 정리는 백업 저장소 내에서 하나의 작업으로 계획되고 실행됩니다. 이 메소드는 대기가 시작된 후 또는 다른 에이전트 메모리 구성 요소나 프로세스에 의해 시작된 작업을 위해 수락된 작업을 기다리지 않습니다. 삭제가 진행 중인 동안의 동시 작업자 범위 사용이 지원되지 않습니다.
예제
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(비동기)
ID별로 비동기식으로 에이전트 프로파일 레코드를 삭제합니다.
- 매개변수:
- agent_id
str– 프로파일을 제거해야 하는 에이전트 식별자입니다. - cascade
bool–True(기본값)인 경우 이 에이전트에 범위가 지정된 레코드도 삭제합니다. 여기에는 소유한 스레드 자체 삭제, 해당 스레드에서 제거된 메시지 및 메모리 유사 레코드, 메시지, 메모리, 지침, 팩트 또는 기본 설정과 같은 나머지 직접 에이전트 범위 레코드가 포함됩니다. 이 범위의 정리는 일치하는 에이전트 프로파일 행이 이미 없을 때 계속 실행됩니다. 프로파일 레코드만 제거하려면False로 설정합니다.
- agent_id
- 반환: 삭제된 에이전트 프로파일 행 수(
0또는1)입니다. 계단식 정리 중 범위가 지정된 행이 제거된 경우에도0일 수 있습니다. - 반품 유형: int
- 발생: 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(비동기)
구성된 저장소를 통해 하나의 독립형 이미지를 삭제합니다.
- 매개변수: image_id
str– 삭제할 이미지의 식별자입니다. - 반환: 삭제된 경우
1, 그렇지 않은 경우 일치하는 이미지가 없을 경우0를 반환합니다. - 반품 유형: int
- Raises: ValueError – 이미지가 메시지에 연결된 경우입니다. 대신 상위 메시지를 삭제하거나 업데이트하십시오.
방법 delete_memory
메모리 유사 레코드(예: 메모리, 팩트, 기본 설정 또는 지침)를 식별자로 삭제합니다.
- 매개변수: memory_id
str– 메모리 식별자입니다. 식별자는 저장된memory,guideline,fact또는preference레코드를 참조할 수 있습니다. - 반환: 삭제된 메모리 유사 행 수(
0또는1)입니다. - 반품 유형: int
- 발생: 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
- 발생: 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
- 발생: TimeoutError – 내부 삭제 대기 시간이 초과되기 전에 이 스레드에 대해 이전에 수락된 백그라운드 추출이 완료되지 않을 때 발생합니다.
노트
스레드의 보존-완료 제거가 필요한 경우 이 작업을 사용합니다. 보조 저장소는 연관된 스레드 범위의 메시지, 영구 메모리와 관리되는 검색 데이터와 함께 스레드를 삭제합니다. 이는 원시 메시지 레코드만 제거하고 해당 메시지에서 생성된 파생된 메모리에 캐스케이드하지 않는 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
- 발생: TimeoutError – 내부 삭제 대기 시간이 초과되기 전에 이 스레드에 대해 이전에 수락된 백그라운드 추출이 완료되지 않을 때 발생합니다.
노트
스레드의 보존-완료 제거가 필요한 경우 이 작업을 사용합니다. 보조 저장소는 연관된 스레드 범위의 메시지, 영구 메모리와 관리되는 검색 데이터와 함께 스레드를 삭제합니다. 이는 원시 메시지 레코드만 제거하고 해당 메시지에서 생성된 파생된 메모리에 캐스케이드하지 않는 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
- 발생: TimeoutError – 내부 삭제 대기 시간이 초과되기 전에 이미 알려진 소유 스레드에 대해 이전에 수락된 백그라운드 추출이 완료되지 않은 경우 발생합니다.
노트
프로파일을 삭제하기 전에 이 메소드는 이 에이전트 메모리 구성 요소를 통해 알려진 소유 스레드에 대해 이미 수락된 이전 백그라운드 추출에 대해 최대 300초 동안 기다립니다. 이 대기는 계단식 정리가 사용으로 설정되었는지 여부에 관계없이 적용됩니다. 계단식 정리는 백업 저장소 내에서 하나의 작업으로 계획되고 실행됩니다. 이 메소드는 대기가 시작된 후 또는 다른 에이전트 메모리 구성 요소나 프로세스에 의해 시작된 작업을 위해 수락된 작업을 기다리지 않습니다. 삭제가 진행 중인 동안의 동시 작업자 범위 사용이 지원되지 않습니다.
예제
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
- 발생: 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– 선택적 원시 이미지 및 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– 선택적 원시 이미지 및 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
저장된 두 레코드 간에 지시된 관계를 생성합니다.
현재 두 끝점은 메모리와 유사한 레코드("memory", "fact", "guideline" 또는 "preference")여야 합니다. 기본 제공 관계 유형은 "supersedes"("is_superseded_by"), "contradicts", "refines"("is_refined_by"), "supports"("is_supported_by") 및 "duplicates"입니다. "contradicts" 및 "duplicates"는 동일한 레이블을 역방향으로 사용합니다.
끝점 쌍에 대해 하나의 방향만 저장할 수 있습니다. 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이 아닌 사용자, 에이전트 또는 스레드 범위가 하나 이상 필요합니다. - agent_id
str | None– 선택적 정확한 에이전트 필터입니다. 생략하면 에이전트의 이미지가 반환됩니다. 에이전트 범위가 없는 이미지만 나열하려면None를 전달합니다. - thread_id
str | None– 선택적 정확한 스레드 필터입니다. 생략하면 스레드에 대한 이미지가 반환됩니다. 스레드 범위가 없는 이미지만 나열하려면None를 전달합니다. - metadata_filter
dict[str, Any] | None– 이미지 메타데이터에 적용된 메타데이터 필터입니다. 생략할 경우 메타데이터 필터링이 적용되지 않습니다. 저장된 메타데이터가 없는 이미지만 나열하려면None를 전달합니다. - include_bytes
bool– 반환된 각 레코드에서 이미지 바이트를 로드할지 여부입니다. 생략하거나False인 경우 이미지 바이트가 로드되지 않습니다.image_id및 하나 이상의 정확한 사용자, 에이전트 또는 스레드 범위 필터를 사용하여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이 아닌 사용자, 에이전트 또는 스레드 범위가 하나 이상 필요합니다. - agent_id
str | None– 선택적 정확한 에이전트 필터입니다. 생략하면 에이전트의 이미지가 반환됩니다. 에이전트 범위가 없는 이미지만 나열하려면None를 전달합니다. - thread_id
str | None– 선택적 정확한 스레드 필터입니다. 생략하면 스레드에 대한 이미지가 반환됩니다. 스레드 범위가 없는 이미지만 나열하려면None를 전달합니다. - metadata_filter
dict[str, Any] | None– 이미지 메타데이터에 적용된 메타데이터 필터입니다. 생략할 경우 메타데이터 필터링이 적용되지 않습니다. 저장된 메타데이터가 없는 이미지만 나열하려면None를 전달합니다. - include_bytes
bool– 반환된 각 레코드에서 이미지 바이트를 로드할지 여부입니다. 생략하거나False인 경우 이미지 바이트가 로드되지 않습니다.image_id및 하나 이상의 정확한 사용자, 에이전트 또는 스레드 범위 필터를 사용하여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"는 하나의 값 또는 목록의 모든 값과 일치합니다."$array_contains_any"는 목록의 하나 이상의 값과 일치합니다."$not"는 연산자 딕셔너리 또는 원시 정확한 일치 값을 포함하여 동일한 필드에서 다른 필드 레벨 표현식을 부정합니다. 누락된 필드를 포함하여 양수 표현식이 실패할 때 음수 표현식이 일치합니다. 음수 배열 멤버쉽도 배열이 아닌 필드와 일치합니다.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]
- 확장: 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"는 하나의 값 또는 목록의 모든 값과 일치합니다."$array_contains_any"는 목록의 하나 이상의 값과 일치합니다."$not"는 연산자 딕셔너리 또는 원시 정확한 일치 값을 포함하여 동일한 필드에서 다른 필드 레벨 표현식을 부정합니다. 누락된 필드를 포함하여 양수 표현식이 실패할 때 음수 표현식이 일치합니다. 음수 배열 멤버쉽도 배열이 아닌 필드와 일치합니다.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]
- 확장: 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– 선택적 대체 이미지 바이트입니다. 저장된 이미지를 바꿀 바이트를 제공합니다. 생략하면 저장된 이미지가 보존됩니다. - 설명
str | None– 선택적 대체 설명입니다. 생략하면 저장된 설명이 보존됩니다.None를 전달하면 구성된 LLM이 포함된 새 설명이 생성됩니다. 널이 아닌 문자열은 저장된 설명과 검색 가능한 텍스트를 직접 바꿉니다. - 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 앵커입니다.ttl_days없이ttl_anchor를 제공하면 스키마 기본 TTL 기간이 사용됩니다. 새로고침 중 생략된 경우 저장소는TimeToLiveAnchor.CREATED_AT를 사용합니다. - **kwargs(Any) – 예상치 않은 키워드 인수가 구현에서 거부됩니다.
- image_id
- 반환: 업데이트된 이미지 레코드의 식별자입니다.
- 반환 유형: str
- Raises: ValueError – 메시지에 첨부된 이미지에 대한 만료 설정이 제공된 경우입니다.
노트
생략된 필드는 변경되지 않습니다. 이 API에서는 범위 업데이트가 지원되지 않습니다. 메타데이터 바꾸기는 순환적 JSON 병합이 아닌 전체 객체 바꾸기입니다.
method update_image_async(비동기)
구성된 저장소를 통해 하나의 독립형 이미지를 업데이트합니다.
기존 바이트를 보존하려면 image를 생략합니다. image가 제공된 경우 mime_type를 제공해야 합니다. 기존 설명을 보존하려면 description를 생략합니다. None을 전달하여 구성된 LLM으로 새 설명을 생성합니다. 널이 아닌 설명이 직접 대체됩니다. 메타데이터, 시간 기록 및 만료 설정은 제공될 때 업데이트됩니다.
- 매개변수:
- image_id
str– 업데이트할 이미지의 식별자입니다. - image
bytes– 선택적 대체 원시 이미지 바이트입니다. - 설명
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가 제공되지 않은 경우 현재 만료를 변경하지 않고 그대로 두려면 이 인수를 생략합니다. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 그렇지 않을 때 만료를 지우려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. 만료된 메모리는 이 클라이언트 API에서 사용할 수 없으며 새로 고칠 수 없습니다. - ttl_anchor
TimeToLiveAnchor– 만료 새로 고침에 대한 선택적 TTL 앵커입니다. 메모리 생성 시간에는TimeToLiveAnchor.CREATED_AT를 사용하고, 동일한 업데이트에 제공된 교체timestamp에는TimeToLiveAnchor.TIMESTAMP를 사용하고,timestamp가 생략된 경우 저장된 이벤트 시간 기록을 사용합니다.ttl_days없이ttl_anchor를 제공하면 스키마 기본 TTL 기간이 사용됩니다. 새로 고침 중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가 제공되지 않은 경우 현재 만료를 변경하지 않고 그대로 두려면 이 인수를 생략합니다. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 그렇지 않을 때 만료를 지우려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. 만료된 메모리는 이 클라이언트 API에서 사용할 수 없으며 새로 고칠 수 없습니다. - ttl_anchor
TimeToLiveAnchor– 만료 새로 고침에 대한 선택적 TTL 앵커입니다. 메모리 생성 시간에는TimeToLiveAnchor.CREATED_AT를 사용하고, 동일한 업데이트에 제공된 교체timestamp에는TimeToLiveAnchor.TIMESTAMP를 사용하고,timestamp가 생략된 경우 저장된 이벤트 시간 기록을 사용합니다.ttl_days없이ttl_anchor를 제공하면 스키마 기본 TTL 기간이 사용됩니다. 새로 고침 중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
저장된 관계식의 변경 가능한 필드를 업데이트합니다.
생략된 값은 보존됩니다. relation_type가 내장 메모리 관계 유형으로 변경되면 고정 역방향 레이블이 opposite_relation_type를 대체합니다. timestamp 또는 metadata의 경우 None를 전달하여 해당 값을 지웁니다.
- 매개변수:
- 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(비동기)
저장된 관계식을 비동기적으로 업데이트합니다.
- 매개변수:
- 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– 영구 원시 이미지 및 LLM 이미지 요청 제한 업데이트(선택사항)입니다. 생략된 필드는 저장된 값을 유지하며 제공된 필드는 이후에 로드된 스레드 인스턴스에서 사용됩니다. - search_config
MemorySearchConfig– 스레드에 대해 저장할 선택적 검색 구성입니다. 제공된 구성은 이후에 로드된 스레드 인스턴스에서 사용됩니다. - **kwargs(임의) – 추가적인 구현별 옵션입니다.
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(임의) –
update_thread()에서 수락한 추가 영구 런타임 구성 업데이트 및 호출별 대체입니다.
- thread_id
- 반환: 지속된 메타데이터 및 런타임 구성을 반영하여
OracleThread인스턴스를 업데이트했습니다. - 반품 유형: OracleThread
방법 wait_for_memory_extraction
이 클라이언트가 시작한 이전 백그라운드 메모리 추출을 기다립니다.
이 메소드는 이 에이전트 메모리 구성 요소가 소유한 모든 스레드에서 이 OracleAgentMemory 인스턴스를 통해 이미 시작된 백그라운드 추출을 기다립니다. 이 대기가 시작된 후, 다른 에이전트 메모리 구성 요소에 의해 추출이 시작되었거나 다른 프로세스에서 추출이 실행될 때까지는 추출이 시작될 때까지 기다리지 않습니다. 추출 실패는 이 대기에 대해 완료된 것으로 계산됩니다.
- 매개변수: timeout
float | None– 선택적 최대 대기 시간(초)입니다. 기본값은300입니다. 이 에이전트 메모리 구성 요소에 보류 중인 추출이 없을 때까지 기다리려면None를 전달합니다. - 발생: 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를 전달하여 무기한 기다립니다. - 발생: TimeoutError – 이전 백그라운드 추출이 완료되기 전에 시간 초과가 만료될 때 발생합니다.
- 반환 유형: 없음
예제
import asyncio
asyncio.run(client.wait_for_memory_extraction_async(timeout=10))
이미지 입력 한도
클래스 oracleagentmemory.core.ImageInputLimitConfig
기준: object
원시 이미지 및 LLM 이미지 요청 제한을 구성합니다.
생략된 필드는 다음으로 광범위한 구성 범위에서 상속됩니다. 클라이언트 필드는 SDK 기본값을 상속하고 스레드별 필드는 클라이언트 구성을 상속합니다. 검증을 사용 안함으로 설정할 수 없으며 분석된 값은 SDK의 절대 최대값을 초과할 수 없습니다.
- 매개변수:
- max_raw_image_bytes
int– 한 이미지의 최대 원시 바이트 길이입니다. SDK 기본값은 10MiB이고 절대 최대값은 32MiB입니다. - max_images_per_llm_request
int– 한 LLM 요청의 최대 이미지 수입니다. SDK 기본값은 100이고 절대 최대값은 512입니다. - max_total_raw_image_bytes_per_llm_request
int– 한 LLM 요청에서 이미지의 최대 결합된 원시 바이트 길이입니다. 텍스트, 메타데이터, 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 = 'CAPTION'(캡션)
설명을 텍스트로 포함하고 선택된 모든 이미지에 대해 하나씩 필요합니다.
사용 안함 = 'DISABLED'
추출 프롬프트에 이미지 또는 이미지 설명을 포함하지 마십시오.
이미지 = 'IMAGE'
추출 프롬프트에 원본 이미지 부분을 포함합니다.
메모리 = '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– 최근 유효한 요약 후 자동으로 새로 고치기 전의 메시지 수입니다. 메모리 추출이 활성화되면 추출 시마다 검사가 수행되므로 나중에 Refresh가 발생할 수 있습니다. 모든 검사 시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– 추출 시스템 프롬프트에 추가되는 선택적 호출자 지침입니다. 저장된 스레드 레벨 지침을 지우려면update_thread에서None를 전달합니다. 생략할 경우 위의 해결 순서를 사용하십시오. - memory_link_extraction_custom_instructions
str | None– 자동 링크 분석 시스템 프롬프트에 추가된 선택적 호출자 지침입니다. 저장된 스레드 레벨 지침을 지우려면update_thread에서None를 전달합니다. 생략할 경우 위의 해결 순서를 사용하십시오. 이 설정은memory_link_extraction_mode가MemoryLinkExtractionMode.DISABLED인 경우 무시됩니다. - memory_extraction_image_context
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionImageContext– 추출하는 동안 사용되는 이미지 표현을 선택합니다.DISABLED는 프롬프트에서 이미지 및 이미지 설명을 생략하고,IMAGE는 원시 이미지 부분을 전송하고,CAPTION는 이미지 설명을 텍스트로 전송하며, 선택된 모든 이미지에 공백이 아닌 설명이 있어야 합니다.MEMORY는 현재 지원되지 않습니다. 생략할 경우 저장된 스레드 값, 클라이언트 값,DISABLED순으로 사용합니다. 이 필드를 생략하면 이미지 처리가 사용으로 설정되지 않습니다. - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]– 소스 메시지에서 추출된 메모리로 복사된 메타 데이터를 제어합니다.True는 모든 소스 메시지 메타데이터를 복사하고,False는 아무것도 복사하지 않으며, 최상위 레벨 메타데이터 키와 일치하는 시퀀스 복사본만 복사합니다. 생략할 경우 위의 해결 순서를 사용하십시오. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode– 자동 메모리 추출 및 이미지 설명 생성이 실행되는 시기를 제어합니다.MemoryExtractionMode.INLINE는 write 메소드가 반환되기 전에 이를 완료합니다.MemoryExtractionMode.BACKGROUND는 원시 쓰기가 성공한 후 반환되며 파생된 작업을 대기열에 넣으려고 시도합니다. 백그라운드 모드에서는 생성된 설명 및 파생된 메모리가 나중에 표시되거나 작업을 완료할 수 없는 경우 작성되지 않을 수 있습니다. 예를 들어,update_message()는 나중에 메모리 읽기에 업데이트된 메시지 내용이 반영되기 전에 반환할 수 있습니다. 생략할 경우 위의 해결 순서를 사용하십시오. SDK 기본값은BACKGROUND입니다.extract_memories=False를 설정하면 메모리 추출이 사용 안함으로 설정되지만 이미지 설명 생성은 사용 안함으로 설정되지 않습니다. - memory_link_extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryLinkExtractionMode– 새로 추출된 메모리에 대해 기존 메모리에 대한 링크가 분석되는 방법DURING_EXTRACTION에는 추출 요청에 제한된 후보자가 포함됩니다.POST_EXTRACTION는 추출 뱃치에 대해 하나의 추가 링크 분석 요청을 사용합니다.DISABLED는 자동 링크를 생성하지 않습니다. 생략할 경우 위의 해결 순서를 사용하십시오. SDK 기본값은POST_EXTRACTION입니다. - memory_link_extraction_token_limit
int– 한 추출 패스에서 모든 사후 추출 링크 분석 요청에 대한 총 입력 토큰 예산입니다.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는 대기열 용량이 구성된 시간 초과까지 대기한 다음 원시 쓰기가 성공한 후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는 원시 쓰기가 성공한 후 해당 작업을 대기열에 넣으려고 시도합니다. 백그라운드 작업은 최선의 작업입니다. 생성된 설명 및 파생된 메모리는 나중에 나타날 수도 있고 완료할 수 없는 경우 작성되지 않을 수도 있습니다.
배경 = '배경'
원시 쓰기 후 백그라운드에서 파생된 작업을 실행합니다.
인라인 = '인라인'
쓰기가 반환되기 전에 추출 및 이미지 설명을 완료합니다.
클래스 oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
기준: str, Enum
구성된 백그라운드 작업이 시간에 대기열에 추가할 수 없을 때 발생하는 작업을 제어합니다.
추출 관련 이름에도 불구하고 이 설정은 백그라운드 모드의 자동 이미지 설명 생성에도 적용됩니다.
= '삭제' 삭제
경고를 기록하고 대기열 용량을 사용할 수 없을 때 즉시 계속합니다.
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
대기열 용량이 구성된 시간 초과까지 대기한 다음 경고를 기록하고 계속합니다.
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
대기열 용량이 구성된 시간 초과까지 대기한 다음 TimeoutError를 발생시킵니다.