보안 고려사항

범위: 이 문서에서는 에이전트 메모리 Python SDK와 관련된 보안 고려 사항을 다룹니다. SDK의 활성 메모리 기능 또는 저장소 계층만 사용하는 애플리케이션에 적용됩니다.

중요한 이유: 에이전트 메모리는 Oracle AI Database에서 스레드 콘텐츠 및 메모리 레코드를 보관할 수 있으며, LLM 지원 기능이 사용으로 설정된 경우 요약, 메모리 추출 또는 임베딩을 위해 구성된 모델 엔드포인트로 콘텐츠를 전송할 수 있습니다. 따라서 보안 배포는 애플리케이션 데이터, 검색 범위, 데이터베이스 액세스, 외부 모델 엔드포인트 및 보존 정책의 신중한 처리에 따라 달라집니다.

LLM 지원 메모리 처리에 대한 고려 사항

에이전트 메모리는 스레드 요약 및 자동 메모리 추출과 같은 활성 메모리 기능을 지원합니다. 이러한 기능이 사용으로 설정되면 SDK는 최근 메시지, 스레드 요약, 검색된 메모리를 전송하거나 구성된 LLM 또는 포함 끝점으로 텍스트를 검색할 수 있습니다.

주: 구성된 모델 끝점 및 배치 정책에 적합한 에이전트 메모리로만 콘텐츠를 전송합니다. 암호, 자격 증명 또는 불필요한 민감한 데이터가 포함된 것으로 보이는 데이터에 대해 활성 메모리가 사용으로 설정된 경우 메시지가 메모리 파이프라인에 들어가기 전에 해당 콘텐츠를 최소화하거나 개정하십시오. 추출된 메모리, 요약, 컨텍스트 카드 및 기타 모델 파생 텍스트를 통합 응용 프로그램에서 안전하게 검토하고 처리해야 하는 신뢰할 수 없는 출력으로 처리합니다.

경고: 모델에서 파생된 텍스트는 영구 메모리 상태가 될 수 있습니다. 자동 추출, 요약 또는 컨텍스트 카드 기능이 사용으로 설정된 경우 요약, 추출된 메모리 또는 검색된 레코드를 SDK에서 메모리 추출, 요약, 컨텍스트 카드 또는 에이전트 프롬프트와 같은 이후 프롬프트에 삽입하여 애플리케이션이 특정 중간 값을 검토할 수 있습니다. 이를 일반적인 신뢰할 수 없는 LLM 데이터 플로우로 취급합니다. 애플리케이션이 소비하는 출력을 검토 및 검증하고, 메모리 파생 콘텐츠가 권한 있는 작업을 승인하거나 정책을 우회하지 않도록 합니다.

active-memory 기능을 사용할 때는 다음 권장 사항을 따르십시오.

지속성 및 데이터 최소화에 대한 고려 사항

에이전트 메모리는 DB 지원 저장소가 사용될 때 Oracle AI Database에 메시지, 메모리, 메타데이터 및 임베딩을 지속하도록 설계되었습니다. 이를 통해 내구성이 뛰어난 검색 및 세션 간 메모리를 사용할 수 있지만, 애플리케이션은 보유하기에 적합한 데이터를 계획해야 합니다.

다음 지침은 안전한 데이터 처리 관행에 맞춰 배포를 유지하는 데 도움이 됩니다.

검색 범위 및 액세스 제어 관련 고려 사항

에이전트 메모리는 호출자가 제공한 user_id, agent_idthread_id 값을 사용하여 검색 범위를 지정합니다. 이는 강력한 필터링 모델이지만 검색된 콘텐츠가 사용되거나 표시되는 방법을 결정할 때 애플리케이션이 사용하는 유일한 제어는 아니어야 합니다.

기본적으로 스레드 범위 검색은 user_idagent_id에 대한 정확한 일치와 thread_id에 대한 광범위한 일치를 사용하므로 관련 결과가 동일한 사용자 에이전트 쌍에 대한 과거 스레드로 확장될 수 있습니다. 최상위 레벨 OracleAgentMemory.search()search_async() 호출에는 명시적 사용자 범위 지정과 정확한 사용자 일치도 필요합니다. 생략된 사용자 범위 및 exact_user_match=False를 거부하므로 공용 클라이언트 API는 실수로 여러 사용자를 검색하지 않습니다. user_id=None 전달은 정확한 사용자 일치와 범위가 지정되지 않은 레코드만 대상으로만 허용됩니다.

검색을 설계할 때 다음 연습을 사용합니다.

애플리케이션 통합 및 호출자 신뢰 관련 고려 사항

에이전트 메모리는 최종 사용자가 직접 호출하지 않고 통합 애플리케이션 또는 다른 신뢰할 수 있는 백엔드 코드로 호출됩니다. 원시 메모리 API는 일반 사용자 대면 보안 경계가 아니며 자체적으로 최종 사용자 인증 또는 권한 부여를 수행하지 않습니다. 패키지는 호출자를 신뢰하여 각 작업에 대해 올바른 user_id, agent_id, thread_id 및 검색 범위를 제공합니다.

주: 통합 애플리케이션은 일반 사용자를 인증하고, 액세스 권한을 부여하고, 에이전트 메모리 API를 호출하기 전에 올바른 user_id 및 범위를 파생합니다. 호출자가 제공한 user_id는 ID 증명이 아닌 범위 지정 값입니다.

SDK를 에이전트 응용 프로그램에 통합하는 경우 다음 연습을 사용합니다.

로깅 및 진단 관련 고려 사항

에이전트 메모리는 표준 Python 로깅을 사용하며 통합 애플리케이션에 대한 애플리케이션 로그 처리기 또는 로그 레벨을 구성하지 않습니다. 통합 애플리케이션이 SDK에 대해 DEBUG 로깅을 사용으로 설정하는 경우 디버그 로그에 추가 문제 해결 세부정보가 포함될 수 있습니다. 운용 중인 배치를 DEBUG 레벨이 아닌 레벨로 유지합니다. DEBUG 로깅은 제어된 개발 또는 지원 진단용으로만 사용되며 운용 중인 로그 수집에 적합하지 않습니다.

데이터베이스 액세스, 스키마 관리 및 암호 관련 고려 사항

에이전트 메모리는 호출자가 제공한 Oracle AI Database 연결 또는 풀을 사용합니다. 패키지는 데이터베이스 인증서 자체를 생성하거나 관리하지 않습니다. 또한 호출자 대신 데이터베이스 네트워크 암호화를 생성, 협상 또는 업그레이드하지 않습니다.

참고:

권장되는 배치 방식은 다음과 같습니다.

네트워크 통신 및 외부 끝점에 대한 고려 사항

에이전트 메모리는 배치가 원격 LLM 또는 임베딩 제공자를 구성할 때 외부 서비스와 통신할 수 있습니다. SDK는 구성된 클라이언트 경로를 통해 프롬프트 및 요청 매개변수를 전달하지만 주변 애플리케이션 및 배치는 이러한 연결 보안을 유지합니다.

다음을 권장합니다.

리소스 소진 벡터에 대한 고려 사항

메모리 워크플로는 시간 경과에 따라 데이터베이스 사용량, 임베딩 트래픽, LLM 토큰 사용량을 늘릴 수 있습니다. 이는 악의적인 과도한 사용과 지나치게 큰 메시지 또는 지나치게 광범위한 검색 패턴과 같은 무고한 구현 실수에 모두 해당됩니다.

생산 경화의 일부로 다음 컨트롤을 사용합니다.