AI 가격 에이전트는 실시간 데이터만으로 환각을 못 막는다
LLM 기반 쇼핑 에이전트가 가격을 답할 때 가장 흔한 문제는 모델이 학습 시점의 가격을 현재 값처럼 말하거나, 웹 검색 결과에 다른 상품·다른 판매처의 가격을 붙이는 것이다. 실시간 데이터를 가져오는 것만으로는 부족하고, 실패 상태와 출처 검증을 코드가 함께 처리해야 한다는 것이 이번 튜토리얼의 핵심이다.
테스트는 Amazon, Walmart, Best Buy, Target과 Shopify 4개 매장의 실제 상품 페이지 21개를 대상으로 했다. 이 중 신품 가격이 하나로 명확한 15개 제품만 정확도 비교에 쓰였고, 1센트 단위까지 현재 가격과 일치해야 정답으로 인정했다. 도구 없이 기억에만 의존한 GPT-6 Luna와 Claude Opus 5.5는 15개 중 각각 2개에서만 정확한 가격을 냈다. Kindle Paperwhite의 출시가 $159.99를 현재가처럼 답한 사례가 대표적이며, 테스트 당시 실제 가격은 $199.99였다.
가격은 빠르게 바뀐다. Best Buy의 AirPods Pro 3는 모델 질문 전 3일 동안 $199.99에서 $249.99로 올랐다. 내장 웹 검색을 켜면 정확한 가격의 비율은 올라갔지만, 모든 실행에서 틀린 가격이 나왔고 그 답에도 출처 링크가 붙었다. Best Buy의 Dyson V15 Detect 실제 가격이 $899.99였는데 Claude Opus 5.5는 $629.99를 제시했고, 링크는 다른 제품인 V15 Detect Extra 페이지를 가리켰다. 링크가 있다는 사실이 가격의 정확성을 보장하지 않는다는 뜻이다.
잘못된 가격은 크게 세 경로로 사용자에게 도달한다. 모델이 기억에서 답하거나, 정상으로 보이는 잘못된 페이지를 읽거나, 실패한 도구가 'ok' 상태를 반환하는 경우다. 국가가 다른 Amazon 페이지에서 인도 루피 가격(INR 7,503.02)을 읽은 사례, Buy Box가 아닌 'Other sellers' 문구의 $71.89를 답한 사례, Target과 Owala가 다른 변형·상위 상품 페이지로 리다이렉트한 사례가 각각 이를 보여준다. 프롬프트에 '현재 가격을 모르면 UNKNOWN'을 넣어도 경고와 가격이 함께 나오면 코드는 숫자만 읽기 때문에 해결되지 않는다.
도구의 상태값도 별도로 봐야 한다. 도구 실패 뒤 모델 행동을 다룬 preprint 'Fabrication after tool failure'에서는 빈 값·오래된 값·불완전한 값이 'ok'로 반환될 때 최대 45.3%의 답변이 실패를 숨겼다. 반대로 오류 상태를 반환하면 부정직한 답변이 0%였다. DIY 스크래퍼 테스트에서 3회 실행 동안 26번 차단 페이지를 받았을 때 모델은 모두 '가격 없음'이라고 답해 정직했지만, 사용자는 가격을 얻지 못했다. 명확히 틀린 가격은 정상처럼 보인 페이지에서 나왔다는 점이 더 위험하다.
이를 막으려면 에이전트가 질문에 대해 직접 가져온 데이터만으로 답하고, 모든 가격에 출처와 상태를 붙이며, 가격 숫자를 모델이 아니라 코드가 최종 답변에 기록하도록 설계해야 한다. 예시 Python 에이전트는 Apify 마켓플레이스의 E-commerce Scraping Tool(Actor)로 실시간 가격을 가져오고, 확인 실패 시 명확한 상태를 남기는 구조를 취한다. 즉 모델은 설명을 만들 수 있어도 가격 자체를 창작하지 못하게 해야 한다.
직접 스크래퍼를 만드는 방식은 유지비가 높다. 많은 매장이 JSON-LD의 schema.org offers를 넣지만, 없을 때는 모델이 본문을 읽어야 하고 httpx와 curl_cffi, Patchright+Chrome 같은 도구를 조합해도 차단·통화·리다이렉트 문제가 남는다. 해외 IP에서 Patchright와 Chrome으로 15개 중 7개 가격을 맞췄지만 Walmart는 차단 페이지를 보였고 Amazon과 Target의 상당수 페이지에서는 미국 가격을 얻지 못했다. Shopify 내부 엔드포인트도 4개 중 2개에서만 통했다. 운영 환경에서는 미국 주거용 프록시와 매장별 코드가 필요하다는 결론으로 이어진다.
개발자 입장에서 핵심은 '출처 링크가 있으니 안전하다'는 가정을 버리는 것이다. 통화, 판매자, 최종 URL, 재고·변형 일치 여부를 코드로 확인하고, 스크래퍼의 실패 상태를 정상 가격과 동등한 1급 데이터로 다뤄야 한다. 또한 이 테스트는 미국 IP, 쿠폰·멤버 할인 제외, 가격이 테스트 중 변하지 않은 조건에서 15개 제품만 비교한 결과다. 모든 상품·매장·지역으로 일반화하기는 어렵고, 실시간 가격이라도 검증 계층 없이는 여전히 환각 위험이 남는다.