Skip to content

Split View: 컨텍스트 엔지니어링은 프롬프트 엔지니어링을 대체한 말인가 — 측정된 것과 아닌 것

|

컨텍스트 엔지니어링은 프롬프트 엔지니어링을 대체한 말인가 — 측정된 것과 아닌 것

들어가며 — 질문에 먼저 답하면

"컨텍스트 엔지니어링이 프롬프트 엔지니어링을 대체했다"는 말을 요즘 자주 봅니다. 결론부터 말하면 대체가 아니라 포함입니다. 그리고 이건 제 의견이 아니라 용어를 퍼뜨린 사람들이 직접 쓴 문장입니다. Karpathy는 컨텍스트 엔지니어링을 정의하면서 그 구성요소로 "태스크 설명과 설명, few-shot 예제, RAG, 도구, 상태와 이력, compacting"을 나열했습니다 — few-shot 예제와 태스크 설명은 그냥 프롬프트 엔지니어링입니다. Anthropic은 아예 "컨텍스트 엔지니어링을 프롬프트 엔지니어링의 자연스러운 진전(natural progression)으로 본다"고 썼습니다. 어느 1차 출처도 "죽었다"고 말하지 않았습니다. 그 문장은 헤드라인에서 태어났습니다.

그런데 여기서 멈추면 절반만 맞습니다. 포함 관계라는 건 용어 정리일 뿐이고, 진짜 질문은 "그래서 새로 배울 게 있느냐"입니다. 이건 측정으로 답할 수 있습니다 — 그리고 답은 "있다"입니다. Chroma가 2025년 7월에 한 실험이 가장 깔끔합니다. 같은 질문, 같은 태스크, 같은 문구를 그대로 두고 주변 컨텍스트의 양만 바꿨습니다(관련 내용만 담은 약 300토큰 vs 무관한 내용까지 포함한 약 113k토큰). 18개 모델 전부에서 성능이 떨어졌습니다. 프롬프트 문구는 한 글자도 안 바뀌었는데 숫자가 움직였다면, 그건 프롬프트 엔지니어링이 손댈 수 없는 축입니다. 그게 이 용어가 벌어들인 값입니다.

이 글은 하이프를 걷어내고 측정된 것과 측정 없이 반복되는 것을 갈라놓는 데 목적이 있습니다. 컨텍스트 윈도우 자체의 활용 전략은 1M 컨텍스트 윈도우 시대의 LLM 활용 전략 편에서, 에이전트 메모리 설계의 실무 패턴은 컨텍스트 엔지니어링 — AI 에이전트에게 기억을 설계해주는 법 편에서 이미 다뤘습니다. 여기서는 그 글들이 전제로 깔았던 근거 자체를 감사(audit)합니다.

용어는 언제, 누구한테서 나왔나

시간순으로 정리하면 이렇습니다.

  • 2025년 6월 12일 — Cognition의 Walden Yan이 "Don't Build Multi-Agents"를 발표합니다. 여기서 컨텍스트 엔지니어링을 프롬프트 엔지니어링의 "다음 단계"로 규정하고, "동적인 시스템에서 이걸 자동으로 하는 것"이라고 정의합니다. 그리고 에이전트를 만드는 엔지니어의 "1순위 업무"라고 못 박습니다.
  • 2025년 6월 19일 — Shopify CEO Tobi Lütke가 X에 "프롬프트 엔지니어링보다 컨텍스트 엔지니어링이라는 용어가 더 좋다"고 씁니다. 그의 정의는 "태스크가 LLM으로 풀릴 만하게 만드는 데 필요한 모든 컨텍스트를 제공하는 기술"입니다.
  • 2025년 6월 25일 — Karpathy가 이를 증폭합니다. 위에 인용한 그 문장입니다.
  • 2025년 6월 27일 — Simon Willison이 두 트윗을 인용하며 "이 용어는 오래갈 것 같다"고 씁니다. 그의 관찰이 흥미롭습니다 — 프롬프트 엔지니어링은 "챗봇에 뭔가 타이핑하는 일을 거창하게 부르는 말"로 대중에게 오해받았고, 컨텍스트 엔지니어링은 대중이 유추하는 뜻이 의도한 뜻에 더 가까울 거라는 겁니다. 즉 이 용어 교체의 동기 중 상당 부분은 기술이 아니라 어감이었습니다.
  • 2025년 7월 17일 — 정확히 1년 전 오늘, 1400편 넘는 논문을 훑은 서베이(arXiv 2507.13334)가 올라오면서 용어가 학술적 외형을 얻습니다.
  • 2025년 9월 29일 — Anthropic이 엔지니어링 블로그에 "Effective context engineering for AI agents"를 올립니다. 벤더가 공식적으로 이 용어를 채택한 시점입니다.

여기서 눈여겨볼 게 있습니다. Cognition의 글이 트윗들보다 일주일 먼저 나왔고, 세 출처(Cognition, Karpathy, Anthropic)가 각자 독립적으로 같은 구조의 정의를 내놨습니다 — 프롬프트 엔지니어링을 부분집합으로 포함하는 상위 개념. 아무도 대체라고 하지 않았습니다.

두 일이 다르다는 걸 보여주는 측정 하나

용어 계보는 여기까지 하고, 근거로 갑시다. "컨텍스트 엔지니어링은 다른 일이다"를 주장이 아니라 측정으로 보여주는 실험이 하나 있습니다. Chroma의 기술 보고서 "Context Rot: How Increasing Input Tokens Impacts LLM Performance"(Hong, Troynikov, Huber, 2025년 7월 14일)입니다.

핵심 설계는 이렇습니다. LongMemEval이라는 대화형 QA 벤치마크를 쓰되, 같은 질문을 두 가지 방식으로 던집니다.

Focused 조건:  질문 + 답에 필요한 관련 부분만        -> 평균 약 300 토큰
Full 조건:     질문 + 관련 부분 + 무관한 내용 전체    -> 평균 약 113k 토큰

