작업 의뢰 가능 · AVAILABLE FOR WORK수원, KR/EST. 2025/--:--:-- KST
JADAN.

에이전트 워크플로우

에이전트한테 리서치를 시키면 왜 그럴듯한 헛소리를 섞나

AI 에이전트가 조사 결과에 근거 없는 주장을 섞는 이유, 그리고 출처와 주장을 분리하는 2단계 프로토콜로 그것을 막는 법을 정리한 노트.

Published
2026-06-11
Reading
1

AI 에이전트에게 "이 주제를 여러 사이트에서 조사해서 정리해줘"라고 시키면, 잘 정리된 보고서가 돌아온다. 문장은 매끄럽고 출처처럼 보이는 링크도 달려 있다. 그런데 그중 몇 줄을 골라 실제 출처를 열어보면, 출처에 없는 내용이거나, 링크가 엉뚱한 곳을 가리키거나, 아예 존재하지 않는 페이지인 경우가 섞여 있다. 보고서 전체가 거짓인 건 아니다. 진짜와 가짜가 같은 톤으로 섞여 있어서 어느 쪽인지 구분이 안 될 뿐이다.

이게 더 위험하다. 전부 틀렸다면 버리면 되지만, 90%가 맞고 10%가 헛소리면 그 10%를 골라낼 방법이 없는 채로 신뢰하게 된다. 이 글은 에이전트 리서치가 왜 이렇게 그럴듯한 헛소리를 섞는지, 그리고 출처 기반 2단계 프로토콜(파일 규칙으로 짠 조사 절차)로 그것을 어떻게 막는지를 정리한 개요다. 앞 글에서 다룬 "파일시스템을 에이전트의 기억으로 쓴다"는 패턴을 리서치라는 구체적인 작업에 적용한 셈이다.

문제: 에이전트 리서치가 헛소리를 섞는 이유는 네 가지로 압축된다

조사 결과가 오염되는 자리는 매번 비슷하다.

  • 원자료 과적재 — 에이전트가 조사한 원문을 전부 자기 컨텍스트 창(한 번에 들고 있을 수 있는 작업 기억)에 끌어온다. 창이 차면 앞에서 본 자료부터 밀려 사라진다. 결국 "분명 어디서 봤는데" 하는 흐릿한 기억만 남는다.
  • 출처와 주장의 혼재 — "무엇을 알아냈는가"와 "그걸 어디서 봤는가"가 한 덩어리로 섞여 흘러간다. 나중에 어느 문장이 검증된 사실이고 어느 문장이 모델이 채워 넣은 것인지 가릴 수 없다.
  • 병렬 중복 — 여러 에이전트를 동시에 돌리면 서로 무엇을 이미 찾았는지 모른 채 같은 사이트를 또 뒤진다. 같은 출처가 여러 번 반복돼 마치 여러 근거가 있는 것처럼 부풀려진다.
  • 빈칸 메우기 — 가장 핵심적인 원인이다. 모델은 "모른다"라고 말하는 데 약하다. 근거가 없는 자리를 만나면 그럴듯한 문장으로 빈칸을 메운다. 이게 할루시네이션(그럴듯하지만 근거 없는 생성)의 정체다.

이 넷은 한 뿌리에서 나온다. 조사 과정에 출처를 따로 붙잡아 두는 구조가 없다는 것. 자료가 컨텍스트 안에서 한데 녹아버리면, 결과물은 매끄러워질수록 검증하기 어려워진다.

해법은 출처를 끝까지 붙잡고 가는 2단계 프로토콜이다

전환의 핵심은 단순하다. 조사를 한 번에 끝내지 말고, 자료를 모으는 단계와 그것을 글감으로 다듬는 단계를 분리한다. 그리고 두 단계 모두에서 출처를 절대 놓지 않는다.

  • Phase 1 — 수집(collection): 주제를 쪼개고, 어디서 찾을지 정하고, 자료를 모으고, 출처와 사실을 검증한다. 이 단계의 산출물은 "정제된 글"이 아니라 "검증된 원자료 더미"다.
  • Phase 2 — 큐레이션(curation): 모인 원자료를 추려서 주장을 출처에 묶고, 헛소리가 없는지 감사한 뒤, 글이나 의사결정에 쓸 수 있는 형태로 다듬는다.

