Gui's Blog

프롬프트 엔지니어링을 넘어서 — Context Engineering 오픈소스 스킬 레포 분석

GitHub 10K+ 스타를 받은 Agent Skills for Context Engineering 레포를 분석한다. Context Engineering이 왜 프롬프트 엔지니어링을 대체하고 있는지, 13개 스킬의 구성과 실무 활용법을 정리했다.

"프롬프트를 잘 쓰면 되는 거 아닌가요?"

AI 에이전트를 처음 만드는 개발자가 가장 많이 하는 질문이다. 맞는 말이었다 — 한 턴짜리 챗봇을 만들 때까지는. 에이전트가 여러 도구를 쓰고, 기억을 유지하고, 수십 단계의 작업을 수행해야 하는 순간, 프롬프트만으로는 한계에 부딪힌다.

이 문제에 대한 해답이 바로 Context Engineering이다. 그리고 이 분야의 핵심 지식을 체계적으로 정리한 오픈소스 레포가 최근 GitHub에서 폭발적으로 성장하고 있다.

Context Engineering이란

Context Engineering은 LLM의 컨텍스트 윈도우에 어떤 정보를 넣을지 설계하는 분야다.

프롬프트 엔지니어링이 모델에게 **어떻게 말할지(how)**에 집중한다면, Context Engineering은 모델이 **무엇을 알고 있는지(what)**를 설계한다. 시스템 프롬프트, 도구 정의, RAG로 가져온 문서, 대화 히스토리, 도구 실행 결과 — 이 모든 것이 컨텍스트이고, 이를 체계적으로 관리하는 것이 Context Engineering의 핵심이다.

프롬프트 vs 컨텍스트 엔지니어링 비교

프롬프트 엔지니어링Context Engineering
초점모델에게 어떻게 말할지모델에게 무엇을 제공할지
범위단일 프롬프트 텍스트시스템 프롬프트 + 도구 + 메모리 + 문서 전체
시간축한 턴 단위세션/작업 전체 라이프사이클
핵심 목표더 나은 응답 유도올바른 결정에 필요한 정보를 적시에 제공

2025년 중반, Andrej Karpathy와 Shopify CEO Tobi Lütke가 "Context Engineering"이라는 용어를 공개적으로 쓰기 시작하면서 업계의 관심이 집중됐다. 2026년 현재, 이 분야는 단순한 버즈워드가 아니라 에이전트 시스템 구축의 핵심 디시플린으로 자리 잡았다.

Agent Skills for Context Engineering 레포 소개

Agent Skills for Context Engineering은 Context Engineering과 멀티에이전트 아키텍처에 필요한 재사용 가능한 스킬 모음이다.

  • GitHub 스타: 10,400+
  • 포크: 800+
  • 라이선스: MIT
  • 언어: Python (의사코드 수준, 외부 의존성 없음)
  • 생성일: 2025년 12월

이 레포는 단순한 코드 라이브러리가 아니다. 각 스킬이 마크다운 기반 지식 문서 + 코드 예제로 구성되어 있어, AI 에이전트에게 직접 먹이는 지식 베이스 역할을 한다. Claude Code 플러그인으로도 설치할 수 있다.

왜 이렇게 인기가 많아졌나

세 가지 배경이 맞물렸다.

1. 에이전트 시대의 도래

2025~2026년은 AI가 챗봇에서 에이전트로 전환되는 시기다. 코드를 작성하고, API를 호출하고, 파일을 관리하는 에이전트가 보편화되면서, 단일 프롬프트 최적화로는 해결할 수 없는 문제가 속출했다. 컨텍스트 윈도우가 아무리 커져도, 관련 없는 로그와 오래된 도구 출력으로 가득 차면 모델의 성능은 급격히 떨어진다.

2. 실용적 접근 방식

이론 논문이 아니라 바로 에이전트에 적용할 수 있는 스킬 형태로 제공된다. 각 스킬은 표준화된 구조를 따르고, Claude Code, Cursor 등 주요 에이전트 도구와 바로 연동된다.

3. 벤더 독립적 설계

특정 프레임워크에 종속되지 않는다. LangChain, CrewAI, OpenAI Agents SDK 등 어떤 프레임워크를 쓰든 적용할 수 있는 범용 원칙을 제공한다.