질문 동일. 태스크 동일. 프롬프트 문구 동일.
달라진 것: 관련 정보 주변에 무엇이 얼마나 깔려 있는가.

결과는 Chroma의 표현 그대로 "모든 모델에서 focused 프롬프트가 full 프롬프트보다 유의하게 높은 성능"입니다. 평가 대상은 GPT-4.1, Claude 4, Gemini 2.5, Qwen3를 포함한 18개 모델이었습니다.

이게 왜 결정적이냐면, 이 실험은 프롬프트 엔지니어링의 변수를 전부 고정했기 때문입니다. 문구도, 예제도, 지시문도 그대로입니다. 프롬프트 엔지니어링이 만질 수 있는 손잡이는 하나도 안 건드렸는데 숫자가 움직였습니다. 그러니까 "컨텍스트 엔지니어링은 프롬프트 엔지니어링의 리브랜딩"이라는 주장은 이 한 장의 실험으로 반증됩니다. 반대로 "프롬프트 엔지니어링은 죽었다"도 틀렸습니다 — focused 조건에서 성능이 잘 나온다는 건 프롬프트가 여전히 작동한다는 뜻이니까요. 두 축은 직교합니다.

정직하게 덧붙일 조건도 있습니다. 저자들이 LongMemEval_s에서 knowledge update, temporal reasoning, multi-session 범주를 골라 쓰고, 모호하거나 답할 수 없는 38개 프롬프트를 걸러내 306개를 남겼습니다. 채점은 LLM 심사(LLM-as-judge)이고, 저자들은 이 심사를 사람 판단에 캘리브레이션했다고 밝힙니다(LongMemEval 출력 약 600개를 수동 라벨링). Chroma는 벡터 DB 회사이므로 "검색으로 컨텍스트를 줄여라"는 결론에 이해관계가 있다는 점도 감안해야 합니다. 다만 코드베이스가 공개돼 있고 재현 가능합니다.

컨텍스트 윈도우와 실효 컨텍스트는 다른 숫자다

"1M 컨텍스트"라고 적힌 숫자는 입력이 거부되지 않는 한계이지 성능이 유지되는 한계가 아닙니다. 이걸 정면으로 측정한 게 RULER(Hsieh 등, arXiv 2404.06654, COLM 2024)입니다.

RULER의 방법론이 명료합니다. 13개 태스크 평균 점수를 재고, Llama2-7B가 4K에서 낸 85.6%를 기준선으로 삼아 이 선을 넘는 최대 길이를 "실효 길이(effective length)"로 정의합니다. 기준선 선택 자체는 임의적이지만, 임의적이라는 걸 논문이 밝히고 고정했다는 게 중요합니다. 17개 모델 결과 중 일부입니다.

모델표방 길이실효 길이4K32K128K
Gemini-1.5-Pro1M128K 초과96.795.994.4
GPT-4128K64K96.693.281.2
Llama3.1 (70B)128K64K96.594.866.6
Qwen2 (72B)128K32K96.994.153.7
Yi (34B)200K32K93.387.577.3
GradientAI/Llama3 (70B)1M16K95.185.472.1
LWM (7B)1M4K 미만82.369.165.0

논문의 문장은 이렇습니다 — "거의 모든 모델이 표방한 컨텍스트 길이에 도달하기 전에 기준선 아래로 떨어진다." LWM은 1M을 표방하면서 4K에서조차 Llama2-7B를 못 넘습니다. 즉 표방 길이는 실효 길이를 예측하지 못하고, 심지어 순서도 보존하지 않습니다 — 1M을 표방한 GradientAI/Llama3(실효 16K)가 128K를 표방한 GPT-4(실효 64K)보다 한참 아래입니다.

여기서 반드시 붙여야 할 조건: 이건 2024년 모델들입니다. 그러니 "지금도 그런가"가 당연한 질문이고, 그 답이 다음 절입니다.

그래서 2026년 모델은 이 문제를 풀었나

안 풀렸습니다. 그리고 이걸 가장 최근에 측정한 게 ATLAS(arXiv 2605.28079, 2026년 5월 27일 제출)입니다. 26개 모델을 8K부터 1M까지의 고정 격자에서 6,438개 인스턴스로 평가했습니다.

ATLAS가 저자 자체 측정으로 보고한 결과 중 실무에 직접 꽂히는 게 두 가지입니다.

첫째, 길이에 따라 순위가 뒤집힙니다. 저자들은 128K까지의 점수와 1M까지의 점수를 각각 집계했는데, 7개 모델이 두 칸 이상 순위가 이동했고 개별 순위 격차는 최대 12위까지 벌어졌습니다. 보고된 1위도 갈립니다 — 128K에서는 Gemini-3.1-Pro-Preview가, 1M에서는 Claude-Opus-4.6이 앞섭니다. 당신이 128K 벤치마크를 보고 고른 모델이 1M에서 최선이라는 보장이 없다는 뜻입니다.

둘째, 검색을 잘한다고 활용을 잘하는 게 아닙니다. 초록의 표현으로 "강한 검색 성능이 하위 작업(downstream use)으로 전이되지 않을 수 있다"이고, 기초 연산 계층과 응용 워크로드 계층이 모델 간 분산의 61%만 공유합니다. 여기서 "그러니 나머지는 틀린다"고 산술을 뒤집으면 안 됩니다 — 이 수치가 말하는 건 두 계층의 모델 간 성능 변동이 상당 부분 서로 다른 방향을 가리킨다는 것이고, 그래서 NIAH류 검색 점수 하나로 응용 성능의 순위를 대신 세울 수 없다는 뜻입니다. 저자들의 결론은 "단일 헤드라인 점수가 아니라 능력별·길이별로 보고하라"입니다.

ATLAS는 아직 동료평가를 거치지 않은 프리프린트이고 숫자는 저자 자체 측정입니다. 다만 방법론(고정 격자, AUC 기반 점수, 불확실성 전파)을 공개했고 하위 구성요소를 감사 가능하게 만들었다는 점에서, 스스로 검증 가능성을 높인 쪽에 속합니다.

