AI 어시스턴트는 인용에 대해 거짓말을 합니다. 이를 잡아내는 방법은 다음과 같습니다.
요약
AI 어시스턴트의 인용 환각 문제를 해결하기 위해 MCP 서버인 web-researcher-mcp를 활용하는 방법을 소개합니다. 이 도구는 Crossref API를 통해 DOI를 검증하고 논문의 존재 여부 및 철회 상태를 확인하여 인용의 정확성을 보장합니다.
핵심 포인트
- AI의 인용 환각(Hallucination) 문제를 해결하기 위한 검증 아키텍처 제시
- web-researcher-mcp를 통한 도구 호출(Tool-call) 기반의 검증 계층 구축
- Crossref를 활용한 DOI 확인, 메타데이터 일치 여부 및 철회 상태 탐지
- 개별 인용 검증을 넘어 전체 참고문헌 목록을 감사(Auditing)하는 기능 제공
2023년, 뉴욕의 한 변호사가 존재하지 않는 6개의 판례를 인용한 변론서를 제출했습니다. ChatGPT가 그럴듯한 사건 번호, 판사, 판결 내용을 포함하여 이를 환각 (hallucination) 한 것이었습니다. 해당 변호사는 5,000달러의 벌금을 부과받았습니다.
2024년, Nature의 한 연구에 따르면 과학적 글쓰기에서 AI가 생성한 인용 중 약 6개 중 1개가 존재하지 않거나 잘못 표현된 논문을 참조하고 있는 것으로 나타났습니다.
2026년 6월, 제9순회 항소법원은 AI가 생성한 조작된 판례를 인용한 변호사에게
이것이 검증을 가능하게 만드는 아키텍처입니다. 즉, AI 어시스턴트가 학습 데이터 (training data)에 의존하는 것이 아니라, 추론 시점 (inference time)에 외부 도구 (external tools)를 호출하는 방식입니다.
web-researcher-mcp가 인용 환각 (citation hallucinations)을 잡아내는 방법
web-researcher-mcp는 Claude나 Cursor와 같은 AI 어시스턴트에게 도구 호출 (tool-call) 계층에서의 검증 계층을 제공하는 오픈 소스 MCP 서버 (MIT 라이선스, 단일 Go 바이너리)입니다.
AI 어시스턴트가 verify_citation을 호출할 때 발생하는 과정은 다음과 같습니다:
{
"tool": "verify_citation",
"input": {
...
해당 도구는:
- 권위 있는 DOI 레지스트리인 Crossref를 통해 DOI를 확인 (resolve) 합니다.
- 확인된 기록이 주장된 제목, 저자 및 연도와 일치하는지 확인합니다.
- Crossref Retraction Watch를 쿼리하여 철회 (retraction) 또는 수정 (correction) 상태를 확인합니다.
- 구조화된 결과(
verified,title_mismatch,not_found,retracted, 또는unchecked)를 반환합니다.
not_found는 Crossref에 해당 DOI가 존재하지 않음을 의미하며, 이는 조작 (fabrication)의 강력한 증거입니다. title_mismatch는 DOI가 실제 논문으로 연결되지만, 인용된 논문은 아니라는 것을 의미합니다. 즉, 모델이 실제 제목에 대해 잘못된 DOI를 환각 (hallucinate)했거나 메타데이터를 뒤바꾼 것입니다.
전체 참고문헌 감사 (Auditing a full bibliography)
개별 인용을 확인하는 것도 유용하지만, 전체 참고문헌을 감사 (auditing)할 때 그 진가가 드러납니다.
audit_bibliography는 전체 참고문헌 목록 (BibTeX, RIS, CSL-JSON 또는 일반 목록)을 입력받아 모든 항목을 검증 파이프라인 (verification pipeline)에 통과시킵니다:
12개의 참고문헌에 대한 결과:
✓ verified 8 (DOI 확인됨, 메타데이터 일치, 철회되지 않음)
✗ not_found 2 (Crossref에 DOI 없음 — 조작 가능성 있음)
...
두 개의 not_found 항목이 바로 환각 (hallucinations)입니다. title_mismatch는 DOI가 뒤바뀐 경우로, 논문은 존재하지만 인용된 논문은 아닙니다.
이것이 인용 검증 (citation verification)과 인용 검색 (citation search)을 구분 짓는 차이점입니다. 검색은 논문을 찾아주는 것이고, 검증은 AI가 찾은 논문이 실제로 존재하는지, 그리고 주장하는 내용과 일치하는지를 알려주는 것입니다.
데드 링크 (Dead links) 및 철회 탐지
도구가 제공하는 두 가지 신호가 더 있습니다:
철회 상태 (Retraction status): Crossref Retraction Watch를 통해 확인합니다. PDF나 학술 URL에 대해 scrape_page를 호출하면, 도구는 감지된 DOI를 철회 데이터베이스와 자동으로 대조합니다. AI가 증거로 인용한 논문이 철회된 논문이라면, 이는 조작된 논문보다 더 심각한 문제입니다. 과학계에서 거부한 실제 논문이기 때문입니다.
데드 링크 아카이빙 (Dead link archiving): Wayback Machine을 통해 확인합니다. 인용된 URL이 404 오류를 발생시키면, archive_source가 아카이브된 버전을 검색하여 Wayback URL을 반환할 수 있습니다. 이는 정부 페이지가 이동하거나 삭제되는 경우가 많은 법률 및 정책 인용에서 특히 흔히 발생합니다.
이를 가능하게 하는 MCP 아키텍처
MCP (Model Context Protocol)는 Anthropic이 지원하는 개방형 표준으로, AI 클라이언트가 추론(inference) 시점에 외부 도구를 호출할 수 있게 해줍니다. 대략적인 과정은 다음과 같습니다: 모델이 도구 호출을 결정하면, MCP 서버가 이를 실행하고, 그 결과가 컨텍스트 (context)로 돌아옵니다.
이 아키텍처는 인용 검증(citation verification)에 정확히 필요한 구조입니다. 모델은 기억만으로는 인용을 검증할 수 없지만, verify_citation을 호출하여 구조화된 결과를 얻고 이를 자신의 응답에 포함할 수는 있습니다.
Claude Desktop, Cursor, Windsurf, Continue가 설치된 VS Code 등 모든 MCP 호환 클라이언트에서 작동합니다. 설치는 명령어 하나로 가능합니다:
# macOS/Linux
curl -fsSL https://raw.githubusercontent.com/zoharbabin/web-researcher-mcp/main/install.sh | bash
...
별도의 설정이 필요 없습니다. DuckDuckGo는 즉시 작동합니다. Google, Brave 또는 기타 제공업체의 API 키를 추가하여 범위를 확장할 수 있습니다.
이것이 가장 중요한 순간들
연구 및 학계: 논문을 인용하기 전에 verify_citation을 통해 논문이 존재하는지, 철회되지 않았는지, 그리고 주장하는 메타데이터와 일치하는지 확인합니다. audit_bibliography는 제출 전 전체 참고 문헌 목록을 훑어줍니다.
법률 업무: AI를 활용한 법률 연구는 이제 흔한 일이 되었습니다. 법률 서면에서의 인용 환각 (citation hallucination)은 여러 관할 구역에서 제재로 이어지기도 했습니다. 서면에 포함하기 전에 모든 판례 인용을 검증하십시오.
저널리즘 및 팩트 체크 (fact-checking): 깨진 링크(Dead links), 철회된 연구(retracted studies), 그리고 주장하는 내용과 실제 내용이 일치하지 않는 논문들. 이 도구는 이 세 가지를 모두 잡아냅니다.
AI가 연구 내용을 요약하는 모든 워크플로우 (workflow): 모델은 실제 논문과 조작된 논문을 동일한 확신을 가지고 찾아냅니다. 이 둘을 구별하는 유일한 방법은 확인하는 것뿐입니다.
이 도구가 하지 않는 것
이 도구는 인용이 실제인지, 그리고 주장된 메타데이터 (metadata)와 일치하는지를 검증합니다. 다음 사항은 수행하지 않습니다:
- 사용자를 대신해 논문 전체를 읽고 요약하는 것 (단,
scrape_page를 통해 오픈 액세스 (open-access) PDF에서 콘텐츠를 가져오고 추출할 수는 있습니다) - 논문의 방법론 (methodology)이 타당한지 판단하는 것
- 도메인 전문 지식 (domain expertise)을 대체하는 것
목표는 명확합니다. 가장 흔하면서도 가장 위험한 실패 모드, 즉 실제 존재하지 않거나 철회된 논문이면서 주장하는 내용과 일치하지 않는 인용을 잡아내는 것입니다.
사용해 보기
이 프로젝트는 GitHub에서 오픈 소스 (open source)로 제공되며, MIT 라이선스를 따르고, 오늘 Product Hunt에 출시되었습니다.
웹 검색 (Google/Brave/DuckDuckGo/Tavily/Exa), 학술 검색 (PubMed, 학술 인덱스), 특허 검색, 인용 검증, 철회 탐지, 깨진 링크 아카이빙, 참고문헌 감사 (bibliography audit) 등을 포함하는 35개 이상의 도구를 지원합니다.
AI가 생성한 연구 자료를 다룬다면, 인용 계층 (citation layer)은 "이 정도면 충분해"라는 식의 접근이 통하지 않는 유일한 곳입니다. 법률 서면, 연구 제안서, 또는 출판된 논문에서의 환각된 인용은 실질적인 피해를 줄 수 있습니다. 이 도구는 바로 그 간극을 메우기 위해 존재합니다.
이전 글: From Node.js to Go: Rebuilding an MCP Server for Production — 재작성 뒤에 숨겨진 엔지니어링 이야기.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기