Context
“Context”는 한 번의 실행을 위해 OpenClaw가 모델에 보내는 모든 것입니다. 이는 모델의 context window(토큰 제한)에 의해 제한됩니다. 초보자를 위한 개념 모델:- 시스템 프롬프트(OpenClaw가 구성): 규칙, 도구, Skills 목록, 시간/런타임, 그리고 주입된 워크스페이스 파일.
- 대화 기록: 이 세션에서 사용자의 메시지 + 어시스턴트의 메시지.
- 도구 호출/결과 + 첨부 파일: 명령 출력, 파일 읽기, 이미지/오디오 등.
빠른 시작(context 검사)
/status→ “내 window가 얼마나 찼나?”에 대한 빠른 보기 + 세션 설정./context list→ 무엇이 주입되었는지 + 대략적인 크기(파일별 + 총합)./context detail→ 더 깊은 분석: 파일별, 도구 스키마 크기별, skill 항목 크기별, 시스템 프롬프트 크기./usage tokens→ 일반 응답에 응답별 사용량 푸터 추가./compact→ 오래된 기록을 압축 항목으로 요약해 window 공간 확보.
출력 예시
값은 모델, 제공자, 도구 정책, 워크스페이스 내용에 따라 달라집니다./context list
/context detail
context window에 포함되는 항목
모델이 받는 모든 것이 포함되며, 다음이 여기에 해당합니다:- 시스템 프롬프트(모든 섹션).
- 대화 기록.
- 도구 호출 + 도구 결과.
- 첨부 파일/transcript(이미지/오디오/파일).
- 압축 요약 및 가지치기 결과물.
- 제공자 “래퍼” 또는 숨겨진 헤더(보이지 않아도 여전히 계산됨).
OpenClaw가 시스템 프롬프트를 구성하는 방법
시스템 프롬프트는 OpenClaw 소유이며 실행마다 다시 구성됩니다. 여기에는 다음이 포함됩니다:- 도구 목록 + 짧은 설명.
- Skills 목록(메타데이터만, 아래 참조).
- 워크스페이스 위치.
- 시간(UTC + 구성된 경우 변환된 사용자 시간).
- 런타임 메타데이터(호스트/OS/모델/thinking).
- Project Context 아래에 주입된 워크스페이스 부트스트랩 파일.
주입된 워크스페이스 파일(Project Context)
기본적으로 OpenClaw는 고정된 워크스페이스 파일 집합을 주입합니다(존재하는 경우):AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(첫 실행 시에만)
agents.defaults.bootstrapMaxChars(기본값 20000자)를 사용해 파일별로 잘립니다. OpenClaw는 또한 파일 전체에 걸쳐 총 부트스트랩 주입 상한 agents.defaults.bootstrapTotalMaxChars(기본값 150000자)를 적용합니다. /context는 원본 대비 주입된 크기와 잘림 여부를 표시합니다.
잘림이 발생하면 런타임은 Project Context 아래에 프롬프트 내 경고 블록을 주입할 수 있습니다. 이는 agents.defaults.bootstrapPromptTruncationWarning (off, once, always; 기본값 once)으로 구성합니다.
Skills: 주입되는 것과 필요 시 로드되는 것
시스템 프롬프트에는 압축된 Skills 목록(이름 + 설명 + 위치)이 포함됩니다. 이 목록은 실제 오버헤드를 가집니다. Skill 지침 자체는 기본적으로 포함되지 않습니다. 모델은 필요할 때만 skill의SKILL.md를 read할 것으로 기대됩니다.
Tools: 두 가지 비용이 있습니다
도구는 두 가지 방식으로 context에 영향을 줍니다:- 시스템 프롬프트 안의 도구 목록 텍스트(“Tooling”으로 보이는 부분).
- 도구 스키마(JSON). 모델이 도구를 호출할 수 있도록 전송됩니다. 일반 텍스트로 보이지 않더라도 context에 포함됩니다.
/context detail은 가장 큰 도구 스키마를 분석하여 무엇이 지배적인지 보여줍니다.
명령, 지시문, 그리고 “인라인 단축키”
슬래시 명령은 Gateway에서 처리됩니다. 여기에는 몇 가지 다른 동작이 있습니다:- 독립 실행 명령:
/...만 있는 메시지는 명령으로 실행됩니다. - 지시문:
/think,/verbose,/reasoning,/elevated,/model,/queue는 모델이 메시지를 보기 전에 제거됩니다.- 지시문만 있는 메시지는 세션 설정을 유지합니다.
- 일반 메시지 안의 인라인 지시문은 메시지별 힌트로 동작합니다.
- 인라인 단축키(허용 목록 발신자 전용): 일반 메시지 안의 특정
/...토큰은 즉시 실행될 수 있으며(예: “hey /status”), 남은 텍스트를 모델이 보기 전에 제거됩니다.
세션, 압축, 가지치기(무엇이 유지되는가)
메시지 간에 무엇이 유지되는지는 메커니즘에 따라 다릅니다:- 일반 기록은 정책에 따라 압축/가지치기될 때까지 세션 transcript에 유지됩니다.
- 압축은 요약을 transcript에 유지하고 최근 메시지는 그대로 둡니다.
- 가지치기는 실행을 위한 메모리 내 프롬프트에서 오래된 도구 결과를 제거하지만, transcript 자체를 다시 쓰지는 않습니다.
legacy context engine을 사용합니다. kind: "context-engine"을 제공하는 plugin을 설치하고
plugins.slots.contextEngine으로 선택하면, OpenClaw는 context
조립, /compact, 그리고 관련 하위 에이전트 context 수명 주기 훅을 대신 그
engine에 위임합니다. ownsCompaction: false는 legacy
engine으로 자동 대체되지 않으며, 활성 engine은 여전히 compact()를 올바르게 구현해야 합니다. 전체
플러그형 인터페이스, 수명 주기 훅, 구성은
Context Engine을 참조하세요.
/context가 실제로 보고하는 것
/context는 가능하면 최신 실행 시 구성된 시스템 프롬프트 보고서를 우선 사용합니다:
System prompt (run)= 마지막 내장(도구 사용 가능) 실행에서 캡처되어 세션 저장소에 유지된 값.System prompt (estimate)= 실행 보고서가 없을 때(또는 해당 보고서를 생성하지 않는 CLI 백엔드를 통해 실행할 때) 즉석에서 계산된 값.
관련 항목
- Context Engine — plugins를 통한 사용자 지정 context 주입
- 압축 — 긴 대화 요약
- System Prompt — 시스템 프롬프트가 구성되는 방법
- 에이전트 루프 — 전체 에이전트 실행 주기