여기서 진짜 메타 포인트가 나옵니다. 같은 현상이 네 세대에 걸쳐 재현됐습니다.

2023  Lost in the Middle    GPT-3.5-Turbo, Claude-1.3 세대
2024  RULER                 GPT-4, Llama3.1, Qwen2 세대
2025  NoLiMa / Context Rot  GPT-4o, GPT-4.1, Claude 4, Gemini 2.5 세대
2026  ATLAS                 Gemini-3.1-Pro, Claude-Opus-4.6 세대

한 세대의 결함이면 다음 모델이 고쳐줄 때까지 기다리면 됩니다. 네 세대 연속이면 그건 기다릴 대상이 아니라 설계할 대상입니다. 이게 컨텍스트 엔지니어링이 유행어 이상인 유일하고 충분한 이유입니다.

Lost in the middle은 대체 얼마나 나쁜가

가장 많이 인용되면서 가장 자주 뭉개지는 논문입니다. "Lost in the Middle: How Language Models Use Long Contexts"(Liu 등, arXiv 2307.03172, TACL 게재)의 실제 주장은 이렇습니다.

정답이 든 문서를 컨텍스트의 처음이나 끝에 두면 성능이 가장 높고, 중간에 두면 크게 떨어집니다. 시작 쪽 편향을 primacy bias, 끝 쪽 편향을 recency bias라 부르고, 둘이 합쳐져 U자 곡선을 만듭니다.

효과 크기가 중요한데, 논문이 명시한 숫자는 이겁니다. GPT-3.5-Turbo의 멀티문서 QA 성능은 20% 넘게 떨어질 수 있고, 최악의 경우 20개·30개 문서 설정에서의 성능이 문서를 아무것도 주지 않았을 때(closed-book, 56.1%)보다 낮습니다. 참고로 정답 문서 하나만 주는 oracle 설정은 88.3%입니다.

이 문장의 무게를 놓치기 쉬운데, 다시 읽어보십시오. 정답이 들어 있는 문서를 컨텍스트에 넣었는데, 위치가 나쁘면 안 넣은 것만 못합니다. "일단 다 때려넣고 모델이 알아서 찾게 하자"가 왜 위험한지에 대한 가장 압축적인 반례입니다.

논문이 같이 보고한, 덜 인용되지만 더 아픈 결과도 있습니다 — 확장 컨텍스트 모델이 원본 모델과 동일한 성능을 보이는 경우가 잦았고, 저자들은 이를 두고 "확장 컨텍스트 모델이 반드시 입력 컨텍스트를 더 잘 쓰는 건 아니다"라고 씁니다. 컨텍스트 창을 늘리는 것과 컨텍스트를 잘 쓰는 것은 다른 일입니다.

조건: 2023년 모델입니다(GPT-3.5-Turbo, Claude-1.3). 그래서 이 숫자를 2026년 모델에 그대로 옮기면 안 됩니다. 하지만 현상 자체는 재현됐습니다 — NoLiMa(Modarressi 등, arXiv 2502.05167)는 needle과 질문의 어휘 중복을 제거해서 문자 그대로의 매칭을 못 쓰게 만든 뒤 128K 이상을 표방하는 13개 모델을 재평가했고, 32K에서 11개 모델이 짧은 컨텍스트(1K 미만) 기준선의 50% 아래로 떨어졌습니다. 상위권인 GPT-4o조차 99.3%에서 69.7%로 내려갔습니다. 저자들은 CoT 프롬프팅이나 추론 능력을 붙여도 이 저하를 막지 못했다고 덧붙입니다 — 프롬프트로는 안 고쳐진다는 뜻입니다.

그럼 컨텍스트를 논리적으로 잘 정리하면 되나 — 측정이 반대로 나온 곳

여기서 통념이 하나 깨집니다. Chroma는 haystack(무관한 채움 텍스트)의 구조를 두 조건으로 비교했습니다 — 원본대로 논리적 흐름을 가진 에세이 묶음 vs 문장을 무작위로 섞어 국소적 일관성을 없앤 것. 상식적으로는 잘 정리된 쪽이 나아야 합니다.

결과는 반대였습니다. 18개 모델 전부에서 섞은 haystack의 성능이 더 높았습니다. Chroma의 해석은 이렇습니다 — 일관된 에세이 안에 needle이 꽂히면 논리 흐름을 끊어 눈에 띄어야 할 것 같지만, 실제로는 그 반대로 작동한다는 겁니다.

이 결과는 조심해서 다뤄야 합니다. 이건 주변 채움 텍스트의 구조에 관한 실험이지 "당신의 컨텍스트를 셔플하라"는 처방이 아닙니다. 그리고 Chroma 자신이 한계 절에서 선을 긋습니다 — 왜 그런지 설명하지 못한다고요. 하지만 방향은 분명합니다. "컨텍스트를 사람이 읽기 좋게 정리하면 모델도 잘 읽는다"는 건 검증된 명제가 아닙니다. 직관이 뒤집힌 지점이 이미 하나 측정됐다면, 나머지 직관도 측정 전까지는 직관일 뿐입니다.

"어텐션 예산"은 측정된 개념인가

여기서부터가 이 글에서 가장 인용할 만한 부분일 겁니다. 위의 현상들에는 보통 설명이 따라붙는데, 그 설명의 지위는 측정치와 다릅니다.

Anthropic의 글은 메커니즘을 이렇게 제시합니다 — 트랜스포머는 모든 토큰이 다른 모든 토큰에 어텐션하므로 n개 토큰에 대해 n²개의 쌍 관계가 생기고, 길이가 늘수록 이 관계를 잡아내는 능력이 "얇게 늘어난다"는 것. 그리고 모델은 짧은 시퀀스가 더 흔한 학습 분포에서 어텐션 패턴을 익히므로 긴 의존성에 대한 경험이 적다는 것. 여기서 "어텐션 예산(attention budget)"이라는 표현이 나옵니다 — 모든 새 토큰이 이 예산을 조금씩 소모한다는 비유입니다.

