우리 음성 에이전트가 배송일을 지어내고 3번이나 우기네요
Our voice agent made up a delivery date and then defended it for three turns
핵심 요약
음성 에이전트가 대화 맥락 속 자신의 거짓말을 사실로 착각해 고집하는 문제를 해결하기 위한 기술적 논의입니다.
- 맥락 오염 — 에이전트가 스스로 지어낸 말을 사실로 간주하고 고집함
- 컨텍스트 분리 — 도구 결과와 대화 이력을 분리해 사실 관계를 명확히 함
- 검증 방식 — 도구 호출 결과만 사실로 인정하고 모르는 것은 모른다고 답하게 설정
- 성능 저하 — 에이전트가 스스로를 수정하는 과정에서 일시적인 평가 점수 하락 발생
고객이 뭘 물어보면 상담원이 그럴싸하게 대답은 하는데, 몇 번 주고받다 보면 고객이 반박을 하거든? 그럼 상담원은 그때부터 자기 말이 이미 컨텍스트에 박혀 있으니까 그걸 사실인 양 착각해서 고집을 부리기 시작함. 한 번은 상담원이 배송 시간을 멋대로 추측해서 말했는데, 나중에는 그걸 두 번이나 반복하고, 그걸 기준으로 계획까지 짜고, 심지어 지가 지어낸 날짜에 배송이 늦었다고 사과까지 하더라. 진짜 어이가 없어서 ㅋㅋ
근데 웃긴 건 상담원이 헛소리를 반복할 때 제일 자신감 넘치게 말한다는 거야. 그래서 고객들은 그걸 더 철석같이 믿음. 우리 리뷰어들은 통화 첫 1분만 확인하고 넘어가니까, 정작 멀쩡한 부분만 보고 있었던 거지.
상담원한테 네 답변은 임시니까 나중에 바뀔 수 있다고 주입도 시켜봤는데, 몇 턴은 버티다가 결국 긴 컨텍스트 지시사항들이 다 그렇듯 까먹어버림. 결국 효과 본 건 컨텍스트를 '고객이 한 말', '툴이 반환한 값', '상담원이 한 말'로 쪼개는 거였음. 이제 앞의 두 개만 팩트로 취급하게 바꿨다.
단점은 툴이 가져온 정보가 상담원이 이전에 했던 말과 다르면 상담원이 대놓고 자기 모순을 일으킨다는 건데, 좀 없어 보이긴 해도 최소한 팩트는 맞으니까. 그래도 이거 배포하고 나서 몇 주 동안은 통화 점수 개박살 났음.
솔직히 이거 뭔가 잘못 돌아가는 거 같음. 우린 모델이 자기 대화 내용을 덜 믿게 만드는 방식으로 해결했는데, gnani나 다른 데는 플랫폼 레벨에서 툴 상태를 대화 컨텍스트랑 분리해서 처리하는 거 같더라. 우리가 야매로 짠 것보다 훨씬 합리적인 듯.
혹시 이런 문제 겪고 있는 사람 또 있냐?


