컨텍스트 엔지니어링: 유한한 주의를 값어치 있는 곳에 쓰기
이 코스는 컨텍스트 엔지니어링을 다룹니다. 에이전트의 루프가 한 번 돌 때마다 모델이 어떤 토큰을 보게 할지 정하는 기술입니다. 코스7에서 루프가 돌 때마다 이력이 늘어난다는 점과 모델의 주의 예산이 유한하다는 점은 이미 배웠습니다. 이 코스는 그 문제를 정면으로 다룹니다. 시스템 프롬프트를 어떤 '고도'로 써야 하는지, 도구와 예시가 컨텍스트로 계산되는지, 어떤 정보를 사전 로드하고 어떤 정보를 에이전트가 스스로 가져오게 할지, 긴 작업에서 이력을 어떻게 컴팩션하고 노트를 어떻게 남길지, 왜 서브에이전트가 컨텍스트 관리 기법인지를 배우고, 마지막에는 코스7에서 만든 하네스에 컨텍스트 관리 계층을 직접 배선합니다. 이 시리즈의 앞 일곱 개 코스를 마친 독자를 위한 코스입니다. 프롬프트 작성 기술(이 시리즈의 코스3)은 다시 가르치지 않고, 세션을 넘는 파일 지속화와 상태 복구(코스5의 주제입니다. 이 코스는 '이 하나의 긴 작업 안에서 매 턴 모델에 무엇을 건네야 하는가'에 집중합니다)도 다루지 않으며, 멀티 에이전트 협업 패턴(코스6입니다. 서브에이전트는 여기서 컨텍스트 관점으로만 등장합니다)도 다시 가르치지 않고, RAG나 벡터 데이터베이스 구축도 다루지 않습니다.
코스 구성
- 프롬프트 엔지니어링에서 컨텍스트 엔지니어링으로
- 컨텍스트의 해부: 시스템 프롬프트, 도구, 예시
- 적시 검색: 에이전트가 스스로 컨텍스트를 가져오게 하기
- 컴팩션과 노트: 긴 작업을 위한 컨텍스트 관리
- 서브에이전트와 컨텍스트 격리
- 실습: 하네스에 컨텍스트 관리 배선하기
학습 목표
이 코스를 마치면 다음을 할 수 있습니다:
- 컨텍스트 엔지니어링이 프롬프트 엔지니어링과 어떤 관계인지 설명하고, 주의 예산과 컨텍스트 로트로 컨텍스트가 한계 효용이 체감하는 유한한 자원인 이유를 설명하기
- 시스템 프롬프트의 '고도'를 판단하고 — 한쪽 끝에는 취약한 하드코딩 로직이, 다른 쪽 끝에는 신호 없는 모호한 지시가 있습니다 — 행동을 이끌 만큼 구체적이면서도 강한 휴리스틱을 남기는 자리로 다시 쓰기
- 작업마다 사전 로드와 적시 검색의 경계를 긋고, 가벼운 식별자(파일 경로, 쿼리, 링크)를 써서 에이전트가 필요할 때 컨텍스트를 점진적으로 발견하게 하기
- 긴 작업을 위한 컴팩션 전략을 설계하기: 무엇이 살아남아야 하는지(결정, 미해결 문제, 핵심 구현 세부)와 무엇을 버려도 되는지(중복된 도구 출력)를 판단하고, 구조화된 노트로 핵심 상태를 컨텍스트 윈도우 밖에 세워 두기
- 서브에이전트를 컨텍스트 경제성의 언어로 설명하기: 깨끗한 윈도우, 천여 토큰으로 압축되어 돌아오는 요약, 그리고 그것이 몇 배의 토큰을 쓸 값어치가 있는 때
- stop_reason이 이끄는 하네스 루프에 토큰 사용량 추적, 임계값으로 발동하는 컴팩션, NOTES.md 구조화된 노트를 달고, 한 윈도우에 담기지 않는 작업을 끝까지 돌리기
사전 지식
- 이 시리즈의 앞 일곱 개 코스를 마쳤거나 그에 준하는 지식이 있다
stop_reason이 이끄는 에이전트 루프를 직접 손으로 쓸 수 있고,messages이력이 매 턴 늘어나며tool_result블록이 한꺼번에 돌아온다는 점을 이해한다(코스7)- 컨텍스트 윈도우가 유한한 자원이고 대화 이력은 늘어나기만 한다는 점을 안다(코스5)
- 서브에이전트가 독립된 컨텍스트에서 시작해 결론만 돌려준다는 점을 안다(코스6)
- 기본적인 JavaScript / Node.js 코드를 읽고 쓸 수 있다(마지막 레슨에서는 함께 써 나갑니다)
예상 학습 시간
각 레슨의 실습 연습을 포함해 약 3~4시간.