서문
시스템 프롬프트(System Prompt)는 AI Agent의 행동을 정의하는 기반입니다. 잘 설계된 시스템 프롬프트는 AI가 특정 역할을 정확히 수행하고, 특정 규칙을 따르며, 특정 형식의 응답을 생성하도록 합니다. OpenClaw은 정적 시스템 프롬프트뿐만 아니라, 15개 이상의 내장 매개변수와 조건 논리를 지원하는 강력한 동적 템플릿 시스템을 제공하여 다양한 시나리오에 자동 적응하는 지능형 프롬프트를 구축할 수 있습니다.
기본 설정
정적 시스템 프롬프트
{
agents: {
"my-agent": {
systemPrompt: "당신은 전문 기술 어시스턴트입니다. 답변은 간결하고 정확하며 코드 예시를 포함해야 합니다."
}
}
}
파일에서 로드
{
agents: {
"my-agent": {
systemPromptFile: "./prompts/tech-assistant.md"
}
}
}
동적 템플릿 시스템
OpenClaw의 시스템 프롬프트는 Mustache 스타일의 템플릿 구문을 지원하며, 런타임에 매개변수를 동적으로 대체합니다.
전체 내장 매개변수
| 매개변수명 | 설명 | 예시 값 |
|---|---|---|
{{userName}} |
현재 사용자명 | "홍길동" |
{{userId}} |
사용자 ID | "user_12345" |
{{channelType}} |
채널 유형 | "dm" / "group" |
{{channelName}} |
채널 이름 | "기술 토론 그룹" |
{{platform}} |
채팅 플랫폼 | "telegram" / "discord" |
{{agentId}} |
Agent ID | "my-agent" |
{{agentName}} |
Agent 표시 이름 | "기술 어시스턴트" |
{{currentDate}} |
현재 날짜 | "2026-03-14" |
{{currentTime}} |
현재 시간 | "14:30:00" |
{{currentDateTime}} |
완전한 날짜 시간 | "2026-03-14 14:30:00" |
{{timezone}} |
시간대 | "Asia/Seoul" |
{{locale}} |
언어 지역 | "ko-KR" |
{{sessionId}} |
세션 ID | "session-abc123" |
{{messageCount}} |
현재 세션 메시지 수 | "15" |
{{modelName}} |
사용 중인 모델명 | "claude-sonnet-4-20250514" |
{{toolList}} |
사용 가능한 도구 목록 | "search, calculator, ..." |
사용 예시
당신은 {{agentName}}이며, {{platform}}에서 실행되는 AI 어시스턴트입니다.
현재 환경 정보:
- 사용자: {{userName}}
- 시간: {{currentDateTime}} ({{timezone}})
- 채널: {{channelName}} ({{channelType}})
- 세션에서 {{messageCount}}차례 대화 진행
사용 가능한 도구: {{toolList}}
조건 논리
플랫폼별 행동 전환
{{#if platform == "telegram"}}
Telegram에서 실행 중입니다. Markdown 형식으로 응답하세요.
{{/if}}
{{#if platform == "discord"}}
Discord에서 실행 중입니다. Discord Markdown 구문을 사용할 수 있습니다.
{{/if}}
채널 유형별 스타일 조정
{{#if channelType == "dm"}}
사용자와 1:1 개인 채팅 중입니다. 상세하고 개인화된 응답을 제공할 수 있습니다.
{{/if}}
{{#if channelType == "group"}}
그룹에서 활동 중입니다. @멘션되거나 명확히 필요할 때만 응답하세요.
{{/if}}
고급 조합 기법
다층 프롬프트 결합
{
agents: {
"my-agent": {
systemPrompt: {
base: "./prompts/base-personality.md",
tools: "./prompts/tool-guidelines.md",
safety: "./prompts/safety-rules.md",
context: "현재 사용자: {{userName}}, 플랫폼: {{platform}}"
}
}
}
}
커스텀 매개변수
{
agents: {
"my-agent": {
systemPromptFile: "./prompts/custom-agent.md",
promptParams: {
companyName: "테크 코퍼레이션",
productName: "SuperApp",
supportEmail: "[email protected]",
workingHours: "월~금 09:00-18:00",
maxResponseLength: 500
}
}
}
}
Persona 프리셋 조합
{
agents: {
"my-agent": {
persona: "professional",
systemPromptAppend: "추가 규칙: 모든 코드 예시는 Python을 사용해야 합니다."
}
}
}
프롬프트 디버깅
# Agent의 최종 결합된 시스템 프롬프트 확인
openclaw agent inspect my-agent --show-prompt
# 컨텍스트 시뮬레이션 (플랫폼과 사용자 지정)
openclaw agent inspect my-agent --show-prompt \
--platform telegram --channel-type dm --user "test-user"
모범 사례
- 계층적 설계: 프롬프트를 인격 레이어, 도구 레이어, 규칙 레이어로 분리
- 템플릿 매개변수 활용: 하드코딩을 피하고 다양한 시나리오에 적응
- 플랫폼 적응: 조건 논리로 각 플랫폼의 메시지 형식과 길이 제한에 맞춤
- 버전 관리: 프롬프트를 코드처럼 관리
- 정기 테스트: 프롬프트 수정 후 각 플랫폼과 시나리오에서 효과 검증
- 간결하게 유지: 시스템 프롬프트가 길수록 Token 소비가 많아짐
정리
시스템 프롬프트는 AI Agent의 영혼입니다. OpenClaw의 동적 템플릿 시스템을 통해 사용자 신원, 채팅 플랫폼, 시간 컨텍스트 등의 요소에 따라 프롬프트 내용을 자동으로 조정하여 다양한 시나리오에 적응하는 진정으로 지능적인 AI 어시스턴트를 구축할 수 있습니다.