내 검증 도구를, 그 도구로 검증했다
나한테는 crosscheck라는 검증 도구가 있다. 어려운 판단일 때 Claude와 다른 벤더 엔진(Codex)에게 같은 질문을 블라인드로 던져 각자 조사하게 하고, 그다음 서로의 결론을 반박시켜 근거의 질로 가리는 것.
그런데 이런 주장을 만났다. “여러 모델을 경쟁시키면 오히려 오답률이 올라간다.” 논문들이 실제로 이걸 보고한다고. crosscheck가 딱 여러 모델을 붙이는 구조 아닌가. 내가 좋다고 만든 도구가 사실은 오답을 늘리는 안티패턴이면?
그래서 그 주장이 맞는지 따져보기로 했다. 그것도 crosscheck 방식으로.
진짜인데, 조건부였다
조사를 시켜보니 주장은 진짜였다. 다만 조건이 붙었다.
멀티에이전트 토론이 단일 추론보다 못하다는 논문들이 지적하는 건 합의·투표형 구조였다. 여러 모델을 토론시켜 다수결로 하나에 모으면, 다수가 틀렸을 때 정답인 소수가 동조 압력에 밀려 사라진다. 라운드를 거듭할수록 서로에게 맞춰가며 오히려 나빠진다.
crosscheck는 합의를 강제하지 않는다. 블라인드로 각자 결론부터 내고, 다수결이 아니라 근거의 질로 가리고, 라운드도 짧게 고정한다. 불일치를 지우는 게 아니라 그대로 표면에 남긴다. 논문이 지목한 네 가지 실패 조건 중 셋은 이 구조가 이미 피하고 있었다. 도구를 부정하려던 주장이 오히려 그 설계의 근거가 된 셈이었다.
노출된 취약점은 하나였다. 다른 벤더 모델을 써도 오류가 완전히 독립은 아니라는 것 — 최상위 모델끼리도 같은 오답을 꽤 많이 공유한다. “두 모델이 같은 결론”이 독립적 확증이 아니라 나란히 틀린 것일 수 있다는 것. 이건 진짜 약점이었다.
도구를 그 도구로 검증하니
이 주장을 검증하는 과정 자체를 crosscheck로 돌렸다. Claude와 Codex에게 서로의 결론을 안 보여주고 각자 조사시키자, 서로 못 찾은 걸 각자 찾아왔다.
Codex만 찾은 것: 여러 모델을 붙여 얻는 이득의 대부분은 토론이 아니라 처음 각자 내놓은 답을 모으는 데서 온다는 논문. 이건 “블라인드 독립조사가 가치의 본체”라는 crosscheck 설계를 정면으로 받쳐주는 근거였다.
Claude만 찾은 것: 최상위 모델끼리도 오답이 꽤 겹친다는 것, 판정 위원을 늘려도 실제 독립 표는 얼마 안 는다는 것. “합의가 곧 증거는 아니다”의 근거.
그리고 Codex가 Claude의 지나친 단정을 잡았다. Claude가 “이 전환의 원인은 아첨(sycophancy)“이라고 단정한 걸, “그건 저자 가설이지 확정된 인과가 아니다”라고 정정했다.
두 모델이 못 본 자리가 서로 달랐다. Claude는 오류가 겹치는 문제를, Codex는 근거를 어디까지 확인했는지를 지적했다. 서로 다른 각도의 둘을 붙이니 한쪽 혼자서는 못 보는 걸 상대가 찾아냈다.
반대 주장을 스킬 안에 적어두다
검증이 끝나고 나온 걸 도구에 반영했다. 철칙 하나 추가 — “합의는 증거가 아니다.” 반박 라운드에서 상대에게 진영 이름이나 합의 인원수를 숨기고 익명 근거만 넘기기(아첨 벡터 차단), 인과 라벨을 존재·경로·인과 세 단계로 세분화하기. 이 조항들을 설계한 것도 도구 쪽이다. 내가 챙긴 건 이 논문 근거들을 도구 문서 안에 다 남기게 한 것이다. 도구를 부정하려던 주장을 그 도구를 더 단단하게 만드는 재료로 썼다.