검색

이 페이지에서는 개발자 관련 범위 지정 도우미와 구체적인 Oracle 검색 결과 유형을 함께 제공합니다.

범위 해상도

각 범위 필드에 대해 다음 세 가지 작업 중 하나를 수행할 수 있습니다.

각 저장된 레코드에는 user_id, agent_id 및 thread_id의 세 가지 독립 범위 필드가 있습니다. 각 필드에는 구체적 ID 또는 None가 포함될 수 있습니다.

예제는 다음과 같습니다.

동일한 범위 지정 규칙이 동기 및 비동기 검색 API 모두에 적용됩니다.

아래 테이블에서 ID는 해당하는 정확한 일치 플래그와 함께 user_id, agent_id 또는 thread_id를 의미합니다.

API 계층별 검색 범위 분석

사례 thread.search() OracleAgentMemory.search() store.search()
ID 생략됨 스레드 기본값(정확한 user_id 및 agent_id)과 현재 thread_id(exact_thread_match=False 포함)을 사용합니다. 클라이언트 기본값을 사용합니다. 생략된 user_id가 거부되었습니다. agent_id 및 thread_id를 생략했습니다. 차원이 필터링되지 않도록 저장소 기본값 ID=None 및 exact_*_match=False을 사용합니다.
None + exact_*_match=False를 포함한 명시적 값 해당 차원은 필터링되지 않습니다. 값이 지정된 레코드와 일치하는 레코드는 다른 레코드보다 높은 등급을 지정할 수 있습니다. user_id의 경우 클라이언트 검색에 명시적인 정확한 사용자 범위 지정이 필요하므로 거부됩니다. agent_id 및 thread_id의 경우 해당 차원이 필터링되지 않습니다. 값이 지정된 레코드와 일치하는 레코드는 다른 레코드보다 높은 등급을 지정할 수 있습니다. 해당 차원은 필터링되지 않습니다. 값이 지정된 레코드와 일치하는 레코드는 다른 레코드보다 높은 등급을 지정할 수 있습니다.
명시적 ID + exact_*_match=True 이 ID와 정확히 일치합니다. 이 ID와 정확히 일치합니다. 이 ID와 정확히 일치합니다.
명시적 None + exact_*_match=True 해당 차원에서 범위가 지정되지 않은 레코드만 일치시킵니다. 해당 차원에서 범위가 지정되지 않은 레코드만 일치시킵니다. 해당 차원에서 범위가 지정되지 않은 레코드만 일치시킵니다.

해당 차원에서 범위가 지정되지 않은 레코드만 원하고 API에서 허용하는 경우 명시적 None를 exact_*_match=True와 함께 사용합니다. 대신 공정 기본값을 원하는 경우 필드를 생략합니다.

수명 주기 상태 필터링

모든 지속 레코드는 수명 주기 상태를 가집니다. 검색은 저장소, 클라이언트 및 스레드 API에서 include_invalid_results를 허용합니다. 클라이언트 및 스레드 API의 기본값은 NOT_SET_MARKER이며, 검색 결과에 적합하고 부적합한 레코드를 포함하도록 분석됩니다. 하위 레벨 저장소 API는 부울 기본값을 동일한 동작으로 해결합니다. False을 전달하여 상태가 RecordStatus.INVALID인 레코드를 생략합니다.

그래프 확장

0에서 5까지 num_hops를 저장소, 클라이언트 또는 스레드 검색 API에 전달하여 연결된 메모리 컨텍스트를 각 직접 메모리 결과에 연결합니다. 순회는 두 방향 중 하나의 관계를 따르고 저장된 관계 방향을 보존하며 각 레코드의 linked_results 시퀀스를 통해 가장 짧은 경로 트리를 반환합니다. 직접 메시지, 문서 및 수행자 프로파일 일치 항목은 순위가 지정된 결과 집합에 남아 있지만 그래프로 확장되지는 않습니다. 특히 검색 가능한 이미지 설명은 DOCUMENT를 메모리 링크 정점으로 만들지 않고도 이미지 레코드를 반환할 수 있습니다. 범위, 메타데이터, 레코드 유형 및 만료 필터는 연결된 모든 메모리에 적용됩니다. include_invalid_results는 계속해서 최상위 레벨 검색 일치 항목만 제어합니다. 연결된 메모리는 변경되지 않습니다. max_linked_results는 모든 홉에서 각 직접 결과에 연결된 총 연결된 메모리를 제한합니다. 기본값은 100입니다. 링크된 컨텍스트를 생략하려면 0를 전달합니다.

