본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 19. 06:39

AI 에이전트들이 추측을 멈출 수 있도록 출처가 명시된 지식 베이스를 제공했습니다

요약

AI 에이전트의 환각 현상을 방지하기 위해 출처가 명시된 사실 기반의 지식 베이스(Knowledge Base)를 구축하는 방법론을 소개합니다. 에이전트가 학습 데이터에 의존해 추측하는 대신, 검증된 원자적 노트를 참조하도록 설계하여 신뢰도를 높였습니다.

핵심 포인트

  • AI 에이전트의 자신감 있는 오답(환각) 문제를 해결하기 위한 지식 베이스 구축
  • 운영 로그와 격리된 '사실 중심(Factual)' 영역인 10-Library 설계
  • 단일 개념을 담은 110개의 원자적(Atomic) 노트 구성
  • 에이전트가 업무 수행 전 반드시 참조해야 하는 진실의 근원(Source of Truth) 제공

제 에이전트들은 세상에 대해 자신 있게 틀린 말을 했고, 저는 그것이 언제 일어나는지 알 수 없었습니다. 저를 괴롭혔던 부분은 바로 그 점이었습니다 — 틀렸다는 사실이 아니라, 그 _자신감_이었습니다.

저는 약 20명의 AI 에이전트 함대를 운영하며 1인 기업을 꾸려가고 있습니다 — 콘텐츠 작가, 재무 담당, 연구원, 보안 요원 등 몇 명의 에이전트들이 더 있습니다. 그들은 제가 구축한 업무를 잘 수행합니다. 하지만 그들 모두는 제가 그동안 임시방편으로 가려왔던 결함을 공유하고 있었습니다. 작업에 세상에 대한 사실(fact) — 예를 들어 세금 임계값이 어떻게 작동하는지, 마케팅 프레임워크(marketing framework)가 실제로 무엇을 말하는지, 플랫폼이 어떻게 과금하는지 등 — 이 필요할 때, 모델은 자신의 학습 데이터(training data)를 뒤져서 그것을 알고 있든 즉흥적으로 지어내고 있든 똑같이 자신만만한 어조로 답변합니다. 구별할 방법이 없습니다. 추측과 사실은 똑같은 얼굴을 하고 있습니다.

그래서 이번 달에 저는 부족했던 것을 만들었습니다: 에이전트들이 업무를 수행하기 전에 반드시 읽어야 하는, 출처가 명시되고 사실 확인(fact-checked)이 된 지식 베이스(knowledgebase)입니다. 또한 제가 스스로 진실의 근원(source of truth)을 오염시키지 못하도록 막는 게이트(gate)도 포함했습니다. 이것이 어떻게 구축되었는지, 가장 중요했던 단 하나의 규칙은 무엇인지, 그리고 현재의 솔직한 상태는 어떠한지(며칠 전에 완성했지만 이것이 업무를 변화시킬지는 아직 모른다는 점)에 대해 말씀드리겠습니다.

제가 실제로 이 작업을 위해 고용하려 했던 일

제 설정을 걷어내고 보면, 이 문제는 AI를 사용하는 모든 1인 운영자가 이미 겪고 있는 문제입니다. 모델에게 실제 사실에 의존하는 무언가를 요청합니다. 모델은 유창하게 답변합니다. 당신은 오류를 잡아낼 만큼 충분한 지식을 가지고 있거나, 그렇지 않거나 둘 중 하나입니다 — 그리고 당신이 질문을 하는 근본적인 이유는 대개 지식이 없기 때문입니다. 제가 완수해야 했던 작업은 "내 에이전트를 더 똑똑하게 만드는 것"이 아니었습니다. 그것은 더 좁고 정직한 목표였습니다: 제가 잡아낼 수 없는 영역에서 AI가 이야기를 지어내는 것을 멈추게 하고, 제가 실제로 신뢰할 수 있는 주장이 무엇인지 알려주는 것이었습니다.

제 작업 공간에서 그 역할을 대신하려 했던 경쟁 상대는 "그냥 모델이 알아서 하게 두고 운에 맡기는 것"이었습니다. 그것은 이미 저에게 비용을 치르게 했습니다. 한 번은 마케팅 분석 과정에서 에이전트가 실시간 수치를 가져오는 대신 오래된 수치를 신뢰하는 바람에 특정 채널의 수치를 과소평가한 적이 있습니다. 작고 회복 가능한 수준이었지만, 눈에 보이는 문제는 그 정도입니다. 정말 무서운 것은 눈에 보이지 않는 문제들입니다.

내가 구축한 것

