AI에게 대화를 전부 주면 오히려 답을 놓칠 수 있다
컨텍스트 엔지니어링(context engineering)은 AI가 답을 만들 때 무엇까지 함께 보여줄지를 설계하는 일입니다. 크로마 실험에서 Claude Opus 4는 답에 필요한 대목만 받으면 1점 만점에 0.92점, 대화 전체를 받으면 0.38점이었습니다. 길이보다 섞여 든 잡음이 문제였습니다. '프롬프트 엔지니어링 변천사' 시리즈 5편입니다.

AI에게 정보를 많이 줄수록 답이 정확해질 것 같지만, 꼭 그렇지는 않습니다.
벡터 데이터베이스를 만드는 크로마(Chroma)가 2025년 7월 모델 18종을 놓고 실험했습니다. Claude Opus 4는 답에 필요한 대목만 받았을 때 1점 만점에 0.92점을 받았지만, 대화 전체를 받았을 때는 0.38점이었습니다. 질문도 정답도 같았습니다. 달라진 것은 함께 넣은 분량뿐.
그런데 크로마가 지적한 원인은 "길어서"가 아닙니다. 대화 전체를 받은 모델은 수많은 대화 중에서 관련된 대목을 먼저 찾아낸 뒤, 그것으로 답을 만들어야 했습니다. 찾는 일과 따지는 일을 한 번에 해야 했던 겁니다.
11만 토큰을 줬는데 왜 더 못 맞혔나
크로마는 긴 대화에서 답을 찾는 시험(LongMemEval)을 두 조건으로 진행했습니다. 한쪽에는 답에 필요한 대목만 추려 평균 300 을 넣었습니다. 다른 쪽에는 대화 전체를 그대로 넣었습니다. 평균 11만 3천 토큰. 보고서는 앞쪽을 "따지기만 하면 되는" 조건으로, 뒤쪽을 "찾는 일이 하나 더 붙는" 조건으로 설명합니다.
Sonnet 4는 0.89에서 0.38로, Haiku 3.5는 0.79에서 0.38로. 사고 모드를 켠 Opus 4가 0.95에서 0.72로 낙폭이 가장 작았지만 방향은 같았습니다. 크로마는 평가한 18개 모델 모두에서 추린 쪽이 높았다고 적었습니다. 점수는 답이 맞았는지를 0에서 1 사이로 측정해 평균한 값이고, 채점은 사람 판정과 99% 이상 일치하도록 맞춘 GPT-4.1 평가 모델(judge)이 맡았습니다.
Claude 계열의 낙폭이 유독 큰 까닭도 보고서에 적혀 있습니다. 틀린 답을 낸 것이 아니라 답하기를 그만둔 경우가 많았다는 겁니다. 보고서가 든 예에서 모델은 며칠이 지났는지 묻는 질문에 "알 수 없다"고 답했습니다. 크로마는 Opus 4와 Sonnet 4가 애매한 상황에서 특히 조심스럽게 군다고 봤습니다.