범위

클래스 oracleagentmemory.apis.scope.Scope

기준: object

정보 삽입 또는 검색에 대한 범위를 나타냅니다.

user_id

고객 ID입니다. NOT_SET_MARKER는 필드가 생략되었으며 작업별 기본값으로 해결되어야 함을 의미합니다. 명시적 None는 작업별 규칙에 따라 보존되고 해석됩니다. OracleAgentMemory.search()와 같은 상위 레벨의 클라이언트 API는 사용자 범위를 명시적으로 요구할 수 있습니다. 해당 API에서 None는 범위가 지정되지 않은 레코드만 대상으로 지정할 수 있습니다.

에이전트 ID

에이전트 ID. NOT_SET_MARKER는 필드가 생략되었으며 작업별 기본값으로 해결되어야 함을 의미합니다. 명시적 None는 작업별 규칙에 따라 보존되고 해석됩니다.

thread_id

스레드 ID. NOT_SET_MARKER는 필드가 생략되었으며 작업별 기본값으로 해결되어야 함을 의미합니다. 명시적 None는 작업별 규칙에 따라 보존되고 해석됩니다.

클래스 oracleagentmemory.apis.searchscope.SearchScope

기준: Scope

검색 질의의 범위를 나타내므로 반환할 수 있는 항목을 제한합니다.

user_id

고객 ID입니다. 해결된 exact_user_match 값이 True인 경우 이 ID는 None를 포함하여 정확히 일치됩니다. False인 경우 사용자 차원이 제한되지 않습니다. NOT_SET_MARKER는 작업별 기본값으로 바뀝니다. OracleAgentMemory.search()와 같은 상위 레벨의 클라이언트 API는 사용자 범위를 명시적으로 요구할 수 있습니다. 해당 API에서 None는 exact_user_match가 True로 확인될 때 범위가 지정되지 않은 레코드만 대상으로 지정합니다.

에이전트 ID

에이전트 ID. 해결된 exact_agent_match 값이 True인 경우 이 ID는 None를 포함하여 정확히 일치됩니다. False인 경우 에이전트 차원이 제한되지 않습니다. NOT_SET_MARKER는 범위를 사용하는 작업에 따라 기본값으로 바뀝니다.

thread_id

스레드 ID. 해결된 exact_thread_match 값이 True인 경우 이 ID는 None를 포함하여 정확히 일치됩니다. False인 경우 스레드 차원이 제한되지 않습니다. NOT_SET_MARKER는 범위를 사용하는 작업에 따라 기본값으로 바뀝니다.

정확한_사용자_일치

해결된 user_id와 정확히 일치할지 여부입니다. True는 None를 포함하여 정확히 일치합니다. False는 사용자 차원을 제약 없는 상태로 유지합니다. NOT_SET_MARKER는 작업에 따라 기본값으로 바뀝니다. OracleAgentMemory.search()와 같은 상위 레벨 클라이언트 API의 경우 이를 True로 유지해야 할 수 있습니다.

정확한_에이전트_일치

해결된 agent_id와 정확히 일치할지 여부입니다. True는 None를 포함하여 정확히 일치합니다. False는 에이전트 차원을 제약 없는 상태로 유지합니다. NOT_SET_MARKER는 작업에 따라 기본값으로 바뀝니다.

정확한_스레드_일치

해결된 thread_id와 정확히 일치할지 여부입니다. True는 None를 포함하여 정확히 일치합니다. False는 스레드 차원을 제약 없는 상태로 유지합니다. NOT_SET_MARKER는 작업에 따라 기본값으로 바뀝니다.