그럴듯하고, 아마 방향도 맞을 겁니다. Anthropic이 적절히 헤지한다는 점도 밝혀둡니다 — 이들은 "하드한 절벽이 아니라 성능의 기울기"라고 쓰고, 모델이 긴 컨텍스트에서도 여전히 유능하다고 명시합니다. 하지만 정직하게 말하면 이건 설명이지 측정이 아닙니다. 저 글에는 n²항을 원인으로 분리해내는 실험(ablation)이 없습니다. "어텐션 예산"은 우리가 관찰한 걸 이야기로 묶는 데 쓰는 비유이지, 계측기로 읽을 수 있는 양이 아닙니다.

그리고 결정적인 대목이 있습니다. 이 현상을 실제로 측정한 쪽인 Chroma는 한계 절에서 이렇게 씁니다 — 성능 저하의 메커니즘은 설명하지 않으며, 왜 그런 일이 일어나는지에 대한 확정적 답을 갖고 있지 않다고요. 그리고 그걸 밝히려면 기계적 해석가능성(mechanistic interpretability) 연구가 필요하며 이 보고서의 범위를 벗어난다고 덧붙입니다.

정리하면 이렇습니다.

측정된 것    : 입력이 길어지면 성능이 비균질하게 떨어진다  (Chroma, NoLiMa, RULER, ATLAS)
설명된 것    : n^2 어텐션, 학습 분포, "어텐션 예산"        (벤더 블로그, ablation 없음)
측정한 쪽의 입장: "왜 그런지는 우리도 모른다"              (Chroma 한계 절, 명시)

현상은 튼튼하고 메커니즘은 미해결입니다. 이 구분이 실무적으로도 중요한데, 메커니즘 이야기를 사실로 받아들이면 거기서 처방을 연역하고 싶어지기 때문입니다("n²이니까 토큰을 줄이면 제곱으로 좋아지겠지"). 그런 연역을 뒷받침하는 측정은 없습니다.

Compaction은 정말 손실이 적은가

컨텍스트가 창을 넘칠 때 쓰는 표준 처방이 compaction입니다 — 대화를 요약해서 새 창을 그 요약으로 시작하는 것. Anthropic의 글은 Claude Code가 이걸 어떻게 하는지까지 설명합니다: 메시지 이력을 모델에 넘겨 요약하고, 아키텍처 결정·미해결 버그·구현 세부는 보존하되 중복된 도구 출력은 버리고, 최근 접근한 파일 5개를 함께 넘긴다고요.

그리고 이렇게 씁니다 — compaction은 컨텍스트 창의 내용을 "높은 충실도로" 압축해서 에이전트가 "최소한의 성능 저하로" 계속할 수 있게 한다고.

이 문장을 뒷받침하는 측정치는 공개돼 있지 않습니다. 충실도가 얼마인지, 성능 저하가 몇 퍼센트인지, 어떤 평가셋에서 쟀는지 — 없습니다. 같은 글은 compaction의 위험도 정직하게 인정합니다("지나치게 공격적인 compaction은 나중에야 중요성이 드러나는 미묘한 맥락을 잃을 수 있다"). 하지만 그 트레이드오프의 위치를 알려주는 숫자는 없습니다.

Cognition도 마찬가지입니다. Walden Yan은 이력을 핵심 정보로 압축하는 별도 모델을 두라고 권하면서 "제대로 하기 어렵다"고 쓰고, Cognition은 실제로 작은 모델을 파인튜닝했다고 밝힙니다. 역시 숫자는 없습니다. 그리고 솔직하게 덧붙입니다 — 그래도 결국 한계에 부딪힌다고요.

그럼 공개된 숫자는 뭐가 있나. Anthropic이 2025년 9월 29일 컨텍스트 관리 기능을 발표하면서 낸 게 유일하게 가까운 수치입니다.

측정보고된 값조건
메모리 도구 + 컨텍스트 편집기준선 대비 39% 향상에이전틱 검색용 내부 평가셋
컨텍스트 편집 단독29% 향상동일
토큰 소비84% 감소100턴 웹 검색 평가

이 숫자들은 벤더 자체 측정이고, 평가셋이 공개되지 않았습니다. 태스크 수도, 기준선의 구성도, 편차도 나와 있지 않습니다. 재현이 원리적으로 불가능합니다.

더 중요한 건 이게 compaction의 숫자가 아니라는 점입니다. 컨텍스트 편집은 오래된 도구 호출·결과를 창에서 지우는 것이고, compaction은 대화를 요약하는 것입니다. 메커니즘이 다릅니다. 그런데 실무 논의에서 이 둘이 자주 뒤섞이고, "39% 향상"이 compaction의 근거처럼 인용되는 걸 봅니다. 아닙니다.

그러니 정확한 문장은 이겁니다. 업계 전체가 compaction을 필수라고 말하지만, compaction의 요약 충실도를 잰 공개 수치는 존재하지 않습니다. 이건 비난이 아니라 지도입니다 — 여기가 빈칸이라는 걸 알고 들어가면, 남의 숫자를 빌리는 대신 자기 평가셋에서 압축 전후를 직접 재게 됩니다. 그게 유일하게 정직한 경로입니다.

그래서 무엇을 해야 하나 — 결정 규칙

"상황에 따라 다르다"로 끝내지 않겠습니다. 위의 근거들에서 곧바로 따라 나오는 순서가 있습니다.

1단계. focused/full 갭을 먼저 재라. Chroma의 실험 설계를 그대로 복제하면 됩니다. 당신의 평가 질문 30~50개를 골라, (a) 사람이 손으로 고른 관련 정보만 넣은 버전과 (b) 실제 파이프라인이 넣는 전체 컨텍스트 버전으로 각각 돌립니다. 이 두 숫자의 차이가 당신 시스템에서 컨텍스트 엔지니어링이 벌어올 수 있는 상한입니다.