제가 '10-Library'라고 부르는 제 노트 저장소(notes vault)의 영역이 있습니다. 이곳은 운영 로그북(세션, 결정, 일상적인 상태)으로부터 의도적으로 격리된 사실적 (factual) 영역입니다. 무엇을 허용할지 결정하는 하나의 테스트 기준은 다음과 같습니다: "만약 내 회사가 내일 사라지더라도 이 내용은 여전히 사실인가?" 카피라이팅 프레임워크에 관한 사실이라면: 네, 여기에 저장됩니다. 제 매출에 관한 사실이라면: 아니요, 그것은 운영 메모리입니다. 라이브러리(Library)에는 세상에 진실인 것들만 담깁니다.

현재의 구체적인 형태는 다음과 같습니다:

  • 110개의 노트: 각 노트는 원자적 (atomic)입니다. 즉, 주제를 쏟아붓는 것이 아니라 단일 개념을 담고 있습니다. 현재까지 인프라(infrastructure), Linux, 네트워킹(networking), 배포(distribution, 마케팅), 프리랜싱(freelancing)의 5개 카테고리로 나뉘어 있습니다.
  • 주장 수준의 출처 명시 (Claim-level sourcing): 모든 사실적 문장에는 그것이 어디에서 왔는지에 대한 인라인 인용(inline citation)이 포함되어 있습니다. 출처가 없으면 항목도 없습니다. 각주가 없는 노트는 라이브러리의 사실이 아니라 의견일 뿐이며, 진실의 근원(source of truth)에 자리 잡을 수 없습니다.
  • 격리 구역 (A quarantine): 웹에서 정기적으로 조사하거나 에이전트가 정보의 공백을 만났을 때 요청에 따라 가져온 새로운 사실들은 신뢰할 수 있는 세트에 바로 들어가지 않습니다. 이들은 auto-unverified라고 표시된 _quarantine 폴더에 저장되며, 제가 직접 읽고 수동으로 승격시키기 전까지는 에이전트들에게 보이지 않습니다. 현재 격리 구역에는 정확히 하나의 노트가 저의 확인을 기다리며 머물러 있습니다.

이 노트들은 제가 실제로 옹호할 만한 출처, 즉 모델이 자신에 대해 자유 연상(free-associating)한 내용이 아니라 공인된 강의 자료와 1차 참고 문헌(primary references)에서 추출되었습니다. 예를 들어, 이 에세이를 쓰는 데 제가 의존했던 마케팅 노트들은 단순한 리스트 형식의 글(listicle)이 아니라 Ogilvy의 저서와 1994년 심리학 논문을 인용하고 있습니다.

가장 중요했던 단 하나의 규칙

만약 제가 이 빌드(build)에서 단 한 문장만 남겨야 한다면, 그것은 바로 이것입니다: 에이전트는 지식 베이스(knowledgebase)를 읽지만, 에이전트가 이를 몰래 다시 쓰는 일은 결코 일어나지 않아야 합니다.

이것은 관료적인 주의 사항처럼 들릴 수도 있습니다. 하지만 실제로는 그 반대입니다. 이것은 전체 구조가 부패하는 것을 막아주는 핵심 요소입니다. 언어 모델(language model)에게 자신의 지식 베이스를 재검증하도록 요청했을 때, 모델이 성실한 유지보수를 수행하는 것처럼 보이면서도 실제로는 정확한 사실을 조용히 저하시키고(degrade) 자신의 오류를 정당화하는 실패 모드(failure mode)가 문서로 기록되어 있습니다. AI가 자신의 숙제를 스스로 채점하게 되면, 모델은 확신을 가지고 표류하게 됩니다. 따라서 저의 라이브러리(Library)에서 자동 재검증은 권고 사항이며 추가 전용(append-only) 방식입니다. 즉, 노트가 오래되었거나 모순된다고 표시할 수는 있고, 제가 검토할 수 있도록 제안된 변경 사항을 준비(stage)할 수는 있지만, 스스로 단 하나의 사실도 덮어쓸 수는 없습니다. 인간의 승인(promote) 단계는 단순한 편의 기능이 아닙니다. 그것은 구조를 지탱하는 하중 지지벽(load-bearing wall)입니다.

동일한 규칙의 나머지 절반은 다음과 같습니다: 수집된 웹 콘텐츠는 지시 사항(instructions)이 아닌 데이터(data)로 취급됩니다. 인터넷에서 가져온 노트는 답변에 정보를 제공할 수는 있지만, 제가 먼저 확인하기 전에는 결코 동작을 트리거할 수 없습니다. 즉, 쓰기(write), 도구 호출(tool call), 비용 지출(spend) 등이 불가능합니다. 이 단 하나의 경계선은, 누군가 제 리서처가 읽는 웹 페이지를 오염시키고 제 에이전트 군단(fleet)이 그 오염된 정보에 따라 행동하기 시작하는 악몽을 조용히 차단합니다. 에이전트는 세상을 읽는 것이지, 세상으로부터 명령을 받는 것이 아닙니다.