13개 스킬 구조 분석

레포의 스킬은 4개 카테고리, 13개 항목으로 구성된다.

기초 (Foundational) — 3개

컨텍스트가 무엇이고, 왜 관리해야 하며, 어떻게 줄일 수 있는지를 다루는 출발점이다. 에이전트를 설계하기 전에 이 3개 스킬을 먼저 읽으면, 이후 아키텍처와 운영 스킬의 맥락이 훨씬 명확해진다.

context-fundamentals — 컨텍스트 윈도우의 5가지 구성 요소(시스템 프롬프트, 도구 정의, 검색 문서, 대화 히스토리, 도구 출력)를 이해하고, 토큰 예산을 효율적으로 배분하는 원칙을 세운다. 핵심 메시지는 "가장 작은 고신호 토큰 집합으로 원하는 결과를 최대화하라"는 것이다. 프로그레시브 디스클로저(필요할 때만 정보를 로드)와 컨텍스트 사용량 70~80%에서 압축을 트리거하는 예산 관리 전략을 다룬다.

context-degradation — 컨텍스트가 길어질수록 에이전트 성능이 왜 떨어지는지 진단하고 대응하는 방법을 제공한다. Lost-in-the-Middle(중간에 놓인 정보의 회상률이 10~40% 하락), 컨텍스트 오염(잘못된 출력이 재참조되며 오류가 증폭), 컨텍스트 산만(무관한 정보가 관련 정보를 압도) 등의 패턴을 분류한다. 대응책으로 Write(외부 저장) → Select(관련성 필터링) → Compress(요약) → Isolate(서브에이전트 분리)의 4단계 프레임워크를 제시한다. 에이전트가 갑자기 삽질을 시작할 때 가장 먼저 참고할 스킬이다.

context-compression — 긴 세션에서 컨텍스트 윈도우를 초과하지 않으면서 핵심 정보를 유지하는 압축 전략을 다룬다. Anchored Iterative Summarization(구조화된 섹션을 유지하며 점진적으로 요약), Opaque Compression(99%+ 압축률이지만 가독성 희생), Regenerative Full Summary(읽기 쉽지만 반복 주기에서 세부사항 손실) 세 가지 방법을 비교한다. 특히 파일 추적 정확도(artifact trail)가 모든 방법에서 취약하다는 발견은 실무에서 중요한 함의를 갖는다.

아키텍처 (Architectural) — 5개

기초를 이해한 뒤, 실제 에이전트 시스템의 구조를 잡는 단계다. 여러 에이전트를 어떻게 조합할지, 기억을 어디에 저장할지, 도구를 어떻게 설계할지, 인프라를 어떻게 구성할지 — 에이전트 시스템의 뼈대를 만드는 스킬들이다.

multi-agent-patterns — 여러 LLM이 각자 독립된 컨텍스트 윈도우에서 병렬로 작업하는 시스템을 설계한다. Supervisor(중앙 에이전트가 작업을 분배하고 결과를 종합), Peer-to-Peer/Swarm(에이전트 간 직접 핸드오프), Hierarchical(전략-계획-실행 계층 분리) 패턴을 비교한다. 멀티에이전트 시스템이 단일 에이전트 대비 약 15배의 토큰을 소비하지만, 단일 컨텍스트에서는 불가능한 작업을 병렬화할 수 있다는 트레이드오프를 명확히 한다.

memory-systems — 세션이 끝나면 모든 것을 잊는 에이전트에게 장기 기억을 부여하는 방법을 설계한다. 워킹 메모리(컨텍스트 윈도우) → 단기(세션 스코프) → 장기(세션 간 영속) → 엔티티(정체성 일관성) → 시간적 지식 그래프(유효 기간이 있는 사실)의 5계층 메모리 아키텍처를 제시한다. Mem0, Zep/Graphiti, Letta 등 프레임워크를 비교하면서, "파일 시스템 기반 메모리부터 시작하고 검색 품질이 떨어질 때만 복잡도를 높여라"는 실용적 가이드를 준다.

