
주장은 참이었다. 그래도 나는 죽였다.
내가 보내지 않기로 한 첫 번째 이메일은 완전히 정확했다.
그 문장을 기억한다. 약 마흔 번쯤 읽었기 때문이다. "귀사의 One-Way Truckload 차량이 최근 2,735대로 성장한 것을 확인했습니다." 그 안의 모든 단어가 참이었다. Werner Enterprises가 정말로 그 차량을 SEC에 제출한 자사 Form 10-K에 보고했다. 그런데 내가 만들고 있던 데모 앞에 앉아서, 나는 그 주장을 어쨌든 죽였다.
그 결정은 하루 정도는 잘못된 것처럼 느껴졌다. 그러다 그것이 바로 요점처럼 느껴졌다.

나는 지금 AI 영업을 만들고 있는 거의 모든 사람과 마찬가지로, 이 프로젝트를 시작하면서 적이 환각이라고 믿었다. 모델이 무언가를 지어내면, 그 거짓이 이메일에 들어가고, 잠재고객이 알아차리면, 당신의 신뢰는 죽는다. 지어낸 것을 잡아내면 이긴다. 그 프레이밍은 깔끔하고, 데모에도 잘 맞으며, 이제 나는 그것이 조용히 많은 발송 도메인을 태운 원인이라고 생각한다. Werner 문장에는 지어냄이 전혀 없었다. 그래도 그것은 내가 건물 밖으로 절대 내보내지 않을 주장이었다.
이것은 내 마음을 바꾼 것에 대한 에세이다. 실제로 일어난 방식 그대로 — 말하자면 천천히, 그리고 중간에 창피한 한 주를 곁들여 — 이야기한다. 내가 결국 만든 것을 보고 싶다면, 여기 있다: veriprajna.com/ko/demos/ai-sales-intelligence. 하지만 제품은 지루한 부분이다. 흥미로운 부분은 왜 참인 문장이 안전한 문장이 아닌지, 그리고 왜 내가 그 차이를 가려내는 일을 모델에 더는 맡기지 않게 되었는지다.
모델에게 자기 숙제를 채점하게 하려던 그 주
언어 모델이 자기 자신의 오래된 인용을 잡아내게 하려고 약 일주일 동안 애썼고, 솔직히 말해서 그것은 되지 않았다.
설정은 서류상으로는 합리적이었다. 리서처 에이전트가 사실을 끌어온다. 라이터 에이전트가 그 사실만으로 이메일을 초안한다. 그다음 팩트체커 에이전트가 초안을 소스와 대조해 읽고 성립하지 않는 것을 표시한다. 에이전트 셋, 깔끔한 파이프라인, 디자인 리뷰에서 고개를 끄덕일 법한 아키텍처. 나는 팩트체커가 쉬운 부분일 거라고 진심으로 기대했다.
깨진 것은 바로 그 부분이었다. 요란하게가 아니었다. 그게 문제였다. 팩트체커는 Werner 초안을 읽고, 2,735대에 관한 문장을 보고, 2,735대라고 적힌 소스를 찾아내고, 자신 있게 승인했다. "소스가 이 숫자를 뒷받침하는가"만이 질문이라면 그것은 맞다. 모델에게는 소스가 2년이 넘었고 문장이 "최근"이라고 말했다는 지속적인 감각이 없었다. 날짜에 대해 추론하라고 밀어붙이면, 가끔은 기한 경과를 잡아내고 가끔은 통과시켰으며, 어느 쪽일지 나는 예측할 수 없었다. 예측할 수 없는 검사기는 검사기가 아니다. 그것은 두 번째 의견이다.
그것이 정말로 와닿은 순간은, 어느 늦은 저녁에 같은 초안을 팩트체커에 세 번 돌렸더니 입력은 전혀 바꾸지 않았는데 승인 두 번과 거절 한 번이 나왔을 때였다. 나는 한동안 그것을 응시했다. 나는 확률적 시스템에게 또 다른 확률적 시스템의 결정적 게이트가 되어 달라고 요구하고 있었다.
나는 LLM에게 또 다른 LLM의 신뢰할 수 있는 심판이 되어 달라고 요청하고, 그 결과를 "검증"이라고 부르고 있었다.
그것은 검증이 아니다. 그것은 두 모델이 동의하는 것이며, 전혀 다른, 훨씬 약한 일이다. 검사기가 필요한 이유 전체가 모델의 출력을 액면 그대로 믿을 수 없기 때문이라면, 두 번째 모델의 출력이 그것을 검사하기 위해 믿을 대상이 될 수는 없다. 나는 거울의 방을 만들고 거기에 컴플라이언스 스티커를 붙인 셈이었다.
어느 쪽이 더 나쁜가, 지어낸 사실인가 참인 사실인가?
이것을 만들면서 가장 놀랐던 것은, 지어낸이 결코 무서운 실패가 아니었다는 깨달음이었다. 참이지만 오용된 주장이 그랬다.
AI SDR이 회사 세부사항을 환각할 때 실제로 무슨 일이 일어나는지 생각해 보라. 종종 그것은 말도 안 되는 소리이고, 명백히 빗나가며, 잠재고객이 읽고 지워버리는 종류다. 창피하긴 하다. 하지만 진짜로 곤경에 빠뜨리는 주장은 확인 가능하고 정확하면서도 맥락상 틀린 것이다. 그것은 "이것이 지어낸 것인가"라는 필터를 모두 통과한다. 지어낸 것이 아니기 때문이다. 문법은 완벽하다. 숫자는 실재한다. 그리고 그것은 현재 시제에 대한 거짓말이다.
나는 이것을 맥락적 오용이라고 부르기 시작했고, 이름을 붙이자 조립 중이던 데모 어디에서나 보였다. 형태는 여러 가지지만, 모든 버전이 위험하게 만드는 속성을 공유한다: 각각이 참인 진술이라는 점이다.
내게 가장 많은 것을 가르쳐 준 형태는 오래된 출처이며, Werner에서 처음 분명히 보았다. "최근 2,735대로 성장"은 실제 10-K를 인용하지만, 그 서류는 2024-02-26에 제출되었고, 데모의 작업 날짜 기준으로는 2년이 훨씬 넘는다. 숫자는 참이기를 멈추지 않았다. "최근"이라는 단어가 참이기를 멈췄다. 그것들은 같은 사실이 아닌데, 소스 매칭 검사는 그것들을 동일한 것으로 취급한다.
나는 같은 형태를 합성 리드로 한 번 더 만들었다. Northwind라는 미드마켓 물류 회사로, 실제 업체가 말하지 않은 것을 말한 척하지 않고도 패턴을 보여줄 수 있게 했다. 초안은 Northwind가 "최근 APAC으로 확장했다"고 주장했다. 그럴듯한 소스가 있다. 소스는 2019년 3월 날짜이며, 데모에서는 대략 2,652일 — 7년 이상 — 경과로 계산된다. 주장과 소스 사이의 그라운딩 중첩은 깨끗한 100%다. 엔티티도 일치한다. 그런데도 잠재고객이 지난 월드컵 이후로 당신을 들여다본 적 없다고 생각하게 만드는 종류의 문장이다.

