Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
agents.*, multiAgent.*, session.*,
messages.*, talk.* 아래의 에이전트 범위 구성 키입니다. 채널, 도구, Gateway 런타임 및 기타
최상위 키는 구성 참조를 참조하세요.
에이전트 기본값
agents.defaults.workspace
기본값: ~/.openclaw/workspace.
agents.defaults.repoRoot
시스템 프롬프트의 Runtime 줄에 표시되는 선택적 리포지토리 루트입니다. 설정하지 않으면 OpenClaw가 워크스페이스에서 위로 올라가며 자동 감지합니다.
agents.defaults.skills
agents.list[].skills를 설정하지 않은 에이전트를 위한 선택적 기본 skill 허용 목록입니다.
- 기본적으로 제한 없는 skills를 사용하려면
agents.defaults.skills를 생략하세요. - 기본값을 상속하려면
agents.list[].skills를 생략하세요. - skills를 사용하지 않으려면
agents.list[].skills: []를 설정하세요. - 비어 있지 않은
agents.list[].skills목록은 해당 에이전트의 최종 집합입니다. 기본값과 병합되지 않습니다.
agents.defaults.skipBootstrap
워크스페이스 부트스트랩 파일(AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md)의 자동 생성을 비활성화합니다.
agents.defaults.skipOptionalBootstrapFiles
필수 부트스트랩 파일은 계속 작성하면서 선택한 선택적 워크스페이스 파일 생성을 건너뜁니다. 유효한 값: SOUL.md, USER.md, HEARTBEAT.md, IDENTITY.md.
agents.defaults.contextInjection
워크스페이스 부트스트랩 파일을 시스템 프롬프트에 주입할 시점을 제어합니다. 기본값: "always".
"continuation-skip": 안전한 연속 턴(완료된 어시스턴트 응답 이후)은 워크스페이스 부트스트랩 재주입을 건너뛰어 프롬프트 크기를 줄입니다. Heartbeat 실행과 Compaction 이후 재시도는 여전히 컨텍스트를 다시 빌드합니다."never": 모든 턴에서 워크스페이스 부트스트랩 및 컨텍스트 파일 주입을 비활성화합니다. 프롬프트 수명 주기를 완전히 직접 소유하는 에이전트(사용자 지정 컨텍스트 엔진, 자체 컨텍스트를 빌드하는 네이티브 런타임 또는 특수한 부트스트랩 없는 워크플로)에만 사용하세요. Heartbeat 및 Compaction 복구 턴도 주입을 건너뜁니다.
agents.defaults.bootstrapMaxChars
잘라내기 전 워크스페이스 부트스트랩 파일당 최대 문자 수입니다. 기본값: 12000.
agents.defaults.bootstrapTotalMaxChars
모든 워크스페이스 부트스트랩 파일 전체에 주입되는 총 최대 문자 수입니다. 기본값: 60000.
agents.defaults.bootstrapPromptTruncationWarning
부트스트랩 컨텍스트가 잘릴 때 에이전트에 표시되는 시스템 프롬프트 알림을 제어합니다.
기본값: "once".
"off": 잘라내기 알림 텍스트를 시스템 프롬프트에 절대 주입하지 않습니다."once": 고유한 잘라내기 시그니처마다 간결한 알림을 한 번 주입합니다(권장)."always": 잘라내기가 있으면 모든 실행마다 간결한 알림을 주입합니다.
컨텍스트 예산 소유권 맵
OpenClaw에는 대용량 프롬프트/컨텍스트 예산이 여러 개 있으며, 모두 하나의 일반 노브를 통과하게 하지 않고 의도적으로 하위 시스템별로 나뉩니다.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: 일반 워크스페이스 부트스트랩 주입.agents.defaults.startupContext.*: 최근 일일memory/*.md파일을 포함한 일회성 재설정/시작 모델 실행 프렐류드입니다. 단순 채팅/new및/reset명령은 모델을 호출하지 않고 확인 응답만 합니다.skills.limits.*: 시스템 프롬프트에 주입되는 압축된 skills 목록.agents.defaults.contextLimits.*: 제한된 런타임 발췌 및 주입된 런타임 소유 블록.memory.qmd.limits.*: 인덱싱된 메모리 검색 스니펫 및 주입 크기.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
재설정/시작 모델 실행에서 첫 번째 턴 시작 프렐류드 주입을 제어합니다.
단순 채팅 /new 및 /reset 명령은 모델을 호출하지 않고 재설정을 확인하므로 이 프렐류드를 로드하지 않습니다.
agents.defaults.contextLimits
제한된 런타임 컨텍스트 표면에 대한 공유 기본값입니다.
memoryGetMaxChars: 잘라내기 메타데이터와 연속 알림이 추가되기 전 기본memory_get발췌 상한입니다.memoryGetDefaultLines:lines가 생략되었을 때 기본memory_get줄 창입니다.toolResultMaxChars: 유지되는 결과와 오버플로 복구에 사용되는 라이브 도구 결과 상한입니다.postCompactionMaxChars: Compaction 이후 새로고침 주입 중 사용되는 AGENTS.md 발췌 상한입니다.
agents.list[].contextLimits
공유 contextLimits 노브에 대한 에이전트별 재정의입니다. 생략된 필드는 agents.defaults.contextLimits에서 상속됩니다.
skills.limits.maxSkillsPromptChars
시스템 프롬프트에 주입되는 압축된 skills 목록의 전역 상한입니다. 이는 필요할 때 SKILL.md 파일을 읽는 것에는 영향을 주지 않습니다.
agents.list[].skillsLimits.maxSkillsPromptChars
skills 프롬프트 예산에 대한 에이전트별 재정의입니다.
agents.defaults.imageMaxDimensionPx
제공자 호출 전에 transcript/도구 이미지 블록에서 가장 긴 이미지 변의 최대 픽셀 크기입니다.
기본값: 1200.
값이 낮을수록 일반적으로 스크린샷이 많은 실행에서 비전 토큰 사용량과 요청 페이로드 크기가 줄어듭니다.
값이 높을수록 더 많은 시각적 세부 정보를 보존합니다.
agents.defaults.userTimezone
시스템 프롬프트 컨텍스트의 시간대입니다(메시지 타임스탬프 아님). 호스트 시간대로 대체됩니다.
agents.defaults.timeFormat
시스템 프롬프트의 시간 형식입니다. 기본값: auto(OS 기본 설정).
agents.defaults.model
model: 문자열("provider/model") 또는 객체({ primary, fallbacks })를 허용합니다.- 문자열 형식은 기본 모델만 설정합니다.
- 객체 형식은 기본 모델과 순서가 있는 페일오버 모델을 설정합니다.
imageModel: 문자열("provider/model") 또는 객체({ primary, fallbacks })를 허용합니다.image도구 경로에서 비전 모델 구성으로 사용됩니다.- 선택된/기본 모델이 이미지 입력을 받을 수 없을 때 fallback 라우팅으로도 사용됩니다.
- 명시적인
provider/model참조를 권장합니다. 호환성을 위해 단독 ID도 허용됩니다. 단독 ID가models.providers.*.models에 구성된 이미지 지원 항목 하나와 고유하게 일치하면 OpenClaw가 해당 제공자로 한정합니다. 구성된 일치 항목이 모호하면 명시적인 제공자 접두사가 필요합니다.
imageGenerationModel: 문자열("provider/model") 또는 객체({ primary, fallbacks })를 허용합니다.- 공유 이미지 생성 기능과 이미지를 생성하는 향후 도구/Plugin 표면에서 사용됩니다.
- 일반적인 값: 네이티브 Gemini 이미지 생성용
google/gemini-3.1-flash-image-preview, fal용fal/fal-ai/flux/dev, OpenAI Images용openai/gpt-image-2, 또는 투명 배경 OpenAI PNG/WebP 출력용openai/gpt-image-1.5. - 제공자/모델을 직접 선택하는 경우 일치하는 제공자 인증도 구성하세요(예:
google/*에는GEMINI_API_KEY또는GOOGLE_API_KEY,openai/gpt-image-2/openai/gpt-image-1.5에는OPENAI_API_KEY또는 OpenAI Codex OAuth,fal/*에는FAL_KEY). - 생략하면
image_generate는 인증 기반 제공자 기본값을 여전히 추론할 수 있습니다. 먼저 현재 기본 제공자를 시도한 다음, 나머지 등록된 이미지 생성 제공자를 제공자 ID 순서로 시도합니다.
musicGenerationModel: 문자열("provider/model") 또는 객체({ primary, fallbacks })를 허용합니다.- 공유 음악 생성 기능과 내장
music_generate도구에서 사용됩니다. - 일반적인 값:
google/lyria-3-clip-preview,google/lyria-3-pro-preview, 또는minimax/music-2.6. - 생략하면
music_generate는 인증 기반 제공자 기본값을 여전히 추론할 수 있습니다. 먼저 현재 기본 제공자를 시도한 다음, 나머지 등록된 음악 생성 제공자를 제공자 ID 순서로 시도합니다. - 제공자/모델을 직접 선택하는 경우 일치하는 제공자 인증/API 키도 구성하세요.
- 공유 음악 생성 기능과 내장
videoGenerationModel: 문자열("provider/model") 또는 객체({ primary, fallbacks })를 허용합니다.- 공유 비디오 생성 기능과 내장
video_generate도구에서 사용됩니다. - 일반적인 값:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flash, 또는qwen/wan2.7-r2v. - 생략하면
video_generate는 인증 기반 제공자 기본값을 여전히 추론할 수 있습니다. 먼저 현재 기본 제공자를 시도한 다음, 나머지 등록된 비디오 생성 제공자를 제공자 ID 순서로 시도합니다. - 제공자/모델을 직접 선택하는 경우 일치하는 제공자 인증/API 키도 구성하세요.
- 번들 Qwen 비디오 생성 제공자는 최대 출력 비디오 1개, 입력 이미지 1개, 입력 비디오 4개, 길이 10초, 그리고 제공자 수준
size,aspectRatio,resolution,audio,watermark옵션을 지원합니다.
- 공유 비디오 생성 기능과 내장
pdfModel: 문자열("provider/model") 또는 객체({ primary, fallbacks })를 허용합니다.pdf도구에서 모델 라우팅에 사용됩니다.- 생략하면 PDF 도구는
imageModel로 fallback한 다음, 해석된 세션/기본 모델로 fallback합니다.
pdfMaxBytesMb: 호출 시maxBytesMb가 전달되지 않았을 때pdf도구의 기본 PDF 크기 제한입니다.pdfMaxPages:pdf도구의 추출 fallback 모드에서 고려하는 기본 최대 페이지 수입니다.verboseDefault: 에이전트의 기본 verbose 수준입니다. 값:"off","on","full". 기본값:"off".toolProgressDetail:/verbose도구 요약 및 진행 초안 도구 줄의 세부 모드입니다. 값:"explain"(기본값, 간결한 사람이 읽기 쉬운 라벨) 또는"raw"(사용 가능한 경우 원시 명령/세부 정보 추가). 에이전트별agents.list[].toolProgressDetail은 이 기본값을 재정의합니다.reasoningDefault: 에이전트의 기본 reasoning 표시 여부입니다. 값:"off","on","stream". 에이전트별agents.list[].reasoningDefault는 이 기본값을 재정의합니다. 구성된 reasoning 기본값은 메시지별 또는 세션 reasoning 재정의가 설정되지 않았을 때 소유자, 승인된 발신자, 또는 운영자 관리자 Gateway 컨텍스트에만 적용됩니다.elevatedDefault: 에이전트의 기본 elevated-output 수준입니다. 값:"off","on","ask","full". 기본값:"on".model.primary: 형식은provider/model입니다(예: OpenAI API 키 또는 Codex OAuth 액세스의 경우openai/gpt-5.5). 제공자를 생략하면 OpenClaw는 먼저 alias를 시도한 다음, 해당 정확한 모델 ID에 대해 고유하게 구성된 제공자 일치를 시도하고, 그 다음에야 구성된 기본 제공자로 fallback합니다(사용 중단된 호환성 동작이므로 명시적인provider/model을 권장합니다). 해당 제공자가 더 이상 구성된 기본 모델을 노출하지 않으면 OpenClaw는 오래되어 제거된 제공자 기본값을 표시하는 대신 구성된 첫 번째 제공자/모델로 fallback합니다.models:/model에 대해 구성된 모델 카탈로그 및 허용 목록입니다. 각 항목은alias(단축명)와params(제공자별, 예:temperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold,chat_template_kwargs,extra_body/extraBody)를 포함할 수 있습니다.- 모든 모델 ID를 수동으로 나열하지 않고 선택한 제공자에서 발견된 모든 모델을 표시하려면
"openai-codex/*": {}또는"vllm/*": {}같은provider/*항목을 사용하세요. - 안전한 편집: 항목을 추가하려면
openclaw config set agents.defaults.models '<json>' --strict-json --merge를 사용하세요.config set은--replace를 전달하지 않는 한 기존 허용 목록 항목을 제거하는 교체를 거부합니다. - 제공자 범위 구성/온보딩 흐름은 선택한 제공자 모델을 이 맵에 병합하고 이미 구성된 관련 없는 제공자를 보존합니다.
- 직접 OpenAI Responses 모델의 경우 서버 측 Compaction이 자동으로 활성화됩니다.
context_management주입을 중지하려면params.responsesServerCompaction: false를 사용하고, 임계값을 재정의하려면params.responsesCompactThreshold를 사용하세요. OpenAI 서버 측 Compaction을 참조하세요.
- 모든 모델 ID를 수동으로 나열하지 않고 선택한 제공자에서 발견된 모든 모델을 표시하려면
params: 모든 모델에 적용되는 전역 기본 제공자 매개변수입니다.agents.defaults.params에 설정합니다(예:{ cacheRetention: "long" }).params병합 우선순위(구성):agents.defaults.params(전역 기준)는agents.defaults.models["provider/model"].params(모델별)에 의해 재정의되고, 그 다음agents.list[].params(일치하는 에이전트 ID)가 키별로 재정의합니다. 자세한 내용은 Prompt Caching을 참조하세요.params.extra_body/params.extraBody: OpenAI 호환 프록시의api: "openai-completions"요청 본문에 병합되는 고급 pass-through JSON입니다. 생성된 요청 키와 충돌하면 extra body가 우선합니다. 네이티브가 아닌 completions 경로는 이후에도 OpenAI 전용store를 제거합니다.params.chat_template_kwargs: 최상위api: "openai-completions"요청 본문에 병합되는 vLLM/OpenAI 호환 chat-template 인수입니다. thinking이 꺼진vllm/nemotron-3-*의 경우 번들 vLLM Plugin이 자동으로enable_thinking: false와force_nonempty_content: true를 보냅니다. 명시적인chat_template_kwargs는 생성된 기본값을 재정의하며,extra_body.chat_template_kwargs가 여전히 최종 우선순위를 가집니다. vLLM Qwen thinking 제어의 경우 해당 모델 항목에서params.qwenThinkingFormat을"chat-template"또는"top-level"로 설정하세요.compat.thinkingFormat: OpenAI 호환 thinking 페이로드 스타일입니다. Qwen 스타일 최상위enable_thinking에는"qwen"을 사용하고, vLLM처럼 요청 수준 chat-template kwargs를 지원하는 Qwen 계열 백엔드의chat_template_kwargs.enable_thinking에는"qwen-chat-template"을 사용하세요. OpenClaw는 비활성화된 thinking을false로, 활성화된 thinking을true로 매핑합니다.compat.supportedReasoningEfforts: 모델별 OpenAI 호환 reasoning effort 목록입니다. 실제로 이를 허용하는 사용자 지정 엔드포인트에는"xhigh"를 포함하세요. 그러면 OpenClaw는 해당 구성된 제공자/모델에 대해 명령 메뉴, Gateway 세션 행, 세션 패치 검증, 에이전트 CLI 검증,llm-task검증에서/think xhigh를 노출합니다. 백엔드가 표준 수준에 대해 제공자별 값을 요구하는 경우compat.reasoningEffortMap을 사용하세요.params.preserveThinking: 보존된 thinking을 위한 Z.AI 전용 옵트인입니다. 활성화되고 thinking이 켜져 있으면 OpenClaw는thinking.clear_thinking: false를 보내고 이전reasoning_content를 재생합니다. Z.AI thinking 및 보존된 thinking을 참조하세요.localService: 로컬/셀프 호스팅 모델 서버를 위한 선택적 제공자 수준 프로세스 관리자입니다. 선택한 모델이 해당 제공자에 속하면 OpenClaw는healthUrl(또는baseUrl + "/models")을 probe하고, 엔드포인트가 내려가 있으면args와 함께command를 시작한 뒤 최대readyTimeoutMs까지 기다린 다음 모델 요청을 보냅니다.command는 절대 경로여야 합니다.idleStopMs: 0은 OpenClaw가 종료될 때까지 프로세스를 유지합니다. 양수 값은 해당 유휴 밀리초가 지난 뒤 OpenClaw가 생성한 프로세스를 중지합니다. 로컬 모델 서비스를 참조하세요.- 런타임 정책은
agents.defaults가 아니라 제공자 또는 모델에 속합니다. 제공자 전체 규칙에는models.providers.<provider>.agentRuntime을 사용하고, 모델별 규칙에는agents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntime를 사용하세요. 공식 OpenAI 제공자의 OpenAI 에이전트 모델은 기본적으로 Codex를 선택합니다. - 이 필드를 변경하는 구성 작성기(예:
/models set,/models set-image, fallback 추가/제거 명령)는 표준 객체 형식을 저장하고 가능한 경우 기존 fallback 목록을 보존합니다. maxConcurrent: 세션 전체의 최대 병렬 에이전트 실행 수입니다(각 세션은 여전히 직렬화됨). 기본값: 4.
런타임 정책
id:"auto","pi", 등록된 Plugin harness ID, 또는 지원되는 CLI 백엔드 alias입니다. 번들 Codex Plugin은codex를 등록하며, 번들 Anthropic Plugin은claude-cliCLI 백엔드를 제공합니다.id: "auto"는 등록된 Plugin harness가 지원되는 turn을 claim할 수 있게 하고, 일치하는 harness가 없으면 PI를 사용합니다.id: "codex"같은 명시적 Plugin 런타임은 해당 harness를 요구하며, 사용할 수 없거나 실패하면 실패로 닫힙니다.- 전체 에이전트 런타임 키는 레거시입니다.
agents.defaults.agentRuntime,agents.list[].agentRuntime, 세션 런타임 pin,OPENCLAW_AGENT_RUNTIME은 런타임 선택에서 무시됩니다. 오래된 값을 제거하려면openclaw doctor --fix를 실행하세요. - OpenAI 에이전트 모델은 기본적으로 Codex harness를 사용합니다. 이를 명시하고 싶을 때 제공자/모델
agentRuntime.id: "codex"는 여전히 유효합니다. - Claude CLI 배포의 경우
model: "anthropic/claude-opus-4-7"와 모델 범위agentRuntime.id: "claude-cli"를 함께 사용하는 것을 권장합니다. 레거시claude-cli/claude-opus-4-7모델 참조는 호환성을 위해 여전히 작동하지만, 새 구성은 제공자/모델 선택을 표준으로 유지하고 실행 백엔드는 제공자/모델 런타임 정책에 넣어야 합니다. - 이는 텍스트 에이전트 turn 실행만 제어합니다. 미디어 생성, 비전, PDF, 음악, 비디오, TTS는 여전히 각 제공자/모델 설정을 사용합니다.
agents.defaults.models에 모델이 있을 때만 적용):
| 별칭 | 모델 |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.5 |
gpt-mini | openai/gpt-5.4-mini |
gpt-nano | openai/gpt-5.4-nano |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite-preview |
--thinking off를 설정하거나 agents.defaults.models["zai/<model>"].params.thinking을 직접 정의하지 않는 한 자동으로 thinking 모드를 활성화합니다.
Z.AI 모델은 도구 호출 스트리밍을 위해 기본적으로 tool_stream을 활성화합니다. 비활성화하려면 agents.defaults.models["zai/<model>"].params.tool_stream을 false로 설정하세요.
Anthropic Claude 4.6 모델은 명시적인 thinking 수준이 설정되지 않은 경우 기본적으로 adaptive thinking을 사용합니다.
agents.defaults.cliBackends
텍스트 전용 대체 실행을 위한 선택적 CLI 백엔드입니다(도구 호출 없음). API 공급자가 실패할 때 백업으로 유용합니다.
- CLI 백엔드는 텍스트 우선이며, 도구는 항상 비활성화됩니다.
sessionArg가 설정된 경우 세션이 지원됩니다.imageArg가 파일 경로를 받는 경우 이미지 패스스루가 지원됩니다.reseedFromRawTranscriptWhenUncompacted: true를 사용하면 첫 Compaction 요약이 존재하기 전에 제한된 원시 OpenClaw transcript 꼬리에서 백엔드가 안전한 무효화된 세션을 복구할 수 있습니다. 인증 프로필 또는 credential-epoch 변경은 여전히 원시 reseed를 절대 수행하지 않습니다.
agents.defaults.systemPromptOverride
OpenClaw가 조립한 전체 시스템 프롬프트를 고정 문자열로 교체합니다. 기본 수준(agents.defaults.systemPromptOverride) 또는 에이전트별(agents.list[].systemPromptOverride)로 설정합니다. 에이전트별 값이 우선하며, 비어 있거나 공백만 있는 값은 무시됩니다. 제어된 프롬프트 실험에 유용합니다.
agents.defaults.promptOverlays
모델 패밀리별로 적용되는 공급자 독립적 프롬프트 오버레이입니다. GPT-5 패밀리 모델 ID는 공급자 전반에 걸쳐 공유 동작 계약을 받으며, personality는 친근한 상호작용 스타일 계층만 제어합니다.
"friendly"(기본값)와"on"은 친근한 상호작용 스타일 계층을 활성화합니다."off"는 친근한 계층만 비활성화하며, 태그가 지정된 GPT-5 동작 계약은 계속 활성화된 상태로 유지됩니다.- 이 공유 설정이 지정되지 않은 경우 레거시
plugins.entries.openai.config.personality도 계속 읽습니다.
agents.defaults.heartbeat
주기적 Heartbeat 실행입니다.
every: 기간 문자열(ms/s/m/h)입니다. 기본값:30m(API 키 인증) 또는1h(OAuth 인증). 비활성화하려면0m으로 설정하세요.includeSystemPromptSection: false이면 시스템 프롬프트에서 Heartbeat 섹션을 생략하고 부트스트랩 컨텍스트에HEARTBEAT.md주입을 건너뜁니다. 기본값:true.suppressToolErrorWarnings: true이면 Heartbeat 실행 중 도구 오류 경고 페이로드를 억제합니다.timeoutSeconds: Heartbeat 에이전트 턴이 중단되기 전에 허용되는 최대 시간(초)입니다. 설정하지 않으면agents.defaults.timeoutSeconds를 사용합니다.directPolicy: 직접/DM 전달 정책입니다.allow(기본값)는 직접 대상 전달을 허용합니다.block은 직접 대상 전달을 억제하고reason=dm-blocked를 내보냅니다.lightContext: true이면 Heartbeat 실행이 경량 부트스트랩 컨텍스트를 사용하고 워크스페이스 부트스트랩 파일 중HEARTBEAT.md만 유지합니다.isolatedSession: true이면 각 Heartbeat가 이전 대화 기록 없이 새 세션에서 실행됩니다. cronsessionTarget: "isolated"와 동일한 격리 패턴입니다. Heartbeat당 토큰 비용을 약 100K에서 약 2-5K 토큰으로 줄입니다.skipWhenBusy: true이면 Heartbeat 실행이 해당 에이전트의 추가 busy lane, 즉 자체 세션 키 기반 하위 에이전트 또는 중첩 명령 작업 때문에 지연됩니다. 이 플래그가 없어도 Cron lane은 항상 Heartbeat를 지연합니다.- 에이전트별:
agents.list[].heartbeat를 설정합니다. 어떤 에이전트든heartbeat를 정의하면 해당 에이전트만 Heartbeat를 실행합니다. - Heartbeat는 전체 에이전트 턴을 실행합니다. 간격이 짧을수록 더 많은 토큰을 소모합니다.
agents.defaults.compaction
mode:default또는safeguard(긴 기록을 위한 청크 단위 요약)입니다. Compaction을 참고하세요.provider: 등록된 Compaction 공급자 Plugin의 ID입니다. 설정하면 내장 LLM 요약 대신 공급자의summarize()가 호출됩니다. 실패 시 내장 방식으로 폴백합니다. 공급자를 설정하면mode: "safeguard"가 강제됩니다. Compaction을 참고하세요.timeoutSeconds: OpenClaw가 단일 Compaction 작업을 중단하기 전에 허용하는 최대 초입니다. 기본값:900.keepRecentTokens: 가장 최근 transcript 꼬리를 그대로 보존하기 위한 Pi cut-point 예산입니다. 명시적으로 설정된 경우 수동/compact가 이를 따르며, 그렇지 않으면 수동 Compaction은 hard checkpoint입니다.identifierPolicy:strict(기본값),off또는custom입니다.strict는 Compaction 요약 중 내장 opaque 식별자 보존 지침을 앞에 붙입니다.identifierInstructions:identifierPolicy=custom일 때 사용되는 선택적 사용자 지정 식별자 보존 텍스트입니다.qualityGuard: safeguard 요약에 대한 malformed-output 재시도 검사입니다. safeguard 모드에서는 기본적으로 활성화되며, 감사를 건너뛰려면enabled: false로 설정하세요.midTurnPrecheck: 선택적 Pi 도구 루프 pressure 검사입니다.enabled: true이면 OpenClaw는 도구 결과가 추가된 뒤 다음 모델 호출 전에 컨텍스트 pressure를 확인합니다. 컨텍스트가 더 이상 맞지 않으면 프롬프트를 제출하기 전에 현재 시도를 중단하고 기존 precheck 복구 경로를 재사용하여 도구 결과를 truncate하거나 compact한 뒤 다시 시도합니다.default와safeguardCompaction 모드 모두에서 작동합니다. 기본값: 비활성화.postCompactionSections: Compaction 후 다시 주입할 선택적 AGENTS.md H2/H3 섹션 이름입니다. 기본값은["Session Startup", "Red Lines"]이며, 다시 주입을 비활성화하려면[]로 설정하세요. 설정하지 않았거나 명시적으로 해당 기본 쌍으로 설정한 경우, 이전Every Session/Safety제목도 레거시 폴백으로 허용됩니다.model: Compaction 요약에만 적용되는 선택적provider/model-idoverride입니다. 메인 세션은 한 모델을 유지하되 Compaction 요약은 다른 모델에서 실행해야 할 때 사용하세요. 설정하지 않으면 Compaction은 세션의 기본 모델을 사용합니다.maxActiveTranscriptBytes: 활성 JSONL이 임계값을 초과할 때 실행 전에 일반 로컬 Compaction을 트리거하는 선택적 바이트 임계값(number또는"20mb"같은 문자열)입니다. 성공한 Compaction이 더 작은 후속 transcript로 rotate할 수 있도록truncateAfterCompaction이 필요합니다. 설정하지 않았거나0이면 비활성화됩니다.notifyUser:true이면 Compaction이 시작될 때와 완료될 때 사용자에게 짧은 알림을 보냅니다(예: “Compacting context…” 및 “Compaction complete”). Compaction을 조용히 유지하기 위해 기본적으로 비활성화되어 있습니다.memoryFlush: 자동 Compaction 전에 durable memory를 저장하기 위한 silent agentic turn입니다. 이 housekeeping 턴이 로컬 모델에 머물러야 할 때model을ollama/qwen3:8b같은 정확한 provider/model로 설정하세요. override는 활성 세션 fallback chain을 상속하지 않습니다. 워크스페이스가 읽기 전용이면 건너뜁니다.
agents.defaults.runRetries
실패 복구 중 무한 실행 루프를 방지하기 위한 내장 Pi runner의 외부 실행 루프 재시도 반복 경계입니다. 이 설정은 현재 내장 에이전트 런타임에만 적용되며 ACP 또는 CLI 런타임에는 적용되지 않습니다.
base: 외부 실행 루프의 기본 실행 재시도 반복 수입니다. 기본값:24.perProfile: fallback profile 후보당 부여되는 추가 실행 재시도 반복 수입니다. 기본값:8.min: 실행 재시도 반복의 절대 최소 한도입니다. 기본값:32.max: runaway 실행을 방지하기 위한 실행 재시도 반복의 절대 최대 한도입니다. 기본값:160.
agents.defaults.contextPruning
LLM에 보내기 전에 인메모리 컨텍스트에서 오래된 도구 결과를 pruning합니다. 디스크의 세션 기록은 수정하지 않습니다.
cache-ttl 모드 동작
cache-ttl 모드 동작
mode: "cache-ttl"는 정리 패스를 활성화합니다.ttl은 마지막 캐시 접근 이후 정리를 다시 실행할 수 있는 빈도를 제어합니다.- 정리는 먼저 크기가 큰 도구 결과를 소프트 트림한 다음, 필요한 경우 더 오래된 도구 결과를 하드 클리어합니다.
...를 삽입합니다.하드 클리어는 전체 도구 결과를 자리표시자로 대체합니다.참고:- 이미지 블록은 절대 트림되거나 클리어되지 않습니다.
- 비율은 정확한 토큰 수가 아니라 문자 기반(근사치)입니다.
- 어시스턴트 메시지가
keepLastAssistants보다 적으면 정리를 건너뜁니다.
블록 스트리밍
- Telegram이 아닌 채널은 블록 답장을 활성화하려면 명시적으로
*.blockStreaming: true가 필요합니다. - 채널 재정의:
channels.<channel>.blockStreamingCoalesce(및 계정별 변형). Signal/Slack/Discord/Google Chat의 기본값은minChars: 1500입니다. humanDelay: 블록 답장 사이의 무작위 일시 중지입니다.natural= 800~2500ms. 에이전트별 재정의:agents.list[].humanDelay.
입력 표시기
- 기본값: 직접 채팅/멘션은
instant, 멘션되지 않은 그룹 채팅은message입니다. - 세션별 재정의:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
내장 에이전트를 위한 선택적 샌드박싱입니다. 전체 가이드는 샌드박싱을 참조하세요.
샌드박스 세부 정보
샌드박스 세부 정보
sandbox.docker.binds는 Docker 전용입니다.
이미지 빌드(소스 체크아웃에서):
docker build 명령은 샌드박싱 § 이미지 및 설정을 참조하세요.
agents.list(에이전트별 재정의)
agents.list[].tts를 사용하여 에이전트에 자체 TTS 제공자, 음성, 모델,
스타일 또는 자동 TTS 모드를 지정하세요. 에이전트 블록은 전역
messages.tts 위에 깊은 병합을 수행하므로, 공유 자격 증명은 한곳에 유지하면서 개별
에이전트는 필요한 음성 또는 제공자 필드만 재정의할 수 있습니다. 활성 에이전트의
재정의는 자동 음성 응답, /tts audio, /tts status, 그리고
tts 에이전트 도구에 적용됩니다. 제공자 예시와 우선순위는 텍스트 음성 변환을
참조하세요.
id: 안정적인 에이전트 ID(필수).default: 여러 개가 설정된 경우 첫 번째가 우선합니다(경고가 기록됨). 아무것도 설정하지 않으면 목록의 첫 번째 항목이 기본값입니다.model: 문자열 형식은 모델 폴백 없이 엄격한 에이전트별 기본 모델을 설정합니다. 객체 형식{ primary }도fallbacks를 추가하지 않는 한 엄격합니다.{ primary, fallbacks: [...] }를 사용하면 해당 에이전트가 폴백을 사용하도록 선택할 수 있고,{ primary, fallbacks: [] }를 사용하면 엄격한 동작을 명시할 수 있습니다.primary만 재정의하는 Cron 작업은fallbacks: []를 설정하지 않는 한 여전히 기본 폴백을 상속합니다.params:agents.defaults.models에서 선택된 모델 항목 위에 병합되는 에이전트별 스트림 매개변수입니다. 전체 모델 카탈로그를 중복하지 않고cacheRetention,temperature,maxTokens같은 에이전트별 재정의에 사용하세요.tts: 선택 사항인 에이전트별 텍스트 음성 변환 재정의입니다. 이 블록은messages.tts위에 깊은 병합을 수행하므로, 공유 제공자 자격 증명과 폴백 정책은messages.tts에 두고 제공자, 음성, 모델, 스타일 또는 자동 모드처럼 페르소나별 값만 여기에서 설정하세요.skills: 선택 사항인 에이전트별 Skills 허용 목록입니다. 생략하면 에이전트는 설정된 경우agents.defaults.skills를 상속합니다. 명시적 목록은 병합하지 않고 기본값을 대체하며,[]는 Skills가 없음을 의미합니다.thinkingDefault: 선택 사항인 에이전트별 기본 사고 수준(off | minimal | low | medium | high | xhigh | adaptive | max)입니다. 메시지별 또는 세션 재정의가 설정되지 않았을 때 이 에이전트에 대해agents.defaults.thinkingDefault를 재정의합니다. 선택된 제공자/모델 프로필이 유효한 값을 제어합니다. Google Gemini의 경우adaptive는 제공자가 소유한 동적 사고를 유지합니다(Gemini 3/3.1에서는thinkingLevel생략, Gemini 2.5에서는thinkingBudget: -1).reasoningDefault: 선택 사항인 에이전트별 기본 추론 표시 여부(on | off | stream)입니다. 메시지별 또는 세션 추론 재정의가 설정되지 않았을 때 이 에이전트에 대해agents.defaults.reasoningDefault를 재정의합니다.fastModeDefault: 선택 사항인 빠른 모드의 에이전트별 기본값(true | false)입니다. 메시지별 또는 세션 빠른 모드 재정의가 설정되지 않았을 때 적용됩니다.models: 전체provider/modelID를 키로 하는 선택 사항인 에이전트별 모델 카탈로그/런타임 재정의입니다. 에이전트별 런타임 예외에는models["provider/model"].agentRuntime을 사용하세요.runtime: 선택 사항인 에이전트별 런타임 설명자입니다. 에이전트가 기본적으로 ACP 하네스 세션을 사용해야 할 때runtime.acp기본값(agent,backend,mode,cwd)과 함께type: "acp"를 사용하세요.identity.avatar: 워크스페이스 상대 경로,http(s)URL 또는data:URI입니다.identity는 기본값을 파생합니다.emoji에서ackReaction을,name/emoji에서mentionPatterns를 파생합니다.subagents.allowAgents: 명시적sessions_spawn.agentId대상에 대한 에이전트 ID 허용 목록입니다(["*"]= 모든 에이전트, 기본값: 동일한 에이전트만). 자기 자신을 대상으로 하는agentId호출을 허용해야 하는 경우 요청자 ID를 포함하세요.- 샌드박스 상속 가드: 요청자 세션이 샌드박스된 경우
sessions_spawn은 샌드박스 없이 실행될 대상을 거부합니다. subagents.requireAgentId: true이면agentId를 생략한sessions_spawn호출을 차단합니다(명시적 프로필 선택 강제, 기본값: false).
다중 에이전트 라우팅
하나의 Gateway 안에서 여러 격리된 에이전트를 실행합니다. 다중 에이전트를 참조하세요.바인딩 일치 필드
type(선택 사항): 일반 라우팅에는route(type 누락 시 route가 기본값), 지속 ACP 대화 바인딩에는acp.match.channel(필수)match.accountId(선택 사항;*= 모든 계정, 생략 = 기본 계정)match.peer(선택 사항;{ kind: direct|group|channel, id })match.guildId/match.teamId(선택 사항; 채널별)acp(선택 사항;type: "acp"에만 해당):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(정확히 일치, 피어/길드/팀 없음)match.accountId: "*"(채널 전체)- 기본 에이전트
bindings 항목이 우선합니다.
type: "acp" 항목의 경우 OpenClaw는 정확한 대화 ID(match.channel + account + match.peer.id)로 확인하며, 위의 라우트 바인딩 계층 순서를 사용하지 않습니다.
에이전트별 액세스 프로필
전체 액세스(샌드박스 없음)
전체 액세스(샌드박스 없음)
읽기 전용 도구 + 워크스페이스
읽기 전용 도구 + 워크스페이스
파일 시스템 액세스 없음(메시징 전용)
파일 시스템 액세스 없음(메시징 전용)
세션
세션 필드 세부 정보
세션 필드 세부 정보
scope: 그룹 채팅 컨텍스트의 기본 세션 그룹화 전략입니다.per-sender(기본값): 각 발신자가 채널 컨텍스트 내에서 격리된 세션을 가집니다.global: 채널 컨텍스트의 모든 참여자가 단일 세션을 공유합니다(공유 컨텍스트가 의도된 경우에만 사용).
dmScope: DM을 그룹화하는 방식입니다.main: 모든 DM이 메인 세션을 공유합니다.per-peer: 채널 전반에서 발신자 ID별로 격리합니다.per-channel-peer: 채널 + 발신자별로 격리합니다(다중 사용자 받은편지함에 권장).per-account-channel-peer: 계정 + 채널 + 발신자별로 격리합니다(다중 계정에 권장).
identityLinks: 채널 간 세션 공유를 위해 정식 ID를 제공자 접두사가 붙은 피어에 매핑합니다./dock_discord같은 도킹 명령은 동일한 맵을 사용하여 활성 세션의 답장 경로를 다른 연결된 채널 피어로 전환합니다. 채널 도킹을 참조하세요.reset: 기본 재설정 정책입니다.daily는atHour현지 시간에 재설정되고,idle은idleMinutes이후 재설정됩니다. 둘 다 구성된 경우 먼저 만료되는 쪽이 적용됩니다. 일일 재설정의 최신성은 세션 행의sessionStartedAt을 사용하고, 유휴 재설정의 최신성은lastInteractionAt을 사용합니다. Heartbeat, Cron 깨우기, 실행 알림, Gateway 장부 처리 같은 백그라운드/시스템 이벤트 쓰기는updatedAt을 업데이트할 수 있지만, 일일/유휴 세션을 최신 상태로 유지하지는 않습니다.resetByType: 유형별 재정의(direct,group,thread)입니다. 레거시dm은direct의 별칭으로 허용됩니다.mainKey: 레거시 필드입니다. 런타임은 기본 직접 채팅 버킷에 항상"main"을 사용합니다.agentToAgent.maxPingPongTurns: 에이전트 간 교환 중 에이전트 사이의 최대 답장 왕복 턴 수입니다(정수, 범위:0-20, 기본값:5).0은 핑퐁 체이닝을 비활성화합니다.sendPolicy:channel,chatType(direct|group|channel, 레거시dm별칭 포함),keyPrefix또는rawKeyPrefix로 일치시킵니다. 첫 번째 거부가 적용됩니다.maintenance: 세션 저장소 정리 + 보존 제어입니다.mode:warn은 경고만 내보내고,enforce는 정리를 적용합니다.pruneAfter: 오래된 항목의 나이 기준값입니다(기본값30d).maxEntries:sessions.json의 최대 항목 수입니다(기본값500). 런타임은 프로덕션 크기 제한을 위해 작은 상한 버퍼를 두고 배치 정리를 기록합니다.openclaw sessions cleanup --enforce는 제한을 즉시 적용합니다.rotateBytes: 사용 중단되었으며 무시됩니다.openclaw doctor --fix는 이전 구성에서 이를 제거합니다.resetArchiveRetention:*.reset.<timestamp>대화 기록 아카이브의 보존 기간입니다. 기본값은pruneAfter입니다. 비활성화하려면false로 설정하세요.maxDiskBytes: 선택적 세션 디렉터리 디스크 예산입니다.warn모드에서는 경고를 기록하고,enforce모드에서는 가장 오래된 아티팩트/세션을 먼저 제거합니다.highWaterBytes: 예산 정리 후 선택적 목표값입니다. 기본값은maxDiskBytes의80%입니다.
threadBindings: 스레드 바인딩 세션 기능의 전역 기본값입니다.enabled: 마스터 기본 스위치입니다(제공자가 재정의할 수 있음. Discord는channels.discord.threadBindings.enabled사용).idleHours: 시간 단위의 기본 비활성 자동 언포커스입니다(0은 비활성화. 제공자가 재정의할 수 있음).maxAgeHours: 시간 단위의 기본 하드 최대 수명입니다(0은 비활성화. 제공자가 재정의할 수 있음).spawnSessions:sessions_spawn및 ACP 스레드 스폰에서 스레드 바인딩 작업 세션 생성을 제어하는 기본 게이트입니다. 스레드 바인딩이 활성화된 경우 기본값은true입니다. 제공자/계정이 재정의할 수 있습니다.defaultSpawnContext: 스레드 바인딩 스폰을 위한 기본 네이티브 하위 에이전트 컨텍스트입니다("fork"또는"isolated"). 기본값은"fork"입니다.
메시지
응답 접두사
채널/계정별 재정의:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
해결 방식(가장 구체적인 항목이 우선): 계정 → 채널 → 전역. ""는 비활성화하고 연쇄 적용을 중지합니다. "auto"는 [{identity.name}]에서 파생됩니다.
템플릿 변수:
| 변수 | 설명 | 예시 |
|---|---|---|
{model} | 짧은 모델 이름 | claude-opus-4-6 |
{modelFull} | 전체 모델 식별자 | anthropic/claude-opus-4-6 |
{provider} | 제공자 이름 | anthropic |
{thinkingLevel} | 현재 사고 수준 | high, low, off |
{identity.name} | 에이전트 ID 이름 | ("auto"와 동일) |
{think}는 {thinkingLevel}의 별칭입니다.
확인 반응
- 기본값은 활성 에이전트의
identity.emoji이며, 없으면"👀"입니다. 비활성화하려면""로 설정하세요. - 채널별 재정의:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - 해결 순서: 계정 → 채널 →
messages.ackReaction→ ID 대체값. - 범위:
group-mentions(기본값),group-all,direct,all. removeAckAfterReply: Slack, Discord, Telegram, WhatsApp, iMessage 같은 반응 지원 채널에서 답장 후 확인 반응을 제거합니다.messages.statusReactions.enabled: Slack, Discord, Telegram에서 수명 주기 상태 반응을 활성화합니다. Slack 및 Discord에서는 설정하지 않으면 확인 반응이 활성화된 경우 상태 반응도 활성 상태로 유지됩니다. Telegram에서는 수명 주기 상태 반응을 활성화하려면 명시적으로true로 설정하세요.
인바운드 디바운스
동일한 발신자의 빠른 텍스트 전용 메시지를 단일 에이전트 턴으로 묶습니다. 미디어/첨부 파일은 즉시 플러시됩니다. 제어 명령은 디바운스를 우회합니다.TTS(텍스트 음성 변환)
auto는 기본 자동 TTS 모드를 제어합니다:off,always,inbound또는tagged./tts on|off는 로컬 기본 설정을 재정의할 수 있으며,/tts status는 유효한 상태를 표시합니다.summaryModel은 자동 요약에 대해agents.defaults.model.primary를 재정의합니다.modelOverrides는 기본적으로 활성화됩니다.modelOverrides.allowProvider의 기본값은false입니다(옵트인).- API 키는
ELEVENLABS_API_KEY/XI_API_KEY및OPENAI_API_KEY로 대체됩니다. - 번들 음성 제공자는 Plugin 소유입니다.
plugins.allow가 설정된 경우 사용하려는 각 TTS 제공자 Plugin을 포함하세요. 예를 들어 Edge TTS에는microsoft를 포함합니다. 레거시edge제공자 ID는microsoft의 별칭으로 허용됩니다. providers.openai.baseUrl은 OpenAI TTS 엔드포인트를 재정의합니다. 해결 순서는 구성,OPENAI_TTS_BASE_URL,https://api.openai.com/v1입니다.providers.openai.baseUrl이 OpenAI가 아닌 엔드포인트를 가리키면 OpenClaw는 이를 OpenAI 호환 TTS 서버로 취급하고 모델/음성 검증을 완화합니다.
대화
대화 모드의 기본값(macOS/iOS/Android)입니다.- 여러 대화 제공자가 구성된 경우
talk.provider는talk.providers의 키와 일치해야 합니다. - 레거시 플랫 대화 키(
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey)는 호환성 전용입니다. 유지된 구성을talk.providers.<provider>로 다시 쓰려면openclaw doctor --fix를 실행하세요. - 음성 ID는
ELEVENLABS_VOICE_ID또는SAG_VOICE_ID로 대체됩니다. providers.*.apiKey는 일반 텍스트 문자열 또는 SecretRef 객체를 허용합니다.ELEVENLABS_API_KEY대체값은 대화 API 키가 구성되지 않은 경우에만 적용됩니다.providers.*.voiceAliases를 사용하면 대화 지시문에서 친숙한 이름을 사용할 수 있습니다.providers.mlx.modelId는 macOS 로컬 MLX 헬퍼에서 사용하는 Hugging Face 리포지토리를 선택합니다. 생략하면 macOS는mlx-community/Soprano-80M-bf16을 사용합니다.- macOS MLX 재생은 번들
openclaw-mlx-tts헬퍼가 있으면 이를 통해 실행되고, 없으면PATH의 실행 파일을 통해 실행됩니다.OPENCLAW_MLX_TTS_BIN은 개발을 위해 헬퍼 경로를 재정의합니다. consultThinkingLevel은 Control UI 대화 실시간openclaw_agent_consult호출 뒤에서 실행되는 전체 OpenClaw 에이전트 실행의 사고 수준을 제어합니다. 일반 세션/모델 동작을 유지하려면 설정하지 마세요.consultFastMode는 세션의 일반 빠른 모드 설정을 변경하지 않고 Control UI 대화 실시간 상담에 대해 일회성 빠른 모드 재정의를 설정합니다.speechLocale은 iOS/macOS 대화 음성 인식에서 사용하는 BCP 47 로케일 ID를 설정합니다. 기기 기본값을 사용하려면 설정하지 마세요.silenceTimeoutMs는 사용자 침묵 후 대화 모드가 대화 기록을 보내기 전까지 기다리는 시간을 제어합니다. 설정하지 않으면 플랫폼 기본 일시 중지 창(macOS 및 Android에서는 700 ms, iOS에서는 900 ms)이 유지됩니다.realtime.instructions는 제공자 대상 시스템 지침을 OpenClaw의 기본 제공 실시간 프롬프트에 추가하므로, 기본openclaw_agent_consult지침을 잃지 않고 음성 스타일을 구성할 수 있습니다.