2단계. 갭이 작으면 멈춰라. focused와 full이 비슷하다면 모델은 당신의 컨텍스트를 잘 쓰고 있는 겁니다. 이 경우 compaction도, 메모리 계층도, 그래프도 필요 없습니다. 프롬프트와 태스크 설계로 돌아가십시오. 이 단계에서 멈추는 게 대부분의 팀에게 정답입니다.

3단계. 갭이 크면 검색부터. 가장 큰 레버는 언제나 "관련 없는 걸 애초에 안 넣기"입니다. lost-in-the-middle도, context rot도, 넣지 않은 토큰에는 작동하지 않습니다.

4단계. 실효 컨텍스트를 당신 과제로 측정하라. 벤더의 표방 길이는 입력 한계이지 성능 한계가 아닙니다. RULER가 한 걸 축소판으로 하면 됩니다 — 태스크를 고정하고 길이만 늘려가며 곡선을 그리십시오. ATLAS의 결론대로 단일 점수가 아니라 곡선이 필요합니다.

5단계. compaction은 마지막에, 그리고 반드시 재고서. 압축 전후를 같은 평가셋으로 돌려 얼마를 잃는지 직접 확인하십시오. 공개된 참고 수치가 없으므로 이건 선택이 아니라 필수입니다.

언제 컨텍스트 엔지니어링이 답이 아닌가

이 부분이 빠진 글은 믿지 마십시오.

  • 컨텍스트가 짧을 때. 이 논문들의 효과 크기는 대체로 32K 이상에서 나옵니다. 수천 토큰짜리 단발성 분류·추출·요약이라면 context rot은 당신 문제가 아닙니다. 프롬프트 엔지니어링이 맞는 도구입니다.
  • 평가셋이 없을 때. 측정 없는 컨텍스트 엔지니어링은 그냥 취향입니다. 위 5단계가 전부 "재라"로 시작하는 건 우연이 아닙니다. 평가셋을 만드는 게 첫 작업이지 컨텍스트 구조를 바꾸는 게 첫 작업이 아닙니다.
  • 모델을 아직 안 골랐을 때. ATLAS의 순위 뒤집힘이 말해주듯, 길이 구간에 따라 최선의 모델이 갈립니다. 컨텍스트 파이프라인을 정교하게 만드는 것보다 당신 길이 구간에서 나은 모델을 고르는 게 더 큰 효과일 수 있습니다.
  • 문제가 사실은 생성 쪽일 때. 1400편을 훑은 서베이(arXiv 2507.13334)가 짚은 비대칭이 이겁니다 — 모델은 복잡한 컨텍스트를 이해하는 데는 뛰어난데 그만큼 정교한 장문을 생성하는 데는 뚜렷한 한계를 보인다는 것. 출력이 문제라면 입력을 아무리 정성껏 큐레이션해도 안 풀립니다.
  • 멀티턴 자체가 원인일 때. "LLMs Get Lost In Multi-Turn Conversation"(Laban 등, arXiv 2505.06120)은 20만 건 넘는 시뮬레이션 대화로 단일턴 대비 멀티턴 성능이 6개 생성 태스크에서 평균 39% 낮다고 보고합니다(이 39%는 위 Anthropic의 39%와 아무 관련 없는 별개 수치입니다). 저자들의 분해가 흥미로운데, 저하의 대부분은 능력 손실이 아니라 불안정성 증가였습니다. 모델이 초반 턴에서 넘겨짚고 성급히 최종 답으로 달려간 뒤 거기에 과하게 의존한다는 겁니다. 한 줄로 "잘못 든 길에서 되돌아오지 못한다"입니다. 이건 컨텍스트를 더 잘 채워서가 아니라 대화를 다시 시작해서 푸는 문제일 수 있습니다.

마치며

용어 질문에 대한 답은 시시합니다. 컨텍스트 엔지니어링은 프롬프트 엔지니어링을 대체하지 않았습니다 — 포함합니다. 이걸 만든 사람들이 그렇게 썼고, "죽었다"는 문장은 1차 출처 어디에도 없습니다.

흥미로운 답은 그다음입니다. 포함 관계인데도 새 이름을 가질 자격이 있느냐 — 있습니다. 근거는 정확히 하나이고, 그거면 충분합니다. 프롬프트의 모든 변수를 고정한 채 주변 컨텍스트만 바꿔도 성능이 움직인다는 것(Chroma의 focused vs full). 그 축은 프롬프트 엔지니어링의 어휘에 존재하지 않았고, 그래서 이름이 필요했습니다.

그리고 그 이름 아래 실제로 서 있는 근거는 생각보다 적습니다. 튼튼한 건 현상입니다 — 길이가 늘면 성능이 비균질하게 떨어지고, 표방 길이는 실효 길이가 아니며, 중간은 사라지고, 이 모든 게 2023년부터 2026년까지 네 세대에 걸쳐 재현됐습니다. 반면 메커니즘("어텐션 예산")은 비유이고, 처방의 효과 크기(특히 compaction)는 대부분 공개 수치가 없습니다.

실무자에게 이 지도가 주는 지침은 단순합니다. 현상은 믿고 설계에 반영하되, 메커니즘 이야기에서 처방을 연역하지 말고, 남의 처방 숫자를 빌려 쓰지 마십시오. focused/full 갭 하나만 재도 당신 시스템에서 이 논의가 유효한지 아닌지가 30분 안에 갈립니다. 대부분의 팀에게 정답은 "우리 문제가 아니다"이고, 그걸 확인하는 데 드는 비용이 컨텍스트 파이프라인을 새로 만드는 비용보다 훨씬 쌉니다.

참고 자료

Did Context Engineering Replace Prompt Engineering — What's Measured and What Isn't

Introduction — Answering the Question First

You'll often see the claim these days that "context engineering has replaced prompt engineering." The short answer: it's not replacement, it's inclusion. And that's not my opinion — it's what the people who popularized the term wrote themselves. When Karpathy defined context engineering, he listed its components as "task descriptions and explanations, few-shot examples, RAG, tools, state and history, compacting" — few-shot examples and task descriptions are just prompt engineering. Anthropic went further, writing that it "sees context engineering as the natural progression of prompt engineering." No primary source said "dead." That sentence was born in a headline.