tool-design — 에이전트가 도구를 올바르게 선택하고 사용하도록 도구의 이름, 설명, 응답 형식을 설계한다. 핵심 원칙은 통합(Consolidation)이다. list_users, list_events, create_event를 각각 만드는 대신 schedule_event 하나로 전체 워크플로우를 처리하게 해서 선택 모호성을 줄인다. 도구 설명은 "무엇을 하는가, 언제 쓰는가, 입력은 무엇인가, 출력은 무엇인가"의 4가지 질문에 답해야 하며, 에러 메시지는 실패 원인뿐 아니라 복구 방법까지 안내해야 한다. 실무에서 가장 즉시 적용 가능한 스킬이다.

filesystem-context — 파일 시스템을 에이전트의 외부 메모리이자 통신 채널로 활용하는 6가지 패턴을 제공한다. 대형 도구 출력을 파일에 쓰고 요약만 반환하는 Scratch Pad, 작업 계획을 YAML 파일로 유지하는 Plan Persistence, 서브에이전트 간 파일로 정보를 주고받는 Filesystem Communication 등이 포함된다. 에이전트가 자신의 학습 내용을 인스트럭션 파일에 직접 쓰는 Self-Modification 패턴도 다룬다.

hosted-agents — 원격 샌드박스에서 독립 실행되는 코딩 에이전트의 인프라를 설계한다. 30분마다 환경 이미지를 미리 빌드하고, 사용자가 타이핑하는 동안 샌드박스를 예열하며, 파일 시스템 스냅샷으로 즉시 복원하는 등의 성능 최적화 기법을 다룬다. Slack, 웹, Chrome 확장 등 다양한 클라이언트를 지원하는 서버 퍼스트 아키텍처 설계도 포함된다.

운영 (Operational) — 3개

에이전트를 만든 뒤의 문제를 다룬다. 프로덕션에서 비용과 성능을 최적화하고, 에이전트가 실제로 잘 동작하는지 측정하고 개선하는 피드백 루프를 구축하는 스킬들이다.

context-optimization — 프로덕션 환경에서 제한된 컨텍스트 윈도우의 실효 용량을 2~3배로 늘리는 전략을 다룬다. Compaction(한계 접근 시 요약 후 재초기화), Observation Masking(이미 처리된 도구 출력을 간결한 참조로 대체), KV-Cache 최적화(동일 접두사 재사용으로 추론 비용 10배 절감), Context Partitioning(서브에이전트로 관심사를 분리)의 4가지 기법을 조합한다.

evaluation — 비결정적인 에이전트의 성능을 체계적으로 평가하는 프레임워크를 구축한다. 에이전트는 같은 목표에 다른 경로를 택할 수 있어 단계별 검증이 무의미하다는 전제에서 출발한다. 루브릭 기반 다차원 평가, LLM-as-Judge, 복잡도별 테스트 세트 계층화를 다루며, 성능 분산의 80%가 토큰 사용량, 10%가 도구 호출 횟수, 5%가 모델 선택에서 비롯된다는 실증 데이터를 제시한다.

advanced-evaluation — LLM을 평가자(Judge)로 활용하는 고급 기법으로 평가 파이프라인을 자동화한다. Direct Scoring(단일 응답 채점), Pairwise Comparison(두 응답 비교), Rubric Generation(도메인 특화 평가 기준 자동 생성)을 다루고, 위치 편향·길이 편향·자기 강화 편향 등의 Judge 편향을 15~25% 줄이는 완화 기법을 제공한다. 대량 평가에서는 저렴한 모델로 스크리닝하고 고가 모델로 경계 사례만 정밀 평가하는 계층적 접근을 권장한다.

특화 — 2개

위 세 카테고리에 속하지 않는 독립적인 스킬이다. 프로젝트 전체의 개발 방법론과, 에이전트에 인지 구조를 부여하는 학술적 접근을 각각 다룬다.

project-development — LLM 기반 프로젝트를 구상부터 프로덕션 배포까지 이끄는 방법론을 제공한다. 코딩 전에 대상 모델로 대표 사례 하나를 수동 테스트하여 Task-Model Fit을 검증하고, acquire → prepare → process → parse → render의 5단계 파이프라인을 파일 시스템 체크포인트로 분리하여 디버깅과 병렬화를 가능하게 한다. Vercel이 17개 도구를 2개의 프리미티브로 줄여 성능을 개선한 사례를 근거로, 복잡한 스캐폴딩보다 최소 아키텍처가 더 나은 추론을 유도한다고 주장한다.

