tools.* 구성 키와 사용자 지정 Provider / base-URL 설정입니다. 에이전트,
채널 및 기타 최상위 구성 키는
구성 참조를 참고하세요.
도구
도구 프로필
tools.profile은 tools.allow/tools.deny 전에 기본 허용 목록을 설정합니다.
로컬 온보딩은 설정되지 않은 새 로컬 구성의 기본값을 tools.profile: "coding"으로 설정합니다(기존의 명시적 프로필은 유지됨).
| 프로필 | 포함 항목 |
|---|---|
minimal | session_status만 |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | 제한 없음(미설정과 동일) |
도구 그룹
| 그룹 | 도구 |
|---|---|
group:runtime | exec, process, code_execution (bash는 exec의 별칭으로 허용됨) |
group:fs | read, write, edit, apply_patch |
group:sessions | sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory | memory_search, memory_get |
group:web | web_search, x_search, web_fetch |
group:ui | browser, canvas |
group:automation | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image, image_generate, video_generate, tts |
group:openclaw | 모든 내장 도구(Provider Plugin 제외) |
tools.allow / tools.deny
전역 도구 허용/거부 정책입니다(거부 우선). 대소문자를 구분하지 않으며 * 와일드카드를 지원합니다. Docker 샌드박스가 꺼져 있어도 적용됩니다.
tools.byProvider
특정 Provider 또는 모델에 대해 도구를 추가로 제한합니다. 순서: 기본 프로필 → Provider 프로필 → allow/deny.
tools.elevated
샌드박스 외부의 상승된 exec 접근을 제어합니다:
- 에이전트별 재정의(
agents.list[].tools.elevated)는 추가 제한만 할 수 있습니다. /elevated on|off|ask|full은 상태를 세션별로 저장하며, 인라인 지시문은 단일 메시지에 적용됩니다.- 상승된
exec는 샌드박싱을 우회하고 구성된 이스케이프 경로를 사용합니다(gateway가 기본값이며, exec 대상이node일 때는node).
tools.exec
tools.loopDetection
도구 루프 안전성 검사는 기본적으로 비활성화되어 있습니다. 감지를 활성화하려면 enabled: true를 설정하세요.
설정은 전역 tools.loopDetection에 정의할 수 있으며 에이전트별로 agents.list[].tools.loopDetection에서 재정의할 수 있습니다.
historySize: 루프 분석을 위해 유지되는 최대 도구 호출 기록.warningThreshold: 경고를 위한 반복 무진행 패턴 임계값.criticalThreshold: 치명적 루프 차단을 위한 더 높은 반복 임계값.globalCircuitBreakerThreshold: 모든 무진행 실행에 대한 강제 중단 임계값.detectors.genericRepeat: 동일 도구/동일 인자 호출 반복 시 경고.detectors.knownPollNoProgress: 알려진 폴 도구(process.poll,command_status등)의 무진행 상태에서 경고/차단.detectors.pingPong: 번갈아 나타나는 무진행 쌍 패턴에서 경고/차단.warningThreshold >= criticalThreshold이거나criticalThreshold >= globalCircuitBreakerThreshold이면 검증에 실패합니다.
tools.web
tools.media
인바운드 미디어 이해(이미지/오디오/비디오)를 구성합니다:
미디어 모델 항목 필드
미디어 모델 항목 필드
Provider 항목 (
type: "provider" 또는 생략):provider: API Provider id (openai,anthropic,google/gemini,groq등)model: 모델 id 재정의profile/preferredProfile:auth-profiles.json프로필 선택
type: "cli"):command: 실행할 실행 파일args: 템플릿화된 인자({{MediaPath}},{{Prompt}},{{MaxChars}}등 지원)
capabilities: 선택적 목록(image,audio,video). 기본값:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: 항목별 재정의.- 실패하면 다음 항목으로 폴백합니다.
auth-profiles.json → env vars → models.providers.*.apiKey.비동기 완료 필드:asyncCompletion.directSend:true일 때 완료된 비동기music_generate및video_generate작업은 먼저 채널 직접 전달을 시도합니다. 기본값:false(기존 요청자 세션 깨우기/모델 전달 경로).
tools.agentToAgent
tools.sessions
세션 도구(sessions_list, sessions_history, sessions_send)가 어떤 세션을 대상으로 할 수 있는지 제어합니다.
기본값: tree(현재 세션 + 이 세션에서 생성된 세션, 예: 서브에이전트).
self: 현재 세션 키만.tree: 현재 세션 + 현재 세션에서 생성된 세션(서브에이전트).agent: 현재 에이전트 id에 속한 모든 세션(동일한 에이전트 id 아래 발신자별 세션을 실행하는 경우 다른 사용자 포함 가능).all: 모든 세션. 에이전트 간 타기팅에는 여전히tools.agentToAgent가 필요합니다.- 샌드박스 clamp: 현재 세션이 샌드박스 상태이고
agents.defaults.sandbox.sessionToolsVisibility="spawned"이면tools.sessions.visibility="all"이어도 가시성은 강제로tree가 됩니다.
tools.sessions_spawn
sessions_spawn의 인라인 첨부 파일 지원을 제어합니다.
- 첨부 파일은
runtime: "subagent"에서만 지원됩니다. ACP 런타임은 이를 거부합니다. - 파일은
.manifest.json과 함께.openclaw/attachments/<uuid>/아래 자식 워크스페이스에 실체화됩니다. - 첨부 파일 내용은 전사 영속화에서 자동으로 비식별화됩니다.
- Base64 입력은 엄격한 알파벳/패딩 검사와 디코드 전 크기 가드로 검증됩니다.
- 파일 권한은 디렉터리
0700, 파일0600입니다. - 정리는
cleanup정책을 따릅니다:delete는 항상 첨부를 제거하고,keep은retainOnSessionKeep: true일 때만 유지합니다.
tools.experimental
실험적 내장 도구 플래그입니다. 엄격한 agentic GPT-5 자동 활성화 규칙이 적용되지 않는 한 기본값은 꺼짐입니다.
planTool: 중요하고 다단계인 작업 추적을 위한 구조화된update_plan도구를 활성화합니다.- 기본값: OpenAI 또는 OpenAI Codex GPT-5 계열 실행에서
agents.defaults.embeddedPi.executionContract(또는 에이전트별 재정의)가"strict-agentic"으로 설정된 경우를 제외하고false. 이 범위 밖에서도 강제로 켜려면true, strict-agentic GPT-5 실행에서도 끄려면false로 설정하세요. - 활성화되면 시스템 프롬프트에도 사용 지침이 추가되어, 모델이 실질적인 작업에만 이를 사용하고 동시에
in_progress단계는 최대 하나만 유지하도록 합니다.
agents.defaults.subagents
model: 생성된 서브에이전트의 기본 모델입니다. 생략하면 서브에이전트는 호출자의 모델을 상속합니다.allowAgents: 요청 에이전트가 자체subagents.allowAgents를 설정하지 않았을 때sessions_spawn에 대한 대상 에이전트 id의 기본 허용 목록입니다(["*"]= 모두 허용, 기본값: 동일 에이전트만).runTimeoutSeconds: 도구 호출에서runTimeoutSeconds를 생략했을 때sessions_spawn의 기본 타임아웃(초)입니다.0은 타임아웃 없음입니다.- 서브에이전트별 도구 정책:
tools.subagents.tools.allow/tools.subagents.tools.deny.
사용자 지정 Provider 및 base URL
OpenClaw는 내장 모델 카탈로그를 사용합니다. 구성의models.providers 또는 ~/.openclaw/agents/<agentId>/agent/models.json을 통해 사용자 지정 Provider를 추가합니다.
- 사용자 지정 인증이 필요하면
authHeader: true와headers를 사용하세요. OPENCLAW_AGENT_DIR(또는 레거시 환경 변수 별칭인PI_CODING_AGENT_DIR)로 에이전트 구성 루트를 재정의합니다.- 일치하는 Provider ID에 대한 병합 우선순위:
- 비어 있지 않은 에이전트
models.json의baseUrl값이 우선합니다. - 비어 있지 않은 에이전트
apiKey값은 해당 Provider가 현재 구성/auth-profile 컨텍스트에서 SecretRef로 관리되지 않을 때만 우선합니다. - SecretRef로 관리되는 Provider
apiKey값은 해석된 시크릿을 영속 저장하는 대신 소스 마커(envref의 경우ENV_VAR_NAME,file/execref의 경우secretref-managed)에서 새로 고쳐집니다. - SecretRef로 관리되는 Provider 헤더 값은 소스 마커(
envref의 경우secretref-env:ENV_VAR_NAME,file/execref의 경우secretref-managed)에서 새로 고쳐집니다. - 비어 있거나 누락된 에이전트
apiKey/baseUrl는 구성의models.providers로 폴백합니다. - 일치하는 모델의
contextWindow/maxTokens는 명시적 구성값과 암시적 카탈로그 값 중 더 큰 값을 사용합니다. - 일치하는 모델의
contextTokens는 명시적인 런타임 상한이 있을 경우 이를 유지합니다. 모델의 네이티브 메타데이터를 바꾸지 않고 유효 컨텍스트를 제한하려면 이를 사용하세요. - 구성이
models.json을 완전히 다시 쓰게 하려면models.mode: "replace"를 사용하세요. - 마커 영속성은 소스 권한 기준입니다. 마커는 해석된 런타임 시크릿 값이 아니라 활성 소스 구성 스냅샷(해석 전)에서 기록됩니다.
- 비어 있지 않은 에이전트
Provider 필드 세부 정보
models.mode: Provider 카탈로그 동작(merge또는replace).models.providers: Provider id를 키로 하는 사용자 지정 Provider 맵.- 안전한 편집: 추가 업데이트에는
openclaw config set models.providers.<id> '<json>' --strict-json --merge또는openclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge를 사용하세요.config set은--replace를 전달하지 않으면 파괴적인 교체를 거부합니다.
- 안전한 편집: 추가 업데이트에는
models.providers.*.api: 요청 어댑터(openai-completions,openai-responses,anthropic-messages,google-generative-ai등).models.providers.*.apiKey: Provider 자격 증명(SecretRef/env 치환 권장).models.providers.*.auth: 인증 전략(api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: Ollama +openai-completions에서 요청에options.num_ctx를 주입합니다(기본값:true).models.providers.*.authHeader: 필요할 때Authorization헤더로 자격 증명을 강제로 전송합니다.models.providers.*.baseUrl: 업스트림 API base URL.models.providers.*.headers: 프록시/테넌트 라우팅용 추가 정적 헤더.models.providers.*.request: 모델 Provider HTTP 요청에 대한 전송 재정의.request.headers: 추가 헤더(Provider 기본값과 병합됨). 값은 SecretRef를 받을 수 있습니다.request.auth: 인증 전략 재정의. 모드:"provider-default"(Provider의 내장 인증 사용),"authorization-bearer"(token사용),"header"(headerName,value, 선택적prefix사용).request.proxy: HTTP 프록시 재정의. 모드:"env-proxy"(HTTP_PROXY/HTTPS_PROXYenv vars 사용),"explicit-proxy"(url사용). 두 모드 모두 선택적tls하위 객체를 받을 수 있습니다.request.tls: 직접 연결용 TLS 재정의. 필드:ca,cert,key,passphrase(모두 SecretRef 허용),serverName,insecureSkipVerify.request.allowPrivateNetwork:true이면 Provider HTTP fetch 가드를 통해 DNS가 private, CGNAT 또는 유사 범위로 해석될 때baseUrl에 대한 HTTPS를 허용합니다(신뢰할 수 있는 self-hosted OpenAI 호환 엔드포인트를 위한 운영자 옵트인). WebSocket은 헤더/TLS에 동일한request를 사용하지만 해당 fetch SSRF 게이트는 사용하지 않습니다. 기본값은false.
models.providers.*.models: 명시적인 Provider 모델 카탈로그 항목.models.providers.*.models.*.contextWindow: 모델의 네이티브 컨텍스트 창 메타데이터.models.providers.*.models.*.contextTokens: 선택적 런타임 컨텍스트 상한입니다. 모델의 네이티브contextWindow보다 더 작은 유효 컨텍스트 예산을 원할 때 사용하세요.models.providers.*.models.*.compat.supportsDeveloperRole: 선택적 호환성 힌트.api: "openai-completions"이고 비어 있지 않은 비네이티브baseUrl(api.openai.com이 아닌 호스트)인 경우 OpenClaw는 런타임에 이를false로 강제합니다. 비어 있거나 생략된baseUrl은 기본 OpenAI 동작을 유지합니다.models.providers.*.models.*.compat.requiresStringContent: 문자열 전용 OpenAI 호환 채팅 엔드포인트용 선택적 호환성 힌트.true이면 OpenClaw는 요청 전송 전에 순수 텍스트messages[].content배열을 일반 문자열로 평탄화합니다.plugins.entries.amazon-bedrock.config.discovery: Bedrock 자동 검색 설정 루트.plugins.entries.amazon-bedrock.config.discovery.enabled: 암시적 검색의 활성화/비활성화.plugins.entries.amazon-bedrock.config.discovery.region: 검색에 사용할 AWS 리전.plugins.entries.amazon-bedrock.config.discovery.providerFilter: 대상 검색용 선택적 Provider-id 필터.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: 검색 새로 고침 폴링 간격.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: 검색된 모델에 대한 폴백 컨텍스트 창.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: 검색된 모델에 대한 폴백 최대 출력 토큰 수.
Provider 예시
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7을 사용하고, Z.AI 직접 연결에는 zai/glm-4.7을 사용하세요.OpenCode
OpenCode
OPENCODE_API_KEY(또는 OPENCODE_ZEN_API_KEY)를 설정하세요. Zen 카탈로그에는 opencode/... 참조를, Go 카탈로그에는 opencode-go/... 참조를 사용하세요. 바로 가기: openclaw onboard --auth-choice opencode-zen 또는 openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY를 설정하세요. z.ai/*와 z-ai/*는 허용되는 별칭입니다. 바로 가기: openclaw onboard --auth-choice zai-api-key.- 일반 엔드포인트:
https://api.z.ai/api/paas/v4 - 코딩 엔드포인트(기본값):
https://api.z.ai/api/coding/paas/v4 - 일반 엔드포인트를 사용하려면 base URL 재정의를 포함한 사용자 지정 Provider를 정의하세요.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" 또는 openclaw onboard --auth-choice moonshot-api-key-cn.네이티브 Moonshot 엔드포인트는 공유된
openai-completions 전송에서 스트리밍 사용량 호환성을 광고하며, OpenClaw는 이를 내장 Provider id만이 아니라 엔드포인트 기능을 기준으로 판단합니다.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (Anthropic-compatible)
Synthetic (Anthropic-compatible)
/v1을 포함하지 않아야 합니다(Anthropic 클라이언트가 이를 추가함). 바로 가기: openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (direct)
MiniMax M2.7 (direct)
MINIMAX_API_KEY를 설정하세요. 바로 가기:
openclaw onboard --auth-choice minimax-global-api 또는
openclaw onboard --auth-choice minimax-cn-api.
모델 카탈로그 기본값은 M2.7만 포함합니다.
Anthropic 호환 스트리밍 경로에서 OpenClaw는 사용자가 직접 thinking을 설정하지 않는 한 기본적으로 MiniMax thinking을 비활성화합니다. /fast on 또는 params.fastMode: true는 MiniMax-M2.7을 MiniMax-M2.7-highspeed로 다시 씁니다.로컬 모델(LM Studio)
로컬 모델(LM Studio)
로컬 모델을 참고하세요. 요약: 충분한 하드웨어에서는 LM Studio Responses API를 통해 큰 로컬 모델을 실행하고, 폴백을 위해 호스팅 모델은 병합된 상태로 유지하세요.
관련 문서
- 구성 참조 — 기타 최상위 키
- 구성 — 에이전트
- 구성 — 채널
- 도구 및 Plugins