오래된 출처 위의 참인 사실은 여전히 현재에 대한 거짓말이다. 문장이 인정하든 말든, 날짜는 주장의 일부다.
다른 형태는 동명 충돌이며, 이것도 합성 케이스로 유지했다. "Northwind Logistics가 방금 $40M Series B를 유치했다"에는 실제 소스가 있다. 그 출처는 Austin의 사이버보안 스타트업 Northwind Inc.에 관한 것이며, 우연히 이름만 같은 완전히 다른 회사다. 모든 단어가 어떤 Northwind에 대해서는 정확하다. 이 쪽에는 하나도 정확하지 않다.

세 예시가 모두 공통으로 가진 것을 주목하라. 그중 어느 하나도 환각이 아니다. 지어냄을 잡는 데에만 안전 스토리 전체를 걸었다면, 세 가지를 모두 출시했을 것이다. 이것이 모두가 인용하면서도 아무도 제대로 설명하지 못하는 AI-SDR 좌초의 뒤에 있는 실패 모드다. 단일 패스 도구는 잠재고객 특정 주장의 측정 가능한 일부를 환각하며, 한 업계 집계로는 대략 12에서 18퍼센트 범위다(AI SDR Industry Report, 2026). 하지만 지어냄은 적어도 잡을 수 있다고 상상할 수 있는 실패다. 참이지만 오래된, 참이지만 잘못된 엔티티인 주장은 비용이 들기 직전까지 성공처럼 보이는 것들이다.
모델을 더는 믿지 않고 날짜 뺄셈을 믿기 시작한 계기
마침내 통했던 것은 거의 모욕적일 만큼 단순했고, 나는 응당보다 오래 저항했다.
Werner 주장의 문제가 "최근"이 합리적 최신성 창보다 오래된 출처를 가리킨다는 것이라면, 그 검사는 추론 과제가 아니다. 산수다. 소스 날짜를 가져오고, 작업 날짜를 가져오고, 뺀다. 주장이 최신성 언어를 쓰고 간격이 365일보다 크면, 그 주장은 기한 경과이며 발송되지 않는다. 소스 연령 2652일이 최신성 주장에서 365일보다 크므로, 따라서 실패. 프롬프트도, temperature도, "AI 언어 모델로서"도 없다. 숫자와 임계값만 있다.
그것을 쓰도록 스스로를 허락하고 나니, 나머지 검사들도 코드가 되길 원했다. 주장이 실제로 소스 스니펫에 함의되는가 — 내용 단어에 대한 토큰 중첩으로 측정하되, 회사 고유 이름은 제외해서 "Werner, Werner, Werner"만 반복해 높은 점수를 받지 못하게 하는가? 코드. 출처가 이 엔티티에 관한 것이지 같은 이름의 다른 대상이 아닌가? 코드. 언어 모델은 여전히 저자이며, 정말로 좋은 저자다. 다만 심판은 아니다.
나는 결국 이 원칙을 지금 늘 말하는 두 가지 방식으로 표현하게 되었다. 하나는 "에이전트는 조언하고, 코드가 결정한다." 다른 하나는 "LLM이 LLM을 심판하는 것이 아니다." 신경망은 신경망이 잘하는 일 — 유창하고 인간적인 초안 쓰기 — 을 담당한다. 결정적이고 순수 Python인 검증기가 코드가 잘하는 일 — 같은 규칙을 매번 같은 방식으로 적용하는 일 — 을 담당한다. 신경적 저작, 기호적 검증. 그 짝에 대한 업계 용어는 뉴로심볼릭이지만, 나는 라벨보다 그것이 사 주는 속성에 더 관심이 있다.
더 나은 모델은 더 나은 문장을 쓴다. 2년 된 서류를 최근으로 만들지는 않는다. 그것은 능력 격차가 아니다. 범주 오류다.
그리고 그것이 사 주는 속성은 재현성이다. 같은 입력에 검증기를 돌리면, 매번 같은 판정을 얻는다. 작은 엔지니어링 편의처럼 들린다. 사실 그것이 전부인데, 재현성이 결정을 인증 가능하게 만들기 때문이다. 나는 당신에게 추적을 건네줄 수 있다. 소스 연령 2652일, 365보다 큼, 최신성 주장 존재, 판정 기한 경과, 주장 제거. 다시 돌려도 동일한 결과를 얻는다. LLM 심판은, 아무리 좋아도, 그것을 약속할 수 없다. 나는 세 번 돌리고 판정 둘인 저녁을 살았다. 그 위에 컴플라이언스 스토리를 쌓지 않겠다.

