시스템 프롬프트 재정의 (GEMINI_SYSTEM_MD)
Gemini CLI를 안내하는 핵심 시스템 지침을 여러분만의 Markdown 파일로 완전히 대체할 수 있습니다.
이 기능은 GEMINI_SYSTEM_MD 환경 변수를 통해 제어됩니다.
개요
GEMINI_SYSTEM_MD 변수는 CLI가 내장된 기본값 대신 외부 Markdown 파일을 시스템 프롬프트로
사용하도록 지시합니다. 이는 병합이 아니라 완전한 대체입니다. 사용자 지정 파일을 사용하는 경우,
여러분이 직접 포함하지 않는 한 원래의 핵심 지침 중 어느 것도 적용되지 않습니다.
이 기능은 엄격한 프로젝트별 동작을 강제하거나 사용자 지정 페르소나를 생성해야 하는 고급 사용자를 위한 것입니다.
팁: 현재 기본 시스템 프롬프트를 먼저 파일로 내보낸 후 검토하고, 선택적으로 수정하거나 대체할 수 있습니다(“기본 프롬프트 내보내기” 참조).
활성화 방법
셸에서 환경 변수를 일시적으로 설정하거나 .gemini/.env 파일을 통해 지속적으로 설정할 수
있습니다.
환경 변수 지속하기를 참조하세요.
-
프로젝트 기본 경로 (
.gemini/system.md) 사용:GEMINI_SYSTEM_MD=true또는GEMINI_SYSTEM_MD=1- CLI는
./.gemini/system.md를 읽습니다 (현재 프로젝트 디렉터리 기준).
-
사용자 지정 파일 경로 사용:
GEMINI_SYSTEM_MD=/absolute/path/to/my-system.md- 상대 경로는 지원되며 현재 작업 디렉터리에서 확인됩니다.
- 물결표 확장(Tilde expansion)이 지원됩니다 (예:
~/my-system.md).
-
재정의 비활성화 (내장 프롬프트 사용):
GEMINI_SYSTEM_MD=false또는GEMINI_SYSTEM_MD=0또는 변수 설정 해제.
재정의가 활성화되었지만 대상 파일이 존재하지 않는 경우, CLI는 다음과 같은 오류를 발생시킵니다:
missing system prompt file '<path>'.
간단한 예시
- 프로젝트 파일을 사용하는 일회성 세션:
GEMINI_SYSTEM_MD=1 gemini
.gemini/.env를 사용하여 프로젝트에 지속적으로 적용:.gemini/system.md를 생성한 후.gemini/.env에 추가:GEMINI_SYSTEM_MD=1
- 홈 디렉터리 아래의 사용자 지정 파일 사용:
GEMINI_SYSTEM_MD=~/prompts/SYSTEM.md gemini
UI 표시
GEMINI_SYSTEM_MD가 활성화되면 CLI는 UI에 |⌐■_■| 표시를 보여주어 사용자 지정
시스템 프롬프트 모드임을 알립니다.
변수 대체
사용자 지정 시스템 프롬프트 파일을 사용할 때 다음 변수를 사용하여 내장 콘텐츠를 동적으로 포함할 수 있습니다.
-
${AgentSkills}: 사용 가능한 모든 에이전트 기술의 전체 섹션(헤더 포함)을 주입합니다. -
${SubAgents}: 사용 가능한 서브 에이전트의 전체 섹션(헤더 포함)을 주입합니다. -
${AvailableTools}: 현재 활성화된 모든 도구 이름의 글머리 기호 목록을 주입합니다. -
도구 이름 변수: 다음 패턴을 사용하여 도구의 실제 이름을 주입합니다:
${toolName}_ToolName(예:${write_file_ToolName},${run_shell_command_ToolName}).이 패턴은 사용 가능한 모든 도구에 대해 동적으로 생성됩니다.
예시
# Custom System Prompt
You are a helpful assistant. ${AgentSkills}
${SubAgents}
## Tooling
The following tools are available to you: ${AvailableTools}
You can use ${write_file_ToolName} to save logs.기본 프롬프트 내보내기 (권장)
재정의하기 전에 현재 기본 프롬프트를 내보내서 필요한 안전 및 워크플로 규칙을 검토하세요.
- 내장 프롬프트를 프로젝트 기본 경로에 쓰기:
GEMINI_WRITE_SYSTEM_MD=1 gemini
- 또는 사용자 지정 경로에 쓰기:
GEMINI_WRITE_SYSTEM_MD=~/prompts/DEFAULT_SYSTEM.md gemini
이 명령은 파일을 생성하고 현재 내장된 시스템 프롬프트를 해당 파일에 씁니다.
모범 사례: SYSTEM.md 대 GEMINI.md
- SYSTEM.md (펌웨어):
- 협상 불가능한 운영 규칙: 안전, 도구 사용 프로토콜, 승인 및 CLI를 신뢰할 수 있게 유지하는 메커니즘.
- 작업 및 프로젝트 전반에 걸쳐 안정적입니다 (또는 필요시 프로젝트별로).
- GEMINI.md (전략):
- 페르소나, 목표, 방법론 및 프로젝트/도메인 컨텍스트.
- 작업별로 발전하며 안전한 실행을 위해 SYSTEM.md에 의존합니다.
SYSTEM.md는 안전 및 도구 작동을 위해 최소한으로 유지하되 완전하게 유지하세요. GEMINI.md는 상위 수준의 지침 및 프로젝트 세부 정보에 집중하세요.
문제 해결
- 오류:
missing system prompt file '…'- 참조된 경로가 존재하고 읽을 수 있는지 확인하세요.
GEMINI_SYSTEM_MD=1|true의 경우, 프로젝트에./.gemini/system.md를 생성하세요.
- 재정의가 적용되지 않음
- 변수가 로드되었는지 확인하세요 (
.gemini/.env사용 또는 셸에서 내보내기). - 경로는 현재 작업 디렉터리에서 확인됩니다. 절대 경로를 시도해보세요.
- 변수가 로드되었는지 확인하세요 (
- 기본값 복원
GEMINI_SYSTEM_MD설정을 해제하거나0/false로 설정하세요.