프롬프트 엔지니어링 시대는 끝? 컨텍스트 엔지니어링

by 포트블룸

최근 나의 알고리즘을 지배한 '컨텍스트 엔지니어링' 프롬프트 엔지니어링 대신에 떠오르고 있는 느낌이라 이번 기회에 제대로 알아두면 좋을 것 같아 공부를 시작해보았다. 비전공자인 내가 이해하고 싶어서 공부하면서 작성한 글이지만 나와 같은 사람들이 더 쉬운 이해를 할 수 있길 바라며 얼레벌레 작성해보겠다. 틀린 정보의 경우 댓글을 통해 알려주시면 감사하겠습니다!



컨텍스트 엔지니어링(Context Engineering)이란 무엇인가?

tobi lutke는 컨텍스트 엔지니어링을 LLM으로 문제를 합리적으로 해결할 수 있도록 모든 맥락을 제공하는 기술이라고 정의했다고 하는데 이 외에도 컨텍스트 엔지니어링을 표현하는 것은 프롬프트 엔지니어링 처럼 단일의 무언가가 아닌 LLM 모델이 응답을 생성하기 전 주어진 문맥을 파악하는 모든 것으로 이를 통해 작업을 효과적으로 수행할 수 있도록 하는 기술이다.


나는 처음에 이 내용을 보고 이게 무슨 말이야.....? 라는 의문을 가졌었다.



프롬프트 엔지니어링과의 차이

프롬프트 엔지니어링(Prompt Engeering)의 경우 AI와 더 나은 대화와 답변을 이끌어내기 위해 질문을 조정하는 기술로 '너는 나에게 컨텍스트 엔지니어링을 10살도 이해할 수 있게 설명해주는 선생님이야'와 같은 역할할당과 같은 하나의 엔지니어링 '요소'이며 컨텍스트 엔지니어링도 이와 유사한 맥락에서 사용되지 않을까? 라는 생각을 했었다. (이름이 너무 닮은 탓인 것 같기도)


반면 컨텍스트 엔지니어링은 AI에이전트 처럼 자동화된 작업 수행이 필요한 경우에 중요한데 LLM이 추론하는 동안 모든 것을 프로그래밍 방식으로 조립하는 더 광범위한 분야이다. 프롬프트 뿐만 아닌 문서, 메모리, 도구 검색와 같이 정확한 응답을 제공하는데 필요한 모든 것들이 포함된다는 것이다.


프롬프트 엔지니어링은 앞 만보고 달리는 경주마 처럼 사용자의 요청만 보고 다른 것은 전혀 고려하지 않는데 반면, context Engineering은 풍부한 컨텍스트를 기반으로 한다. 단순 프롬프트 엔지니어링을 넘어 필수적인 역량으로 부상중이라는 것이다.



위 내용만으로는 잘 이해가 되지 않아요!

충분히 이해된다. 나도 그랬다! 컨텍스트 엔지니어링에 대해 이해하려면 AI에이전트의 정의를 이해하는 것이 중요한데 AI에이전트는 AI를 사용해 사용자 대신하여 목표를 추구하고 작업을 완료하는 소프트웨어 시스템이다. 라는 것을 인지를 먼저 하고 아래 내용을 읽어보면 도움이 된다.


내가 컨텍스트 엔지니어링을 쉽게 이해하게 도와준 자료가 있는데 바로 IBM에서 제공한 'Context Engineering vs. Prompt engineering: Smarter AI with RAG & Agents' 영상으로 10분 내로 설명하지만 명확한 예시를 기반으로 설명해 이해하기 너무 쉬웠다. 이 영상의 내용을 조금 간추려 설명해보자면


예약 전문 AI에이전트가 있을 때 나는 "다음 달 DevOps 컨퍼런스를 위한 파리 호텔을 예약해주세요." 메시지를 전송했을 때 AI 에이전트에게서 "물론이죠 베스트 웨스턴 파리 인은 wifi도 좋고 주자도 무료예요 예약이 다 찼어요" 라는 응답을 받았다.


이 응답의 문제점은 웨스턴 호텔은 켄터키주 파리에 위치하며, DevOps컨퍼런스는 프랑스 파리에서 열리기 때문에

이거는 'A failing of context engineering'의 실패로 볼 수 있음 만약 AI 에이전트가 더 똑똑했다면 프랑스 파리에서 열린다는 일정 확인하거나 적절한 우리 회사의 여행 정책을 알려야했다. 하지만 AI에이전트는 이를 알지못한다.


하지만 컨텍스트 엔지니어링이 적용된 AI에이전트의 경우 내가 언제 갈 것인지, 어떠한 목적(단순 여행, 비즈니스 차원 등)으로 가는 것인지를 인지하고 그에 맞는 결과물을 알아서 판단해 내어주는 것으로 에이전트의 성공 여부를 결정하는 가장 중요 요소는 컨텍스트의 퀄리티이며 에이전트 실패는 모델의 실패가 아닌 컨텍스트의 실패가 되는 것이다.