검색 구성

클래스 oracleagentmemory.core.MemorySearchConfig

기준: ISearchConfig

메모리 사후 검색 동작에 대한 기본 구성입니다.

형식이 지정된 검색 출력에 대한 선택적 대상 크기입니다.

전체 결과는 이 예산에 도달하거나 초과하는 첫 번째 결과를 통해 순위에 따라 유지됩니다. 따라서 첫 번째 결과는 하드 token_budget가 반환되지 않도록 방지할 때 유지됩니다.

형식이 지정된 검색 출력의 예상 크기에 대한 선택적 하드 한계입니다.

전체 결과는 순위에 따라 유지되며 누적 예측은 예산에 맞습니다. 첫 번째 결과가 맞지 않으면 결과가 반환되지 않습니다.

클래스 oracleagentmemory.core.TopKMemorySearchConfig

기준: _RerankingMemorySearchConfig

최대 직접 결과가 고정된 검색 구성입니다.

등급을 재지정하기 전에 검색된 최대 직접 결과 수입니다.

클래스 oracleagentmemory.core.PruningEvaluationMode

기준: str, Enum

제거 중 광범위한 검색 결과를 평가하는 방법을 제어합니다.

배상 = 'EXHAUSTIVE'

모든 후보자 결과를 개별적으로 평가합니다. 이는 가장 완벽한 평가를 제공하지만, 대기 시간과 LLM 사용량이 가장 높습니다.

확장됨 = 'EXTENDED'

추가 대기 시간 및 LLM 사용 비용으로 유지할 결과를 결정하기 전에 결과의 더 넓은 부분을 평가합니다.

빠른 속도 = 'FAST'

추가 검사가 보존되는 결과를 변경하지 않을 가능성이 있는 경우 조기에 평가를 중지하여 대기 시간이 짧은 우선순위를 지정합니다.

클래스 oracleagentmemory.core.PruningMemorySearchConfig

기준: _RerankingMemorySearchConfig

관련성이 낮은 직접 결과를 제거하는 검색 구성입니다.

직접 결과 제한은 각 검색 또는 컨텍스트 카드 호출에 제공되며 순위 재지정 및 제거 전에 적용됩니다.

제거 중 검색 결과를 광범위하게 평가하는 방법

생략할 경우 PruningEvaluationMode.FAST가 사용됩니다.

FAST 또는 EXTENDED 모드에서 평가된 순위 결과 영역 수입니다.

evaluation_mode가 PruningEvaluationMode.EXHAUSTIVE인 경우 이 매개변수를 설정할 수 없습니다.

제거로부터 보호되는 최고 등급의 직접 결과의 일부입니다.

예를 들어, 0.1는 직접 결과의 상위 10%를 보호합니다.

LLM은 제거할 직접 결과를 결정하는 데 사용됩니다.

결과

클래스 oracleagentmemory.core.SearchResultFormatConfig

기준: object

이식 가능한 검색 결과 렌더링 옵션을 제어합니다.

구현은 하위 클래스에 추가 렌더링 옵션을 제공할 수 있습니다.

클래스 oracleagentmemory.core.OracleSearchResultFormatConfig

기준: SearchResultFormatConfig

Oracle 검색 결과 렌더링 옵션을 제어합니다.

클래스 oracleagentmemory.core.OracleSearchResult

기준: SearchResult

Oracle 스레드에서 반환된 검색 결과입니다.

등록 정보 content

방법 format_content

이 결과와 해당 그래프 컨텍스트를 XML에 안전한 프롬프트 텍스트로 렌더링합니다.

등록 정보 formatted_content

재산 id

등록 정보 linked_results

등록 정보 metadata

등록 정보 record

반환된 값은 일반 Record 또는 ScopedRecord 하위 클래스일 수 있습니다. 퍼블릭 범위 식별자를 읽기 전에 isinstance(result.record, ScopedRecord)를 사용하십시오.

등록 정보 status

등록 정보 timestamp