만들고 있는 Obsidian 플러그인에는 위키 전체를 훑어서 같은 개념을 다루는 노트 두 개를 찾아 “합치자”고 제안하는 기능이 있다. 제안을 실행하기 전에는 LLM에게 “이 둘이 정말 같은 개념인가”를 한 번 더 판단시키는데, 이번 글은 그 판단 프롬프트를 고치다가 생긴 일이다.
다른 시리즈의 3편에서는 닫은 지 몇 시간 만에 판단을 다시 열었다. 이번엔 그보다 훨씬 늦게 열었다 — 이틀 전에 “해결 확인”까지 남기고 닫은 이슈를, 다시 들여다보고서야 그때 확인한 게 애초에 다른 질문에 대한 답이었다는 걸 알았다.
오탐 하나를 고치다가, 반대쪽에서 정탐 하나를 놓쳤다 — 병합 판단 프롬프트
“AI가 노동시장에 미치는 영향”을 각각 다룬 두 노트가 병합 제안에 올라왔다. 하나는 BLS 데이터와 노동경제학자 인터뷰를, 다른 하나는 Stanford AI Index와 McKinsey 설문을 인용한, 서로 무관한 기사에서 나온 노트였다. 병합 판단 프롬프트를 들여다보니 원인이 명확했다 — “제목/범위가 겹치면 같은 개념”이라고만 돼 있을 뿐, “원본이 같은 구체적 사건을 가리키는지”를 보라는 기준이 이 프롬프트에는 아예 없었다. 같은 일반 주제를 다른 근거로 설명하기만 해도 전부 “같은 개념”으로 판정하는 구조였다. 기준을 추가해 고쳤다.
그런데 수정한 프롬프트로 다시 스캔을 돌려보니, 전혀 다른 쌍에서 문제가 났다. 현대자동차의 자율주행 전략을 다룬 두 노트 — 2026년 1월 NVIDIA 출신 임원 선임, 같은 Alpamayo 전면 전환, 같은 SEooC 방식, 같은 툴체인, 같은 2028년 중반 양산 목표까지 전부 겹치는, 사실상 같은 사건을 다룬 노트 쌍 — 가 이번엔 “원본이 다르다”는 이유만으로 “다른 개념”으로 잘못 걸러졌다. 오탐을 잡으려고 기준을 세웠더니, 그 기준이 너무 세게 당겨져서 이번엔 정탐을 놓친 것이다.
반대쪽 사례로 검증하고, 그 검증만 믿고 닫았다
기준을 다시 완화했다 — “원본이 다르다는 사실 자체는 다른 개념의 근거가 아니다, 서로 다른 매체가 같은 사건을 각자 보도한 경우는 원본이 둘이어도 같은 개념”이라는 균형을 추가했다. 재검증은 당연히 방금 놓친 현대자동차 쌍으로 했다. 여섯 번 연속 놓치던 그 쌍이 이번엔 정확히 잡혔다. 관련된 다른 이슈까지 부수 효과로 해결된 것처럼 보였고, 다음날 “사실상 이미 해결됨, 코드 손댈 필요 없고 그냥 닫으면 됨”이라는 판단과 함께 두 이슈 모두 닫혔다.
이 검증은 틀리지 않았다. 현대차 쌍이 이제 정확히 병합되는 것도 사실이었고, 그 확인도 직접 본문을 대조해서 나온 결과였다. 문제는 따로 있었다 — 애초에 이 조사를 시작하게 만든 사례, 그러니까 AI 노동시장 노트 쌍은 기준을 두 번 고치는 동안 단 한 번도 다시 테스트되지 않았다. “기준을 완화했더니 정탐을 되찾았다”는 확인과 “기준을 완화했는데도 원래 오탐은 여전히 안 걸리는지”는 다른 질문인데, 앞의 질문에 대한 답만 갖고 뒤의 질문까지 닫아버린 셈이었다.
며칠 뒤, 같은 쌍을 vault 전체 조건으로 다시 돌려봤다
며칠 뒤 이 판단을 다시 짚어보면서, 그때는 하지 않았던 걸 해봤다. 그
AI 노동시장 쌍 단 두 개만 떼어내 프롬프트에 넣는 대신, 실제 운영
조건과 똑같이 vault 안의 노트 전체 목록을 함께 넣어서 돌렸다. 결과가
갈렸다 — 단둘이 테스트했을 땐 “다른 개념”이라고 정확히 나왔던 판단이,
실제 조건(제목이 겹쳐서 한쪽 파일명 뒤에 이미 _dup 번호가 붙어 있고,
임베딩 유사도도 0.9를 넘는 상태)에서는 뒤집혔다. LLM은 “동일한 분류와 제목을
공유한다”는, 애초에 쓰지 말라고 명시한 바로 그 근거를 대며 두 노트를
다시 병합하자고 제안했다.
규칙 자체가 이 조건에서는 안 먹힌다는 뜻이었다. 그런데 그 사실을 확인하고 나니 오히려 다른 질문이 남았다 — 이 병합, 정말 막아야 하는 게 맞나?
실제로 병합을 실행해보니, 막을 이유가 없었다 (주제 vs 개별 사건 규칙)
말로 예측하는 대신 실제로 병합을 실행했다. 결과물은 두 원문의 사실을 날조 없이 그대로 보존한, 정리된 문서였다. 후속 스캔에서 다시 쪼개자는 제안도 나오지 않았다. 각 개별 출처로의 추적성도 원문별로 따로 만들어져 있던 노트들을 통해 그대로 남아 있었다. 겉보기엔 누가 봐도 위화감 없는 결과였다.
그러니까 처음 이 조사를 시작하게 만들었던 전제 — “서로 다른 원본이 같은 일반 주제를 다룰 뿐이면 병합하면 안 된다” — 가 이 사례에서는 애초에 틀렸을 가능성이 높았다. 규칙에 예시로 박아 넣었던 이 사례(worked example)를 지웠다. 그 규칙으로 이미 닫아놓은 이슈 두 개도 다시 열어, 판단을 재검토 중이라는 걸 명시하는 코멘트를 남겼다.
남는 생각
두 이슈 다 “재현 안 됨, 검증 완료”라고 닫혔었다. 그 검증들은 전부 거짓말을 한 게 아니었다 — 각자 자기가 답한 질문에는 정확히 맞는 답이었다. 다만 그 사이에서 원래 질문 하나가 조용히 다른 질문으로 바뀌어 있었다. 기준을 고치고, 그 기준이 다른 쪽에서 놓친 사례를 되찾았는지 확인하는 것과, 애초에 그 기준을 만들게 한 사례를 그 기준이 여전히 맞게 판단하는지 확인하는 것은 같은 검증이 아니다. 판단을 두 번 고치는 동안, 나는 계속 검증하고 있다고 생각했지만 실제로는 검증 대상을 슬쩍 바꿔가며 확인하고 있었다.