coredot.today
기술 탐색으로 돌아가기
에이전트 기억연구

검색 허용성

관련 있는 기억이 써도 되는 기억은 아니다 — 범위·정책·수명을 1/0/? 세 값으로 판정하고, 같은 재현율에서 비교하는 평가 프레임워크

직접 해보기 5
종류
논문
라이선스
MIT
언어
Python
사실 확인
2026.10.24

TRY IT

직접 해보기

OVERVIEW

개요

무엇인가

검색 허용성(retrieval admissibility)은 미국 아칸소대 리틀록 연구진이 2026년 10월 5일 arXiv에 올린 「The Right Memory in the Wrong Context: Verifying Retrieval Admissibility in Long-Term Agent Memory」(arXiv 2610.07309, NeurIPS 2026 워크숍 채택)가 정식화한 개념입니다.

관련성은 기록이 질문에 답할 수 있는가를 묻고, 허용성은 그 기록을 답에 써도 되는가를 묻는다.

호텔 컨시어지 AI가 다른 투숙객의 결혼기념일 메모를 꺼내 "케이크는 어떠세요?"라고 답하는 장면이 문제의 모양입니다. 검색은 잘했고, 꺼낸 기억은 질문과 주제가 정확히 맞았습니다. 형사소송법의 증명력과 증거능력처럼, 자격 심사가 먼저고 가치 판단은 나중입니다. 기억의 주인, 작성 시각, 이후 무효가 됐는지, 삭제 요청이 있었는지는 본문 텍스트 바깥의 메타데이터라서 임베딩 점수로는 볼 수 없습니다.

이 논문은 새 검색 알고리즘이 아니라 평가 프로토콜입니다. 기억 시스템이 안전한지를 정직하게 재는 방법을 설계했습니다.

어떻게 동작하나

질의를 텍스트 하나가 아니라 묶음으로 봅니다. 질의 텍스트, 인증된 주체, 적용 정책, 질의 의도(현재·이력), 평가 시각입니다. 기억마다 관련성과 세 자격 축 — 범위(내 네임스페이스인가)·정책(이 목적에 써도 되나)·수명(생애 주기 상태가 의도와 맞나) — 을 매기고, 각 값은 1·0·?(미확정) 중 하나입니다.

1. 3치 판정
강한 클레이니 논리곱으로 묶는다. 축 하나라도 확정된 0이면 제외, 전부 1이면 허용, 그 밖은 미확정. 미확정은 결코 허용이나 제외로 메우지 않는다.
2. 같은 재현율 비교
아무것도 안 가져오는 경로가 가장 '안전'해 보이는 꼼수를 막는다. 필수 증거의 80%(τ = 0.8)를 처음 채운 지점까지만 잘라 위반·허용·미확정을 세고, 위험을 하한~상한 구간으로 보고한다. 끝내 못 채우면 손실 1이다.
3. ID 감사 추적
기억 ID 하나를 저장 → 검색 → 노출(프롬프트에 들어감) → 발설(답에 나옴)까지 따라간다. 노출은 검색의 부분집합이지 다른 이름이 아니다. 실패가 후보·검증·조립·발설 중 어디서 났는지 지목할 수 있다.

수명 축은 상태와 의도의 짝입니다. 같은 '대체된' 기록이 현재 상태를 묻는 질문에서는 0, 변화 이력을 묻는 질문에서는 1입니다.

기록 상태 / 질의 의도현재이력모름
현재111
낡음 · 대체됨01?
모름???

그래서 "오래된 기억은 지운다"는 질문 무관 규칙은 틀린 해법입니다. 실제로 현재값 전용 경로는 상위 100건 필수 증거 재현율이 0.824로 네임스페이스 경로(0.866)보다 낮았습니다.

실험이 보여 준 것

RHELM·MemOps 공개 데이터의 질의 3,767개, 기억 182,908건으로 쟀습니다(같은 임베딩 Qwen3-Embedding-8B, 상위 20건).

경로필수 증거 재현율80% 도달률유사도 계산
전역 검색.432.23790,122
같은 크기 무작위 분할.061.0241,540
네임스페이스 사전 필터.533.3111,551 (98.3%↓)
전역 → 사후 필터 (깊이 500).531.31190,122

효과는 후보 크기가 아니라 출처에서 나왔고, 사후 필터는 같은 결과에 58배 계산을 썼습니다. 본문만 읽는 LLM 검증기는 위반을 가르는 ROC-AUC가 GPT-5.6 Sol .626, Gemini 3.6 Flash .522에 그쳤고, 어떤 임계값도 필수 증거 오거부 1% 제약을 지키며 위반을 거르지 못했습니다. 리더 실험에서는 한 모델(DeepSeek V4 Pro)이 부적격한 관련 기억이 프롬프트에 들어오면 15.6%p 더 말했습니다. 리더의 분별력에 기대지 말고 프롬프트에 넣기 전에 막아야 한다는 것이 결론입니다.

빠른 시작

공개 저장소의 예제는 GPU·API 키 없이 합성 데이터로 돕니다(README).

bash
git clone https://github.com/ziwang11112/right-memory-wrong-context.git
cd right-memory-wrong-context
uv sync --locked --extra dev --extra plots
uv run --no-sync python -m scripts.run_retrieval_experiment run --cases tests/fixtures/retrieval_cases.jsonl --protocol experiments/frozen_natural_protocol.json --output tmp/retrieval_routes.jsonl

내 기억 시스템에 붙일 게이트는 짧습니다. 핵심은 3치 판정과 제외 사유 기록입니다.

python
def and3(*xs):
    if any(x == 0 for x in xs):
        return 0
    if all(x == 1 for x in xs):
        return 1
    return "?"

def lifecycle(state, intent):
    if state is None or intent is None:
        return "?"
    if state == "current":
        return 1
    return 1 if intent == "history" else 0  # stale / superseded

한계와 주의

  • 네임스페이스는 '주어진다'. 가장 강한 결과는 신뢰할 수 있는 출처 라벨을 전제로 한다. 라벨 손상 실험에서 네임스페이스 거짓 거부·누락은 20%부터 전역 검색보다 못해졌고, 정책 거짓 거부와 수명 거짓 '낡음'은 단 2%에서 깨끗한 네임스페이스 경로보다 나빠졌다. 거르기를 세게 하는 방향의 실수가 더 비싸다.
  • 정책 축이 가장 약하다. 박사급 검토자 둘의 일치도(크리펜도르프 알파)가 범위 .981인데 정책은 .083이었다. 정책 축은 '공개 필드와의 일관성'으로만 읽는다. 네임스페이스는 '누구의 것'을 거르지 '무슨 목적'을 거르지 않는다.
  • 범위가 좁다. 공개 데이터 두 종류, 판사 하나(Claude Haiku 4.5), 지연시간 주장 없음, 그래프 기억은 범위 밖이다. 리더 정답률 +5~7%p는 재현율도 함께 올라 관찰적 연관이다.
  • 성능용 파티션을 보안 경계로 착각하지 않는다. 벡터 DB의 테넌트 힌트처럼 필터를 빼먹으면 전체가 검색되는 구조는 신뢰할 수 있는 네임스페이스가 아니다.
  • 검색에서 가리는 것은 삭제가 아니다. 한국 개인정보 보호법 제36조는 삭제 시 복구·재생되지 않도록 조치하라고 요구한다. 수명 축의 0은 검색 시점 방어선일 뿐이다.

DEEP DIVE

더 깊이 읽기