컨텍스트 엔지니어링의 현재: 코드로 고정할 것과 모델에 맡길 것을 가르는 일
- 2024년 말 GPT-4o의 128K에서 Gemini 1.5의 1M로 컨텍스트 창이 뛰면서 RAG는 죽었다는 기대가 퍼졌고, 10M 창을 내세운 Llama 4 Scout는 추론 비용 문제로 확산되지 못함
- 긴 컨텍스트의 실패 모드는 네 가지로 정리됨. 컨텍스트 중독(환각이나 오류가 반복 참조됨), 분산(긴 컨텍스트에 과집중해 기본 지식 무시), 혼동(무관한 정보가 응답 품질을 떨어뜨림), 충돌(새 정보와 도구가 기존 컨텍스트와 상충)
- 발표의 결론은 하네스와 워크플로를 만드는 사람의 일이 무엇을 코드로 결정적으로 고정하고 무엇을 모델에 확률적으로 맡길지 고르는 것이라는 주장임
- Drew Breunig는 O'Reilly의 The Context Engineering Handbook을 집필 중이며, 2025년 6월 편집팀에 이 주제가 몇 주 만에 무용지물 되는 것 아니냐는 질문을 받았다고 밝힘
- 다음 과제로 전략적 망각을 지목함. 정밀한 기억이 쌓이면 서로 충돌하고 지저분해지는데 아직 다루는 방법이 없음
Hacker News 의견들
요즘 내가 계속 하는 조언이 이거임. 누가 내 코딩 에이전트가 이상해, Claude 너프 먹은 것 같아 하면 나는 컨텍스트 얼마나 크냐부터 물어봄. 근데 정보가 너무 적어도 이상하게 돌아가더라. 중간 크기에서 잘 돌던 에이전트 패턴이 너무 많거나 너무 적으면 깨짐.
FireRed 차 과제 얘기는 가중치에 있어서 컨텍스트를 오염시킨 거라는데, 이거 다른 얘기 섞은 거 아님? 중독된 컨텍스트는 컨텍스트 안에 들어와서 모델을 이상하게 만드는 거고, 가중치에 있으면 그냥 모델 문제인데.
빠른 판단 모델로 compaction 전에 가지치기하는 아이디어 생각해봤다가 버렸음. 속도가 병목이 아니고 캐시 무효화가 마법이라서. 턴이 A,B,C,D,E 있을 때 C를 버리면 D,E 구간 캐시를 날리는 거 아님? 요즘은 세션 상태 신경 안 쓰고 프로바이더 네이티브 hosted compaction만 씀.
판단 모델로 컨텍스트 가지치기하는 건 경제성이 없음. 판단 모델에 싣자고 돈 내고 같은 데이터를 생성 모델에 또 싣는 거니까. 싼 모델은 충분히 좋고 똑똑한 모델은 충분히 싸서 그 틈이 안 남. 나는 캐시 만료 직전에 자동 compaction하는 확장을 씀.
opencode 플러그인에 동적 compaction 넣고 eviction까지 붙였음. 로컬에서 다 돌려서 컨텍스트를 128k쯤으로 유지하는 게 속도에 좋음. 6M 근처에서 깨지는데, KV 캐시도 값지지만 컨텍스트 중독은 크기와 무관하게 확률이 올라감.
캐시가 프리픽스에서 나오니까 그런 거임. f(f(f(A,B),C),D)랑 f(f(A,B),D)는 꽤 다름.
내 경험으론 컨텍스트가 길어질수록 모델이 멍청해짐. 하네스 같은 거 없이 그냥 채팅 인터페이스만 쓰는데, 몇 턴 지나면 프론티어 모델도 이상한 짓 함.
표본 하나 추가. 나도 똑같이 겪었고 그게 내 코딩 에이전트 하네스 설계에 크게 영향 줬음.
DeepSeek v4.1 flash는 컨텍스트가 길어지면 이번 세션은 여기까지 하고 다음 세션에 다시 시작하자, 컨텍스트 예산이 거의 끝났다는 식으로 말하기 시작함. 그래서 그냥 수동으로 핸드오프 파일 쓰게 하고 컨텍스트를 비움.
목표 달성에 필요한 최소한의 컨텍스트만 넣으라는 건 이미 알려진 얘기임. 논문도 몇 개 있고 Anthropic 문서에도 있음. 많이 부으면 품질 떨어짐.
맞는데 Claude 캐시 TTL이 5분이라 콜드 캐시 걸리면 세션 비용이 10배로 뛰는 경우도 있음.
나는 20만에서 30만 사이에서 리셋을 고민하는데 최신 모델엔 안 맞는 얘기 같음. 70만에서 80만까지도 큰 변화 못 느끼겠고, 코딩 쪽은 롱호라이즌 RLVR 덕인지 예전보다 나아짐. 코드베이스 훑느라 25만까지는 금방 참.
grep 대신 에이전트가 쓸 코드 인덱스를 주면 효과가 큼.
몇 달 전까진 직접 하네스 만들었는데 OpenAI랑 Anthropic이 자체 하네스를 내면서 내 하네스랑 충돌해서 아무 설정 안 하는 게 더 잘 나옴. 규칙이나 메모리를 따로 둘 필요도 없어졌음.
마지막 문장, 결정적일 때와 확률적일 때를 고르는 게 우리 일이라는 부분이 제일 좋았음. AI한테 일을 시킬지 그 일을 하는 걸 AI한테 만들게 할지 고민할 때 기준이 되더라.
이게 엔지니어링인지 그냥 가끔 도움 되는 오토컴플리트인지 모르겠음.
의도적 망각이란 아이디어가 좋음. 코드, 설계, 의도를 아티팩트로 체크포인트하고 새 컨텍스트로 시작하면 잘 됨. 근데 설계 문서랑 실행 계획이 코딩의 입력이 아니라 결과물이 되어버린 게 좀 이상함.
완벽한 기억이 창의성을 막는다는 건 인간의 불완전한 기억이 왜 그런지 설명해줌. LLM한테 완벽한 기억은 필요 없고 그건 컴퓨터가 커버함. 컨텍스트 엔지니어링이 계속 살아남는 이유로 좋은 근거임.