"분명히 AI 에이전트한테 최신 뉴스나 데이터베이스를 찾아오라고 '검색 도구(RAG Tool)'를 들려줬는데, 외부 조회를 통째로 건너뛰고 자기가 예전에 학습했던 옛날 지식으로 그럴듯하게 거짓말을 답하더라고요."
안녕하세요, 몬이쌤입니다! AI 에이전트 자동화 시스템을 직접 만들고 가동하다 보면 가장 머리를 쥐어박게 되는 순간이 있습니다. 바로 에이전트에게 최신 정보나 정확한 내부 규정을 검색하라고 전문 도구를 손에 쥐여줬는데, 에이전트가 그 도구를 쓰지도 않고 '자기 마음대로 기억을 지어내서(Hallucination)' 당당하게 틀린 답을 던질 때입니다.
오늘은 제가 실전 파이프라인을 운영하면서 겪었던 'RAG(검색 증강 생성) 무시 및 도구 건너뛰기 잔혹사'와, 이를 완벽하게 바로잡았던 경험담을 이야기해 드릴게요.
1. "도구는 폼이니?" - 검색을 게을리하는 AI의 게으름
실제 데이터베이스와 실시간 웹 정보를 조회해서 정교한 요약 보고서를 만드는 에이전트를 가동하던 때였습니다. 저는 에이전트에게 "반드시 DB 및 웹 검색 도구를 먼저 실행해서 최신 데이터를 확보한 뒤 답변을 작성하라"는 지시를 내렸습니다.
그런데 10번 중 3~4번 꼴로 에이전트가 이상한 동작을 보였습니다. 검색 도구를 아예 호출조차 하지 않고, 자기가 기존에 알고 있던 옛날 파라미터 지식만 가지고 0.1초 만에 대답을 뚝딱 만들어 내는 것이었습니다. 심지어 존재하지 않는 숫자와 거짓 정보를 사실처럼 조작해 내기까지 했지요.
알고 보니 LLM 특유의 '최소 노력의 법칙(Lazy Evaluation)'이 발동한 것이었습니다. 질문이 자신이 아는 단어와 조금이라도 비슷하면, 무거운 외부 도구를 호출하는 번거로운 과정을 거치지 않고 직관적으로 대답을 뱉어버리는 고질적인 습성이 나타난 것이죠.
2. 시행착오: "제발 검색해!"라고 소리쳐도 안 들었던 이유
처음에는 지시사항(Prompt)에 대문자로 강조 글씨를 쓰고 느낌표를 남발했습니다. "경고: 절대로 너의 지식으로 직접 답하지 마라! 무조건 Search Tool을 먼저 실행해라!"라고 말이죠.
하지만 아무리 강한 경고 문구를 넣어도 소용없었습니다. 질문의 길이가 길어지거나 문맥이 복잡해지면 에이전트는 프롬프트 하단의 경고 문구를 잊어버리고 또다시 도구 사용을 건너뛰었습니다. 문제는 프롬프트의 '문구 강도'가 아니라, '에이전트에게 스스로 대답할 수 있는 선택권을 열어둔 구조 자체'에 있었던 것입니다.
💡 몬이쌤의 깨달음: 아이들에게 "딴짓하지 말고 문제집 풀어!"라고 말로 잔소리하는 것보다, 책상 위에 문제집 하나만 딱 올려두는 환경을 만들어주는 것이 훨씬 효과적인 것과 똑같습니다. AI에게도 '자신이 직접 대답할 수 있는 길'을 기술적으로 아예 막아버려야 합니다.
3. 해결책: '강제 도구 바인딩(Forced Tool Call)'과 2단계 분리 아키텍처
이 문제를 근본적으로 뿌리뽑기 위해 제가 적용한 해결 비책은 '2단계 역할 분리(Two-Stage Gate) 파이프라인'입니다.
- 1단계 [검색 전담 노드 (Tool Mandatory Gate)]: 첫 번째 단계에 위치한 에이전트는 대답을 만드는 능력을 아예 빼앗았습니다. 오직 검색 키워드를 추출하여 무조건 도구를 실행(`tool_choice: "required"`)하도록 강제 바인딩 설정을 걸었습니다. 이 노드는 도구를 실행하지 않으면 다음 단계로 넘어갈 수 없습니다.
- 2단계 [답변 생성 전담 노드 (Strict Context Generator)]: 1단계에서 도구가 끌어온 외부 데이터 결과를 받아, 오직 그 수집된 문서 안의 내용만 바탕으로 최종 답변을 다듬어 출력하게 만들었습니다. 수집된 맥락 외의 지식은 답변에 포함하지 못하도록 가드레일을 쳤지요.
4. 결과: 환각률 0% 달성과 완벽한 최신 데이터 확보
도구 실행을 기술적으로 강제하는 2단계 파이프라인으로 전환한 이후, 에이전트가 외부 조회를 무시하고 거짓말을 지어내던 현상이 100% 완전히 사라졌습니다! 이제는 아무리 복잡하거나 모호한 질문이 들어와도, 시스템이 먼저 최신 DB 데이터를 확실하게 긁어온 뒤 검증된 사실만 바탕으로 정교한 대답을 내놓습니다.
시스템을 만든다는 것은 단순히 멋진 AI 모델을 가져오는 것이 아니라, AI가 딴길로 새지 않고 정확한 도구를 들 수밖에 없도록 '바른 길목(Architecture)'을 잡아주는 과정이라는 것을 다시금 깨닫습니다.
여러분도 AI 에이전트가 도구를 자꾸 건너뛰거나 거짓 대답을 한다면, 프롬프트 잔소리를 늘리기보다 도구 호출을 필수 조건으로 묶어버리는 강제 파이프라인을 세워보세요. 거짓말 없이 묵묵히 제 역할을 해내는 최고의 자동화 파트너를 만나게 되실 겁니다.
