시스템 프롬프트
OpenClaw는 에이전트 실행 시마다 맞춤형 시스템 프롬프트를 생성합니다. 이 프롬프트는 OpenClaw 소유로, pi-coding-agent의 기본 프롬프트를 사용하지 않습니다. 프롬프트는 OpenClaw에 의해 조립되어 각 에이전트 실행에 주입됩니다.구조
프롬프트는 의도적으로 간결하며 고정된 섹션을 사용합니다:- 도구: 현재 도구 목록 + 짧은 설명.
- 안전성: 권한 추구 행동을 피하거나 감독을 우회하지 않도록 하는 짧은 안전 레일 알림.
- 스킬 (사용 가능한 경우): 모델에 스킬 지시사항을 필요할 때 어떻게 로드하는지 알려줍니다.
- OpenClaw 자체 업데이트:
config.apply및update.run실행 방법. - 워크스페이스: 작업 디렉토리(
agents.defaults.workspace). - 문서화: OpenClaw 문서의 로컬 경로 (repo 또는 npm 패키지) 및 읽어야 할 때.
- 워크스페이스 파일 (주입됨): 이하에 부트스트랩 파일이 포함되어 있음을 나타냅니다.
- 샌드박스 (활성화된 경우): 샌드박스 격리 실행 경로, 샌드박스 경로 및 권한 상승 실행 가능 여부를 나타냅니다.
- 현재 날짜 및 시간: 사용자 지향 시간, 타임존 및 시간 형식.
- 회신 태그: 지원 프로바이더용 선택적 회신 태그 구문.
- 하트비트: 하트비트 프롬프트 및 승인 동작.
- 런타임: 호스트, OS, 노드, 모델, 리포지터리 루트(감지된 경우), 사고 수준 (한 줄).
- 추론: 현재 가시성 수준 + /reasoning 변환 힌트.
프롬프트 모드
OpenClaw는 하위 에이전트를 위한 더 작은 시스템 프롬프트를 렌더링할 수 있습니다. 런타임은 각 실행에 대해promptMode를 설정합니다 (사용자용 설정 아님):
full(기본값): 위의 모든 섹션을 포함합니다.minimal: 하위 에이전트용으로 사용되며 스킬, 기억 회상, OpenClaw 자체 업데이트, 모델 별칭, 유저 ID, 회신 태그, 메시징, 침묵 회신, 하트비트를 생략합니다. 도구, 안전성, 워크스페이스, 샌드박스, 현재 날짜 및 시간 (알려진 경우), 런타임 및 주입된 컨텍스트는 그대로 유지됩니다.none: 기본 정체성 라인만 반환합니다.
promptMode=minimal일 때, 추가 주입된 프롬프트는 하위 에이전트 컨텍스트로 라벨링되며, 그룹 채팅 컨텍스트가 아닙니다.
워크스페이스 부트스트랩 주입
부트스트랩 파일은 프로젝트 컨텍스트에 일괄 처리되어 추가되며, 모델이 명시적인 읽기 없이 정체성 및 프로필 컨텍스트를 볼 수 있도록 합니다: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)로 제한됩니다. 누락된 파일은 짧은 누락 파일 마커를 주입합니다.
하위 에이전트 세션은 오직 AGENTS.md와 TOOLS.md만 주입합니다 (다른 부트스트랩 파일은 하위 에이전트 컨텍스트를 작게 유지하기 위해 필터링됩니다).
내부 훅은 agent:bootstrap을 통해 이 단계를 가로채어 주입된 부트스트랩 파일을 변형하거나 교체할 수 있습니다 (예: SOUL.md를 대체 페르소나로 변경).
각 주입된 파일이 얼마나 기여하는지 (원본 vs 주입, 자름 변환, 도구 스키마 오버헤드)를 검사하려면 /context list 또는 /context detail을 사용하세요. 컨텍스트를 참조하십시오.
시간 처리
시스템 프롬프트는 사용자의 타임존이 알려진 경우 전용 현재 날짜 및 시간 섹션을 포함합니다. 프롬프트 캐시 안정성을 유지하기 위해, 이제는 타임존만 포함하며 (동적 시계나 시간 형식 없음), 필요할 때 에이전트가 현재 시간을 얻도록session_status를 사용하도록 지시합니다. 상태 카드는 타임스탬프 라인을 포함합니다.
구성:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
스킬
적격한 스킬이 존재할 때, OpenClaw는 각 스킬에 대한 파일 경로를 포함하는 Compact한 사용 가능한 스킬 목록을 주입합니다 (formatSkillsForPrompt). 프롬프트는 모델에게 나열된 위치에서 SKILL.md를 로드하기 위해 read를 사용하라고 지시합니다 (워크스페이스, 관리되거나 번들된). 자격을 갖춘 스킬이 없으면 스킬 섹션이 생략됩니다.
문서화
사용 가능할 때, 시스템 프롬프트는 로컬 OpenClaw 문서 디렉토리 (docs/ in the repo workspace 또는 번들 npm 패키지의 문서)를 가리키는 문서화 섹션을 포함합니다. 또한 공공 미러, 소스 리포지토리, 커뮤니티 Discord 및 ClawHub (https://clawhub.com)를 포함하여 스킬 검색을 지원합니다. 프롬프트는 모델에게 OpenClaw의 동작, 명령어, 구성 또는 아키텍처에 대한 내용을 먼저 로컬 문서를 참조하라고 지시하며, 가능한 경우 직접 openclaw status를 실행합니다 (액세스가 부족할 때만 사용자에게 요청).