But stopping there gets you only halfway. Inclusion is just terminology; the real question is "so is there anything new to learn?" That one you can answer by measurement — and the answer is "yes." The cleanest experiment is one Chroma ran in July 2025. It held the same question, the same task, and the same wording fixed and changed only the amount of surrounding context (about 300 tokens containing just the relevant material vs. about 113k tokens that also included irrelevant material). Performance dropped across all 18 models. If not a single character of the prompt changed and the numbers still moved, that's an axis prompt engineering can't touch. That's the value this term earned.

This post exists to strip away the hype and separate what has been measured from what gets repeated without measurement. Strategies for using the context window itself I already covered in LLM Utilization Strategies in the 1M Context Window Era, and practical patterns for designing agent memory in Context Engineering — How to Design Memory for AI Agents. Here I audit the evidence itself that those posts took as given.

When Did the Term Appear, and From Whom?

Laid out chronologically:

  • June 12, 2025 — Cognition's Walden Yan publishes "Don't Build Multi-Agents." He casts context engineering as the "next step" beyond prompt engineering and defines it as "doing this automatically inside a dynamic system." And he pins it as the "number one job" of an engineer building agents.
  • June 19, 2025 — Shopify CEO Tobi Lütke writes on X that he "prefers the term context engineering over prompt engineering." His definition: "the art of providing all the context necessary for the task to be plausibly solvable by the LLM."
  • June 25, 2025 — Karpathy amplifies it. That's the sentence quoted above.
  • June 27, 2025 — Simon Willison, citing the two tweets, writes that the term "seems likely to stick." His observation is interesting — prompt engineering was misunderstood by the public as "a fancy name for typing something into a chatbot," whereas with context engineering the meaning the public infers is likely closer to the intended one. In other words, much of the motivation for the term swap was connotation, not technique.
  • July 17, 2025 — exactly one year ago today, a survey sweeping over 1,400 papers (arXiv 2507.13334) goes up, giving the term an academic veneer.
  • September 29, 2025 — Anthropic posts "Effective context engineering for AI agents" on its engineering blog. This is the moment a vendor officially adopts the term.

One thing worth noting here. Cognition's post came out a week before the tweets, and three sources (Cognition, Karpathy, Anthropic) each independently produced a definition with the same structure — a superordinate concept that contains prompt engineering as a subset. No one called it replacement.

One Measurement That Shows They're Different Jobs

Enough of the term's lineage; let's go to the evidence. There's one experiment that shows "context engineering is a different job" by measurement, not assertion — Chroma's technical report "Context Rot: How Increasing Input Tokens Impacts LLM Performance" (Hong, Troynikov, Huber, July 14, 2025).

The core design is this. It uses a conversational QA benchmark called LongMemEval, but poses the same question in two ways.

Focused condition:  question + only the relevant parts needed to answer   -> ~300 tokens on average
Full condition:     question + relevant parts + all the irrelevant text   -> ~113k tokens on average

Question identical. Task identical. Prompt wording identical.
What changed: what surrounds the relevant information, and how much of it.

The result, in Chroma's own words, is that "all models perform significantly better on focused prompts than on full prompts." The models evaluated numbered 18 in total, including GPT-4.1, Claude 4, Gemini 2.5, and Qwen3.

Why is this decisive? Because the experiment held every prompt-engineering variable fixed. The wording, the examples, the instructions — all unchanged. Not one of the knobs prompt engineering can touch was touched, and the numbers still moved. So the claim that "context engineering is a rebranding of prompt engineering" is refuted by this single experiment. Conversely, "prompt engineering is dead" is also wrong — that performance is good under the focused condition means the prompt still works. The two axes are orthogonal.

There are honest caveats to add. The authors selected the knowledge-update, temporal-reasoning, and multi-session categories from LongMemEval_s, and filtered out 38 ambiguous or unanswerable prompts, leaving 306. Grading is LLM-as-judge, and the authors state they calibrated this judging against human judgment (manually labeling about 600 LongMemEval outputs). Since Chroma is a vector-DB company, you should factor in that it has an interest in the conclusion "reduce context with retrieval." That said, the codebase is public and reproducible.

The Context Window and the Effective Context Are Different Numbers

A number written as "1M context" is the limit at which input is not rejected, not the limit at which performance holds. The thing that measured this head-on is RULER (Hsieh et al., arXiv 2404.06654, COLM 2024).

RULER's methodology is clear. It measures the average score across 13 tasks and, taking Llama2-7B's 85.6% at 4K as the baseline, defines the maximum length that stays above this line as the "effective length." The choice of baseline is itself arbitrary, but what matters is that the paper says so and fixes it. Here is part of the results for 17 models.

ModelClaimed lengthEffective length4K32K128K
Gemini-1.5-Pro1M>128K96.795.994.4
GPT-4128K64K96.693.281.2
Llama3.1 (70B)128K64K96.594.866.6
Qwen2 (72B)128K32K96.994.153.7
Yi (34B)200K32K93.387.577.3
GradientAI/Llama3 (70B)1M16K95.185.472.1
LWM (7B)1M<4K82.369.165.0

The paper's sentence is this — "nearly all models fall below the baseline before reaching their claimed context length." LWM claims 1M yet can't even clear Llama2-7B at 4K. In other words, claimed length does not predict effective length, and doesn't even preserve the ordering — GradientAI/Llama3, which claims 1M (effective 16K), sits far below GPT-4, which claims 128K (effective 64K).

A caveat that must be attached here: these are 2024 models. So "is it still true?" is the natural question, and the answer is the next section.

So Did 2026 Models Fix This?

They didn't. And the most recent thing to measure it is ATLAS (arXiv 2605.28079, submitted May 27, 2026). It evaluated 26 models on a fixed grid from 8K to 1M across 6,438 instances.

Two of the findings ATLAS reports from its own measurements land directly on practice.