bdi-mental-states — Belief-Desire-Intention(BDI) 인지 아키텍처를 에이전트에 적용하여, 외부 지식 그래프(RDF)를 에이전트의 내부 추론 상태로 변환하는 프레임워크를 제공한다. T2B2T(Triples → Beliefs → Triples) 패러다임으로 지식 그래프와 인지 사이의 양방향 흐름을 만들고, Logic Augmented Generation(LAG)으로 LLM 출력에 온톨로지 제약을 적용하여 일관성을 확보한다. 설명 가능한 AI와 멀티에이전트 간 상태 표준화에 관심 있는 개발자를 위한 스킬이다.

스킬 하나의 구조

각 스킬은 동일한 디렉터리 구조를 따른다:

skills/context-fundamentals/
├── SKILL.md          # 스킬 본문 (에이전트가 읽는 지식)
├── scripts/          # Python 의사코드 예제
└── references/       # 참조 문서

핵심은 SKILL.md다. 이 파일이 곧 에이전트의 지식이 된다. 프로그레시브 디스클로저 방식으로 설계되어, 메타데이터만 먼저 로드하고 필요할 때 전체 내용을 읽는다. 컨텍스트 윈도우를 효율적으로 쓰기 위한 설계다.

실무 활용 방법

1. Claude Code 플러그인으로 설치

가장 간단한 방법이다:

# 전체 설치
/plugin marketplace add muratcankoylan/Agent-Skills-for-Context-Engineering
 
# 개별 스킬만 설치
/plugin add muratcankoylan/Agent-Skills-for-Context-Engineering/skills/tool-design

설치하면 Claude Code가 관련 작업을 수행할 때 해당 스킬의 지식을 자동으로 참조한다.

2. Cursor에서 Rules로 활용

Cursor 사용자라면 .cursor/rules/ 디렉터리에 스킬의 SKILL.md 내용을 넣으면 된다. 에이전트가 코드를 작성할 때 Context Engineering 원칙을 자동으로 적용한다.

3. 커스텀 에이전트에 통합

자체 에이전트를 만들고 있다면, 시스템 프롬프트에 필요한 스킬을 포함시키면 된다. 각 스킬이 마크다운 형식이라 어떤 프레임워크에서든 쉽게 임포트할 수 있다.

추천 시작 경로

에이전트 개발 경험에 따라 읽는 순서를 다르게 가져가면 좋다:

  • 입문자: context-fundamentals → context-degradation → tool-design
  • 중급자: memory-systems → multi-agent-patterns → context-optimization
  • 운영 중: evaluation → advanced-evaluation → context-compression

주의할 점

이 레포가 만능은 아니다. 몇 가지 한계를 짚어두자.

  • 코드가 의사코드 수준이다. 프로덕션에 바로 쓸 수 있는 라이브러리가 아니라, 원칙과 패턴을 이해하기 위한 참조 자료다.
  • 빠르게 변하는 분야다. 2025년 12월에 만들어져 활발히 업데이트되고 있지만, AI 에이전트 생태계의 변화 속도를 고려하면 일부 내용은 금방 구식이 될 수 있다.
  • 실제 적용은 별개 문제다. 패턴을 아는 것과 자기 시스템에 맞게 적용하는 것은 다르다. 스킬을 읽은 후에는 반드시 자신의 에이전트에서 실험해봐야 한다.

마무리

프롬프트 엔지니어링이 AI와 대화하는 기술이었다면, Context Engineering은 AI가 일을 잘 할 수 있는 환경을 설계하는 기술이다. AI 에이전트를 만들거나 운영하는 개발자라면, 이 레포의 13개 스킬을 한 번 훑어보는 것만으로도 에이전트 시스템을 바라보는 시각이 달라질 것이다.

AI 에이전트 도구 총정리 글에서 Context Engineering의 위치를 전체 에이전트 스택 관점에서 확인할 수 있다. Context Engineering이 "무엇을 알려줄지"의 문제라면, Harness Engineering은 "어떤 환경에서 일하게 할지"의 문제다.

References