6장. 컨텍스트는 많이 넣는 것이 아니라 잘 고르는 것이다
컨텍스트는 모델이 현재 작업을 수행할 때 볼 수 있는 지시, 대화, 자료, 도구 결과다. 긴 문서를 모두 붙이면 더 정확해질 것 같지만 관련 없는 내용, 오래된 정책, 서로 충돌하는 버전, 자료 속 악성 지시까지 함께 들어온다.
컨텍스트 묶음에 네 가지 메타데이터를 붙인다.
source_id: SRC-02
title: 베타 운영 준비 점검표
owner: 고객지원팀
checked_at: 2026-08-14
trust: internal-approved
scope: 4주 베타 운영에만 적용
자료를 필수, 참고, 제외로 나눈다. 필수 자료가 없으면 모델이 추측하지 않고 중단하도록 한다. 참고 자료는 대안과 배경에 쓰되 핵심 사실의 유일한 근거로 쓰지 않는다. 출처 불명 자료는 별도 격리해 사실 확인 후보로만 둔다.
컨텍스트 예산도 관리한다. 문서를 자르기 전에 독자의 결정에 필요한 질문을 만든다. 예를 들어 출시 판단에는 사용자 수요, 운영 준비, 비용, 법적·보안 제약이 필요하다. 회사 연혁과 모든 회의록은 필요하지 않다.
긴 자료를 처리할 때는 두 단계를 쓴다.
1단계: 문서별 사실·날짜·범위·불확실성을 추출한다.
2단계: 추출 결과를 출처 ID와 함께 종합한다.
한 번에 모두 넣어 요약하면 어느 문서에서 나온 주장인지 잃기 쉽다. 문서별 추출 결과를 저장하면 새 자료가 들어왔을 때 해당 문서만 다시 처리할 수 있다.
컨텍스트가 넘칠 때의 복구 순서는 중복 제거, 무관 자료 제거, 문서별 구조화, 필요한 원문 구간 검색, 세션 분리다. 무조건 더 큰 컨텍스트 모델로 바꾸는 것은 마지막 선택이다.
출처 등록부를 만든다
자료 폴더 이름만으로는 어느 버전을 썼는지 알 수 없다. 작은 CSV나 Markdown 표로 등록부를 만든다.
source_id,title,owner,checked_at,trust,data_class,valid_to,checksum
SRC-01,고객 인터뷰 요약,product-research,2026-08-13,internal,confidential,2026-09-30,sha256:...
원문 파일이 바뀌면 같은 ID에 조용히 덮어쓰지 않는다. 새 버전과 변경 이유를 남긴다. 모델 출력에는 최소한 source ID를 연결하고, 사용자에게 보여 줄 때 권한이 없는 원문 링크를 노출하지 않는다. 삭제 요청을 받은 자료가 검색 색인과 캐시, 평가 fixture에도 남았는지 대사한다.
자료가 서로 충돌하면 최신 날짜만 자동 선택하지 않는다. 적용 범위, 승인자, 발효일을 비교한다. 이전 정책이 특정 고객 계약에는 여전히 적용될 수 있다. 충돌을 출력의 conflicts에 남기고 담당자에게 결정받는다.