First, rankings flip with length. The authors aggregated scores up to 128K and up to 1M separately; 7 models moved by two or more ranks, and individual rank gaps widened to as much as 12 places. Even the reported No. 1 splits — at 128K, Gemini-3.1-Pro-Preview leads; at 1M, Claude-Opus-4.6 does. Which means the model you picked off a 128K benchmark is not guaranteed to be the best at 1M.

Second, being good at retrieval doesn't mean being good at use. In the abstract's words, "strong retrieval performance may not transfer to downstream use," and the primitive-operations layer and the applied-workload layer share only 61% of the cross-model variance. Don't flip that arithmetic into "so the rest is wrong" — what this figure says is that the two layers' cross-model performance variation points, in substantial part, in different directions, so you can't use a single NIAH-style retrieval score to stand in for the ranking of applied performance. The authors' conclusion: "report by capability and by length, not as a single headline score."

ATLAS is a preprint that has not yet been peer-reviewed, and its numbers are author-measured. That said, it published its methodology (fixed grid, AUC-based scoring, uncertainty propagation) and made its sub-components auditable, which puts it among the efforts that raised their own verifiability.

Here comes the real meta-point. The same phenomenon has reproduced across four generations.

2023  Lost in the Middle    GPT-3.5-Turbo, Claude-1.3 generation
2024  RULER                 GPT-4, Llama3.1, Qwen2 generation
2025  NoLiMa / Context Rot  GPT-4o, GPT-4.1, Claude 4, Gemini 2.5 generation
2026  ATLAS                 Gemini-3.1-Pro, Claude-Opus-4.6 generation

If it were a one-generation flaw, you could wait for the next model to fix it. Four generations running, and it's not something to wait out but something to design around. That is the single, sufficient reason context engineering is more than a buzzword.

Just How Bad Is Lost-in-the-Middle?

The most cited, and most often mangled, paper. The actual claim of "Lost in the Middle: How Language Models Use Long Contexts" (Liu et al., arXiv 2307.03172, published in TACL) is this.

Place the document containing the answer at the beginning or end of the context and performance is highest; place it in the middle and it drops sharply. The bias toward the start is called primacy bias, the bias toward the end recency bias, and together they trace a U-shaped curve.

The effect size matters, and here are the paper's explicit numbers. GPT-3.5-Turbo's multi-document QA performance can drop by more than 20%, and in the worst case its performance in the 20- and 30-document settings is lower than giving it no documents at all (closed-book, 56.1%). For reference, the oracle setting that provides only the single answer document scores 88.3%.

It's easy to miss the weight of that sentence, so read it again. You put the document containing the answer into the context, and if its position is bad, that's worse than not putting it in at all. It is the most compact counterexample there is to why "just dump everything in and let the model find it" is dangerous.

There's a less-cited but more painful result the paper also reports — extended-context models often showed the same performance as their base models, and the authors write of this that "extended-context models are not necessarily better at using their input context." Enlarging the context window and using the context well are different things.

Caveat: these are 2023 models (GPT-3.5-Turbo, Claude-1.3). So you can't carry these numbers straight over to 2026 models. But the phenomenon itself has reproduced — NoLiMa (Modarressi et al., arXiv 2502.05167) removed the lexical overlap between the needle and the question so that literal matching couldn't be used, then re-evaluated 13 models claiming 128K or more; at 32K, 11 models fell below 50% of their short-context (<1K) baseline. Even top-ranked GPT-4o dropped from 99.3% to 69.7%. The authors add that neither CoT prompting nor added reasoning ability prevented this degradation — meaning prompts don't fix it.

So Should You Just Organize the Context Neatly? — Where the Measurement Went the Other Way

Here a piece of conventional wisdom breaks. Chroma compared the structure of the haystack (the irrelevant filler text) under two conditions — a set of essays with their original logical flow vs. the same sentences randomly shuffled to destroy local coherence. Common sense says the well-organized version should do better.

The result was the opposite. Across all 18 models, the shuffled haystack performed better. Chroma's interpretation: you'd think a needle lodged inside a coherent essay would stand out by breaking the logical flow, but in practice it works the opposite way.

This result has to be handled carefully. It is an experiment about the structure of the surrounding filler text, not a prescription to "shuffle your context." And Chroma itself draws the line in its limitations section — it can't explain why. But the direction is clear. "Organize the context to be easy for humans to read and the model will read it well too" is not a verified proposition. If one point where intuition flips has already been measured, then the rest of your intuitions are just intuitions until measured too.

Is "Attention Budget" a Measured Concept?

From here on is probably the most quotable part of the post. The phenomena above usually come with an explanation attached, and the status of that explanation differs from that of a measurement.

Anthropic's post frames the mechanism like this — because a transformer has every token attend to every other token, n tokens produce n² pairwise relationships, and as length grows the model's ability to capture these relationships is "stretched thin." And because the model learns its attention patterns from a training distribution where short sequences are more common, it has less experience with long-range dependencies. This is where the phrase "attention budget" comes from — a metaphor in which every new token spends a little of that budget.

It's plausible, and probably points the right way. To their credit, Anthropic hedges appropriately — they write that it's "a gradient of performance, not a hard cliff," and state explicitly that models remain capable even at long context. But honestly, this is an explanation, not a measurement. The post contains no ablation that isolates the n² term as the cause. "Attention budget" is a metaphor for tying our observations into a story, not a quantity you can read off an instrument.

And here's the decisive part. Chroma — the side that actually measured this phenomenon — writes in its limitations section that it does not explain the mechanism of the degradation and does not have a definitive answer for why it happens. It adds that uncovering that would require mechanistic-interpretability research and is beyond the scope of the report.

To summarize:

Measured             : as input grows, performance degrades non-uniformly   (Chroma, NoLiMa, RULER, ATLAS)
Explained            : n^2 attention, training distribution, "attention budget"   (vendor blogs, no ablation)
The measurers' stance: "we don't know why either"                          (Chroma limitations section, explicit)

