검색(Retrieval)이 민감한 기억을 찾아냈고, 그것이 상황을 더 위험하게 만들었다
요약
에이전트 메모리 시스템에서 검색(Retrieval)의 정확도가 오히려 보안 위험을 초래할 수 있음을 경고합니다. 관련성(Relevance)만으로는 메모리 안전성을 보장할 수 없으며, 잘못 분류된 민감한 메모리가 검색될 때 발생하는 '거짓 확신 오류' 문제를 다룹니다.
핵심 포인트
- 검색 정확도가 높을수록 민감한 정보가 노출될 위험이 커짐
- 단순 관련성 기반 검색은 메모리 안전성 보장에 불충분함
- 메타데이터 오류 및 잘못된 메모리 분류가 보안 취약점 유발
- 거짓 확신 오류(False-certainty errors) 발생 가능성 확인
이 글은 왜 관련성(relevance)만으로는 에이전트 메모리 안전(agent memory safety)을 보장하기에 불충분한지에 대한 연구를 이어갑니다.
Article A는 거버넌스 조정 점수 공식(governance-adjusted scoring formula)이 개선책이 아닌 진단 도구임을 보여주었습니다. 홀드아웃 패킷(held-out packet)은 더 강력한 주장의 내용을 반박했습니다. 즉, 해당 패킷에서는 관련성만 고려한 BM25가 전체 점수 산출 방식(full scorer)보다 더 나은 성능을 보였습니다. 이러한 실패는 governs 필드의 누락 또는 오류, 얕은 행동 유형 추론(action-type inference), 그리고 쓰기 시점 체크(write-time checks)의 필요성을 시사했습니다.
이 글은 다른 종류의 실패에 대해 다룹니다. 순위 개선에 대한 주장도 아니고, 또 다른 가중치 튜닝(weight-tuning) 이야기도 아닙니다. 여기서 던지는 질문은 더 단순하면서도 더 심각합니다.
검색(retrieval)이 의도한 대로 정확하게 작동했을 때 — 그리고 바로 그 점 때문에 상황이 더 위험해진다면 — 어떤 일이 벌어질까요?
이 연구를 시작하게 된 시나리오
CLAIM-15 스트레스 패킷 이후, 클레임 원장(claim ledger)은 명백한 공백을 지적했습니다. 바로 governs 필드의 누락과 권한 메타데이터(authority metadata)의 부재 또는 오기입입니다. 이 조합은 체계적으로 테스트된 적이 없었습니다. 거버넌스 조정 점수 산출 방식(governance-adjusted scorer)은 관련성(relevance)과 권한(authority) 가중치로 회귀하여 이를 처리했으나
세 가지 시나리오가 있습니다. 각 시나리오는 일반적인 컨텍스트 (context)로 잘못 분류된 민감한 타겟 메모리 (target memory)를 포함하고 있으며, 이는 태그가 잘 지정된 정책 방해 요소 (policy distractor)와 경쟁합니다.
잘못 분류된 타겟은 다음과 같습니다:
{
"memory_type": "context",
"priority": "normal",
...
정책 방해 요소는 다음과 같습니다:
{
"memory_type": "policy",
"priority": "high",
...
잘못 분류된 메모리는 실제 민감한 콘텐츠를 담고 있습니다. 해당 메모리의 메타데이터 (metadata)에는 답변해도 안전하다고 명시되어 있습니다. 정책 방해 요소는 해당 도메인을 관장하지만 자격 증명 (credential)을 포함하고 있지는 않습니다. 평가기 (evaluator)는 선택된 메모리가 무엇이든 실행되며, 무엇이 실행되느냐에 따라 검증 (verification) 여부가 결정됩니다.
CLAIM-18 — 산업 안전 / 위험 유지보수 (Industrial Safety / Hazardous Maintenance)
세 가지 시나리오가 있습니다. 구조는 동일하지만 도메인 (domain)이 다릅니다. 안전에 필수적인 절차들이 컨텍스트 노트 (context notes)로 잘못 분류되어 있습니다. 유지보수 정책 방해 요소들은 완전한 권한 메타데이터 (authority metadata)를 가지고 있습니다.
두 계열 모두에서의 결과는 다음과 같습니다:
| 패킷 (Packet) | 전략 (Strategy) | 타겟 선택됨 (Target selected) | 동작 정확 (Action correct) | 거짓 확신 오류 (False-certainty errors) |
|---|---|---|---|---|
| CLAIM-17 자격 증명/PII | scope_precedence_role_filter_bm25_metadata_text | 3/3 | 1/3 | 2 |
| ... |
이 패턴은 두 도메인 모두에서 유지되었습니다. 올바른 메모리를 찾아낸 전략들은 거짓 확신 오류 (false-certainty errors)를 발생시켰습니다. 동작의 안전성을 보존한 전략들은 잘못된 메모리를 선택했습니다.
점수가 보여주는 것
점수 분해 (score decomposition)를 통해 그 이유를 설명할 수 있습니다.
CLAIM-17에서 잘못 분류된 VPN 자격 증명 타겟의 경우:
| 구성 요소 (Component) | 잘못 분류된 타겟 (Mislabeled target) | 정책 방해 요소 (Policy distractor) |
|---|---|---|
| 관련성 (relevance) | 0.736 | 1.000 |
| ... |
타겟은 준수한 관련성 (relevance)을 가지고 있었습니다. 하지만 검증 요구 사항이 없고 우선순위 신호 (priority signal)가 없는 일반 컨텍스트로 분류되었기 때문에 authority=0.0이었습니다. 정책 방해 요소는 authority=3.25와 더불어 전체 범위 커버리지 (scope coverage)를 가지고 있었습니다. 방해 요소가 4.564점 차이로 승리했습니다.
잘못 분류된 PII 타겟의 경우:
| 구성 요소 (Component) | 잘못 분류된 타겟 (Mislabeled target) | 정책 방해 요소 (Policy distractor) |
|---|---|---|
| 관련성 (relevance) | 1.000 | 0.650 |
| ... |
타겟은 완벽한 관련성 (relevance)을 가지고 있었습니다. 방해 요소는 관련성이 더 낮았지만, 권위 (authority)와 범위 (scope)만으로 3.95점 차이로 승리했습니다.
범위 우선 검색 (scope-precedence retrieval)이 대신 이러한 타겟들을 찾아냈을 때 — 시스템은 가장 높은 관련성을 가진 메모리를 선택했습니다. 잘못 분류된 타겟의 allowed_action_hint: answer는 평가자에게 답변하도록 지시했습니다. 검증 (verification)은 실행되지 않았습니다. 에스컬레이션 (escalation)도 없었습니다. 에이전트는 마치 그것이 일반적인 사실인 것처럼 민감한 콘텐츠로 응답했습니다.
이것이 바로 거짓 확신 오류 (false-certainty error)입니다. 메모리는 답변하는 것이 안전하다고 말했습니다. 메타데이터 (metadata) 중 어느 것도 이에 반대하지 않았습니다.
트레이드오프 (Tradeoff)는 조정 가능하지 않다
여기에서의 실패 패턴은 가중치 (weight) 문제가 아닙니다. 이는 구조적인 트레이드오프 (structural tradeoff)입니다.
민감한 타겟을 찾는 전략: 올바른 메모리를 검색한 다음, 그에 따라 행동합니다. 만약 메모리의 권위 메타데이터가 answer라고 되어 있다면, 에이전트는 답변합니다. 민감한 콘텐츠가 유출됩니다.
행동 안전성을 보존하는 전략: 대신 태그가 잘 지정된 정책 방해 요소를 선택합니다. 행동은 올바릅니다 — verify_first가 실행됩니다. 하지만 잘못된 메모리가 선택되었습니다. 타겟은 복구되지 않았습니다.
이것은 가중치 문제가 아닙니다. 방해 요소가 승리하는 이유는 타겟에 권위 메타데이터가 전혀 없기 때문입니다 — authority=0.0, scope=0.0, specificity=0.0. 세 가지 항목이 모두 0을 기여합니다. 어느 방향으로 가중치를 조정하더라도 0에서 시작하는 점수를 회복할 수는 없습니다.
현재의 아키텍처 (architecture)는 민감한 메모리가 잘못 분류되었을 때 타겟 정확도 (target accuracy)와 행동 안전성 (action safety)을 동시에 달성할 수 없습니다. 한 가지 목표가 승리하면 다른 하나는 패배합니다. 무엇이 승리할지는 메모리의 실제 민감도가 아니라, 어떤 전략을 사용하느냐에 달려 있습니다.
ANP2 비판이 추가한 점
여기서 ANP2로 언급되는 한 댓글 작성자는, 이 결과가 출판되기 전에 결과에 대한 해석을 더욱 날카롭게 만드는 지적을 했습니다.
관찰 결과: 개별 항목의 메타데이터(metadata)는 위협이 잘못된 레이블링(mislabeling)인 경우 충분한 안전 계층이 되지 못합니다. 거버넌스 조정 스코어러(governance-adjusted scorer)는 메모리가 스스로에 대해 설명하는 내용을 읽습니다. 잘못 레이블링된 메모리는 자신이 안전하다고 말합니다. 스코어러는 이를 읽고 그에 따라 행동합니다. 즉, 더 안전한 정책 방해 요소(policy distractor)로 격상시키거나, 관련성(relevance)을 우선시하는 검색 시스템(retrieval systems)의 경우 잘못 레이블링된 메모리를 권위 있는 정보(authority)로 취급합니다.
이는 정확한 지적이며, 명시적으로 언급할 가치가 있습니다:
CLAIM-17 및 CLAIM-18의 결과가 항목 수준의 메타데이터가 잘못 레이블링된 민감한 메모리 문제를 해결한다는 것을 의미하지는 않습니다. 이는 항목 수준의 메타데이터가 없을 때, 검색(retrieval)만으로는 행동 안전성(action safety)을 보존할 수 없음을 의미합니다. 후속 아키텍처에는 메모리 항목 자체의 자기 설명(self-description) 외부에 존재하는 리소스 및 행동 클래스 권한 부여(authorization)가 필요합니다.
CLAIM-17과 CLAIM-18이 입증하는 것은 다음과 같습니다: 스코어링 공식은 타겟 복구(target recovery)를 희생하는 대신, 에이전트를 잘못 레이블링된 메모리로부터 잘 태깅된 정책(well-tagged policy)으로 유도할 수 있습니다. 이는 유용한 속성이지만, 해결책은 아닙니다. 이는 현재 프레임워크가 유지하는 최저 한계선입니다.
최소 실행 가능 전제 조건 (The Minimum Viable Precondition)
두 패킷 제품군(packet families) 모두에서 메커니즘은 동일했습니다. 점수 검사(Score inspection)를 통해 매번 확인되었습니다:
- 잘못 레이블링된 민감한 타겟:
authority=0.0,scope=0.0, 모든 경우에서 총합 2.1 미만 - 잘 태깅된 정책 방해 요소:
authority=3.25, 일치하는 scope, 모든 경우에서 총합 5.2 초과
여기서 도출되는 전제 조건은 좁고 구체적입니다:
이 패킷 제품군에서, 프레임워크가 타겟 정확도와 행동 안전성을 모두 보존하기 위해서는 민감한 메모리에 governs 메타데이터 또는 권위 신호(authority signals) — memory_type, 우선순위(priority), 검증 요구 사항(verification requirement), 또는 행동 힌트(action hint) — 가 반드시 필요합니다.
이 중 최소 하나라도 없다면, 프레임워크는 알려진 방식으로 성능이 저하됩니다: 거버넌스 조정 검색(governance-adjusted retrieval)은 행동 안전성을 보존하기 위해 타겟을 식별하지 못하게(target-blind) 되며, 관련성 우선 검색(relevance-first retrieval)은 타겟을 찾아내어 잘못된 확신 오류(false-certainty errors)를 발생시킵니다.
이것은 모든 기억에 governs를 부여해야 한다는 주장이 아닙니다. 이는 기억 클래스(memory class)가 민감할 경우, 권한을 지닌 메타데이터(authority-bearing metadata)를 허용의 전제 조건으로 만들어야 한다는 주장입니다. 점수 산정 공식(scoring formula)은 저장 시점(storage time)에 기록되지 않은 것을 랭킹 시점(ranking time)에 보완할 수 없습니다.
이 글이 주장하는 것이 아닌 것
- 전제 조건이 보편적으로 증명된 것은 아닙니다. 두 패킷(packets) 모두 내부적으로 작성되었습니다. 이 패턴은 두 도메인에 걸쳐 유지되었으며, 이는 이를 제한된 논제(bounded thesis)로 사용하는 근거를 강화하지만, 외부적으로 이를 확립하는 것은 아닙니다.
- 이 프레임워크가 잘못 라벨링된 민감한 기억(mislabeled sensitive memory) 문제를 해결하는 것은 아닙니다. 해결하지 못합니다. 거버넌스 조정 검색(Governance-adjusted retrieval)은 타겟 복구(target recovery)를 희생하는 대가로 더 안전한 정책으로 리다이렉션합니다. 그것이 현재의 한계치입니다.
- 리소스 민감도(Resource sensitivity)라는 독립된 분야가
governs누락 문제를 해결하는 것은 아닙니다. CLAIM-17은resource_sensitivity항을 포함했으나, 범위(scope)에 의해 제어되지 않을 경우 일반적인 읽기 쿼리에서 과도하게 차단(overblocked)되는 것을 발견했으며, 타겟에governs필드가 없는 경우 누락된 권한 메타데이터를 대체하지 못했습니다. 리소스 민감도는 권한 메타데이터는 없지만 리소스 클래스(resource class)를 알고 범위(scope)가 존재하는 좁은 사례에서만 별도의 가치를 더합니다. - 이러한 결과가 잘못 라벨링된 기억과 잘 라벨링된 기억이 대규모로 공존하는 혼합 저장소(mixed stores)로 일반화되는 것은 아닙니다. 여기서 다루는 패킷은 작고 구조화되어 있습니다. 혼합 라벨, 혼합 민감도 저장소에 대한 외부적 압력은 다음 테스트 단계이지, 현재의 결과가 아닙니다.
제한된 주장: 사전 등록된 두 개의 내부 작성 패킷 제품군(packet families) 전반에 걸쳐, 민감한 기억에 governs와 권한 메타데이터가 모두 없을 때 타겟 정확도가 높은 검색(target-accurate retrieval)은 행동상 안전하지 않게(action-unsafe) 되었습니다. 권한 신호 기반 검색(Authority-signal-driven retrieval)은 행동 안전성(action safety)을 보존했지만 타겟을 식별하지 못하게(target-blind) 되었습니다. 이 결과를 만들어낸 동일한 점수 산정 메커니즘은 이러한 트레이드오프(tradeoff)를 검사 가능하게 만들었습니다.
다음 단계
CLAIM-17과 CLAIM-18이 드러낸 트레이드오프는 랭킹 가중치(ranking weights)를 조정함으로써 해결될 수 없습니다. 이는 오직 쓰기 시점(write time)에 무엇이 존재하는지를 다룸으로써만 해결될 수 있습니다.
만약 민감한 기억 (sensitive memory)이 권한 메타데이터 (authority metadata) 없이 저장소 (store)에 진입한다면, 스코어러 (scorer)는 그 부재를 그대로 상속받게 됩니다. 검색 (retrieval) 단계에 도달하기 전에 이 문제를 차단할 수 있는 유일한 계층은 쓰기 시점 게이트 (write-time gate)입니다. 즉, 권한을 지닌 기억들이 저장소에 수용되기 전에 유효한 메타데이터를 반드시 지니도록 요구하는 전제 조건 검사 (precondition check)입니다.
ANP2가 식별한 두 번째 계층은 기억의 자기 기술 (self-description)이 아니라, 작업 (operation) 자체로부터 파생되는 인가 (authorization)입니다. 만약 에이전트 (agent)가 민감한 동작을 실행하려 한다면, 인가 검사는 단순히 검색된 기억이 스스로에 대해 무엇이라고 말하는지가 아니라, 제안된 도구 호출 파라미터 (tool-call parameters) — 대상 리소스 (target resource), 작업 유형 (action type), 수신자 (recipient), 범위 (scope) — 를 읽어야 합니다. 잘못 라벨링된 기억이라 할지라도, 작업으로부터 권한을 도출하는 게이트 앞에서는 자신의 메타데이터를 통해 거짓말을 할 수 없습니다.
두 가지 모두 미해결 과제 (open problems)입니다. 이러한 결과들이 바로 이 과제들이 다음 단계인 이유입니다.
필요한 다음 외부 압력은 다음과 같습니다: 제가 설계한 스키마 (schema) 없이 작성된 패킷 — 즉, 서로 다른 메타데이터 필드, 서로 다른 민감도 분류 체계 (sensitivity taxonomy), 그리고 제가 설계하지 않은 잘못된 라벨링 패턴을 가진 패킷입니다. 만약 그곳에서도 트레이드오프 (tradeoff)가 유지된다면, 전제 조건 (precondition)에 대한 주장은 더욱 강력해질 것입니다. 만약 경계 (boundary)가 이동한다면, 그것이 다음 발견 사항이 될 것입니다. 목표 시점: 2026년 3분기.
원장 기록 (The Ledger Entry)
이 결과는 공개 연구 하네스 (research harness)에 CLAIM-17 및 CLAIM-18로 기록되었습니다.
CLAIM-17: 자격 증명/개인정보(credentials/PII) 패킷 전반에 걸쳐, 리소스 민감도 (resource sensitivity)만으로는 깨끗한 쿼리 (clean queries)에 대해 과도한 차단 (overblocked)이 발생했습니다. 범위 기반 리소스 민감도 (Scope-gated resource sensitivity)와 거버넌스 조정 스코어링 (governance-adjusted scoring)은 모두 잘 라벨링된 부분에서 7/7의 성과를 달성했습니다. 권한이 부재한 경계 (authority-absent boundary)에서: 거버넌스 조정 방식은 동작 안전성 (action safety)은 보존했으나 (3/3 동작), 대상 복구 (target recovery)에는 실패했습니다 (1/3 대상). 범위 우선순위 (Scope-precedence) 방식은 잘못 라벨링된 대상을 찾아냈으나 (3/3 대상), 2건의 거짓 확신 오류 (false-certainty errors)를 생성했습니다 (1/3 동작).
CLAIM-18: 권한 부재 경계 결과(authority-absent boundary result)가 산업 안전 분야의 독립적인 내부 패킷(internal packet) 전반에서 재현되었습니다. 동일한 트레이드오프(tradeoff)가 관찰되었습니다: 거버넌스 조정(governance-adjusted) 방식은 대상 1/3, 동작 3/3, 거짓 확신 오류(false-certainty errors) 0건을 기록했습니다. BM25/범위 우선순위(scope-precedence) 방식은 대상 3/3, 동작 1/3, 거짓 확신 오류 2건을 기록했습니다.
최소 전제 조건 확립: 프레임워크가 대상 정확도(target accuracy)와 동작 안전성(action safety)을 모두 보존하기 위해서는 민감한 기억(sensitive memories)에 governs 또는 권한 신호(authority signals)가 반드시 필요합니다.
상태: 사전 등록(pre-registration)을 통해 두 도메인에서 내부적으로 재현되었습니다. 외부 검증은 이루어지지 않았으며, 벤치마크 등급(benchmark-grade)은 아닙니다. 패킷, 평가자(evaluators) 및 결과는 github.com/keniel13-ui/ai-memory-judgment-demo의 공개 리포지토리(public repo)에 있습니다.
다음 과제: 쓰기 시점 전제 조건 게이트(write-time precondition gate) 및 도구 호출(tool-call) 파라미터로부터 유도된 운영 기반 권한 부여(operation-derived authorization)입니다. 이 문제들은 아직 해결되지 않은 상태(open)입니다. 이 두 가지 주장(claims)이 바로 이 문제들이 다음 순서가 된 이유입니다.
이 글은 자기 교정 시스템(Self-Correcting Systems) 연구 시리즈의 일부입니다. 이전 기사들은 프레임워크, 권한 정책(authority policy), 액세스 게이트(access gate), 권한 중재 문제(authority arbitration problem), 그리고 거버넌스 조정 점수 공식(governance-adjusted scoring formula)을 다루었습니다. 전체 시리즈 인덱스는 여기에서 시작에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기