이것이 아닌 것

이것은 'RAG가 AI를 정답으로 만든다'는 뜻이 아닙니다. 지식 베이스가 모델을 진실하게 만드는 것은 아닙니다. 지식 베이스는 제가 무엇이 진실인지 결정해 둔 *제한적이고 인용 가능한 장소(bounded, citable place)*를 제공할 뿐입니다. 이를 통해 중요한 사실에 대해 모델이 확신하는 내용이 아니라, 제가 검증한 것에 의존할 수 있게 합니다. 이 두 가지 사이의 간극이 바로 핵심입니다. 라이브러리 외부에서 제 에이전트들은 당신의 에이전트들만큼이나 똑같이 실수할 수 있습니다. 하지만 적어도 라이브러리 내부에서 에이전트가 사실을 인용할 때, 저는 각주를 클릭하여 확인할 수 있습니다.

그리고 이것은 완전히 새로운 것입니다. 이것이 전체 시스템(fleet)을 측정 가능한 수준으로 개선했다고 말씀드리지는 않겠습니다. 왜냐하면 저는 아직 진심으로 알지 못하기 때문입니다. 출시된 지 몇 달이 아니라 며칠밖에 되지 않았습니다. 제가 말씀드릴 수 있는 것은, 이 시스템이 막으려고 설계된 실패 사례는 실재하며, 저 또한 그 저렴한 버전(cheap version)에 당해본 적이 있다는 사실입니다. 그리고 이 설계는 제가 옹호할 만한 것입니다. 즉, 작업하기 전에 읽고, 모든 주장을 인용하며, 기계가 조용히 진실을 편집하도록 내버려 두지 않는 것입니다.

언제나 그렇듯, 솔직한 현황

이 부분은 제가 모든 과정에서 생략하기를 거부하는 부분입니다. 왜냐하면 정직함이야말로 실제 제품이기 때문입니다. 수익은 여전히 0입니다. 청중(audience)은 여전히 아주 적습니다. 방금 설명한 지식 베이스(knowledgebase)는 이번 주에 구축되었습니다. 110개의 노트는 존중할 만한 시작이지만, 완성된 참조 자료와는 거리가 멉니다. 제가 스케치해 둔 전체 카테고리 중 일부는 여전히 비어 있습니다. 이 모든 운영 과정에서 가장 활기찬 것은 운영 체제(operating system) 자체와 하나의 따뜻한 의뢰입니다. 바로 제 어머니를 위해 만들고 있는 작은 데스크톱 앱인데, 어머니는 이를 함께 일하는 사람들에게 입소문으로 전달해 주실 것입니다.

그러니 이것을 승전보가 아닌 빌드 로그(build log)로 취급해 주십시오. 저는 제가 잡아낼 수 없는 영역에서 AI 작업자들이 추측하는 것을 멈추게 하기 위해 인용 가능한 지식 베이스를 구축했고, 제가 그 지식을 오염시키는 존재가 되지 않도록 하는 단 하나의 규칙 — 읽으세요, 다시 쓰지 마세요 (read it, don't rewrite it) — 을 연결했습니다. 이것이 제 몫을 다할지는 공개적으로 확인하여 어떤 결과든 말씀드리겠습니다.

만약 당신이 무언가 중요한(load-bearing) 작업에 AI를 사용한다면, 오늘 바로 훔쳐 갈 수 있는 저렴한 버전의 방법은 다음과 같습니다. 당신이 직접 확인한 사실들을 담은 파일 하나를 유지하고, 각 사실이 어디에서 왔는지 인용하며, 모델이 답변하기 전에 그 파일을 참조하도록 지정하십시오. 그리고 당신이 변경 사항을 읽지 않은 채 모델이 그 파일을 편집하도록 절대 내버려 두지 마십시오. 금고나 20개의 에이전트(agents)가 필요한 것이 아닙니다. 당신에게 필요한 것은 "진실"이 모델이 아닌 _당신_이 결정한 것을 의미하는 장소입니다.

저는 운영 체제(operating system)를 한 조각씩 작성해 나가고 있습니다. 에이전트 배선(agent wiring), 실패 사례, 제가 역설계(reverse)한 규칙들을 Unbearable TechTips Weekly에서 다룹니다. 여기에는 실질적인 홈랩(homelab)과 에이전트 운영(agent ops), 그리고 실제 현황이 포함되어 있습니다. 만약 이 혼란스러운 과정이 당신에게 유용하다면, 상세한 내용들은 그곳에 있습니다.

— Noel @ Unbearable Labs

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0