이건 위장된 환각 문제 아닌가?
거의 모든 대화에서 어떤 버전의 이 질문을 받는다. 대개 기술적인 사람에게서이며, 내 답은 시간이 갈수록 짧아졌다. 아니다. 그리고 그것이 아닌 이유가, 이 일이 현재 모델 세대를 넘어 살아남는다고 내가 생각하는 이유다.
환각 프레이밍은 조용히, 해법이 더 나은 모델이라고 가정한다. 더 큰 컨텍스트, 더 깨끗한 학습, 더 낮은 지어냄 비율, 그리고 결국 문제는 아무것도 아닌 수준으로 줄어든다. 순수 지어냄에 대해서는 그게 맞을지도 모른다. 내가 실제로 신경 쓰는 실패에는 아무 소용이 없다. 단 하나의 사실도 지어내지 않는 완벽한 모델도, 2024년 서류 위에 "최근"을 유쾌하게 쓸 것이다. 초안 안에서 그 문장은 참이고 유창하며 당신이 요청한 바로 그것이기 때문이다. 모델은 달력에 대한 의무가 없다. "2,735대로 성장"과 "최근 2,735대로 성장" 사이의 격차는 스케일이 메우는 격차가 아니다.
시장이 이 교훈을 힘든 방식으로 계속 가르치는 지점이 여기다. AI-SDR 카테고리는 물량과 시그널 기반 개인화에 세게 최적화했고, 대부분은 결과 주장을 현재의, 엔티티가 올바른 출처에 대해 재검증하는 단계를 건너뛰었다. 경제학은 친절하지 않았다. 엔터프라이즈 AI-SDR 이탈은 연간 대략 50에서 70퍼센트다(UserGems, 2026). 가장 많이 인용되는 경고 사례인 11x.ai는 7,400만 달러를 유치한 뒤 2025년에 무너졌고, 이탈은 70에서 80퍼센트 범위로 보고되었다(TechCrunch). 모델이 가끔 환각해서 그런 숫자를 내는 것이 아니다. 출력이 개인화된 것처럼 보이면서 신뢰할 수 없었고, 구매자가 이름을 붙이지 못해도 결국 그 차이를 느끼기 때문이다.
그래서 내가 계속 돌아오는 논지는 단호하다. 개인화는 검증이 아니다. 당신의 AI SDR이 일차적으로 가진 문제는 환각이 아니다. 검증 문제이며, 더 나은 베이스 모델로는 고치지 못한다. 검증과 출처 추적(provenance)은 모델 능력이 아니기 때문이다. 그것들은 모델 주변에 감싸는 시스템의 속성이다.
개인화는 검증이 아니다. 검증과 출처 추적은 모델 능력이 아니다. 그것들은 모델 주변에 구축하는 시스템의 속성이다.
"100%"가 실제로 의미해도 되는 것
여기서는 조심하고 싶다. 창업자가 과장의 유혹을 받는 바로 그 지점이며, 내가 만드는 회사의 이름은 그 반대 본능을 가리키기 때문이다.
데모에는 두 숫자가 있고, 그것들은 같은 숫자가 아니다. 첫 번째는 Veracity Score인데, 이는 단순히 초안의 사실적 주장 총수 대비 뒷받침된 주장이다. "AI가 쓴 것 중 얼마나 많은 것이 참으로 드러났는가"에 답하며, 실제 초안에서는 종종 100에 한참 못 미치는데, 그것이 정직하고 유용한 점이다. Werner 이메일은 헤드라인 주장을 잃는다. Northwind 이메일은 둘을 잃는다. 그것은 시스템이 실패하는 것이 아니라 작동하는 것이다.
두 번째 숫자는 발송 무결성이며, 구조상 100%이다 — 무언가가 조금이라도 살아남는 한 언제나 그런데, 정책 게이트가 이메일이 발송되도록 허용되기 전에 뒷받침되지 않은 모든 주장을 제거하기 때문이다. 보장은 "AI가 언제나 옳았다"가 아니다. 보장은 "나가는 이메일은 소스에 뒷받침된 주장만 담는다"이다. 그것들은 매우 다른 약속이며, 사람들이 그것들을 훨씬 더 크고 훨씬 더 거짓된 하나로 섞는 것을 나는 지켜봐 왔다.
벤치마크도 있다. 그리고 여기, 내가 줄이기를 거부하는 문장이 있다: 손으로 라벨링한 고정 골든셋 25건에서, 결정적 검증기는 25건 중 25건의 판정을 맞힌다. 그것은 그 라벨링된 벤치마크에서 100%다. 열린 세계에 대한 주장이 아니다, 당신의 받은편지함에 대한 약속도 아니며, 단호히 "제로 환각"도 아니다 — 솔직한 사람이라면 아무도 말해서는 안 된다고 생각하는 문구다. 모델은 여전히 초안을 쓴다. 초안에는 여전히 입증되지 않은 주장이 담긴다. 요점은 입증되지 않은 것들이 잡히고 제거되며, 그 적발이 인증할 만큼 결정적이라는 것이다. 제로 환각 보장을 파는 사람은 내가 일주일 동안 만드는 데 실패한 것을 파는 것이다.
또한 분명히 말하겠다. 내가 스스로에게 거는 기준이 그것을 요구하기 때문이다. 데모의 커넥터는 시뮬레이션이다. EDGAR 풀, 뉴스 검색, CRM 라이트백, 실제 발송 — 전부 스텁이다. 실재하는 것은 메커니즘이다: 검사, 게이트, 감사 추적, 그리고 진짜 공공 기록인 Werner 10-K 발췌. 나는 엔진이 어떻게 결정하는지 보여주는 것이지, 당신 데이터가 들어 있는 프로덕션 파이프라인을 보여주는 것이 아니다. 그것이 결정하는 것을 보고 싶다면, 다시 한 번 여기다: veriprajna.com/ko/demos/ai-sales-intelligence.
내게 남은 질문
이 빌드가 내 안에서 바꾼 마지막 것은 논지보다 작았고, 가장 오래 남았다.
데모에는 세 번째 리드가 있다. 합성 FINRA 규제 브로커-딜러이며, 그 초안은 완전히 깨끗하게 나온다. 모든 주장이 뒷받침되고, 제거된 것이 없으며, 완벽한 Veracity Score. 그런데도 정책 게이트는 그것을 인간에게 라우팅한다. 규제 대상이고 C-suite이며 큰 딜이기 때문이고, 규칙이 초안이 아무리 깨끗해도 그런 것은 사람이 본다고 말하기 때문이다. 흠 없는 이메일이 검토를 위해 보류되는 것을 처음 보았을 때, 내 본능은 시스템이 실수했다고 느끼는 것이었다. 그렇지 않았다. 나는 그냥, 알아차리지 못한 채, 정확성과 안전성이 같은 속성이라고 가정하고 있었던 것이다.
그것들은 같지 않다. 주장은 참이면서도 안전하지 않을 수 있다. 초안은 깨끗하면서도 여전히 사람이 필요할 수 있다. 전체 일은 그 아이디어들을 분리하고 둘 다를 위해 구축하는 것으로 드러났다 — 좋은 헤드라인이 되는 하나의 숫자로 뭉개 넣는 대신 말이다.
그래서 내가 당신에게 남기고 싶은 질문은, 이제 AI가 쓴 무엇이든 내 손을 떠나기 전에 스스로에게 묻는 것이다. "이것이 참인가"가 아니다 — 대개 답할 수 있고, 대개 충분하지 않다. 더 어려운 것: 바로 지금, 이 정확한 주장을 뒷받침하는 어떤 현재 출처가 있는지 증명할 수 있는가, 그리고 그 증명은 실패하길 원하는 누군가 앞에서도 살아남을 것인가?
답이 아니오라면, 모델이 얼마나 좋아지든 상관없다. 그 문장은 보낼 준비가 되지 않았다.