모델은 긴 입력을 고르게 읽지 않는다
닮은 현상은 2023년에도 관찰됐습니다. 논문 '중간에서 길을 잃다(Lost in the Middle)'는 같은 정보라도 입력의 맨 앞이나 맨 뒤에 있을 때 가장 잘 쓰이고, 가운데 놓이면 더 자주 놓친다고 보고했습니다.
두 연구가 같은 실험은 아닙니다. 하나는 정보의 위치를 봤고, 다른 하나는 필요 없는 정보가 얼마나 섞였는지를 봤습니다. 다만 가리키는 곳은 같습니다. 모델이 넣어 준 정보를 고르게 쓴다고 보기는 어렵다는 것.
앤트로픽은 이것을 한정된 자원에 빗댑니다. 사람의 작업 기억(working memory)처럼 모델에도 쓸 수 있는 주의의 총량, 곧 ' 예산(attention budget)'이 있고, 이 들어올 때마다 그 몫이 줄어든다는 설명입니다. 구조에서는 토큰 하나하나가 나머지 전부와 관계를 맺기 때문에, 입력이 길어지면 따져야 할 짝이 그 제곱으로 불어납니다. 앤트로픽은 이렇게 길어질수록 그 안에서 필요한 정보를 정확히 꺼내는 능력이 떨어지는 현상을 '(context rot)'라고 부릅니다. 정도의 차이는 있어도 모델 전반에서 나타난다고 덧붙였습니다.
문제는 긴 컨텍스트가 아니라 섞여 든 잡음이다
대화 전체를 넣는 방식은 모델에게 두 가지 일을 한 번에 시킵니다. 어떤 대목이 질문과 관련 있는지 찾는 일, 그리고 찾아낸 것으로 답을 만드는 일. 관련 대목만 미리 추려 주면 모델이 할 일은 뒤의 하나뿐.
시리즈 4편에서는 에 문장 한 줄을 더해 정답률을 올린 이야기를 다뤘습니다. 이번에 점수 차이를 만든 것은 문장이 아니라 그 옆에 함께 넣은 자료입니다.
앤트로픽은 이 일을 컨텍스트 엔지니어링이라 부른다
앤트로픽 엔지니어링 블로그는 (context engineering)을 "추론하는 동안 가장 알맞은 (정보) 묶음을 골라 유지하는 전략의 모음"이라고 정의합니다. 문구만이 아닙니다. 시스템 지시, 도구 설명, 외부 문서, 도구가 돌려준 결과, 지금까지의 대화 기록처럼 한 번에 들어가는 (context window) 전체가 대상.
Claude Code는 파일을 통째로 읽지 않고 경로만 들고 있다
Claude Code를 쓰고 있다면 이미 이 원칙대로 일하고 있는 셈입니다.
파일을 통째로 읽어 두지 않고 경로만 들고 있다가 필요할 때 읽는 방식이 그중 하나입니다. 앤트로픽은 이것을 '제때 불러오기(just in time)'라고 부르며, Claude Code가 용량이 큰 자료를 이렇게 다룬다고 밝혔습니다. 대화가 길어지면 창을 비우는 장치도 있습니다. /compact는 지금까지의 대화를 요약해 새 창에서 이어 가고, 한도에 가까워지면 자동으로 같은 일을 합니다. /clear는 아예 새 세션을 엽니다.
비운 자리에 무엇을 남길지도 정해 둬야 합니다. Claude Code는 세션마다 빈 창으로 시작하지만, 프로젝트 최상위의 CLAUDE.md는 컴팩션(compaction) 뒤에도 디스크에서 다시 읽혀 들어옵니다. 그래서 공식 문서는 이 파일을 200줄 아래로 두라고 권합니다. 길어지면 창을 그만큼 더 차지하고, 적어 둔 지시를 지키는 정도도 떨어진다는 겁니다. 규칙이 많아지면 경로별 규칙으로 갈라 그 파일을 만질 때만 읽히게 하라고 덧붙입니다.
항상 컨텍스트에 둘 것과 필요할 때 불러올 것을 나누는 일이 컨텍스트 설계입니다. (subagent)도 같은 방식입니다. 각자 깨끗한 창에서 수만 을 써서 탐색하고, 본 에는 추려낸 요약만 넘깁니다.
줄이는 것 자체가 목적은 아니다
앤트로픽은 시스템 를 두고 "가장 작은 묶음"을 찾으라면서도, 작다는 것이 곧 짧다는 뜻은 아니라고 분명히 밝혔습니다. 원하는 대로 움직이게 하려면 필요한 것은 앞에서 충분히 줘야 한다는 겁니다. 목표는 수를 깎는 쪽이 아니라, 답에 필요한 것은 남기고 모델이 굳이 가려내야 할 잡음을 줄이는 쪽입니다.
앤트로픽은 창이 아무리 커져도 엉뚱한 내용이 섞여 들고 정작 필요한 것이 묻히는 문제는 당분간 남는다고 적었습니다. 프롬프트 문구를 다듬는 기술이 사라진 것이 아니라, 그 앞에 무엇을 넣을지 고르는 단계가 하나 더 생긴 셈입니다.
이 기사의 숫자와 인용은 크로마 기술 보고서와 앤트로픽 블로그 원문에서 직접 확인했습니다. /compact·/clear와 CLAUDE.md 200줄 권고는 Claude Code 공식 문서에서 봤습니다.
참고한 자료
- 크로마 기술 보고서 — Context Rot: How Increasing Input Tokens Impacts LLM Performance (2025년 7월 14일)
- Liu 외 — Lost in the Middle: How Language Models Use Long Contexts (2023)
- 앤트로픽 엔지니어링 블로그 — Effective context engineering for AI agents (2025년 9월 29일)
- Claude Code 공식 문서
- Claude Code 공식 문서 — 비용 관리(/compact·자동 컴팩션·/clear)
- Claude Code 공식 문서 — 메모리(세션마다 새 컨텍스트 창, CLAUDE.md 재주입)