수집과 큐레이션을 섞지 않는 게 중요하다. 자료를 모으면서 동시에 결론까지 쓰려고 하면, 아직 검증되지 않은 인상이 결론에 새어 들어간다. 먼저 다 모아 검증하고, 그다음에 따로 다듬는다.

각 조사는 독립된 폴더 하나로 묶인다. 그 안에 run.yaml(이 조사가 무엇인지), 일정, 원자료, 분류 결과, 주장 장부, 완료 표식이 정해진 자리에 쌓인다. 폴더 하나만 보면 그 조사가 어디까지 왔는지 알 수 있다.

Phase 1은 "무엇을, 어디서, 얼마나 믿고" 모을지를 먼저 정한다

수집 단계는 곧장 긁어모으는 게 아니라, 모으기 전에 판을 짜는 데 공을 들인다. 흐름은 이렇다.

  • 축 분할(axis discovery) — 주제를 서로 겹치지 않는 하위 축으로 먼저 쪼갠다. 예를 들어 "공식 출처 / 시장과 실무 / 논란과 실패"처럼. 이렇게 안 하면 지휘하는 에이전트의 첫 추측이 곧 조사의 천장이 돼버린다. (이 메커니즘은 깊이 들어갈 거리가 많아서 다음 글에서 따로 판다.)
  • 도메인 맵(domain map) — 각 축마다 어떤 질문에 답해야 하고 어떤 종류의 출처(공식 문서, 표준 기구, 사례 연구, 이슈 트래커 등)를 봐야 하는지 정한다. 선호할 출처와 피할 출처(근거 없는 요약, 베껴 쓴 SEO 페이지 등)도 여기서 미리 정의한다.
  • 출처 정찰(source scouting) — 내용을 모으기 전에, 오래 살아남을 단단한 출처가 어디 있는지부터 찾는다.
  • 사이트 프로파일링(site profiling) — 각 출처마다 접근 방법, 가치, 위험, 수집 난이도를 가늠해 둔다.
  • 완결성 게이트(completeness gate) — 본격 수집 전에 "빠진 관점은 없나"를 일부러 공격한다. 규모를 키우기 전에 구멍을 찾는 단계다.

판이 짜이면 그제야 수집으로 넘어가는데, 여기서 핵심은 모은 자료를 한 덩어리로 쌓지 않는다는 점이다. 쓸 만한 것(raw), 추려낸 것(triaged), 버린 것(rejected)을 물리적으로 다른 폴더에 분리 저장한다. 버린 자료도 버렸다는 사실 자체를 남긴다. 그 뒤 자료마다 주제·신뢰도·근거 역할 같은 꼬리표를 붙이는 분류, 그리고 출처 정보와 사실을 원자료에 비춰 확인하는 출처·사실 검증이 따라온다.

Phase 2는 발행 전에 헛소리를 한 번 걸러낸다

수집이 끝났다고 그 결과를 바로 글에 쓰면 안 된다. 모은 자료는 아직 "검증된 재료"일 뿐, "쓸 수 있는 주장"은 아니다. Phase 2가 그 사이를 메운다.

  • 편집 큐레이션(editorial curation) — 모인 원자료 중에서 실제로 쓸 만한 것을 추린다.
  • 주장 장부(claim ledger) — 뽑아낸 주장 하나하나를 그 출처에 묶어 기록한다. "이 사실은 어디서 왔는가"가 항상 따라붙는다. (장부의 구조도 따로 다룰 거리가 많아 다음 글로 넘긴다.)
  • 할루시네이션 감사(hallucination audit) — 장부를 훑으며 근거 없이 떠 있는 주장, 출처가 뒷받침하지 않는 주장을 골라낸다.
  • 토픽 팩 / 아티클 브리프(topic pack / article brief) — 감사를 통과한 것만 모아 글감 묶음으로 정리한다.

