시스템 프롬프트
OpenClaw은 매 에이전트 실행마다 커스텀 시스템 프롬프트를 빌드합니다. 이 프롬프트는 OpenClaw이 소유하며 pi-coding-agent 기본 프롬프트를 사용하지 않습니다.
프롬프트는 OpenClaw이 조립하여 각 에이전트 실행에 주입합니다.
구조
프롬프트는 의도적으로 컴팩트하며 고정된 섹션을 사용합니다:
- Tooling: 현재 도구 목록 + 짧은 설명.
- Safety: 권력 추구 행동이나 감독 우회를 방지하는 짧은 가드레일 알림.
- Skills (사용 가능한 경우): 모델에게 요청 시 스킬 지시를 로드하는 방법을 알려줌.
- OpenClaw Self-Update:
config.apply와update.run실행 방법. - Workspace: 작업 디렉터리 (
agents.defaults.workspace). - Documentation: OpenClaw 문서의 로컬 경로 (저장소 또는 npm 패키지)와 참조 시점.
- Workspace Files (injected): 부트스트랩 파일이 아래에 포함되었음을 표시.
- Sandbox (활성화 시): 샌드박스 런타임, 샌드박스 경로, 상승된 exec 사용 가능 여부를 표시.
- Current Date & Time: 사용자 현지 시간, 시간대, 시간 형식.
- Reply Tags: 지원되는 프로바이더를 위한 선택적 응답 태그 구문.
- Heartbeats: 하트비트 프롬프트와 확인 동작.
- Runtime: 호스트, OS, 노드, 모델, 저장소 루트 (감지 시), 사고 수준 (한 줄).
- Reasoning: 현재 가시성 수준 + /reasoning 토글 힌트.
시스템 프롬프트의 안전 가드레일은 권고 사항입니다. 모델 동작을 안내하지만 정책을 강제하지는 않습니다. 강제 적용에는 도구 정책, exec 승인, 샌드박싱, 채널 허용 목록을 사용하세요. 운영자는 설계에 의해 이를 비활성화할 수 있습니다.
프롬프트 모드
OpenClaw은 서브 에이전트를 위해 더 작은 시스템 프롬프트를 렌더링할 수 있습니다. 런타임이 각 실행에 대해 promptMode를 설정합니다(사용자용 설정이 아님):
full(기본값): 위의 모든 섹션을 포함.minimal: 서브 에이전트용, Skills, Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Reply Tags, Messaging, Silent Replies, Heartbeats를 생략합니다. Tooling, Safety, Workspace, Sandbox, Current Date & Time (알려진 경우), Runtime, 주입된 컨텍스트는 사용 가능합니다.none: 기본 ID 행만 반환합니다.
promptMode=minimal일 때 추가 주입 프롬프트는 Group Chat Context 대신 Subagent Context로 레이블이 지정됩니다.
워크스페이스 부트스트랩 주입
부트스트랩 파일은 트리밍되어 Project Context 아래에 추가되므로 모델이 명시적 읽기 없이도 ID 및 프로필 컨텍스트를 볼 수 있습니다:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(새 워크스페이스에서만)MEMORY.md(있는 경우), 없으면 소문자memory.md를 폴백으로 사용
이 파일들은 모두 매 턴마다 컨텍스트 윈도우에 주입되므로 토큰을 소비합니다. 간결하게 유지하세요 — 특히 MEMORY.md는 시간이 지남에 따라 커질 수 있어 예상치 못하게 높은 컨텍스트 사용량과 더 빈번한 압축을 유발할 수 있습니다.
참고:
memory/*.md일일 파일은 자동으로 주입되지 않습니다.memory_search및memory_get도구를 통해 요청 시 접근되므로 모델이 명시적으로 읽지 않는 한 컨텍스트 윈도우에 포함되지 않습니다.
큰 파일은 마커와 함께 잘립니다. 파일당 최대 크기는 agents.defaults.bootstrapMaxChars(기본값: 20000)로 제어됩니다. 파일 전체에 걸친 총 주입 부트스트랩 콘텐츠는 agents.defaults.bootstrapTotalMaxChars(기본값: 150000)로 제한됩니다. 누락된 파일은 짧은 누락 파일 마커를 주입합니다. 잘림이 발생하면 OpenClaw이 Project Context에 경고 블록을 주입할 수 있습니다. agents.defaults.bootstrapPromptTruncationWarning(off, once, always, 기본값: once)으로 이를 제어합니다.
서브 에이전트 세션은 AGENTS.md와 TOOLS.md만 주입합니다(서브 에이전트 컨텍스트를 작게 유지하기 위해 다른 부트스트랩 파일은 필터링됩니다).
내부 훅은 agent:bootstrap를 통해 이 단계를 가로채어 주입된 부트스트랩 파일을 수정하거나 대체할 수 있습니다(예: SOUL.md를 대체 페르소나로 교체).
각 주입 파일의 기여도(원시 vs 주입, 잘림, 도구 스키마 오버헤드 포함)를 확인하려면 /context list 또는 /context detail을 사용하세요. 컨텍스트를 참고하세요.
시간 처리
시스템 프롬프트에는 사용자 시간대가 알려진 경우 전용 Current Date & Time 섹션이 포함됩니다. 프롬프트 캐시 안정성을 유지하기 위해 이제 시간대만 포함됩니다(동적 시계나 시간 형식 없음).
에이전트가 현재 시간이 필요할 때는 session_status를 사용하세요. 상태 카드에 타임스탬프 행이 포함됩니다.
구성:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
전체 동작 세부사항은 날짜 및 시간을 참고하세요.
스킬
적격 스킬이 있으면 OpenClaw은 각 스킬의 파일 경로가 포함된 컴팩트한 사용 가능한 스킬 목록(formatSkillsForPrompt)을 주입합니다. 프롬프트는 모델에게 나열된 위치(워크스페이스, 관리, 번들)의 SKILL.md를 read를 사용하여 로드하도록 지시합니다. 적격 스킬이 없으면 Skills 섹션이 생략됩니다.
<available_skills>
<skill>
<name>...</name>
<description>...</description>
<location>...</location>
</skill>
</available_skills>
이렇게 하면 기본 프롬프트를 작게 유지하면서도 대상 스킬 사용을 가능하게 합니다.
문서
사용 가능한 경우 시스템 프롬프트에는 로컬 OpenClaw 문서 디렉터리(저장소 워크스페이스의 docs/ 또는 번들된 npm 패키지 문서)를 가리키는 Documentation 섹션이 포함되며, 공개 미러, 소스 저장소, 커뮤니티 Discord, 스킬 검색을 위한 ClawHub(https://clawhub.com)도 안내합니다. 프롬프트는 모델에게 OpenClaw 동작, 명령, 설정, 아키텍처에 대해 먼저 로컬 문서를 참고하도록 지시하며, 가능하면 직접 openclaw status를 실행하도록 안내합니다(접근 권한이 없을 때만 사용자에게 질문).