AI 지원 에이전트가 알려주지 않은 가격을 지어내는 이유와 3단계 해결책
요약
AI 에이전트가 사실과 다른 정보를 생성하는 주된 원인은 컨텍스트 경계의 모호성 때문입니다. 이 글은 '3단계 사실 파일' 구성과 '인용만 하는 규칙(Quote-only rule)'을 적용하여, 에이전트가 그럴듯하지만 잘못된 답변을 내놓는 것을 방지하는 3가지 해결책을 제시합니다.
핵심 포인트
- 에이전트는 컨텍스트 경계가 모호할 때 '그럴듯한' 정보를 지어낸다.
- 해결책은 더 좋은 모델보다 구조화된 '사실 파일'과 규칙 설정이다.
- 답변 시 '제공된 사실만을 인용하라(Quote only facts)'는 규칙이 필수적이다.
한 친구가 좌석 40개의 레스토랑을 운영합니다. 지난달 그는 예약 받은 메일함에 AI 에이전트를 연결했습니다. 4일 만에 이 에이전트는 $68짜리 세트 메뉴를 이용하는 고객에게 '1인당 모든 것 포함, 음료 포함 $45'라는 가격을 제시했습니다. 또한 레스토랑에서 한 번도 제공한 적 없는 당일 환불 정책까지 약속했습니다.
에이전트가 잘못된 정보를 생성한 것은 헛소리를 지어냈기 때문이 아니라, 그것의 컨텍스트(context) 안에 '진실'이 어디서 끝나고 '유용한 비서가 말할 내용'이 어디서 시작하는지 아무것도 알려주지 않았기 때문에였습니다. LLM에게 한 번도 본 적 없는 가격을 물어보면 가장 그럴듯하게 들리는 숫자를 만들어낼 것입니다. 이 '그럴듯함(Plausible)' 자체가 문제입니다. 고객은 도착해서야 차이를 알 수 있습니다.
저는 이제 서비스업, 레스토랑, 온라인 스토어에 이 패턴을 적용했습니다. 해결책은 더 좋은 모델이나 더 긴 프롬프트가 아닙니다. 바로 **3단계 사실 파일(3-section facts file)**과 하나의 규칙입니다.
실패 모드, 정확히는
지어낸 답변이 발생하는 세 가지 원인이 있습니다:
- 빈틈 채우기 (Gap-filling). 고객이 에이전트의 컨텍스트가 다루지 않는 것을 물어봅니다. 모델은 귀하와 같은 사업체에서 '보통' 일어나는 일을 가지고 빈틈을 채웁니다.
- 성급한 도움 제공 (Eager helpfulness).
인용만 하는 규칙(The quote-only rule). '제공된 [FACTS]에 나열된 사실만을 인용하라(Quote only facts listed in [FACTS])'는 문장 하나가 가장 당황스러운 출력을 대부분 제거합니다. 에이전트가 비즈니스 전문가 역할을 하던 것에서 신중한 독자 역할로 바뀝니다. 이것이야말로 고객 앞에서 원하는 모습입니다.
'에스컬레이션(escalate)'은 파일 안에 있어야 하는 이유
대부분의 팀들은 에스컬레이션 로직을 코드에 넣습니다: 키워드 매칭, 감성 임계값, 폴백 체인 등을 사용합니다. 이것은 라우팅에는 효과적이지만, 에이전트가 에스컬레이션하기 전에 답변하는 것을 막지는 못합니다.
[ESCALATE IF] 줄 하나는 두 가지 역할을 합니다:
- 에이전트에게 인계(hand off)하라고 지시합니다.
- 더 중요하게는, 이 질문 유형은 에이전트가 답변할 영역이 아님을 알려줍니다.
'알레르겐 상세 정보(allergen details)'라는 단어가 해당 섹션에 나타나는 순간, 모델의 기본 동작 방식이 '자신감 있게 답변하기'에서 '깔끔하게 미루기(defer cleanly)'로 바뀝니다. 이 전환 자체가 규제되거나 위험도가 높은 주제를 다룰 때 핵심입니다.
10초 업데이트 규칙
사실 파일이 노후화되는 이유는 마찰 때문입니다: 가격을 변경하면 프롬프트, PDF, 웹페이지를 찾아다니며 수정해야 합니다. 그러므로 대신 하나의 규칙만 강제하세요:
가격이나 정책 변경은 한 파일의 한 줄로 한다. 그렇지 않다면, 그 변경은 이루어지지 않은 것으로 간주한다.
한 줄을 편집한다는 것은 에이전트가 바로 다음 메시지에서 정확하게 인용할 수 있다는 의미입니다. 재구축(rebuild)도, 재배포(redeploy)도,
에이전트가 에스컬레이션(escalate)할 때, 상대방의 상담원은 고객에게 같은 내용을 반복해 달라고 요청해서는 안 됩니다. 다섯 가지 필드는 다음과 같습니다:
- 연락처 (Contact) — 이름과 연락 가능한 채널 하나
- 요약 (Summary) — 가능하다면 고객 본인의 말로 한 문장
- 시도된 내용 (What was tried) — 에이전트가 이미 답변한 내용
- 남은 질문 (What's open) — 해결되지 않은 질문
- 제안 답변 (Suggested reply) — 사람이 편집하여 보낼 수 있는 초안
이 다섯 가지 필드를 사용하면, 상담원은 대화를 처음부터 다시 시작하는 대신 약 10초 만에 답변할 수 있습니다. 제가 본 여러 배포 환경에서 에스컬레이션부터 답변까지 걸리는 평균 시간 간격은 몇 시간에서 1분 미만으로 줄었습니다. 이는 사람이 빨라져서가 아니라, 맥락을 재구성하는 과정을 멈췄기 때문입니다.
오늘 해야 할 일
이미 고객에게 에이전트를 사용하고 있다면:
- 지난 지원 답변 20건에서
[사실 (FACTS)]섹션을 작성하세요. 이것이 실제 질문 세트가 됩니다. - 시스템 프롬프트에 인용(quote)만 사용하는 규칙을 오늘 추가하세요.
- 에스컬레이션 트리거를
[ESCALATE IF]로 옮기고, 단순히 라우팅하는 것은 삭제하세요. - 다른 어떤 것보다도 먼저 20개의 적대적인 메시지(hostile messages)로 테스트를 실행하세요.
이 모든 과정에 새로운 모델이나 새로운 공급업체, 또는 교육 과정이 필요하지 않습니다. 진실인 것을 담은 하나의 파일, 그것을 지키라는 규칙 하나, 그리고 언제 멈춰야 하는지를 알려주는 섹션 하나만 필요합니다.
저는 소규모 비즈니스를 위한 AI 에이전트 배포를 구축하고 감사(audit)합니다. 이 게시물의 템플릿들은 제가 고객 업무에 사용하는 키트에서 가져온 것입니다—20개 티켓 답변 세트, 사실 파일 구조, 그리고 20개 메시지 적대 테스트 스위트입니다. 채워 넣을 수 있는 버전이 필요하다면, 제 프로필에 나열되어 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기