규칙은 명확하다. 공개 글이나 의사결정에 영향을 줄 수 있는 주장은 큐레이션 → 주장 장부 → 할루시네이션 감사 → 토픽 팩/브리프를 반드시 거친다. 이 관문을 통과하지 못한 문장은 재료 더미 안에 남을 뿐, 결과물로 나가지 못한다. 매끄러운 초안을 빨리 뽑는 것보다, 나가는 문장마다 출처가 따라붙는 게 우선이다.

핵심 방어는 결국 두 가지다 — 출처-주장 분리와 UNKNOWN

위 절차가 길어 보이지만, 헛소리를 막는 실제 장치는 단순한 두 가지로 압축된다.

첫째, 주장과 출처를 분리해 묶는다. 모델은 자료를 컨텍스트 안에서 한데 녹이고 싶어 하지만, 프로토콜은 그걸 막고 모든 주장에 출처 꼬리표를 강제로 붙인다. 그러면 위험한 주장만 골라 따로 검증할 수 있고, 사후에 "이 문장 근거가 뭐였지"를 추적할 수 있다. 출처가 분리돼 있지 않으면 감사 자체가 불가능하다.

둘째, 근거가 없으면 UNKNOWN으로 남긴다. 빈칸을 모델 기억으로 메우지 않는다. 이 한 줄 규칙이 할루시네이션을 막는 마지막 방어선이다. "모른다"라고 적힌 자리는 나중에 사람이 채우거나 추가 조사를 붙일 수 있지만, 그럴듯하게 메워진 자리는 거짓인 줄도 모르고 지나간다.

여기에 한 가지 운영 장치가 더해진다. 지휘하는 에이전트(orchestrator)는 원문을 읽지 않는다. 지휘자는 run.yaml, 일정 파일, 완료 표식(done 마커), 파일 개수와 바이트 수만 본다. 원문은 일하는 에이전트(worker)가 파일에 남기고, 지휘자에게는 "상태 / 만든 파일 경로 / 막힌 점 / 짧은 메모"만 돌려준다. 지휘자가 모든 원문을 읽으려 들면 그 순간 원자료 과적재가 다시 시작되기 때문이다. 그리고 완료는 기억이 아니라 done/*.yaml 마커 파일로 추적한다 — 실패한 작업도 실패로 기록해 빈자리를 남기지 않는다.

정리 — 그리고 다음 글

에이전트 리서치가 그럴듯한 헛소리를 섞는 건 모델이 멍청해서가 아니라, 조사 과정에 출처를 붙잡아 두는 구조가 없기 때문이다. 자료가 컨텍스트 안에서 녹아버리고, 근거 없는 자리를 모델이 매끄럽게 메우면, 결과물은 그럴듯해질수록 검증하기 어려워진다.

출처 기반 2단계 프로토콜은 그 흐름을 끊는다. Phase 1에서 판을 짜고 자료를 검증해 모으고, Phase 2에서 주장을 출처에 묶어 감사한 뒤에야 글로 내보낸다. 핵심은 화려한 알고리즘이 아니라 두 가지 단순한 규칙 — 주장과 출처를 떼어 놓지 않는 것, 그리고 모르면 모른다고 적는 것이다.

이 글은 개요다. 여기서 가볍게만 짚은 축 분할(axis discovery)이 왜 조사의 천장을 결정하는지, 주장 장부(claim ledger)를 실제로 어떻게 구조화하는지는 다음 글에서 더 깊이 판다. 이 프로토콜을 포함한 파일 규칙들은 한곳에 정리해 공개 저장소로 묶어 두었다.

저장소: github.com/aminpiano/agentic-workflows

문의

프로젝트 문의.

내용을 남겨 주시면 검토 후 연락드립니다. 이메일이나 전화로 직접 연락 주셔도 됩니다.