Context Engine
context engine은 OpenClaw가 각 실행마다 모델 컨텍스트를 어떻게 구성할지 제어합니다. 어떤 메시지를 포함할지, 오래된 히스토리를 어떻게 요약할지, subagent 경계에서 컨텍스트를 어떻게 관리할지를 결정합니다. OpenClaw는 내장legacy engine을 제공하며, plugin은 이를 대체하는 다른 engine을 등록할 수 있습니다.
빠른 시작
활성 engine 확인:Context engine plugin 설치
다른 OpenClaw plugin과 같은 방식으로 설치합니다:contextEngine을 "legacy"로 두거나 키를 제거하면 됩니다.
동작 방식
OpenClaw는 각 모델 실행마다 context engine을 네 lifecycle 지점에서 호출합니다:- Ingest - 새 메시지를 세션에 추가할 때
- Assemble - 모델 실행 직전, token budget 안의 메시지를 조립할 때
- Compact - 컨텍스트 창이 가득 찼거나
/compact를 실행할 때 - After turn - 실행이 끝난 뒤 후처리를 할 때
Subagent lifecycle
현재는 다음 hook만 실제 호출됩니다:- onSubagentEnded - subagent 세션이 끝나거나 sweep될 때 정리
prepareSubagentSpawn은 인터페이스에는 있지만 아직 런타임이 호출하지 않습니다.
System prompt addition
assemble은 systemPromptAddition 문자열을 반환할 수 있습니다. OpenClaw는 이를 실행용 system prompt 앞에 붙여서 동적 회상 지침이나 context-aware 힌트를 주입할 수 있게 합니다.
Legacy engine
내장legacy engine은 원래 OpenClaw 동작을 그대로 유지합니다:
- Ingest: no-op
- Assemble: pass-through
- Compact: 내장 요약 compaction에 위임
- After turn: no-op
plugins.slots.contextEngine이 없거나 "legacy"일 때 자동 사용됩니다.
Plugin engine
plugin API를 통해 등록할 수 있습니다:인터페이스 핵심
필수 멤버:| Member | Purpose |
|---|---|
info | Engine id, name, version 정보 |
ingest(params) | 단일 메시지 저장 |
assemble(params) | 모델 실행용 컨텍스트 구성 |
compact(params) | 컨텍스트 요약/축소 |
bootstrap(params)ingestBatch(params)afterTurn(params)prepareSubagentSpawn(params)onSubagentEnded(params)dispose()
ownsCompaction
ownsCompaction은 Pi의 내장 auto-compaction을 유지할지 결정합니다:
true- engine이 compaction을 직접 책임짐false또는 미설정 - 내장 auto-compaction이 계속 동작할 수 있음
Compaction과 memory의 관계
- Compaction은 context engine 책임 중 하나입니다.
- Memory plugin은 검색/검색 결과를 담당하고, context engine은 모델이 실제로 볼 내용을 결정합니다.
- Session pruning은 어떤 engine이 활성인지와 무관하게 계속 동작합니다.
팁
openclaw doctor로 engine 로딩 상태를 확인하세요.- engine을 바꿔도 기존 세션 히스토리는 유지되고, 새 engine은 이후 실행부터 적용됩니다.
- engine 오류는 로그와 diagnostics에 표시됩니다.