🧬
Part 1중급⏱ 약 40분 · 3개 섹션
시스템 프롬프트 아키텍처
에이전트의 뇌를 프로그래밍하기

✦이 챕터에서 배울 것
전체 아키텍처에서 현재 위치
⚙️코어 엔진
→🔧도구 시스템
→🛡️보안
→🧠컨텍스트
→🤝멀티 에이전트
→🌐생태계
→⚡인프라
1
프롬프트 구조와 캐시 경계
SYSTEM_PROMPT_DYNAMIC_BOUNDARY 패턴과 캐시 최적화
캐시 경계정적/동적 분리토큰 최적화|
constants/prompts.tssrc/constants/prompts.ts는 54KB의 시스템 프롬프트 파일입니다. 핵심은 캐시 경계(Cache Boundary) 패턴입니다.
캐시 경계 패턴
1// 시스템 프롬프트는 두 영역으로 분리:2// ═══ 정적 영역 (캐시 가능) ═══3// - 도구 사용 지침, 보안 규칙, 출력 형식4const SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "<!-- DYNAMIC -->"💡5// ═══ 동적 영역 (세션마다 다름) ═══6// - Git 상태, CLAUDE.md, 메모리, MCP 서버, 환경 정보💡 캐시의 가치
Anthropic API는 시스템 프롬프트 접두사가 이전 요청과 동일하면 캐시를 활용합니다. 정적 영역을 앞에 배치하면 매 요청에서 토큰 처리 비용을 절약합니다.
2
프롬프트 조합 패턴
getHooksSection, getLanguageSection 등 함수형 프롬프트 조합
함수형 조합피처 게이트조건부 섹션|
constants/prompts.tscontext.ts프롬프트는 함수형 조합 패턴으로 구성됩니다. 피처 게이트로 불필요한 섹션을 빌드 타임에 제거합니다.
프롬프트 조합
1// 피처 게이트 기반 조건부 모듈 로딩2const getCachedMCConfig = feature('CACHED_MICROCOMPACT')3 ? require('../services/compact/cachedMCConfig.js') : null4 5// 프롬프트 섹션 조합6function buildSystemPrompt(options) {7 return [8 getBaseInstructions(), // 정적9 getToolsSection(tools), // 준정적10 SYSTEM_PROMPT_DYNAMIC_BOUNDARY, // ← 캐시 경계11 getEnvironmentSection(env), // 동적12 getMemorySection(memory), // 동적13 ].filter(Boolean).join("\n\n")14}3
도구 설명 작성 패턴
모델이 도구를 올바르게 선택하도록 하는 설명 작성 기법
도구 설명입력 스키마 설명사용 예시제약 조건|
tools/BashTool/prompt.tstools/FileEditTool/prompt.tstools/GrepTool/prompt.ts각 도구의 prompt.ts가 모델에게 도구 사용법을 설명합니다. ALWAYS/NEVER 키워드가 핵심입니다.
도구 설명 패턴
1// src/tools/GrepTool/prompt.ts2export const description = `A powerful search tool built on ripgrep3 Usage:4 - ALWAYS use Grep for search tasks.💡5 NEVER invoke \`grep\` as a Bash command.6 - Supports full regex syntax7 - Use Agent tool for multi-round searches`💡 도구 설명의 4원칙
1) ALWAYS/NEVER로 강한 지시, 2) 구체적 사용 예시, 3) 다른 도구와의 차이, 4) 입력 파라미터 형식. 이 4가지가 도구 선택 정확도를 결정합니다.
?
이해도 확인 퀴즈
시스템 프롬프트에서 정적 영역과 동적 영역을 분리하는 가장 중요한 이유는?
✅ 학습 체크리스트
이해한 항목을 체크하고 학습 진도를 확인하세요
0/4 완료0%
📋 Chapter 3 요약: 시스템 프롬프트
이 챕터에서 배운 핵심 개념을 정리합니다
1
캐시 경계
정적/동적 영역을 분리하여 API 캐시 활용, 비용 절감.
2
함수형 조합
getHooksSection, getToolsSection 등 함수로 프롬프트를 모듈화.
3
피처 게이트
feature()로 빌드 타임에 사용하지 않는 프롬프트 코드를 제거.
4
도구 설명
ALWAYS/NEVER, 예시, 차이, 파라미터의 4원칙으로 모델의 도구 선택 정확도를 높임.
다음 챕터 미리보기: Part 2에서는 이 프롬프트에 의해 호출되는 '도구 시스템'을 상세히 분석합니다.