스레드
이 페이지에서는 개발자용 메시지 도우미 유형과 함께 구체적인 Oracle 스레드 핸들을 제공합니다.
Oracle 스레드
클래스 oracleagentmemory.core.OracleThread
기준: IThread
Oracle 저장소가 지원하는 스레드입니다.
이 구현은 스레드 메시지와 수동으로 추가된 메모를 모두 포함 및 저장한 다음 저장된 모든 레코드에 대한 유사성 검색을 지원합니다.
주
- 메시지는 개별 레코드(메시지당 하나의 레코드)로 저장됩니다.
- 검색을 현재 스레드로 제한하거나 스레드(클라이언트 제어)에서 결과를 반환하도록 허용할 수 있습니다.
새 OracleThread 인스턴스를 생성하십시오.
- 매개변수:
- store
OracleMemoryStore– 내장 레코드를 유지하는 데 사용되는 공유 저장소 백엔드입니다. - thread_id
str– 스레드 식별자입니다. UUID를 제공하지 않으면 UUID가 생성됩니다. - user_id
str– 스레드와 연관된 사용자 식별자입니다. 생략할 경우 UUID가 생성됩니다. - agent_id
str– 스레드와 연관된 에이전트 식별자입니다. 생략할 경우 UUID가 생성됩니다. - metadata
dict[str, Any] | None– 스레드와 연관된 선택적 JSON 유사 메타데이터입니다. - persist_messages_in_config
bool–_to_config에 최근 원시 메시지 스냅샷이 포함되어야 하는지 여부입니다. 스레드 구성을 통해 메시지 테이블 콘텐츠를 익스포트하지 않도록 DB 저장소를 사용하는 스레드에 대해 자동으로False로 설정됩니다. - LLM
ILlm | None– 메모리 추출 및 컨텍스트 요약 업데이트에 사용되는 선택적 LLM 어댑터입니다. 제공된 경우add_messages는 추가된 각 메시지에서 관련 메모리를 추출하여 입력된 메모리 레코드("memory","guideline","fact"또는"preference")로 저장합니다. - memory_extraction_config
MemoryExtractionConfig– 선택적 스레드 레벨 메모리 추출 구성입니다. 추출 모드, 요약 동작, 추출 제한 및 자동 추출의 활성화 여부와 같은 자동 추출 설정을 제어하는 데 사용합니다. 이 그룹화된 구성 또는 사용되지 않는 인라인 추출 매개변수 중 하나만 전달하십시오. 생략할 경우 독립형OracleThread()는 추출 필드에 SDK 기본값을 사용하고 컨텍스트 요약을 사용으로 유지합니다. -
memory_extraction_window
int–추출 중 LLM에 컨텍스트로 제공할 가장 최근 메시지(새로 추가된 메시지 포함) 수입니다. 새로 추가된 메시지의 전체 뱃치를 사용하여
add_messages호출당 한 번만 추출하려면-1로 설정합니다. 기본값은-1입니다.더 이상 사용되지 않음
버전 26.6.0 이후 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
context_summary_update_frequency
int–추출 컨텍스트 요약을 업데이트해야 하는 메시지 수입니다. 새로 추가된 메시지의 전체 뱃치를 사용하여
add_messages호출당 한 번만 요약하려면-1로 설정합니다. 기본값은-1입니다.정보: 버전 26.6.0부터 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
memory_extraction_frequency
int–메모리 추출이 트리거되기 전의 메시지 수입니다. 새로 추가된 메시지의 전체 뱃치를 사용하여
add_messages호출당 한 번만 추출하려면-1로 설정합니다.정보: 버전 26.6.0부터 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
memory_extraction_token_limit
int–메모리 추출 및 요약 업데이트 실행에 사용되는 LLM 프롬프트의 최대 크기(토큰)입니다. 더 긴 프롬프트가 잘립니다. 음수 또는 0인 경우 프롬프트 자르기가 사용 안함으로 설정됩니다.
정보: 버전 26.6.0부터 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. - context_card_token_limit
int– 컨텍스트 카드에 포함된 요약 및 항목 목록을 작성하는 데 사용되는 LLM 프롬프트에 대한 최대 입력 토큰 예산입니다. 기본값은100_000이며 0보다 작거나 같은 값은 프롬프트 잘림을 사용 안함으로 설정합니다. - context_card_type_search_concurrency
int–min_relevant_results_by_type로 컨텍스트 카드를 작성할 때 동시에 실행할 최대 메모리 유사 레코드 검색 수입니다. 기본값은5입니다. - max_message_token_length
int– LLM 지원 메모리 추출 및 컨텍스트 요약 업데이트 중 사용된 각 메시지의 프롬프트 시간 복사본에 대한 최대 크기(토큰)입니다. 저장된 메시지 내용은 변경되지 않습니다. 음수 또는 0인 경우 프롬프트 시간 단축이 수행되지 않습니다. LLM이 제공되는 경우 크기가 너무 큰 프롬프트 복사본이 잘리지 않고 요약됩니다. - message_shortening_input_token_limit
int– 대형 프롬프트 복사본을 줄일 때 LLM으로 전송된 메시지 발췌 내용의 최대 크기(토큰)입니다. 기본값은30_000토큰입니다. 음수 또는 0인 경우 LLM 기반 단축 중에 아웃바운드 바인드가 적용되지 않습니다. -
enable_context_summary
bool–스레드의 압축 실행 요약을 유지할지 여부입니다. 사용으로 설정되고
llm가 제공되면context_summary_update_frequency에 따라 요약이 업데이트됩니다. 현재 요약은 메모리를 추출할 때 컨텍스트로 제공됩니다. 독립형OracleThread()의 경우 기본값은True입니다.정보: 버전 26.6.0부터 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
memory_extraction_custom_instructions
str | None–이 스레드에 대한 자동 메모리 추출 시스템 프롬프트에 추가된 선택적 사용자 정의 지침입니다.
정보: 버전 26.6.0부터 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–자동으로 추출된 메모리가 소스 메시지에서 메타데이터를 상속할지 여부입니다.
True를 전달하여 모든 메시지 메타데이터를 상속하거나, 최상위 레벨 메시지 메타데이터 키의 비문자열 시퀀스를 전달하여 해당 키만 상속하거나,False을 전달하여 상속을 사용 안함으로 설정합니다. 기본값은True입니다. 한 추출 패스가 여러 소스 메시지를 사용하는 경우 선택한 메타데이터가 해당 메시지에서 일치해야 합니다.정보: 버전 26.6.0부터 더 이상 사용되지 않음: 이 매개변수는 26.6.0에서 더 이상 사용되지 않으며 27.1에서 제거됩니다. 대신
memory_extraction_config를 사용하십시오. - 클라이언트
OracleAgentMemory | None
- store
예제
from oracleagentmemory.core import OracleAgentMemory
import oracledb
db_pool = oracledb.SessionPool(
user="YOUR DB USER",
password="YOUR DB PASSWORD",
dsn="YOUR DB CONNECT STRING",
)
client = OracleAgentMemory(connection=db_pool, embedder=embedder)
thread = client.create_thread(
thread_id="c1",
llm=llm,
memory_extraction_config=MemoryExtractionConfig(enable_context_summary=True),
)
len(thread.add_messages([{"role": "user", "content": "I love pizza."}]))
1
방법 add_memory
수동 메모리 항목을 추가하고 인덱스화합니다.
- 매개변수:
- content
str– 메모리로 저장할 텍스트 콘텐츠입니다. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– 저장할 메모리 범주입니다. 지원되는 값은"memory","fact","guideline"및"preference"입니다. 생략하면 콘텐츠가 일반"memory"로 저장됩니다. - user_id
str– 선택적 사용자 식별자 대체입니다. - agent_id
str– 선택적 에이전트 식별자 대체입니다. - thread_id
str– 선택적 스레드 식별자 대체입니다. - memory_id
str– 이 메모리 행에 대해 선택적인 호출자가 제공하는 안정적인 식별자입니다. - metadata
dict[str, Any] | None– 저장된 메모리와 함께 지속되는 선택적 메타데이터입니다. - timestamp
str | None– 이 메모리에 대해 저장할 선택적 시간 기록입니다. 메모리가 생성된 시기를 나타냅니다. 생략하거나None인 경우 저장소는 현재 시간을 사용합니다.ttl_anchor가TimeToLiveAnchor.TIMESTAMP인 경우 구체적인 ISO-8601 시간 기록 값을 제공합니다. 표준 시간대가 없는 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 타임스탬프가 필요합니다. 표준 시간대가 없는 ISO-8601 시간 기록은 UTC로 처리됩니다. - **store_kwargs(임의) – 보조 기억 장치로 전달된 저장소별 쓰기 옵션입니다.
- content
- 반환: 삽입된 메모리 레코드의 식별자입니다.
- 반환 유형: str
예제
thread.add_memory("Remember this preference", memory_id="mem-thread-docs")
'mem-thread-docs'
method add_memory_async(비동기)
메모리를 비동기적으로 추가합니다.
- 매개변수:
- content
str– 저장할 메모리 컨텐츠입니다. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– 저장할 메모리 범주입니다. 지원되는 값은"memory","fact","guideline"및"preference"입니다. 생략하면 콘텐츠가 일반"memory"로 저장됩니다. - user_id
str– 선택적 사용자 범위 대체입니다. - agent_id
str– 선택적 에이전트 범위 대체입니다. - thread_id
str– 선택적 스레드 범위 대체입니다. - memory_id
str– 선택적인 호출자가 제공한 메모리 식별자입니다. 생략할 경우 점포에서 ID를 생성합니다. - metadata
dict[str, Any] | None– 저장된 메모리와 함께 지속되는 선택적 메타데이터입니다. - timestamp
str | None– 이 메모리에 대해 저장할 선택적 시간 기록입니다. 메모리가 생성된 시기를 나타냅니다. 생략하거나None인 경우 저장소는 현재 시간을 사용합니다. - ttl_days
int | None– 선택적 TTL 기간(일)입니다. 스키마 기본 TTL 기간을 사용하려면 이 인수를 생략하고, 만료되지 않는 메모리에 대해서는None를 전달합니다. - ttl_anchor
TimeToLiveAnchor– 선택적 TTL(Time-to-Live) 앵커TimeToLiveAnchor.CREATED_AT또는TimeToLiveAnchor.TIMESTAMP를 사용합니다. - **store_kwargs(임의) – 보조 기억 장치로 전달된 구현별 쓰기 옵션입니다.
- content
- 반환 유형: str
방법 add_messages
스레드에 메시지를 추가하고 색인화합니다.
백그라운드 추출 모드에서 이 메소드는 원시 메시지가 삽입되고 백그라운드에서 백그라운드 추출을 시도한 후에 반환됩니다.
- 매개변수:
- messages
list[Message | MessageT]– 추가할 메시지 목록입니다. 메시지는Message객체 또는role및content(및 선택적id)의 사전일 수 있습니다. - metadata
dict[str, Any] | None | list[dict[str, Any] | None]– 지속할 선택적 공유 또는 메시지별 메타데이터입니다. 생략할 경우 각 메시지에 포함된 메타데이터가 사용됩니다. - ttl_days
int | None | list[int | None]– 추가된 메시지에 대한 선택적 TTL 기간(일)입니다. 스키마 기본 TTL 기간을 사용하려면 이 인수를 생략하십시오. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 만료되지 않는 메시지를 만들려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. 스칼라 값은 전체 배치에 적용됩니다. - ttl_anchor
TimeToLiveAnchor | list[TimeToLiveAnchor]– 선택적 TTL(Time-to-Live) 앵커 데이터베이스 생성 시간에는TimeToLiveAnchor.CREATED_AT를 사용하고 각 메시지 시간기록에는TimeToLiveAnchor.TIMESTAMP를 사용합니다. 타임스탬프 기록 만료 시 영향을 받는 각 메시지에 대해 구체적인 ISO-8601 타임스탬프가 필요합니다. 생략할 경우 메시지는TimeToLiveAnchor.CREATED_AT를 기준으로 만료됩니다. 표준 시간대가 없는 ISO-8601 시간 기록은 UTC로 처리됩니다. - **store_kwargs(임의) – 보조 기억 장치로 전달된 저장소별 쓰기 옵션입니다.
- messages
- 반환: 삽입된 메시지 레코드의 식별자입니다. 백그라운드 추출 모드에서는 이러한 식별자가 반환될 때 자동 추출 작업이 계속 실행 중일 수 있습니다.
- 반환 유형: list[str]
주
MemoryExtractionMode.BACKGROUND에서는 추출된 메모리가 저장되기 전에 원시 메시지가 지속됩니다. 백그라운드 추출이 대기열에 추가되지 않거나 구성된 대기열 용량 대기가 시간 초과에 도달하면 삽입된 원시 메시지는 저장된 상태로 유지되며 추출된 메모리 없이 호출이 계속되거나 background_extraction_queue_full_behavior에 따라 TimeoutError가 발생합니다.
예제
len(thread.add_messages([{"role": "user", "content": "Thread message from docs"}]))
1
method add_messages_async(비동기)
메시지를 스레드에 비동기적으로 추가하고 인덱스화합니다.
백그라운드 추출 모드에서 이 메소드는 원시 메시지가 삽입되고 백그라운드에서 백그라운드 추출을 시도한 후에 반환됩니다.
MemoryExtractionMode.BACKGROUND에서는 추출된 메모리가 저장되기 전에 원시 메시지가 지속됩니다. 백그라운드 추출이 대기열에 추가되지 않거나 구성된 대기열 용량 대기가 시간 초과에 도달하면 삽입된 원시 메시지는 저장된 상태로 유지되며 추출된 메모리 없이 호출이 계속되거나 background_extraction_queue_full_behavior에 따라 TimeoutError가 발생합니다.
- 매개변수:
- 메시지
list[Message | MessageT] - 메타데이터
dict[str, Any] | None | list[dict[str, Any] | None] - ttl_days
int | None | list[int | None] - ttl_anchor
TimeToLiveAnchor | list[TimeToLiveAnchor] - store_kwargs
Any
- 메시지
- 반환 유형: list[str]
방법 delete_memory
식별자별로 이 정확한 스레드에서 메모리 유사 레코드(예: 메모리, 팩트, 기본 설정 또는 지침)를 삭제합니다.
- 매개변수: memory_id
str– 메모리 식별자입니다. 저장된thread_id가 이 스레드와 정확히 일치하는 메모리 유사 레코드(memory,guideline,fact,preference)만 삭제됩니다. - 반환: 삭제된 레코드 수(0 또는 1). 식별자가 존재하지 않거나 다른 스레드에 속하는 경우
0를 반환합니다. - 반품 유형: int
예제
thread.delete_memory("456")
0
방법 delete_message
식별자별로 정확한 이 스레드에서 메시지 레코드를 삭제합니다.
- 매개변수: message_id
str– 메시지 식별자입니다. 저장된thread_id가 이 스레드와 정확히 일치하는 메시지만 삭제됩니다. - 반환: 삭제된 메시지 레코드 수(0 또는 1)입니다. 식별자가 존재하지 않거나 다른 스레드에 속하는 경우
0를 반환합니다. - 반품 유형: int
주
메시지를 삭제하면 원시 메시지 레코드만 제거됩니다. 파생된 메모리는 추출된 메모리를 어떤 메시지에서 가져온지 아직 추적하지 않으므로 삭제되지 않으므로 검색 가능한 상태로 유지되거나 컨텍스트 카드 출력에 여전히 영향을 줄 수 있습니다. OracleAgentMemory.delete_thread()를 사용하여 연관된 메시지 및 메모리와 함께 스레드를 삭제합니다.
예제
thread.delete_message("123")
0
방법 get_context_card
스레드에 대한 컨텍스트 카드 객체를 반환합니다.
LLM 지원 구현에서 원격 네트워크 I/O를 수행할 수 있는 경우 get_context_card_async을 선호합니다.
- 매개변수:
- fallback_message_count
int– 검색 및 렌더링을 위해 폴백 요약 텍스트를 파생할 때 사용할 최근 메시지 수입니다. 생략할 경우5로 해결됩니다. - max_relevant_results
int– 포함할 검색된 영구 레코드의 최대 수입니다. 생략할 경우min_relevant_results_by_type가 제공되지 않는 한5로 확인됩니다. 이 경우5보다 큰 값과 요청된 유형별 최소값의 합계로 확인됩니다. - max_recent_messages
int– 동사를 포함할 최대 후행 원시 메시지 수입니다. 생략할 경우5로 해결됩니다. - min_relevant_results_by_type
Mapping[Literal['memory', 'guideline', 'fact', 'preference'], int] | None | ~oracleagentmemory._notset._NotSetMarker– 컨텍스트 카드에 포함된 관련 메모리 유사 레코드에 대한 선택적 유형별 최소값입니다. 요청된 유형이 먼저 검색되고 나머지max_relevant_results슬롯은 지원되는 모든 메모리 유사 레코드 유형에서 채워집니다. 지원되는 키는"memory","fact","guideline"및"preference"입니다. - **kwargs(Any) – 이후 컨텍스트 카드 옵션용으로 예약되어 있습니다. 예상치 않은 키워드 인수가
TypeError를 발생시킵니다.
- fallback_message_count
- 반환: 가장 최근 메시지를 기반으로 하는 스레드 컨텍스트 요약을 포함하는 컨텍스트 카드 객체입니다.
OracleContextCard.content를 사용하여 렌더링된 XML 유사 텍스트에 액세스합니다. - 반환 유형: OracleContextCard
주
그러면 스레드의 기본 검색 범위가 exact_thread_match=False와 함께 사용되므로 동일한 사용자/에이전트에 대한 다른 스레드의 관련 메모리가 포함될 수 있습니다.
예제
thread.add_memory("User likes pizza", memory_id="mem-context-docs")
'mem-context-docs'
len(thread.add_messages([{"role": "user", "content": "Tell me about pizza"}]))
1
"User likes pizza" in thread.get_context_card().content
True
card = thread.get_context_card(
max_relevant_results=4,
min_relevant_results_by_type={"memory": 1},
)
len(card.relevant_results or []) <= 4
True
method get_context_card_async(비동기)
스레드에 대한 컨텍스트 카드 객체를 비동기적으로 반환합니다.
- 매개변수:
- fallback_message_count
int– 검색 및 렌더링을 위해 폴백 요약 텍스트를 파생할 때 사용할 최근 메시지 수입니다. 생략할 경우5로 해결됩니다. - max_relevant_results
int– 포함할 검색된 영구 레코드의 최대 수입니다. 생략할 경우min_relevant_results_by_type가 제공되지 않는 한5로 확인됩니다. 이 경우5보다 큰 값과 요청된 유형별 최소값의 합계로 확인됩니다. - max_recent_messages
int– 동사를 포함할 최대 후행 원시 메시지 수입니다. 생략할 경우5로 해결됩니다. - min_relevant_results_by_type
Mapping[Literal['memory', 'guideline', 'fact', 'preference'], int] | None | ~oracleagentmemory._notset._NotSetMarker– 컨텍스트 카드에 포함된 관련 메모리 유사 레코드에 대한 선택적 유형별 최소값입니다. 요청된 유형이 먼저 검색되고 나머지max_relevant_results슬롯은 지원되는 모든 메모리 유사 레코드 유형에서 채워집니다. 지원되는 키는"memory","fact","guideline"및"preference"입니다. - **kwargs(Any) – 이후 컨텍스트 카드 옵션용으로 예약되어 있습니다. 예상치 않은 키워드 인수가
TypeError를 발생시킵니다.
- fallback_message_count
- 반환: 스레드에 대한 컨텍스트 카드 객체입니다.
- 반환 유형: OracleContextCard
예제
card = await thread.get_context_card_async(
min_relevant_results_by_type={"preference": 1, "guideline": 1},
)
len(card.relevant_results or []) <= 5
True
방법 get_messages
현재 글 모음에 저장된 메시지를 반환합니다.
- 매개변수:
- start
int | None– 시작 인덱스(0 기반)입니다.end와 함께 생략하면 가장 최근의 바인드된 창이 반환됩니다. - end
int | None– 종료 인덱스(배타적)입니다. 생략하면 가장 최근 메시지의 제한된 창이 반환됩니다.None또는-1를 전달하여start이후부터 모든 메시지를 명시적으로 요청합니다.
- start
- 반환: 시간순으로 메시지를 표시합니다.
- 반환 유형: list[메시지]
예제
len(thread.add_messages([{"role": "user", "content": "Stored message example"}]))
1
messages = thread.get_messages()
messages[-1].content
'Stored message example'
method get_messages_async(비동기)
원본 스레드 메시지를 비동기적으로 반환합니다.
- 매개변수:
- start
int | None– 선택적 시작 인덱스입니다. - end
int | None– 선택적 종료 인덱스입니다.
- start
- 반환: 원시 메시지 객체입니다.
- 반환 유형: list[메시지]
방법 get_summary
스레드의 최선의 요약을 반환합니다.
LLM 지원 구현에서 원격 네트워크 I/O를 수행할 수 있는 경우 get_summary_async을 선호합니다.
- 매개변수:
- except_last
int– 요약에서 제외할 최근 메시지 수입니다. - token_budget
int– 소프트 토큰 예산입니다. 생략할 경우 제한된 기본값이 적용됩니다. 형식 지정된 요약이_estimate_tokens()로 추정되는 예산을 초과하는 경우에만 양수 값이 잘립니다. 그러면 반환된 텍스트가int(token_budget * 3.5)자로 제한됩니다. 양수가 아닌 값은 출력 한도를 사용 안함으로 설정합니다. - **kwargs(Any) – 이후 요약 옵션을 위해 예약됩니다. 예상치 않은 키워드 인수가
TypeError를 발생시킵니다.
- except_last
- 반환: 합성된 스레드 요약 텍스트를 포함하는 요약 객체입니다.
- 반품 유형: OracleSummary
예제
len(thread.add_messages([{"role": "assistant", "content": "Summary source message"}]))
1
summary = thread.get_summary()
bool(summary.content)
True
method get_summary_async(비동기)
스레드의 최선 조건 요약을 비동기적으로 반환합니다.
- 매개변수:
- except_last
int– 요약에서 제외할 최근 메시지 수입니다. - token_budget
int– 소프트 토큰 예산입니다. 생략할 경우 제한된 기본값이 적용됩니다. 형식 지정된 요약이_estimate_tokens()로 추정되는 예산을 초과하는 경우에만 양수 값이 잘립니다. 그러면 반환된 텍스트가int(token_budget * 3.5)자로 제한됩니다. 양수가 아닌 값은 출력 한도를 사용 안함으로 설정합니다. - **kwargs(Any) – 이후 요약 옵션을 위해 예약됩니다. 예상치 않은 키워드 인수가
TypeError를 발생시킵니다.
- except_last
- 반환: 합성된 스레드 요약 텍스트를 포함하는 요약 객체입니다.
- 반품 유형: OracleSummary
방법 search
조회와 관련된 레코드를 동기적으로 검색합니다.
- 매개변수:
- query
str– 자연어 질의 문자열입니다. - user_id
str | None– 선택적 사용자 범위 대체입니다. 생략된 값은 스레드의 기본 사용자 범위를 상속합니다. - agent_id
str | None– 선택적 에이전트 범위 대체입니다. 생략된 값은 스레드의 기본 에이전트 범위를 상속합니다. - thread_id
str | None– 선택적 스레드 범위 대체입니다. 생략된 값은 스레드의 현재 스레드 식별자를 상속합니다. - exact_user_match
bool– 사용자 일치가 엄격해야 하는지 여부입니다. - exact_agent_match
bool– 에이전트 일치가 엄격해야 하는지 여부입니다. - exact_thread_match
bool– 스레드 일치가 엄격해야 하는지 여부입니다. - max_results
int– 반환할 최대 결과 수(선택 사항)입니다. 제공된 경우1이상이어야 합니다. 이 인수를 생략하면 기본값인10가 사용됩니다. 만료되지 않은 일치 레코드가 더 적을 경우 호출이max_results미만으로 반환될 수 있습니다. - record_types
list[str]–"memory"또는"message"와 같이 포함할 레코드 유형의 선택적 목록입니다. -
metadata_filter
dict[str, Any] | None–범위 및 레코드 유형 필터링 후 추가 필터로 사용되는 선택적 메타데이터 필터 매핑입니다.
metadata_filter의 항목은 AND 의미와 결합됩니다. 값이 필드 레벨 연산자 딕셔너리가 아닌 항목은 정확한 일치 의미를 사용합니다. 즉, 요청된 키가 저장된 레코드 메타데이터에 있어야 합니다. 중첩된 딕셔너리는 중첩된 메타 데이터 객체를 재귀적으로 일치시킵니다. 스칼라 및 목록 값이 정확히 일치해야 합니다. 목록 순서 및 길이도 일치해야 합니다. 메타데이터 필터링 없이 검색하려면 이 인수를 생략하거나None를 전달하십시오. 예를 들어 스칼라 필드의 경우metadata_filter={"source": "chat"}, 중첩 필드의 경우metadata_filter={"travel": {"need": "transit"}}, 정확한 목록 일치의 경우metadata_filter={"tags": ["trip", "urgent"]}가 있습니다. 조건을 결합하여 모든 조건을 요구합니다.metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }배열 멤버쉽을 테스트하려면 필드 레벨 연산자 딕셔너리를 사용합니다.
"$array_contains"는 하나의 값 또는 목록의 모든 값과 일치합니다."$array_contains_any"는 목록의 하나 이상의 값과 일치합니다."$not"는 연산자 딕셔너리 또는 원시 정확한 일치 값을 포함하여 동일한 필드에서 다른 필드 레벨 표현식을 부정합니다. 누락된 필드를 포함하여 양수 표현식이 실패할 때 음수 표현식이 일치합니다. 음수 배열 멤버쉽도 배열이 아닌 필드와 일치합니다.metadata_filter={ "source": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - scope
SearchScope– 사전 구축된 검색 범위(선택사항)입니다.scope또는 명시적 식별자 및 정확한 일치 인수 중 하나만 제공하십시오.
- query
- 반품: 관련성을 줄여 정렬된 검색 결과입니다.
- 반환 유형: list[SearchResult]
- 확장: ValueError –
scope가 명시적 식별자 또는 정확한 일치 인수와 결합된 경우(max_results가1보다 작거나metadata_filter가 딕셔너리 또는None가 아닌 경우)
주
생략된 범위 필드는 이 스레드의 기본 검색 범위(정확한 사용자 및 에이전트 일치와 이 스레드의 현재 user_id, agent_id 및 thread_id)를 상속합니다. 기본 스레드 검색은 의도적으로 exact_thread_match=False를 벗어나 동일한 사용자/에이전트에 대해 다른 스레드에서 관련 레코드를 반환할 수 있습니다. 결과를 현재 스레드로 제한하려면 exact_thread_match=True를 전달합니다. 명시적 None 범위 값은 해결된 정확한 일치 규칙을 계속 따릅니다. exact_*_match=False는 해당 차원을 제약 없는 상태로 두고 exact_*_match=True는 저장된 None 값만 일치시킵니다.
명시적 max_results 값은 1 이상이어야 합니다. 인수를 생략하면 10의 기본값이 사용됩니다. 상한입니다. 필터가 너무 제한적이거나, 일치하는 레코드가 적거나, 구현별 검색 동작으로 인해 호출이 max_results개 미만의 결과를 반환할 수 있습니다.
method search_async(비동기)
조회와 관련된 레코드를 비동기적으로 검색합니다.
- 매개변수:
- query
str– 자연어 질의 문자열입니다. - user_id
str | None– 선택적 사용자 범위 대체입니다. 생략된 값은 스레드의 기본 사용자 범위를 상속합니다. - agent_id
str | None– 선택적 에이전트 범위 대체입니다. 생략된 값은 스레드의 기본 에이전트 범위를 상속합니다. - thread_id
str | None– 선택적 스레드 범위 대체입니다. 생략된 값은 스레드의 현재 스레드 식별자를 상속합니다. - exact_user_match
bool– 사용자 일치가 엄격해야 하는지 여부입니다. - exact_agent_match
bool– 에이전트 일치가 엄격해야 하는지 여부입니다. - exact_thread_match
bool– 스레드 일치가 엄격해야 하는지 여부입니다. - max_results
int– 반환할 최대 결과 수(선택 사항)입니다. 제공된 경우1이상이어야 합니다. 이 인수를 생략하면 기본값인10가 사용됩니다. - record_types
list[str]–"memory"또는"message"와 같이 포함할 레코드 유형의 선택적 목록입니다. -
metadata_filter
dict[str, Any] | None–범위 및 레코드 유형 필터링 후 추가 필터로 사용되는 선택적 메타데이터 필터 매핑입니다.
metadata_filter의 항목은 AND 의미와 결합됩니다. 값이 필드 레벨 연산자 딕셔너리가 아닌 항목은 정확한 일치 의미를 사용합니다. 즉, 요청된 키가 저장된 레코드 메타데이터에 있어야 합니다. 중첩된 딕셔너리는 중첩된 메타 데이터 객체를 재귀적으로 일치시킵니다. 스칼라 및 목록 값이 정확히 일치해야 합니다. 목록 순서 및 길이도 일치해야 합니다. 메타데이터 필터링 없이 검색하려면 이 인수를 생략하거나None를 전달하십시오. 예를 들어 스칼라 필드의 경우metadata_filter={"source": "chat"}, 중첩 필드의 경우metadata_filter={"travel": {"need": "transit"}}, 정확한 목록 일치의 경우metadata_filter={"tags": ["trip", "urgent"]}가 있습니다. 조건을 결합하여 모든 조건을 요구합니다.metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }배열 멤버쉽을 테스트하려면 필드 레벨 연산자 딕셔너리를 사용합니다.
"$array_contains"는 하나의 값 또는 목록의 모든 값과 일치합니다."$array_contains_any"는 목록의 하나 이상의 값과 일치합니다."$not"는 연산자 딕셔너리 또는 원시 정확한 일치 값을 포함하여 동일한 필드에서 다른 필드 레벨 표현식을 부정합니다. 누락된 필드를 포함하여 양수 표현식이 실패할 때 음수 표현식이 일치합니다. 음수 배열 멤버쉽도 배열이 아닌 필드와 일치합니다.metadata_filter={ "source": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - scope
SearchScope– 사전 구축된 검색 범위(선택사항)입니다.scope또는 명시적 식별자 및 정확한 일치 인수 중 하나만 제공하십시오.
- query
- 반품: 관련성을 줄여 정렬된 검색 결과입니다.
- 반환 유형: list[SearchResult]
- 확장: ValueError –
scope가 명시적 식별자 또는 정확한 일치 인수와 결합된 경우(max_results가1보다 작거나metadata_filter가 딕셔너리 또는None가 아닌 경우)
주
생략된 범위 필드는 이 스레드의 기본 검색 범위(정확한 사용자 및 에이전트 일치와 이 스레드의 현재 user_id, agent_id 및 thread_id)를 상속합니다. 기본 스레드 검색은 의도적으로 exact_thread_match=False를 벗어나 동일한 사용자/에이전트에 대해 다른 스레드에서 관련 레코드를 반환할 수 있습니다. 결과를 현재 스레드로 제한하려면 exact_thread_match=True를 전달합니다. 명시적 None 범위 값은 해결된 정확한 일치 규칙을 계속 따릅니다. exact_*_match=False는 해당 차원을 제약 없는 상태로 두고 exact_*_match=True는 저장된 None 값만 일치시킵니다.
명시적 max_results 값은 1 이상이어야 합니다. 인수를 생략하면 10의 기본값이 사용됩니다. 상한입니다. 필터가 너무 제한적이거나, 일치하는 레코드가 적거나, 구현별 검색 동작으로 인해 호출이 max_results개 미만의 결과를 반환할 수 있습니다.
방법 update_memory
이 스레드가 소유한 메모리 유사 레코드를 업데이트합니다.
- 매개변수:
- memory_id
str– 메모리 식별자입니다. 저장된thread_id가 이 스레드와 정확히 일치하는 메모리 유사 레코드(memory,guideline,fact,preference)만 업데이트됩니다. - content
str– 선택적 대체 컨텐츠입니다. 저장된 콘텐츠를 바꾸려면 문자열을 제공하십시오. 생략하면 저장된 내용이 보존됩니다.None전달은 지원되지 않습니다. 현재 값을 유지하려면content를 생략하고, 레코드를 제거하려면delete_memory()를 사용하십시오. - metadata
dict[str, Any] | None– 선택적 대체 메타데이터 매핑입니다. 생략하면 저장된 메타데이터가 보존됩니다. 제공된 경우 저장된 메타데이터 객체를 대체합니다. 이 API는 메타데이터를 심층 병합하지 않습니다. - timestamp
str | None– 이 메모리에 대한 선택적 새 시간 기록입니다. 메모리가 생성된 시기를 나타냅니다. 생략하면 저장된 시간 기록이 보존됩니다. 저장된 시간 기록을 지우고 저장소에서 레코드가 생성된 시간을 사용하려면None을 전달합니다.ttl_anchor가TimeToLiveAnchor.TIMESTAMP인 경우 교체 시간 기록은 ISO-8601 문자열이어야 합니다. 표준 시간대가 없는 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 타임스탬프 또는 해당 형식의 기존 저장된 이벤트 타임스탬프가 필요합니다. 표준 시간대가 없는 ISO-8601 시간 기록은 UTC로 처리됩니다. - **kwargs(Any) – 예상치 않은 키워드 인수가 거부되었습니다.
- memory_id
- 반환: 업데이트된 메모리 유사 레코드의 식별자입니다.
- 반환 유형: str
method update_memory_async(비동기)
메모리와 유사한 레코드를 비동기적으로 업데이트합니다.
- 매개변수:
- memory_id
str– 업데이트할 메모리 유사 레코드의 식별자입니다. - content
str– 선택적 대체 컨텐츠입니다. 저장된 콘텐츠를 대체할 문자열을 제공합니다. 생략하면 저장된 내용이 보존됩니다.None전달은 지원되지 않습니다. 현재 값을 유지하려면content를 생략하고, 레코드를 제거하려면delete_memory()를 사용하십시오. - metadata
dict[str, Any] | None– 선택적 대체 메타데이터 매핑입니다. 생략하면 저장된 메타데이터가 보존됩니다. 제공된 경우 저장된 메타데이터 객체를 대체합니다. 이 API는 메타데이터를 심층 병합하지 않습니다. - timestamp
str | None– 이 메모리에 대한 선택적 새 시간 기록입니다. 메모리가 생성된 시기를 나타냅니다. 생략하면 저장된 시간 기록이 보존됩니다. 저장된 시간 기록을 지우고 저장소에서 레코드가 생성된 시간을 사용하려면None을 전달합니다. - ttl_days
int | None– 선택적 만료 새로 고침(일)입니다. 현재 만료 시간 기록을 보존하려면 이 인수를ttl_anchor와 함께 생략합니다.None를 전달하여 만료를 지웁니다. - ttl_anchor
TimeToLiveAnchor– 만료 새로 고침에 대한 선택적 TTL 앵커입니다.ttl_days없이ttl_anchor를 제공하면 스키마 기본 TTL 기간이 사용됩니다. - **kwargs(Any) – 예상치 않은 키워드 인수가 거부되었습니다.
- memory_id
- 반환: 업데이트된 메모리 유사 레코드의 식별자입니다.
- 반환 유형: str
예제
from functools import partial
from oracleagentmemory._async_helpers import run_async_in_sync
memory_id = thread.add_memory("Original memory")
run_async_in_sync(
partial(thread.update_memory_async, memory_id, content="Updated memory")
) == memory_id
True
방법 update_message
이 정확한 스레드가 소유한 원시 메시지 레코드를 업데이트합니다.
- 매개변수:
- message_id
str– 메시지 식별자입니다. 저장된thread_id가 이 스레드와 정확히 일치하는 메시지만 업데이트됩니다. - content
str– 선택적 대체 메시지 컨텐츠입니다. 저장된 콘텐츠를 바꾸려면 문자열을 제공하십시오. 생략하면 저장된 내용이 보존됩니다.None전달은 지원되지 않습니다. - metadata
dict[str, Any] | None– 선택적 대체 메타데이터 매핑입니다. 생략하면 저장된 메타데이터가 보존됩니다. 제공된 경우 저장된 메타데이터 객체를 대체합니다. 이 API는 메타데이터를 심층 병합하지 않습니다. - ttl_days
int | None– 선택적 만료 새로 고침(일)입니다.ttl_anchor가 제공되지 않은 경우 현재 만료를 변경하지 않고 그대로 두려면 이 인수를 생략합니다. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 그렇지 않을 때 만료를 지우려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. 만료된 메시지는 이 스레드 API에서 사용할 수 없으며 새로 고칠 수 없습니다. - ttl_anchor
TimeToLiveAnchor– 만료 새로 고침에 대한 선택적 TTL 앵커입니다. 메시지 생성 시간에는TimeToLiveAnchor.CREATED_AT를 사용하고, 저장된 이벤트 시간 기록에는TimeToLiveAnchor.TIMESTAMP를 사용합니다.ttl_days없이ttl_anchor를 제공하면 스키마 기본 TTL 기간이 사용됩니다. 새로 고치는 동안ttl_anchor를 생략하면 스레드가TimeToLiveAnchor.CREATED_AT를 사용합니다. 타임스탬프 앵커된 새로 고침에는 기존의 저장된 ISO-8601 메시지 타임스탬프가 필요합니다. 표준 시간대가 없는 ISO-8601 시간 기록은 UTC로 처리됩니다. - **kwargs(Any) – 예상치 않은 키워드 인수가 거부되었습니다.
- message_id
- 반환: 업데이트된 메시지 레코드의 식별자입니다.
- 반환 유형: str
주
생략된 필드는 저장된 레코드에서 보존됩니다. 저장된 역할 및 시간 기록은 변경되지 않습니다. 콘텐츠를 편집하면 원시 메시지 기록이 업데이트되고, 자동 추출이 사용으로 설정된 경우 SDK가 편집된 메시지 및 이전 기록에서 메모리를 다시 추출할 수 있습니다. INLINE 모드에서는 이 메소드가 반환되기 전에 추출이 완료됩니다. BACKGROUND 모드에서는 원시 메시지 업데이트가 성공하고 백그라운드 추출이 시도된 후 이 메소드가 반환됩니다. 이 후속 작업은 이후 add_messages() 호출에서 사용되는 일반 추출 빈도에 영향을 주지 않습니다. 기존 추출된 메모리는 그대로 유지되지만 편집된 콘텐츠에서 새로 추출된 메모리는 추가될 수 있습니다. 원시 메시지 업데이트 및 나중에 추출된 메모리 쓰기는 자동으로 수행되지 않으므로 백그라운드 작업이 대기열에 추가되지 않거나, 구성된 대기열 용량 대기가 시간 초과에 도달하거나, 나중에 추출 작업이 실패할 경우 추출된 메모리에 이전 메시지 내용이 계속 반영될 수 있습니다. 또한 소스 메시지의 TTL이 변경될 때 추출된 기존 메모리는 원래 만료 상태를 유지합니다.
예제
message_id = thread.add_messages([{"role": "user", "content": "Draft message"}])[0]
thread.update_message(message_id, content="Edited message") == message_id
True
method update_message_async(비동기)
이 정확한 스레드가 소유한 원시 메시지 레코드를 비동기식으로 업데이트합니다.
- 매개변수:
- message_id
str– 메시지 식별자입니다. 저장된thread_id가 이 스레드와 정확히 일치하는 메시지만 업데이트됩니다. - content
str– 선택적 대체 메시지 컨텐츠입니다. 저장된 콘텐츠를 바꾸려면 문자열을 제공하십시오. 생략하면 저장된 내용이 보존됩니다.None전달은 지원되지 않습니다. - metadata
dict[str, Any] | None– 선택적 대체 메타데이터 매핑입니다. 생략하면 저장된 메타데이터가 보존됩니다. 제공된 경우 저장된 메타데이터 객체를 대체합니다. 이 API는 메타데이터를 심층 병합하지 않습니다. - ttl_days
int | None– 선택적 만료 새로 고침(일)입니다.ttl_anchor가 제공되지 않은 경우 현재 만료를 변경하지 않고 그대로 두려면 이 인수를 생략합니다. 보존 구성이 하나를 설정할 때MemoryRetentionConfig.max_ttl_days를 사용하거나 그렇지 않을 때 만료를 지우려면None를 전달합니다.MemoryRetentionConfig.max_ttl_days이상의 값은 경고와 함께 해당 최대값으로 고정됩니다. 만료된 메시지는 이 스레드 API에서 사용할 수 없으며 새로 고칠 수 없습니다. - ttl_anchor
TimeToLiveAnchor– 만료 새로 고침에 대한 선택적 TTL 앵커입니다. 메시지 생성 시간에는TimeToLiveAnchor.CREATED_AT를 사용하고, 저장된 이벤트 시간 기록에는TimeToLiveAnchor.TIMESTAMP를 사용합니다.ttl_days없이ttl_anchor를 제공하면 스키마 기본 TTL 기간이 사용됩니다. 타임스탬프 앵커된 새로 고침에는 기존의 저장된 ISO-8601 메시지 타임스탬프가 필요합니다. 표준 시간대가 없는 ISO-8601 시간 기록은 UTC로 처리됩니다. - **kwargs(Any) – 예상치 않은 키워드 인수가 거부되었습니다.
- message_id
- 반환: 업데이트된 메시지 레코드의 식별자입니다.
- 반환 유형: str
주
생략된 필드는 저장된 레코드에서 보존됩니다. 저장된 역할 및 시간 기록은 변경되지 않습니다. 콘텐츠를 편집하면 원시 메시지 기록이 업데이트되고, 자동 추출이 사용으로 설정된 경우 SDK가 편집된 메시지 및 이전 기록에서 메모리를 다시 추출할 수 있습니다. INLINE 모드에서는 이 메소드가 반환되기 전에 추출이 완료됩니다. BACKGROUND 모드에서는 원시 메시지 업데이트가 성공하고 백그라운드 추출이 시도된 후 이 메소드가 반환됩니다. 이 후속 작업은 이후 add_messages() 호출에서 사용되는 일반 추출 빈도에 영향을 주지 않습니다. 기존 추출된 메모리는 그대로 유지되지만 편집된 콘텐츠에서 새로 추출된 메모리는 추가될 수 있습니다. 원시 메시지 업데이트 및 나중에 추출된 메모리 쓰기는 자동으로 수행되지 않으므로 백그라운드 작업이 대기열에 추가되지 않거나, 구성된 대기열 용량 대기가 시간 초과에 도달하거나, 나중에 추출 작업이 실패할 경우 추출된 메모리에 이전 메시지 내용이 계속 반영될 수 있습니다. 또한 소스 메시지의 TTL이 변경될 때 추출된 기존 메모리는 원래 만료 상태를 유지합니다.
예제
message_id = thread.add_messages([{"role": "user", "content": "Draft message"}])[0]
run_async_in_sync(
partial(thread.update_message_async, message_id, content="Edited message")
) == message_id
True
방법 wait_for_memory_extraction
이 스레드에 대한 이전 백그라운드 메모리 추출을 기다립니다.
이 메소드는 동일한 에이전트 메모리 구성 요소를 통해 이 스레드에서 이전 add_messages(), add_messages_async(), update_message() 또는 update_message_async() 호출에 의해 시작된 백그라운드 추출을 기다립니다. 이러한 호출 중 하나가 이미 종료된 경우 이 메소드는 대기 전에 시작하는 추출을 포함합니다.
이 메소드는 이 대기가 시작된 후, 다른 에이전트 메모리 구성 요소에 의해 추출이 시작되거나 다른 프로세스에서 추출이 실행될 때까지 기다리지 않습니다. 추출 실패는 이 대기에 대해 완료된 것으로 계산됩니다.
- 매개변수: timeout
float | None– 선택적 최대 대기 시간(초)입니다. 기본값은300입니다. 이 스레드에 대한 보류 중인 추출이 완료될 때까지 기다리려면None를 전달합니다. - 발생: TimeoutError – 이전 백그라운드 추출이 완료되기 전에 시간 초과가 만료될 때 발생합니다.
- 반환 유형: 없음
예제
thread.wait_for_memory_extraction(timeout=10)
method wait_for_memory_extraction_async(비동기)
이전 백그라운드 메모리 추출을 비동기적으로 기다립니다.
이 메소드는 wait_for_memory_extraction()와 동일한 동작을 따릅니다.
- 매개변수: timeout
float | None– 선택적 최대 대기 시간(초)입니다. 기본값은300입니다.None를 전달하여 무기한 기다립니다. - 발생: TimeoutError – 이전 백그라운드 추출이 완료되기 전에 시간 초과가 만료될 때 발생합니다.
- 반환 유형: 없음
예제
await thread.wait_for_memory_extraction_async(timeout=10)
주: delete_message()는 원시 메시지 행만 삭제합니다. 파생 된 기억은 여전히 검색 가능하거나 컨텍스트 카드에 나타날 수 있습니다. OracleAgentMemory.delete_thread()를 사용하여 연관된 메시지 및 메모리와 함께 스레드를 삭제합니다. 클라이언트 레벨 스레드 삭제는 해당 스레드에 대해 이미 알려진 이전에 수락된 백그라운드 추출을 대기하지만 삭제가 진행 중인 동안 동일한 스레드에서 다른 작업에 대한 전역 동시성 장벽이 아닙니다.
메시지
클래스 oracleagentmemory.apis.thread.Message
기준: object
- 매개변수:
- 역할
str - 콘텐츠
str - 시간 기록
str | None - 메타데이터
dict[str, Any] | None - id
str | None
- 역할
컨텍스트 카드
클래스 oracleagentmemory.apis.contextcard.ContextCard
기준: ABC
스레드 API에서 반환된 추상 컨텍스트 카드 객체입니다.
등록 정보 content(개요)
- 반품 유형: str
- 설명: 렌더링된 컨텍스트 카드 텍스트를 반환합니다.
클래스 oracleagentmemory.core.contextcard.OracleContextCard
기준: ContextCard
Oracle 스레드에서 반환된 컨텍스트 카드입니다.
- 매개변수:
- 요약
str– 카드에 포함된 요약 텍스트입니다. - 항목
Sequence[str] | None– 스레드와 연관된 선택적 검색 항목입니다. - relevant_results
Sequence[SearchResult] | None– 카드에 포함된 선택적 검색된 영구 레코드입니다. - recent_messages
Sequence[Message] | None– 카드로 렌더링된 선택적 최근 원시 메시지입니다. - message_format
str–recent_messages를 렌더링할 때 사용되는 내부 템플리트입니다.
- 요약
등록 정보 content
- 반품 유형: str
-
설명: 렌더링된 컨텍스트 카드 텍스트를 반환합니다.
- 반환: 프롬프트 어셈블리에 적합한 XML과 유사한 렌더링된 컨텍스트 카드 텍스트입니다.
- 반환 유형: str
예제
card = OracleContextCard(summary="ctx")
"<summary>" in card.content and "ctx" in card.content
True
등록 정보 formatted_content
- 반품 유형: str
-
설명: 프롬프트 작성 플로우에 사용되는 렌더링된 컨텍스트 카드 텍스트를 반환합니다.
- 반환: XML과 유사한 렌더링된 컨텍스트 카드 텍스트입니다.
- 반환 유형: str
예제
OracleContextCard(summary="").formatted_content
''
card = OracleContextCard(summary="ctx", topics=["travel"])
"<topics>" in card.formatted_content
True
요약
클래스 oracleagentmemory.apis.summary.Summary
기준: ABC
스레드 API에서 반환된 추상 스레드 요약 객체입니다.
등록 정보 content(개요)
- 반품 유형: str
- 설명: 합성된 요약 텍스트를 반환합니다.
클래스 oracleagentmemory.core.summary.OracleSummary
기준: Summary
Oracle 스레드에서 반환된 요약입니다.
- 매개변수: content
str– 스레드 기록에서 합성된 요약 텍스트입니다.
예제
summary = OracleSummary(content="Plan the Rome itinerary.")
summary.content
'Plan the Rome itinerary.'
str(summary)
'Plan the Rome itinerary.'
등록 정보 content
- 반품 유형: str
-
설명: 합성된 요약 텍스트를 반환합니다.
- 반환: 스레드에 대한 요약 텍스트입니다.
- 반환 유형: str
예제
OracleSummary(content="Keep the tea preference in mind.").content
'Keep the tea preference in mind.'
등록 정보 formatted_content
- 반품 유형: str
-
설명: 프롬프트 작성 플로우에 사용되는 렌더링된 요약 텍스트를 반환합니다.
- 반환: 렌더링된 요약 텍스트입니다.
- 반환 유형: str
예제
OracleSummary(content="Thread recap").formatted_content
'Thread recap'