에이전트에게 전체 레포지토리를 붙여넣는 것을 멈추세요
요약
에이전트에게 전체 레포지토리를 붙여넣는 것은 오히려 성능을 저해합니다. 모델은 모든 파일에 동일한 가중치를 부여하지 않으며, 관련 신호가 노이즈에 묻히기 쉽습니다. 대신, 작업 유형별로 핵심 파일을 지정하는 매니페스트를 사용하고, '진실의 원천(source of truth)'을 명확히 구분해야 합니다.
핵심 포인트
- 전체 레포지토리를 붙여넣는 것은 노이즈만 증가시킵니다.
- 모델은 컨텍스트 내에서 모든 파일에 동일한 가중치를 주지 않습니다.
- 작업별 핵심 파일을 지정하는 매니페스트를 사용하세요.
- 진실의 원천(Source of Truth)을 명확히 구분하여 에이전트에게 권위를 부여해야 합니다.
반사적인 행동
본능은 이해할 만합니다. 에이전트가 공유 유틸리티를 변경하려 하니, utils.ts 파일을 첨부하고, 그 테스트 파일도, 그리고 알고 있는 세 개의 호출자 파일도, README 파일도, 생성된 타입 정의 파일도 차례로 붙여넣습니다. 5분 후 프롬프트에 12개의 파일을 붙여넣었지만, 에이전트는 여전히 틀린 답을 내놓습니다. 왜냐하면 엣지 케이스를 정의하는 핵심 파일—지난 분기의 마이그레이션 스크립트—이 스택에 포함되어 있지 않기 때문입니다.
더 커진 컨텍스트 윈도우는 이 반사적인 행동을 더욱 악화시켰습니다. 모든 것을 첨부해도 괜찮다고 느끼게 되자 팀들도 그렇게 합니다. 그 결과, 에이전트는 4,000줄의 코드를 읽지만 실제로는 그중 40줄에 대해서만 작동합니다. 관련 신호가 노이즈에 의해 희석되기 때문입니다.
컨텍스트 윈도우 내부에서 실제로 일어나는 일
모델은 모든 파일에 동일한 가중치를 부여하지 않습니다. 가장 앞의 몇 개, 가장 뒤의 몇 개, 그리고 질문에서 명시적으로 언급된 내용에만 가중치를 부여합니다. 12개 파일을 붙여넣은 중간 부분은 사실상 배경 노이즈입니다. 사용하지 않는 토큰에 비용을 지불하고 있는 것입니다.
두 번째 비용도 있습니다. 에이전트가 12개의 파일을 읽으면, 그 답이 이 파일들 중 하나에 존재한다고 가정합니다. 명확히 하는 질문을 멈추고, 실제 스키마를 확인하는 것을 멈추며, 주어진 파일 중 가장 틀리지 않은 것부터 추론하기 시작합니다.
실패 모드는 '컨텍스트가 부족해서'가 아닙니다. '너무 많은 구별되지 않은 컨텍스트' 때문입니다.
30분 만에 해결하는 방법
파일을 반응적으로 붙여넣는 대신, 작업 유형(task type)과 에이전트가 가장 먼저 읽어야 할 파일들을 매핑하는 짧은 파일 수준의 매니페스트를 유지하세요. 완벽할 필요는 없습니다.
# AGENT_CONTEXT.md
task:
API 작업을 위해 가장 활용도가 높은 요소(artifact)는 어떤 코드 파일도 아니라, 계약서(contract)입니다. 에이전트가 OpenAPI 사양(spec)을 먼저 읽으면, 시스템이 기대하는 형태를 타입과 예시 페이로드만으로 알기 때문에 세 개의 호출 사이트를 붙여넣어 줄 필요가 없습니다. 저희는 [Powerduck](https://www.powerduck.com/)을 이 원칙에 기반하여 구축했습니다. 즉, 사양이 로컬에 존재하고, 에이전트는 그 사양 파일(spec file)을 참조하며, 생성되는 타입과 예시는 이 사양에서 파생됩니다. 이제 어떤 호출자(caller)를 붙여야 할지 추측할 필요가 없습니다.
## 운영 환경(Production)에서 살아남는 두 가지 규칙
**1. 초기 컨텍스트를 최대로 늘리기보다 제한하세요.** 3~5개 파일로 시작하십시오. 에이전트에게 더 많은 것을 요청하도록 하세요. 추가적인 왕복(round-trip) 한 번의 비용은 몇 분이지만, 4,000줄에 달하는 컨텍스트 전체에서 잘못된 수정 하나를 할 경우 발생하는 비용은 빌드 실패입니다.
**2. "이것을 읽어라"와 "이것이 진실의 원천(source of truth)이다"를 구분하세요.** 붙여넣는 대부분의 파일은 참고 자료일 뿐입니다. 계약서, 스키마, 마이그레이션, 불변성(invariant)을 인코딩하는 테스트처럼 하나의 파일만이 에이전트가 권위적이라고 취급해야 할 원천입니다. 이를 명시적으로 표시하세요. 그렇지 않으면 에이전트는 실제 스키마보다 README에 있는 비공식적인 예시에 더 큰 가중치를 부여하게 됩니다.
## 이번 주에 해야 할 일
- 지난 5개의 에이전트 세션을 열어보세요. 첫 번째 차례에 첨부된 파일 수를 세어보십시오. 다섯 개를 초과한다면, 당신은 희석세(dilution tax)를 지불하고 있는 것입니다.
- 빈번하게 발생하는 작업 하나("API 형태 변경", "CLI 플래그 추가", "X의 불안정한 테스트 수정" 등)를 선택하고, 이를 위한 20줄 분량의 매니페스트(manifest)를 작성하세요. 일주일에 한 번씩 반복 개선하십시오.
- README 파일을 자동 첨부하는 것을 중단하세요. 이 파일은 에이전트가 가장 필요하지 않은 파일인 경우가 거의 대부분이며, 또한 당신이 가장 먼저 첨부하는 파일인 경우도 거의 대부분입니다.
목표는 완벽한 RAG 시스템을 구축하는 것이 아닙니다. 잘못된 12개의 파일을 추측하기보다 올바른 세 개의 파일을 읽어내는 에이전트를 만드는 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기