컨텍스트 엔지니어링에 대해 어느정도 감 잡았다면
이제 여기서 이런 질문이 들 수 있다



그럼 프롬프트 엔지니어링은 어떻게 되는건가요? 필요없는건 아닌 것 같아요

컨텍스트 엔지니어링을 이해하기 위해 다양한 영상들을 보다보면 컨텍스트 엔지니어링 이야기 하며 프롬프트 엔지니어링이 대체되는 것이다. 라는 뉘앙스를 주는 것 같이 들리기도 한 경우가 있었는데 그럼에도 프롬프트 엔지니어링은 중요할 것 같다라는 생각이 들었고 이에 대해 시원하게 긁어주는 영상을 발견했다.


프롬프트 엔지니어링이 사라진 것은 아니다. 앞뒤로 대화만 주고받는 챗지피티와 달리 AI 에이전트를 만들 때는 에이전트가 정답을 얻을 때 까지 반복적으로 대화를 계속할 수 없기 때문이다. 겪게될 모든 시나리오를 포괄하는 일련의 지침을 제공해야함. 프롬프트 엔지니어링은 컨텍스트 엔지니어링의 하위에 속하는 것으로 여전히 필요하고 잘 쓰면 아주 유용하다. 라는 이야기를 하고 있다. (이에 대해 자세한 내용이 궁금하다면 영상인 Context Engineering Clearly Explained를 참고하길 바란다.)



context-engineering-fb3fd5541288d09ff09a804a543349e7.png?type=w966 https://www.philschmid.de/context-engineering





더 들어가서 컨텍스트 엔지니어링을 제대로 이해해보자!

에이전트AI를 구성하는 Context engineering은 전체 에이전트 환경을 조율하기 위한 동적이고 시스템을 구축하는데 도움된다. 이를 이루는 구성요소는 아래와 같으며 구성 요소 내에 더 많은 여러가지 유형들이 있을 수 있는데 에이전트를 실행하는데 있어 이 요소들이 서로 잘 맞물려 동작하기 위한 것이 바로 컨텍스트 엔지니어링이 되는 것이다. 아래 요소들의 경우 이야기 하는 사람마다의 약간씩의 차이는 보이긴 하는데 큰 맥락에서는 동일한 이야기를 하고있다.


모델 (Model): 예를 들면 Chat GPT, Claude와 같이 어떠한 모델을 사용해 에이전트를 구축할 것인지

메모리: 대부분의 에이전트는 정보를 저장하고 검색할 수 있는 방법이 필요함 단기기억 - 과거 대화를 잊지 않기 위해 긴 대화를 맥락에 맞게 요약하는 것 장기기억 - 백터 데이터베이스를 사용해 사용자 선호도, 과거 여행, 학습 패턴 등을 검색

상태관리: 다단계 프로세스의 어디에 있는가, 에이전트가 작업 도중 맥락을 잃지않도록 보장하는 것

에이전트를 동적 지식 소스에 연결하는 검색 증강 생성(RAG): 맥락 기반으로 한 의미적 일치와 키워드 일치를 결합하는 하이브리드 검색 사용 관련 섹션과 예외를 골라내고 문맥상 관련된 부분만 에이전트에게 반환

툴: LLM자체로는 실제 데이터베이스를 확인하거나 API를 호출하거나 코드를 실행할 수 없음 외부 시스템과 상호작용 가능 예를 들면 나의 구글 캘린더에 접근해서 나를 대신 해 약속을 예약할 수 있는 도구 보유 이러한 격차를 줄이기 위해 SQL 데이터 베이스를 쿼리하거나 실시간 가격 데이터를 가져오거나 함

Audio & speech - 훨씬 더 자연스러운 상호작용 가능

Guardrails - 적절한 행동을 보장하는 안전장치의 필요성

Orchestration - 모니터링하며 개선 무슨일이 일어나고 있는지 추적 필요



결론적으로 컨텍스트 엔지니어링이 필요한 사람은

컨텍스트 엔지니링은 LLM이 작업을 완료할 수 있도록 적절한 시기에 적절한 형식으로 적절한 정보를 제공하는 동적 시스템을 설계하고 구축하는 것 다시 말해 대규모 언어 모델의 입력 영역인 컨텍스트 창을 적절하게 채우는 것. 컨텍스트 엔지니어링은 AI 에이전트와 같이 LLM앱을 만드는 사람들에게만 관련있다.

스크린샷 2025-09-09 11.25.24.png
keyword
작가의 이전글플린 AI 사이드 프로젝트 회고 (1)