The phenomenon is robust; the mechanism is unresolved. This distinction matters in practice too, because if you take the mechanism story as fact you'll want to deduce prescriptions from it ("it's n², so cutting tokens should improve things quadratically"). No measurement supports that deduction.

Is Compaction Really Low-Loss?

The standard prescription when context overflows the window is compaction — summarize the conversation and start a new window from that summary. Anthropic's post even describes how Claude Code does it: it passes the message history to the model to summarize, preserving architectural decisions, unresolved bugs, and implementation details while discarding redundant tool output, and passes along the five most recently accessed files.

And it writes that compaction compresses the contents of the context window "with high fidelity" so the agent can continue "with minimal performance degradation."

No measurement backing that sentence is public. How high the fidelity is, what percentage the degradation is, on what eval set it was measured — none of it. The same post does honestly admit compaction's risk ("overly aggressive compaction can lose subtle context whose importance only becomes clear later"). But there is no number telling you where that tradeoff sits.

Cognition is the same. Walden Yan recommends keeping a separate model that compresses the history into key information, writes that it's "hard to get right," and says Cognition actually fine-tuned a small model for it. Again, no numbers. And he honestly adds — you'll still hit a limit in the end.

So what public numbers are there? The closest ones are what Anthropic released when it announced its context-management features on September 29, 2025.

MeasurementReported valueCondition
Memory tool + context editing39% improvement over baselineinternal eval set for agentic search
Context editing alone29% improvementsame
Token consumption84% reduction100-turn web search evaluation

These numbers are vendor-measured, and the eval set is not public. The number of tasks, the composition of the baseline, the variance — none are given. Reproduction is impossible in principle.

More important is that these are not compaction's numbers. Context editing deletes old tool calls and results from the window, whereas compaction summarizes the conversation. The mechanisms differ. Yet in practical discussion the two often get blurred, and I see "39% improvement" cited as if it were evidence for compaction. It isn't.

So the precise statement is this. The whole industry calls compaction essential, yet no public figure measures compaction's summary fidelity. This is not an accusation but a map — go in knowing this is a blank, and instead of borrowing someone else's numbers you'll measure before-and-after compression on your own eval set. That's the only honest path.

So What Should You Do? — A Decision Rule

I won't end with "it depends." There's a sequence that follows directly from the evidence above.

Step 1. Measure the focused/full gap first. Just replicate Chroma's experimental design. Pick 30–50 of your eval questions and run each in (a) a version with only the relevant information hand-picked by a human, and (b) a version with the full context your actual pipeline supplies. The difference between these two numbers is the ceiling on what context engineering can earn in your system.

Step 2. If the gap is small, stop. If focused and full are similar, the model is using your context well. In that case you need no compaction, no memory layer, no graph. Go back to prompt and task design. Stopping at this step is the right answer for most teams.

Step 3. If the gap is large, start with retrieval. The biggest lever is always "don't put irrelevant things in to begin with." Neither lost-in-the-middle nor context rot acts on tokens you never inserted.

Step 4. Measure the effective context on your own task. A vendor's claimed length is an input limit, not a performance limit. Do a miniature of what RULER did — fix the task, grow only the length, and draw the curve. As ATLAS concludes, you need a curve, not a single score.

Step 5. Compaction last, and only after measuring. Run before-and-after compression on the same eval set and see for yourself how much you lose. Since no public reference figure exists, this is mandatory, not optional.

When Context Engineering Is Not the Answer

Don't trust any post that leaves this part out.

  • When the context is short. The effect sizes in these papers mostly show up above 32K. For a one-shot classification, extraction, or summarization over a few thousand tokens, context rot is not your problem. Prompt engineering is the right tool.
  • When you have no eval set. Context engineering without measurement is just taste. It's no accident that all five steps above begin with "measure." Building the eval set is the first task, not changing the context structure.
  • When you haven't picked a model yet. As ATLAS's rank flips show, the best model differs by length band. Picking a better model for your length band may have a bigger effect than refining your context pipeline.
  • When the problem is actually on the generation side. This is the asymmetry the survey of over 1,400 papers (arXiv 2507.13334) points to — models are excellent at understanding complex context but show a clear limit in generating correspondingly sophisticated long-form output. If the output is the problem, no amount of careful input curation will solve it.
  • When multi-turn itself is the cause. "LLMs Get Lost In Multi-Turn Conversation" (Laban et al., arXiv 2505.06120) reports, from over 200,000 simulated conversations, that multi-turn performance is on average 39% lower than single-turn across six generation tasks (this 39% is a separate figure with no relation to Anthropic's 39% above). The authors' decomposition is interesting: most of the degradation was not a loss of capability but an increase in unreliability. The model jumps to conclusions on an early turn, races prematurely to a final answer, and then over-relies on it. In one line: it can't find its way back from a wrong turn. This may be a problem you solve not by filling the context better but by restarting the conversation.

Closing

The answer to the terminology question is anticlimactic. Context engineering did not replace prompt engineering — it includes it. The people who coined it wrote as much, and the sentence "it's dead" appears in no primary source.

The interesting answer comes next. Even as a superset, does it deserve a new name? — yes. The evidence is exactly one thing, and that one thing is enough: with every prompt variable held fixed, changing only the surrounding context still moves performance (Chroma's focused vs. full). That axis did not exist in prompt engineering's vocabulary, and so it needed a name.

And the evidence actually standing under that name is thinner than you'd think. What's robust is the phenomenon — as length grows, performance degrades non-uniformly; claimed length is not effective length; the middle vanishes; and all of this has reproduced across four generations from 2023 to 2026. The mechanism ("attention budget"), by contrast, is a metaphor, and the effect sizes of the prescriptions (compaction especially) mostly have no public numbers.

The guidance this map gives a practitioner is simple. Trust the phenomenon and build for it, but don't deduce prescriptions from the mechanism story, and don't borrow anyone else's prescription numbers. Measuring the single focused/full gap decides, within 30 minutes, whether this whole discussion even applies to your system. For most teams the answer is "this isn't our problem," and confirming that costs far less than building a new context pipeline.

References