chore(i18n): refresh ko translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-15 14:49:49 +00:00
parent 176058bbfb
commit b95a4493de
12 changed files with 2009 additions and 1968 deletions

View File

@ -1,23 +1,23 @@
---
read_when:
- 메모리 승격이 자동으로 실행되도록 하려는 경우
- 각 Dreaming 단계가 무엇을 하는지 이해하고 싶은 경우
- '`MEMORY.md`를 오염시키지 않고 통합을 조정하려는 경우'
- 메모리 승격이 자동으로 실행되기를 원합니다
- 각 Dreaming 단계가 무엇을 하는지 이해하고 싶습니다
- '`MEMORY.md`를 오염시키지 않고 통합을 조정하고 싶습니다'
summary: 가벼운 수면, 깊은 수면, REM 단계와 Dream Diary를 포함한 백그라운드 메모리 통합
title: Dreaming (실험적)
title: Dreaming
x-i18n:
generated_at: "2026-04-15T06:00:32Z"
generated_at: "2026-04-15T14:40:30Z"
model: gpt-5.4
provider: openai
source_hash: 5882a5068f2eabe54ca9893184e5385330a432b921870c38626399ce11c31e25
source_hash: a5bcaec80f62e7611ed533094ef1917bd72c885f57252824db910e1f0496adc6
source_path: concepts/dreaming.md
workflow: 15
---
# Dreaming (실험적)
# Dreaming
Dreaming은 `memory-core`의 백그라운드 메모리 통합 시스템입니다.
기능은 OpenClaw가 강한 단기 신호를 지속 가능한 메모리로 옮기도록 도우면서,
시스템은 OpenClaw가 강한 단기 신호를 지속 가능한 메모리로 옮길 수 있도록 도우면서,
그 과정이 설명 가능하고 검토 가능하도록 유지합니다.
Dreaming은 **옵트인** 방식이며 기본적으로 비활성화되어 있습니다.
@ -26,101 +26,104 @@ Dreaming은 **옵트인** 방식이며 기본적으로 비활성화되어 있습
Dreaming은 두 종류의 출력을 유지합니다.
- `memory/.dreams/`**기계 상태**(recall 저장소, phase 신호, 수집 체크포인트, 잠금).
- `DREAMS.md`(또는 기존 `dreams.md`)의 **사람이 읽을 수 있는 출력**과 `memory/dreaming/<phase>/YYYY-MM-DD.md` 아래의 선택적 phase 보고서 파일.
- `memory/.dreams/`**머신 상태**(리콜 저장소, 단계 신호, 수집 체크포인트, 잠금)
- `DREAMS.md`(또는 기존 `dreams.md`)의 **사람이 읽을 수 있는 출력**, 그리고 선택적으로 `memory/dreaming/<phase>/YYYY-MM-DD.md` 아래의 단계 보고서 파일
장기 승격은 계속해서 `MEMORY.md`에만 기록됩니다.
장기 승격은 여전히 `MEMORY.md`에만 기록됩니다.
## 단계 모델
Dreaming은 세 가지 협력 단계로 동작합니다.
Dreaming은 협력적으로 작동하는 세 가지 단계를 사용합니다.
| 단계 | 목적 | 지속 기록 |
| ----- | ---- | --------- |
| 가벼운 수면 | 최근 단기 자료를 분류하고 준비 | 아니요 |
| 깊은 수면 | 지속 가능한 후보를 점수화하고 승격 | 예 (`MEMORY.md`) |
| REM | 주제와 반복되는 아이디어를 성찰 | 아니요 |
| Light | 최근 단기 자료 정렬 및 스테이징 | 아니요 |
| Deep | 지속 가능한 후보 점수화 및 승격 | 예 (`MEMORY.md`) |
| REM | 테마와 반복되는 아이디어에 대한 성찰 | 아니요 |
이 단계들은 별도의 사용자 구성 "모드"가 아니라 내부 구현 세부 사항입니다.
이 단계들은 내부 구현 세부사항이며, 사용자가 따로 설정하는
"모드"가 아닙니다.
### 가벼운 수면 단계
### Light 단계
가벼운 수면 단계는 최근 일일 메모리 신호와 recall 추적을 수집하고, 중복을 제거한 뒤,
후보 줄을 준비합니다.
Light 단계는 최근 일일 메모리 신호와 리콜 추적을 수집하고, 이를 중복 제거한 뒤
후보 줄을 스테이징합니다.
- 가능한 경우 단기 recall 상태, 최근 일일 메모리 파일, 비식별 처리된 세션 기록을 읽습니다.
- 저장소에 인라인 출력이 포함된 경우 관리되는 `## Light Sleep` 블록을 기록합니다.
- 이후 깊은 순위 산정을 위한 강화 신호를 기록합니다.
- 절대 `MEMORY.md`에 기록하지 않습니다.
- 사용 가능한 경우 단기 리콜 상태, 최근 일일 메모리 파일, 그리고 비식별화된 세션 기록을 읽습니다.
- 저장소에 인라인 출력이 포함되어 있으면 관리되는 `## Light Sleep` 블록을 기록합니다.
- 이후 Deep 순위 산정을 위한 강화 신호를 기록합니다.
- 절대 `MEMORY.md` 기록하지 않습니다.
### 깊은 수면 단계
### Deep 단계
깊은 수면 단계는 무엇이 장기 메모리가 될지 결정합니다.
Deep 단계는 무엇이 장기 메모리가 될지 결정합니다.
- 가중치 기반 점수와 임계값 게이트를 사용해 후보 순위를 매깁니다.
- 통과하려면 `minScore`, `minRecallCount`, `minUniqueQueries`가 필요합니다.
- 기록 전에 실제 일일 파일에서 스니펫을 다시 불러오므로, 오래되었거나 삭제된 스니펫은 건너뜁니다.
- 가중 점수와 임계값 게이트를 사용해 후보 순위를 매깁니다.
- 통과하려면 `minScore`, `minRecallCount`, `minUniqueQueries`를 충족해야 합니다.
- 기록 전에 라이브 일일 파일에서 스니펫을 다시 불러오므로, 오래되었거나 삭제된 스니펫은 건너뜁니다.
- 승격된 항목을 `MEMORY.md`에 추가합니다.
- `DREAMS.md``## Deep Sleep` 요약을 기록하고, 선택적으로 `memory/dreaming/deep/YYYY-MM-DD.md` 기록합니다.
- `DREAMS.md``## Deep Sleep` 요약을 기록하고, 선택적으로 `memory/dreaming/deep/YYYY-MM-DD.md` 기록합니다.
### REM 단계
REM 단계는 패턴과 성찰 신호를 추출합니다.
- 최근 단기 추적에서 주제 및 성찰 요약을 생성합니다.
- 저장소에 인라인 출력이 포함된 경우 관리되는 `## REM Sleep` 블록을 기록합니다.
- 깊은 순위 산정에 사용되는 REM 강화 신호를 기록합니다.
- 절대 `MEMORY.md`에 기록하지 않습니다.
- 최근 단기 추적에서 테마 및 성찰 요약을 생성합니다.
- 저장소에 인라인 출력이 포함되어 있으면 관리되는 `## REM Sleep` 블록을 기록합니다.
- Deep 순위 산정에 사용되는 REM 강화 신호를 기록합니다.
- 절대 `MEMORY.md` 기록하지 않습니다.
## 세션 기록 수집
Dreaming은 비식별 처리된 세션 기록을 Dreaming 코퍼스에 수집할 수 있습니다. 기록을
사용할 수 있으면, 일일 메모리 신호와 recall 추적과 함께 가벼운 수면 단계에 입력됩니다.
개인 정보 및 민감한 내용은 수집 전에 비식별 처리됩니다.
Dreaming은 비식별된 세션 기록을 Dreaming 코퍼스에 수집할 수 있습니다.
기록을 사용할 수 있는 경우, 이는 일일 메모리 신호 및 리콜 추적과 함께 Light 단계에 입력됩니다.
개인 정보 및 민감한 내용은 수집 전에 비식별됩니다.
## Dream Diary
Dreaming은 또한 `DREAMS.md`에 서술형 **Dream Diary**를 유지합니다.
각 단계에 충분한 자료가 쌓이면 `memory-core`는 최선형 백그라운드 하위 에이전트 턴을
실행하고(기본 런타임 모델 사용) 짧은 다이어리 항목을 추가합니다.
각 단계에 충분한 자료가 쌓이면 `memory-core`는 최선의 노력 방식의 백그라운드
서브에이전트 턴(기본 런타임 모델 사용)을 실행하고 짧은 일기 항목을 추가합니다.
이 다이어리는 Dreams UI에서 사람이 읽기 위한 것이며, 승격 소스가 아닙니다.
Dreaming이 생성한 다이어리/보고서 아티팩트는 단기 승격에서 제외됩니다.
근거가 있는 메모리 스니펫만 `MEMORY.md`로 승격될 수 있습니다.
이 일기는 Dreams UI에서 사람이 읽기 위한 것이며, 승격 소스가 아닙니다.
Dreaming이 생성한 일기/보고서 아티팩트는 단기
승격 대상에서 제외됩니다. 오직 근거가 있는 메모리 스니펫만
`MEMORY.md`로 승격될 수 있습니다.
검토 및 복구 작업을 위한 근거 기반 과거 백필 경로도 있습니다.
검토 및 복구 작업을 위한 근거 기반 과거 백필 경로도 있습니다.
- `memory rem-harness --path ... --grounded`는 과거 `YYYY-MM-DD.md` 노트에서 근거 기반 다이어리 출력을 미리 봅니다.
- `memory rem-backfill --path ...`는 되돌릴 수 있는 근거 기반 다이어리 항목을 `DREAMS.md`에 기록합니다.
- `memory rem-backfill --path ... --stage-short-term`는 근거 기반의 지속 가능한 후보를 일반 깊은 단계가 이미 사용하는 것과 동일한 단기 증거 저장소에 준비합니다.
- `memory rem-backfill --rollback``--rollback-short-term`는 일반 다이어리 항목이나 실시간 단기 recall을 건드리지 않고 이러한 준비된 백필 아티팩트를 제거합니다.
- `memory rem-harness --path ... --grounded`는 과거 `YYYY-MM-DD.md` 노트에서 근거 기반 일기 출력을 미리 봅니다.
- `memory rem-backfill --path ...`는 되돌릴 수 있는 근거 기반 일기 항목을 `DREAMS.md`에 기록합니다.
- `memory rem-backfill --path ... --stage-short-term`는 근거 기반 지속 후보를 일반 Deep 단계가 이미 사용하는 동일한 단기 증거 저장소에 스테이징합니다.
- `memory rem-backfill --rollback``--rollback-short-term`은 일반 일기 항목이나 라이브 단기 리콜은 건드리지 않고 해당 스테이징된 백필 아티팩트를 제거합니다.
Control UI는 동일한 다이어리 백필/재설정 흐름을 제공하므로, 근거 기반 후보가
승격될 가치가 있는지 판단하기 전에 Dreams 장면에서 결과를 검사할 수 있습니다.
이 장면은 또한 별도의 근거 기반 레인을 표시하여 어떤 준비된 단기 항목이 과거 재생에서
나왔는지, 어떤 승격 항목이 근거 기반으로 주도되었는지 확인할 수 있게 하며, 일반
실시간 단기 상태를 건드리지 않고 근거 기반 전용 준비 항목만 지울 수 있습니다.
Control UI는 동일한 일기 백필/재설정 흐름을 제공하므로, 근거 기반 후보가
승격할 가치가 있는지 결정하기 전에 Dreams 장면에서 결과를
검토할 수 있습니다. 이 장면은 또한 별도의 근거 기반 레인도 표시하여
어떤 스테이징된 단기 항목이 과거 재생에서 왔는지, 어떤 승격된
항목이 근거 기반 주도였는지 확인할 수 있게 하며, 일반 라이브 단기 상태를
건드리지 않고 근거 기반 전용 스테이징 항목만 지울 수 있습니다.
## 깊은 순위 산정 신호
## Deep 순위 산정 신호
깊은 순위 산정은 여섯 개의 가중치 기반 기본 신호와 단계 강화 신호를 사용합니다.
Deep 순위 산정은 여섯 가지 가중 기본 신호와 단계 강화 신호를 사용합니다.
| 신호 | 가중치 | 설명 |
| ------------------- | ------ | ------------------------------------------------- |
| 빈도 | 0.24 | 항목이 누적한 단기 신호 수 |
| 관련성 | 0.30 | 항목의 평균 검색 품질 |
| 쿼리 다양성 | 0.15 | 항목이 드러난 서로 다른 쿼리/일자 맥락 |
| 쿼리 다양성 | 0.15 | 해당 항목이 드러난 고유한 쿼리/일자 맥락 |
| 최신성 | 0.15 | 시간 감쇠 기반 신선도 점수 |
| 통합 | 0.10 | 여러 날짜에 걸친 반복 강도 |
| 개념적 풍부함 | 0.06 | 스니펫/경로에서의 개념 태그 밀도 |
| 개념적 풍부함 | 0.06 | 스니펫/경로의 개념 태그 밀도 |
가벼운 수면 및 REM 단계의 적중은
Light 및 REM 단계 히트는
`memory/.dreams/phase-signals.json`에서 작은 최신성 감쇠 부스트를 추가합니다.
## 예약 실행
활성화되면 `memory-core`는 전체 Dreaming 스윕을 위한 Cron 작업 하나를 자동 관리합니다.
각 스윕은 다음 순서로 단계를 실행합니다: 가벼운 수면 -> REM -> 깊은 수면.
각 스윕은 순서대로 단계를 실행합니다: light -> REM -> deep.
기본 주기 동작:
@ -168,7 +171,7 @@ Dreaming 활성화:
}
```
## 슬래시 명령
## 슬래시 명령
```
/dreaming status
@ -188,16 +191,16 @@ openclaw memory promote --limit 5
openclaw memory status --deep
```
수동 `memory promote`는 CLI 플래그로 재정의하지 않는 한 기본적으로 깊은 수면 단계 임계값을 사용합니다.
수동 `memory promote`는 CLI 플래그로 재정의하지 않는 한 기본적으로 Deep 단계 임계값을 사용합니다.
특정 후보가 왜 승격되거나 승격되지 않는지 설명합니다.
특정 후보가 왜 승격되거나 승격되지 않는지 설명하기:
```bash
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
```
아무것도 기록하지 않고 REM 성찰, 후보 사실, 깊은 승격 출력을 미리 봅니다.
아무것도 기록하지 않고 REM 성찰, 후보 진실, Deep 승격 출력을 미리 보기:
```bash
openclaw memory rem-harness
@ -213,23 +216,24 @@ openclaw memory rem-harness --json
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
단계 정책, 임계값, 저장소 동작은 내부 구현 세부 사항이며
사용자 대상 설정이 아닙니다.
단계 정책, 임계값, 저장소 동작은 내부 구현
세부사항이며(사용자 대상 설정이 아님)입니다.
전체 키 목록은 [메모리 구성 참조](/ko/reference/memory-config#dreaming-experimental)를 참조하세요.
전체 키 목록은
[메모리 구성 참조](/ko/reference/memory-config#dreaming)를 참조하세요.
## Dreams UI
활성화되면 Gateway의 **Dreams** 탭에는 다음이 표시됩니다.
- 현재 Dreaming 활성화 상태
- 단계별 상태와 관리되는 스윕 존재 여부
- 단계별 상태 및 관리 스윕 존재 여부
- 단기, 근거 기반, 신호, 오늘 승격 수
- 다음 예약 실행 시점
- 준비된 과거 재생 항목을 위한 별도의 근거 기반 장면 레인
- 스테이징된 과거 재생 항목을 위한 별도의 근거 기반 장면 레인
- `doctor.memory.dreamDiary`를 기반으로 하는 확장 가능한 Dream Diary 리더
## 관련 항목
## 관련 문서
- [메모리](/ko/concepts/memory)
- [메모리 검색](/ko/concepts/memory-search)

View File

@ -0,0 +1,44 @@
---
read_when:
- '``.experimental`` config 키를 보고 이것이 안정적인지 알고 싶습니다.'
- 일반 기본값과 혼동하지 않으면서 미리보기 런타임 기능을 사용해 보고 싶습니다.
- 현재 문서화된 experimental 플래그를 한곳에서 찾고 싶습니다.
summary: OpenClaw에서 experimental 플래그는 무엇을 의미하며 현재 어떤 항목이 문서화되어 있나요?
title: 실험적 기능
x-i18n:
generated_at: "2026-04-15T14:40:30Z"
model: gpt-5.4
provider: openai
source_hash: 2d1c7b3d4cd56ef8a0bdab1deb9918e9b2c9a33f956d63193246087f8633dcf3
source_path: concepts/experimental-features.md
workflow: 15
---
# 실험적 기능
OpenClaw의 실험적 기능은 **옵트인 미리보기 표면**입니다. 안정적인 기본값이나 오래 유지되는 공개 계약으로 자리 잡기 전에 실제 환경에서의 충분한 검증이 더 필요하기 때문에, 명시적인 플래그 뒤에 숨겨져 있습니다.
이를 일반 config와는 다르게 취급하세요.
- 관련 문서에서 사용해 보라고 안내하지 않는 한 **기본적으로 꺼 둡니다**.
- 안정적인 config보다 **형태와 동작이 더 빠르게 바뀔 수 있음**을 예상하세요.
- 이미 안정적인 경로가 있다면 먼저 그 경로를 우선하세요.
- OpenClaw를 널리 배포하려는 경우, experimental 플래그를 공용 기준 설정에 포함하기 전에 더 작은 환경에서 먼저 테스트하세요.
## 현재 문서화된 플래그
| 표면 | 키 | 이런 경우 사용 | 자세히 보기 |
| ------------------------ | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| 로컬 모델 런타임 | `agents.defaults.experimental.localModelLean` | 더 작거나 더 엄격한 로컬 백엔드가 OpenClaw의 전체 기본 도구 표면을 감당하지 못하는 경우 | [로컬 모델](/ko/gateway/local-models) |
| 메모리 검색 | `agents.defaults.memorySearch.experimental.sessionMemory` | `memory_search`가 이전 세션 대화 기록을 인덱싱하도록 하고, 추가 저장소/인덱싱 비용을 감수할 의향이 있는 경우 | [메모리 config 참조](/ko/reference/memory-config#session-memory-search-experimental) |
| 구조화된 계획 도구 | `tools.experimental.planTool` | 호환되는 런타임과 UI에서 다단계 작업 추적을 위해 구조화된 `update_plan` 도구를 노출하고 싶은 경우 | [Gateway config 참조](/ko/gateway/configuration-reference#toolsexperimental) |
## 로컬 모델 린 모드
`agents.defaults.experimental.localModelLean: true`는 성능이 약한 로컬 모델 환경을 위한 완충 장치입니다. `browser`, `cron`, `message` 같은 무거운 기본 도구를 줄여, 작은 컨텍스트나 더 엄격한 OpenAI 호환 백엔드에서도 프롬프트 형태가 더 작고 덜 취약하도록 만듭니다.
이것은 의도적으로 **일반적인 경로가 아닙니다**. 백엔드가 전체 런타임을 문제없이 처리할 수 있다면, 이 옵션은 끄고 두세요.
## 실험적이라고 해서 숨겨야 하는 것은 아닙니다
기능이 실험적이라면, OpenClaw는 문서와 config 경로 자체에서 이를 분명하게 밝혀야 합니다. 반대로 해서는 안 되는 것은, 미리보기 동작을 안정적으로 보이는 기본 노브에 몰래 섞어 넣고 그것이 정상인 것처럼 가장하는 일입니다. 그렇게 하면 config 표면이 지저분해집니다.

View File

@ -1,26 +1,26 @@
---
read_when:
- memory_search가 어떻게 작동하는지 이해하고 싶습니다
- 임베딩 제공자를 선택하고 싶습니다
- 검색 품질을 조정하고 싶습니다
summary: 메모리 검색이 임베딩과 하이브리드 검색을 사용해 관련 노트를 찾는 방법
- memory_search가 어떻게 작동하는지 이해하고 싶습니다.
- 임베딩 제공자를 선택하고 싶습니다.
- 검색 품질을 조정하고 싶습니다.
summary: 메모리 검색은 임베딩과 하이브리드 검색을 사용해 관련 메모를 찾습니다
title: 메모리 검색
x-i18n:
generated_at: "2026-04-12T23:28:04Z"
generated_at: "2026-04-15T14:40:32Z"
model: gpt-5.4
provider: openai
source_hash: 71fde251b7d2dc455574aa458e7e09136f30613609ad8dafeafd53b2729a0310
source_hash: f5757aa8fe8f7fec30ef5c826f72230f591ce4cad591d81a091189d50d4262ed
source_path: concepts/memory-search.md
workflow: 15
---
# 메모리 검색
`memory_search`메모리 파일에서 관련 노트를 찾습니다. 원문과 표현이 달라도 찾을 수 있습니다. 이 기능은 메모리를 작은 청크로 인덱싱한 다음, 임베딩, 키워드 또는 둘 다를 사용해 검색합니다.
`memory_search`원문의 표현이 달라도 메모리 파일에서 관련 메모를 찾습니다. 이 기능은 메모리를 작은 청크로 인덱싱한 뒤, 임베딩, 키워드 또는 둘 다를 사용해 검색하는 방식으로 동작합니다.
## 빠른 시작
OpenAI, Gemini, Voyage 또는 Mistral API 키가 구성되어 있으면 메모리 검색은 자동으로 작동합니다. 제공자를 명시적으로 설정하려면 다음과 같이 하세요.
GitHub Copilot 구독이 있거나 OpenAI, Gemini, Voyage, Mistral API 키가 구성되어 있으면 메모리 검색은 자동으로 작동합니다. 제공자를 명시적으로 설정하려면 다음과 같이 하세요.
```json5
{
@ -38,19 +38,20 @@ API 키 없이 로컬 임베딩을 사용하려면 `provider: "local"`을 사용
## 지원되는 제공자
| 제공자 | ID | API 키 필요 | 참고 |
| ------- | --------- | ----------- | ---------------------------------------------------- |
| OpenAI | `openai` | 예 | 자동 감지, 빠름 |
| Gemini | `gemini` | 예 | 이미지/오디오 인덱싱 지원 |
| Voyage | `voyage` | 예 | 자동 감지 |
| Mistral | `mistral` | 예 | 자동 감지 |
| Bedrock | `bedrock` | 아니요 | AWS 자격 증명 체인이 확인되면 자동 감지 |
| Ollama | `ollama` | 아니요 | 로컬, 명시적으로 설정해야 함 |
| Local | `local` | 아니요 | GGUF 모델, 약 0.6 GB 다운로드 |
| 제공자 | ID | API 키 필요 | 참고 |
| -------------- | ---------------- | ------------- | ---------------------------------------------------- |
| Bedrock | `bedrock` | 아니요 | AWS 자격 증명 체인이 확인되면 자동 감지됨 |
| Gemini | `gemini` | 예 | 이미지/오디오 인덱싱 지원 |
| GitHub Copilot | `github-copilot` | 아니요 | 자동 감지되며 Copilot 구독 사용 |
| Local | `local` | 아니요 | GGUF 모델, 약 0.6GB 다운로드 |
| Mistral | `mistral` | 예 | 자동 감지됨 |
| Ollama | `ollama` | 아니요 | 로컬, 명시적으로 설정해야 함 |
| OpenAI | `openai` | 예 | 자동 감지되며 빠름 |
| Voyage | `voyage` | 예 | 자동 감지됨 |
## 검색 작동 방식
OpenClaw는 두 개의 검색 경로를 병렬로 실행하고 결과를 병합합니다.
OpenClaw는 두 개의 검색 경로를 병렬로 실행한 뒤 결과를 병합합니다.
```mermaid
flowchart LR
@ -63,31 +64,31 @@ flowchart LR
M --> R["Top Results"]
```
- **벡터 검색**은 의미가 비슷한 노트를 찾습니다(예: "gateway host"는 "OpenClaw를 실행하는 머신"과 일치).
- **벡터 검색**은 의미가 비슷한 메모를 찾습니다(`"gateway host"`가 `"OpenClaw를 실행하는 머신"`과 매칭됨).
- **BM25 키워드 검색**은 정확히 일치하는 항목을 찾습니다(ID, 오류 문자열, config 키).
한 경로만 사용할 수 있는 경우(임베딩 없음 또는 FTS 없음) 다른 한 경로만 단독으로 실행됩니다.
한 경로만 사용할 수 있는 경우(임베딩 없음 또는 FTS 없음)에는 다른 한 경로만 단독으로 실행됩니다.
임베딩을 사용할 수 없을 때도 OpenClaw는 단순한 원시 exact-match 정렬로만 되돌아가지 않고 FTS 결과에 대해 어휘 기반 순위를 계속 사용합니다. 이 저하 모드에서는 쿼리 용어를 더 강하게 포괄하는 청크와 관련 파일 경로의 점수를 높여, `sqlite-vec` 또는 임베딩 제공자가 없어도 재현율을 유용하게 유지합니다.
임베딩을 사용할 수 없는 경우에도 OpenClaw는 단순한 원시 정확 일치 순서로만 되돌아가지 않고, FTS 결과에 대해 여전히 어휘 기반 순위를 적용합니다. 이 저하 모드는 쿼리 용어를 더 잘 포함하고 관련 파일 경로를 가진 청크를 우선하므로, `sqlite-vec`나 임베딩 제공자가 없어도 재현율을 유용한 수준으로 유지합니다.
## 검색 품질 개선
노트 기록이 많은 경우 도움이 되는 두 가지 선택적 기능이 있습니다.
메모 기록이 많은 경우, 두 가지 선택적 기능이 도움이 됩니다.
### 시간 감쇠
오래된 노트는 순위 가중치가 점차 줄어들어 더 최근 정보가 먼저 표시됩니다. 기본 반감기인 30일 기준으로 지난달의 노트는 원래 가중치의 50% 점수를 받습니다. `MEMORY.md` 같은 evergreen 파일에는 감쇠가 적용되지 않습니다.
오래된 메모는 순위 가중치가 점차 줄어들어 최근 정보가 먼저 표시됩니다. 기본 반감기 30일 설정에서는 지난달 메모의 점수가 원래 가중치의 50%가 됩니다. `MEMORY.md` 같은 에버그린 파일은 감쇠되지 않습니다.
<Tip>
에이전트에 수개월치 일일 노트가 있고 오래된 정보가 최신 컨텍스트보다 계속 더 높은 순위에 오르면 시간 감쇠를 활성화하세요.
에이전트에 수개월치 일일 메모가 있고 오래된 정보가 최신 컨텍스트보다 계속 상위에 노출된다면 시간 감쇠를 활성화하세요.
</Tip>
### MMR(다양성)
중복되는 결과를 줄입니다. 다섯 개의 노트가 모두 같은 라우터 구성을 언급하더라도, MMR은 같은 내용을 반복하는 대신 상위 결과가 서로 다른 주제를 다루도록 합니다.
중복 결과를 줄입니다. 메모 5개가 모두 같은 라우터 설정을 언급하더라도, MMR은 상위 결과가 반복되지 않고 서로 다른 주제를 다루도록 보장합니다.
<Tip>
`memory_search`가 서로 다른 일일 노트에서 나온 거의 중복된 스니펫을 계속 반환하면 MMR을 활성화하세요.
`memory_search`가 서로 다른 일일 메모에서 거의 중복된 스니펫을 계속 반환한다면 MMR을 활성화하세요.
</Tip>
### 둘 다 활성화
@ -111,22 +112,22 @@ flowchart LR
## 멀티모달 메모리
Gemini Embedding 2를 사용하면 Markdown과 함께 이미지 오디오 파일도 인덱싱할 수 있습니다. 검색 쿼리는 여전히 텍스트이지만, 시각 및 오디오 콘텐츠와 매칭됩니다. 설정 방법은 [메모리 구성 참조](/ko/reference/memory-config)를 확인하세요.
Gemini Embedding 2를 사용하면 Markdown과 함께 이미지 오디오 파일도 인덱싱할 수 있습니다. 검색 쿼리는 여전히 텍스트이지만, 시각 및 오디오 콘텐츠와 매칭됩니다. 설정 방법은 [메모리 구성 참조](/ko/reference/memory-config)를 참고하세요.
## 세션 메모리 검색
선택적으로 세션 전사본을 인덱싱하여 `memory_search`가 이전 대화를 회상할 수 있게 할 수 있습니다. 이 기능은 `memorySearch.experimental.sessionMemory`를 통해 opt-in 방식으로 활성화됩니다. 자세한 내용은 [구성 참조](/ko/reference/memory-config)를 확인하세요.
선택적으로 세션 기록도 인덱싱해 `memory_search`가 이전 대화를 기억하도록 할 수 있습니다. 이 기능은 `memorySearch.experimental.sessionMemory`를 통해 옵트인 방식으로 활성화됩니다. 자세한 내용은 [구성 참조](/ko/reference/memory-config)를 참고하세요.
## 문제 해결
**결과가 없나요?** 인덱스를 확인하려면 `openclaw memory status`를 실행하세요. 비어 있`openclaw memory index --force`를 실행하세요.
**결과가 없나요?** 인덱스를 확인하려면 `openclaw memory status`를 실행하세요. 비어 있`openclaw memory index --force`를 실행하세요.
**키워드 일치만 보이나요?** 임베딩 제공자가 구성되지 않았을 수 있습니다. `openclaw memory status --deep` 확인하세요.
**키워드 일치만 나오나요?** 임베딩 제공자가 구성되지 않았을 수 있습니다. `openclaw memory status --deep` 확인하세요.
**CJK 텍스트를 찾을 수 없나요?** `openclaw memory index --force`로 FTS 인덱스를 다시 빌드하세요.
**CJK 텍스트를 찾지 못하나요?** `openclaw memory index --force`로 FTS 인덱스를 다시 빌드하세요.
## 추가 읽을거리
## 더 읽어보기
- [Active Memory](/ko/concepts/active-memory) -- 대화형 채팅 세션용 하위 에이전트 메모리
- [메모리](/ko/concepts/memory) -- 파일 레이아웃, 백엔드, 도구
- [Active Memory](/ko/concepts/active-memory) -- 대화형 채팅 세션을 위한 서브에이전트 메모리
- [Memory](/ko/concepts/memory) -- 파일 레이아웃, 백엔드, 도구
- [메모리 구성 참조](/ko/reference/memory-config) -- 모든 구성 옵션

View File

@ -1,14 +1,14 @@
---
read_when:
- 메모리가 어떻게 작동하는지 이해하고 싶을 때
- 어떤 메모리 파일에 작성해야 하는지 알고 싶을 때
summary: OpenClaw가 세션 전반에 걸쳐 정보를 기억하는 방
- 메모리가 어떻게 작동하는지 이해하고 싶습니다
- 어떤 메모리 파일에 작성해야 하는지 알고 싶습니다
summary: OpenClaw가 세션 전반에 걸쳐 정보를 기억하는 방
title: 메모리 개요
x-i18n:
generated_at: "2026-04-09T01:27:57Z"
generated_at: "2026-04-15T14:40:46Z"
model: gpt-5.4
provider: openai
source_hash: 2fe47910f5bf1c44be379e971c605f1cb3a29befcf2a7ee11fb3833cbe3b9059
source_hash: ad1adafe1d81f1703d24f48a9c9da2b25a0ebbd4aad4f65d8bde5df78195d55b
source_path: concepts/memory.md
workflow: 15
---
@ -19,119 +19,119 @@ OpenClaw는 에이전트의 워크스페이스에 **일반 Markdown 파일**을
## 작동 방식
에이전트에는 메모리와 관련된 파일이 세 가지 있습니다.
에이전트에는 메모리 관련 파일이 세 가지 있습니다:
- **`MEMORY.md`** -- 장기 메모리입니다. 지속되는 사실, 선호 사항, 결정 사항을 담습니다. 모든 DM 세션이 시작될 때 로드됩니다.
- **`MEMORY.md`** -- 장기 메모리입니다. 지속되는 사실, 선호, 결정 사항을 담습니다. 모든 DM 세션이 시작될 때 로드됩니다.
- **`memory/YYYY-MM-DD.md`** -- 일일 노트입니다. 진행 중인 컨텍스트와 관찰 내용을 담습니다. 오늘과 어제의 노트는 자동으로 로드됩니다.
- **`DREAMS.md`** (실험적, 선택 사항) -- 사람의 검토를 위한 Dream Diary 및 dreaming sweep 요약을 담으며, 근거 기반의 과거 백필 항목도 포함합니다.
- **`DREAMS.md`** (선택 사항) -- 인간이 검토할 수 있도록 Dream Diary와 Dreaming 스윕 요약을 포함하며, 근거가 있는 과거 소급 항목도 포함합니다.
이 파일들은 에이전트 워크스페이스에 있습니다(기본값 `~/.openclaw/workspace`).
이 파일들은 에이전트 워크스페이스(기본값 `~/.openclaw/workspace`)에 있습니다.
<Tip>
에이전트가 무언가를 기억하길 원한다면, 그냥 이렇게 요청하면 됩니다: "내가 TypeScript를 선호한다고 기억해." 그러면 적절한 파일에 기록합니다.
에이전트가 무언가를 기억하길 원한다면, 이렇게 요청하면 됩니다: "내가 TypeScript를 선호한다고 기억해." 그러면 적절한 파일에 기록합니다.
</Tip>
## 메모리 도구
에이전트에는 메모리를 다루기 위한 두 가지 도구가 있습니다.
에이전트에는 메모리를 다루기 위한 두 가지 도구가 있습니다:
- **`memory_search`** -- 원문과 표현이 달라도 시맨틱 검색을 사용해 관련 노트를 찾습니다.
- **`memory_get`** -- 특정 메모리 파일 또는 줄 범위를 읽습니다.
- **`memory_search`** -- 원래 표현과 문구가 다르더라도 시맨틱 검색을 사용해 관련 노트를 찾습니다.
- **`memory_get`** -- 특정 메모리 파일이나 줄 범위를 읽습니다.
두 도구 모두 활성 메모리 플러그인(기본값: `memory-core`)에서 제공합니다.
두 도구 모두 활성 메모리 Plugin(기본값: `memory-core`)이 제공합니다.
## Memory Wiki 컴패니언 플러그인
## Memory Wiki 보조 Plugin
지속 메모리가 단순한 원시 노트가 아니라 관리되는 지식 베이스처럼 동작하길 원한다면, 번들된 `memory-wiki` 플러그인을 사용하세요.
지속 메모리가 단순한 원시 노트가 아니라, 유지 관리되는 지식 베이스처럼 동작하길 원한다면 번들된 `memory-wiki` Plugin을 사용하세요.
`memory-wiki`는 지속 지식을 위키 볼트로 컴파일하며, 다음을 제공합니다.
`memory-wiki`는 지속 지식을 다음과 같은 요소를 갖춘 wiki vault로 컴파일합니다:
- 결정론적인 페이지 구조
- 구조화된 주장과
- 구조화된 주장과
- 모순 및 최신성 추적
- 생성된 대시보드
- 에이전트/런타임 소비자를 위한 컴파일된 다이제스트
- `wiki_search`, `wiki_get`, `wiki_apply`, `wiki_lint` 같은 위키 네이티브 도구
- `wiki_search`, `wiki_get`, `wiki_apply`, `wiki_lint` 같은 wiki 네이티브 도구
플러그인은 활성 메모리 플러그인을 대체하지 않습니다. 활성 메모리 플러그인은 여전히 회상, 승격, dreaming을 담당합니다. `memory-wiki`는 그 옆에 출처가 풍부한 지식 계층을 추가합니다.
Plugin은 활성 메모리 Plugin을 대체하지 않습니다. 활성 메모리 Plugin은 여전히 회상, 승격, Dreaming을 담당합니다. `memory-wiki`는 그 옆에 출처가 풍부한 지식 계층을 추가합니다.
자세한 내용은 [Memory Wiki](/ko/plugins/memory-wiki)를 참조하세요.
## 메모리 검색
임베딩 제공자가 구성되어 있으면 `memory_search`는 **하이브리드 검색**을 사용합니다. 즉, 벡터 유사도(의미적 의미)와 키워드 매칭(ID나 코드 심볼 같은 정확한 용어)을 결합합니다. 지원되는 제공자 중 하나의 API 키만 있으면 바로 사용할 수 있습니다.
임베딩 제공자가 구성되어 있으면 `memory_search`는 **하이브리드 검색**을 사용합니다. 즉, 벡터 유사도(의미적 유사성)와 키워드 매칭(ID나 코드 심볼 같은 정확한 용어)을 결합합니다. 지원되는 제공자 중 하나의 API 키만 있으면 별도 설정 없이 바로 동작합니다.
<Info>
OpenClaw는 사용 가능한 API 키를 바탕으로 임베딩 제공자를 자동 감지합니다. OpenAI, Gemini, Voyage 또는 Mistral 키가 구성되어 있으면 메모리 검색이 자동으로 활성화됩니다.
OpenClaw는 사용 가능한 API 키를 바탕으로 임베딩 제공자를 자동 감지합니다. OpenAI, Gemini, Voyage, 또는 Mistral 키가 구성되어 있으면 메모리 검색이 자동으로 활성화됩니다.
</Info>
검색 동 방식, 튜닝 옵션, 제공자 설정에 대한 자세한 내용은 [Memory Search](/ko/concepts/memory-search)를 참조하세요.
검색 동 방식, 튜닝 옵션, 제공자 설정에 대한 자세한 내용은 [Memory Search](/ko/concepts/memory-search)를 참조하세요.
## 메모리 백엔드
<CardGroup cols={3}>
<Card title="내장(기본값)" icon="database" href="/ko/concepts/memory-builtin">
SQLite 기반입니다. 키워드 검색, 벡터 유사도, 하이브리드 검색을 즉시 사용할 수 있습니다. 추가 의존성이 필요습니다.
<Card title="내장(기본값)" icon="database" href="/ko/concepts/memory-builtin">
SQLite 기반입니다. 키워드 검색, 벡터 유사도, 하이브리드 검색을 즉시 사용할 수 있습니다. 추가 의존성이 필요하지 않습니다.
</Card>
<Card title="QMD" icon="search" href="/ko/concepts/memory-qmd">
재순위 지정, 쿼리 확장, 워크스페이스 외부 디렉터리 인덱싱 기능을 갖춘 로컬 우선 사이드카입니다.
재순위화, 쿼리 확장, 워크스페이스 외부 디렉터리 인덱싱 기능을 제공하는 local-first 사이드카입니다.
</Card>
<Card title="Honcho" icon="brain" href="/ko/concepts/memory-honcho">
사용자 모델링, 시맨틱 검색, 멀티 에이전트 인식을 갖춘 AI 네이티브 크로스세션 메모리입니다. 플러그인을 설치해야 합니다.
사용자 모델링, 시맨틱 검색, 멀티 에이전트 인식을 지원하는 AI 네이티브 크로스 세션 메모리입니다. Plugin 설치가 필요합니다.
</Card>
</CardGroup>
## 지식 위키 계층
## 지식 wiki 계층
<CardGroup cols={1}>
<Card title="Memory Wiki" icon="book" href="/ko/plugins/memory-wiki">
지속 메모리를 주장, 대시보드, 브리지 모드, Obsidian 친화적 워크플로를 갖춘 출처 풍부한 위키 볼트로 컴파일합니다.
지속 메모리를 주장, 대시보드, 브리지 모드, Obsidian 친화적 워크플로를 갖춘 출처가 풍부한 wiki vault로 컴파일합니다.
</Card>
</CardGroup>
## 자동 메모리 플러시
[compaction](/ko/concepts/compaction)이 대화를 요약하기 전에, OpenClaw는 에이전트에게 중요한 컨텍스트를 메모리 파일에 저장하라고 상기시키는 조용한 턴을 실행합니다. 이 기능은 기본적으로 켜져 있으므로 별도로 설정할 필요가 없습니다.
[Compaction](/ko/concepts/compaction)이 대화를 요약하기 전에, OpenClaw는 에이전트에게 중요한 컨텍스트를 메모리 파일에 저장하라고 상기시키는 조용한 턴을 실행합니다. 이것은 기본적으로 활성화되어 있으므로 별도 설정이 필요하지 않습니다.
<Tip>
메모리 플러시는 compaction 중 컨텍스트 손실을 방지합니다. 대화에 중요한 사실이 아직 파일에 기록되지 않았다면, 요약이 이루어지기 전에 자동으로 저장됩니다.
메모리 플러시는 Compaction 중 컨텍스트 손실을 방지합니다. 대화에 중요한 사실이 아직 파일에 기록되지 않았다면, 요약이 이루어지기 전에 자동으로 저장됩니다.
</Tip>
## Dreaming (실험적)
## Dreaming
Dreaming은 메모리를 위한 선택적 백그라운드 통합 패스입니다. 단기 신호를 수집하고, 후보를 점수화하며, 자격을 충족한 항목만 장기 메모리(`MEMORY.md`)로 승격합니다.
Dreaming은 메모리를 위한 선택적 백그라운드 통합 패스입니다. 단기 신호를 수집하고, 후보를 점수화하며, 조건을 충족하는 항목만 장기 메모리(`MEMORY.md`)로 승격합니다.
이 기능은 장기 메모리의 신호 대 잡음비를 높게 유지하도록 설계되었습니다.
장기 메모리의 신호 대 잡음비를 높게 유지하도록 설계되었습니다:
- **Opt-in**: 기본적으로 비활성화되어 있습니다.
- **예약 실행**: 활성화되면 `memory-core`가 전체 dreaming sweep을 위한 반복 cron 작업 하나를 자동으로 관리합니다.
- **임곗값 적용**: 승격은 점수, 회상 빈도, 쿼리 다양성 게이트를 통과해야 합니다.
- **선택적 활성화**: 기본적으로 비활성화되어 있습니다.
- **예약 실행**: 활성화되면 `memory-core`가 전체 Dreaming 스윕을 위한 반복 Cron 작업 하나를 자동 관리합니다.
- **임계값 기반**: 승격은 점수, 회상 빈도, 쿼리 다양성 게이트를 통과해야 합니다.
- **검토 가능**: 단계 요약과 다이어리 항목이 사람이 검토할 수 있도록 `DREAMS.md`에 기록됩니다.
단계별 동작, 점수 신호, Dream Diary 세부 정보는 [Dreaming (experimental)](/ko/concepts/dreaming)을 참조하세요.
단계별 동작, 점수 신호, Dream Diary 세부 정보는 [Dreaming](/ko/concepts/dreaming)을 참조하세요.
## 근거 기반 백필과 라이브 승격
## 근거 기반 소급과 실시간 승격
dreaming 시스템에는 이제 밀접하게 연관된 두 가지 검토 경로가 있습니다.
이제 Dreaming 시스템에는 밀접하게 연결된 두 가지 검토 경로가 있습니다:
- **라이브 dreaming**은 `memory/.dreams/` 아래의 단기 dreaming 저장소를 기반으로 작동하며, 일반적인 딥 단계가 무엇을 `MEMORY.md`로 승격할 수 있는지 결정할 때 사용하는 방식입니다.
- **근거 기반 백필**은 과거의 `memory/YYYY-MM-DD.md` 노트를 독립적인 일일 파일로 읽고, 구조화된 검토 출력을 `DREAMS.md`에 기록합니다.
- **실시간 Dreaming**은 `memory/.dreams/` 아래의 단기 Dreaming 저장소를 기반으로 작동하며, 어떤 항목이 `MEMORY.md`로 승급할 수 있는지 판단할 때 일반적인 심화 단계에서 사용됩니다.
- **근거 기반 소급**은 과거의 `memory/YYYY-MM-DD.md` 노트를 독립적인 일별 파일로 읽고, 구조화된 검토 결과를 `DREAMS.md`에 기록합니다.
근거 기반 백필은 `MEMORY.md`를 수동으로 편집하지 않고도 오래된 노트를 다시 처리하고 시스템이 무엇을 지속적인 정보로 판단하는지 확인하고 싶을 때 유용합니다.
근거 기반 소급은 오래된 노트를 다시 재생하면서 시스템이 무엇을 지속 가능한 정보로 판단하는지 `MEMORY.md`를 직접 편집하지 않고 확인하고 싶을 때 유용합니다.
다음 명령을 사용하면:
다음을 실행하면:
```bash
openclaw memory rem-backfill --path ./memory --stage-short-term
```
근거 기반의 지속 후보는 직접 승격되지 않습니다. 대신 일반적인 딥 단계가 이미 사용하는 것과 동일한 단기 dreaming 저장소에 스테이징됩니다. 즉, 다음을 의미합니다.
근거 기반의 지속 후보는 직접 승격되지 않습니다. 대신 일반적인 심화 단계가 이미 사용하는 동일한 단기 Dreaming 저장소에 스테이징됩니다. 즉:
- `DREAMS.md`계속 사람 검토용 표면으로 남습니다.
- 단기 저장소는 계속 머신 대상 순위화 표면으로 남습니다.
- `MEMORY.md`는 여전히 승격에 의해서만 기록됩니다.
- `DREAMS.md`사람이 검토하는 표면으로 유지됩니다.
- 단기 저장소는 기계가 사용하는 순위화 표면으로 유지됩니다.
- `MEMORY.md`는 여전히 심화 승격에 의해서만 기록됩니다.
처리가 유용하지 않았다고 판단되면, 일반 다이어리 항목이나 정상적인 회상 상태를 건드리지 않고 스테이징된 아티팩트를 제거할 수 있습니다.
생이 유용하지 않았다고 판단되면, 일반적인 다이어리 항목이나 정상적인 회상 상태를 건드리지 않고 스테이징된 아티팩트를 제거할 수 있습니다:
```bash
openclaw memory rem-backfill --rollback
@ -149,10 +149,10 @@ openclaw memory index --force # 인덱스 다시 빌드
## 추가 읽을거리
- [Builtin Memory Engine](/ko/concepts/memory-builtin) -- 기본 SQLite 백엔드
- [QMD Memory Engine](/ko/concepts/memory-qmd) -- 고급 로컬 우선 사이드카
- [Honcho Memory](/ko/concepts/memory-honcho) -- AI 네이티브 크로스세션 메모리
- [Memory Wiki](/ko/plugins/memory-wiki) -- 컴파일된 지식 볼트 및 위키 네이티브 도구
- [Memory Search](/ko/concepts/memory-search) -- 검색 파이프라인, 제공자 튜닝
- [Dreaming (experimental)](/ko/concepts/dreaming) -- 단기 회상에서 장기 메모리로의 백그라운드 승격
- [QMD Memory Engine](/ko/concepts/memory-qmd) -- 고급 local-first 사이드카
- [Honcho Memory](/ko/concepts/memory-honcho) -- AI 네이티브 크로스 세션 메모리
- [Memory Wiki](/ko/plugins/memory-wiki) -- 컴파일된 지식 vault 및 wiki 네이티브 도구
- [Memory Search](/ko/concepts/memory-search) -- 검색 파이프라인, 제공자, 튜닝
- [Dreaming](/ko/concepts/dreaming) -- 단기 회상에서 장기 메모리로의 백그라운드 승격
- [Memory configuration reference](/ko/reference/memory-config) -- 모든 구성 옵션
- [Compaction](/ko/concepts/compaction) -- compaction이 메모리와 상호작용하는 방식
- [Compaction](/ko/concepts/compaction) -- Compaction이 메모리와 상호작용하는 방식

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,28 @@
---
read_when:
- 자체 GPU 서버에서 모델을 제공하려는 경우
- 자체 GPU 머신에서 모델을 제공하려는 경우
- LM Studio 또는 OpenAI 호환 프록시를 연결하는 경우
- 가장 안전한 로컬 모델 가이드가 필요한 경우
- 가장 안전한 로컬 모델 지침이 필요한 경우
summary: 로컬 LLM(LM Studio, vLLM, LiteLLM, 사용자 지정 OpenAI 엔드포인트)에서 OpenClaw 실행하기
title: 로컬 모델
x-i18n:
generated_at: "2026-04-15T06:00:32Z"
generated_at: "2026-04-15T14:40:34Z"
model: gpt-5.4
provider: openai
source_hash: 8778cc1c623a356ff3cf306c494c046887f9417a70ec71e659e4a8aae912a780
source_hash: 7a506ff83e4c2870d3878339f646c906584454a156ecd618c360f592cf3b0011
source_path: gateway/local-models.md
workflow: 15
---
# 로컬 모델
로컬에서도 가능하지만, OpenClaw는 큰 컨텍스트와 프롬프트 인젝션에 대한 강한 방어를 전제로 합니다. 소형 카드에서는 컨텍스트가 잘리고 안전성이 약해집니다. 가능하면 높은 사양을 목표로 하세요: **최소 2대의 풀옵션 Mac Studio 또는 이에 준하는 GPU 장비(약 $30k+)**. 단일 **24 GB** GPU는 더 가벼운 프롬프트에서만 작동하며 지연 시간도 더 높습니다. 실행 가능한 범위에서 **가장 크고 / 풀사이즈인 모델 변형**을 사용하세요. 과도하게 양자화된 체크포인트나 “small” 모델은 프롬프트 인젝션 위험을 높입니다([보안](/ko/gateway/security) 참고).
로컬에서도 가능하지만, OpenClaw는 큰 컨텍스트와 프롬프트 인젝션에 대한 강력한 방어를 기대합니다. 소형 카드에서는 컨텍스트가 잘리고 안전성이 약해집니다. 기준은 높게 잡으세요: **최대 사양 Mac Studio 2대 이상 또는 동급 GPU 장비(~$30k+)**. 단일 **24 GB** GPU는 더 높은 지연 시간을 감수하는 가벼운 프롬프트에서만 작동합니다. 실행 가능한 **가장 크고 풀사이즈인 모델 변형**을 사용하세요. 과도하게 양자화된 체크포인트나 “small” 체크포인트는 프롬프트 인젝션 위험을 높입니다([보안](/ko/gateway/security) 참고).
가장 마찰이 적은 로컬 설정을 원한다면 [LM Studio](/ko/providers/lmstudio) 또는 [Ollama](/ko/providers/ollama)로 시작한 뒤 `openclaw onboard`를 실행하세요. 이 페이지는 고급 로컬 스택과 사용자 지정 OpenAI 호환 로컬 서버를 위한 권장 가이드입니다.
가장 마찰이 적은 로컬 설정을 원한다면 [LM Studio](/ko/providers/lmstudio) 또는 [Ollama](/ko/providers/ollama)`openclaw onboard`로 시작하세요. 이 페이지는 고사양 로컬 스택과 사용자 지정 OpenAI 호환 로컬 서버를 위한 권장 가이드입니다.
## 권장: LM Studio + 대형 로컬 모델 (Responses API)
현재 기준으로 가장 좋은 로컬 스택입니다. LM Studio에 대형 모델(예: 풀사이즈 Qwen, DeepSeek, 또는 Llama 빌드)을 로드하고, 로컬 서버(기본값 `http://127.0.0.1:1234`)를 활성화한 다음, 최종 텍스트와 추론을 분리하기 위해 Responses API를 사용하세요.
현재 기준 가장 좋은 로컬 스택입니다. LM Studio에 대형 모델(예: 풀사이즈 Qwen, DeepSeek, 또는 Llama 빌드)을 로드하고, 로컬 서버(기본값 `http://127.0.0.1:1234`)를 활성화한 다음, 최종 텍스트와 추론을 분리하기 위해 Responses API를 사용하세요.
```json5
{
@ -62,15 +62,15 @@ x-i18n:
**설정 체크리스트**
- LM Studio 설치: [https://lmstudio.ai](https://lmstudio.ai)
- LM Studio에서 **사용 가능한 가장 큰 모델 빌드**를 다운로드하고(“small”/과도한 양자화 변형은 피하세요), 서버를 시작한 뒤 `http://127.0.0.1:1234/v1/models`에 해당 모델이 표시되는지 확인하세요.
- LM Studio에서 **사용 가능한 가장 큰 모델 빌드**를 다운로드하고(“small”/강하게 양자화된 변형은 피하세요), 서버를 시작한 뒤, `http://127.0.0.1:1234/v1/models`에 해당 모델이 표시되는지 확인하세요.
- `my-local-model`을 LM Studio에 표시되는 실제 모델 ID로 바꾸세요.
- 모델을 계속 로드한 상태로 유지하세요. 콜드 로드는 시작 지연 시간을 늘립니다.
- 모델이 로드된 상태를 유지하세요. 콜드 로드는 시작 지연을 추가합니다.
- LM Studio 빌드가 다르면 `contextWindow`/`maxTokens`를 조정하세요.
- WhatsApp에서는 최종 텍스트만 전송되도록 Responses API를 유지하세요.
- WhatsApp에서는 최종 텍스트만 전송되도록 Responses API를 사용하세요.
로컬에서 실행하더라도 호스팅 모델 설정은 유지하세요. 폴백을 계속 사용할 수 있도록 `models.mode: "merge"`를 사용하세요.
로컬로 실행하더라도 호스팅 모델은 계속 구성해 두세요. 폴백을 계속 사용할 수 있도록 `models.mode: "merge"`를 사용하세요.
### 하이브리드 설정: 호스팅 모델을 기본으로, 로컬을 폴백으로
### 하이브리드 구성: 호스팅 모델을 기본값으로, 로컬을 폴백으로
```json5
{
@ -111,18 +111,18 @@ x-i18n:
}
```
### 로컬 우선 + 호스팅 안전망
### 로컬 우선, 호스팅 안전망 유지
기본 모델과 폴백 순서를 바꾸면 됩니다. 동일한 providers 블록과 `models.mode: "merge"`를 유지하면 로컬 장비가 내려가 있을 때 Sonnet이나 Opus로 폴백할 수 있습니다.
기본값과 폴백 순서를 서로 바꾸세요. 같은 provider 블록과 `models.mode: "merge"`를 유지하면 로컬 장비가 내려가 있을 때 Sonnet 또는 Opus로 폴백할 수 있습니다.
### 지역별 호스팅 / 데이터 라우팅
- 호스팅 MiniMax/Kimi/GLM 변형도 OpenRouter에서 지역 고정 엔드포인트(예: 미국 호스팅)로 사용할 수 있습니다. 선택한 관할 구역 안에 트래픽을 유지하려면 해당 지역 변형을 선택하고, Anthropic/OpenAI 폴백을 유지하려면 계속 `models.mode: "merge"`를 사용하세요.
- 로컬 전용 구성이 가장 강력한 개인정보 보호 방식입니다. 공급자 기능이 필요하지만 데이터 흐름도 통제하고 싶다면, 지역별 호스팅 라우팅이 중간 지점이 됩니다.
- 호스팅되는 MiniMax/Kimi/GLM 변형도 OpenRouter에서 지역 고정 엔드포인트(예: 미국 호스팅)로 제공됩니다. 선택한 관할 구역 안에 트래픽을 유지하려면 그곳에서 지역 변형을 선택하고, Anthropic/OpenAI 폴백을 유지하려면 계속 `models.mode: "merge"`를 사용하세요.
- 완전 로컬 전용이 가장 강력한 프라이버시 경로입니다. 지역 고정 호스팅은 provider 기능이 필요하지만 데이터 흐름도 통제하고 싶을 때의 중간 지점입니다.
## 기타 OpenAI 호환 로컬 프록시
vLLM, LiteLLM, OAI-proxy 또는 사용자 지정 Gateway도 OpenAI 스타일 `/v1` 엔드포인트를 노출하면 사용할 수 있습니다. 위 provider 블록을 여러분의 엔드포인트와 모델 ID로 바꾸세요.
vLLM, LiteLLM, OAI-proxy, 또는 사용자 지정 Gateway도 OpenAI 스타일 `/v1` 엔드포인트를 노출하면 사용할 수 있습니다. 위 provider 블록을 해당 엔드포인트와 모델 ID로 바꾸세요.
```json5
{
@ -152,34 +152,24 @@ vLLM, LiteLLM, OAI-proxy 또는 사용자 지정 Gateway도 OpenAI 스타일 `/v
호스팅 모델을 폴백으로 계속 사용할 수 있도록 `models.mode: "merge"`를 유지하세요.
로컬/프록시 `/v1` 백엔드에 대한 동작 참고 사항:
로컬/프록시 `/v1` 백엔드 동작 참고 사항:
- OpenClaw는 이를 네이티브 OpenAI 엔드포인트가 아니라 프록시 스타일의 OpenAI 호환 경로로 취급합니다
- 여기에는 OpenAI 전용 요청 형태 조정이 적용되지 않습니다. 즉,
`service_tier`, Responses `store`, OpenAI 추론 호환 페이로드 조정,
프롬프트 캐시 힌트가 없습니다
- 숨겨진 OpenClaw attribution 헤더(`originator`, `version`, `User-Agent`)는
이러한 사용자 지정 프록시 URL에 주입되지 않습니다
- OpenClaw는 이를 네이티브 OpenAI 엔드포인트가 아니라 프록시 스타일의 OpenAI 호환 경로로 취급합니다.
- 네이티브 OpenAI 전용 요청 형태 조정은 여기에는 적용되지 않습니다. 즉, `service_tier`, Responses `store`, OpenAI 추론 호환 페이로드 조정, 프롬프트 캐시 힌트는 없습니다.
- 숨겨진 OpenClaw attribution 헤더(`originator`, `version`, `User-Agent`)는 이러한 사용자 지정 프록시 URL에 주입되지 않습니다.
더 엄격한 OpenAI 호환 백엔드에 대한 호환성 참고 사항:
- 일부 서버는 Chat Completions에서 구조화된 content-part 배열이 아니라 문자열 `messages[].content`만 허용합니다. 그런 엔드포인트에서는
`models.providers.<provider>.models[].compat.requiresStringContent: true`
설정하세요.
- 일부 더 작거나 엄격한 로컬 백엔드는 OpenClaw의 전체 에이전트 런타임 프롬프트 형태에서, 특히 도구 스키마가 포함되면, 불안정하게 동작합니다. 백엔드가 작은 직접 `/v1/chat/completions` 호출에서는 작동하지만 일반적인 OpenClaw 에이전트 턴에서는 실패한다면, 먼저
`agents.defaults.localModelMode: "lean"`을 시도해 `browser`, `cron`, `message` 같은
무거운 기본 도구를 제외하세요. 그래도 실패하면
`models.providers.<provider>.models[].compat.supportsTools: false`를 시도하세요.
- 더 큰 OpenClaw 실행에서만 백엔드가 계속 실패한다면, 남은 문제는 보통 OpenClaw의 전송 계층이 아니라 업스트림 모델/서버의 용량 한계 또는 백엔드 버그입니다.
- 일부 서버는 Chat Completions에서 구조화된 content-part 배열이 아니라 문자열 `messages[].content`만 허용합니다. 이런 엔드포인트에는 `models.providers.<provider>.models[].compat.requiresStringContent: true`를 설정하세요.
- 일부 더 작거나 더 엄격한 로컬 백엔드는 OpenClaw의 전체 agent-runtime 프롬프트 형태, 특히 도구 스키마가 포함될 때 불안정할 수 있습니다. 백엔드가 작은 직접 `/v1/chat/completions` 호출에서는 동작하지만 일반적인 OpenClaw 에이전트 턴에서는 실패한다면, 먼저 `browser`, `cron`, `message` 같은 무거운 기본 도구를 제거하는 `agents.defaults.experimental.localModelLean: true`를 시도하세요. 이것은 실험적 플래그이며, 안정적인 기본 모드 설정이 아닙니다. 자세한 내용은 [실험적 기능](/ko/concepts/experimental-features)을 참고하세요. 그래도 실패하면 `models.providers.<provider>.models[].compat.supportsTools: false`를 시도하세요.
- 더 큰 OpenClaw 실행에서만 백엔드가 계속 실패한다면, 남아 있는 문제는 보통 OpenClaw의 전송 계층이 아니라 업스트림 모델/서버 용량 또는 백엔드 버그입니다.
## 문제 해결
- Gateway가 프록시에 도달할 수 있나요? `curl http://127.0.0.1:1234/v1/models`.
- LM Studio 모델이 언로드되었나요? 다시 로드하세요. 콜드 스타트는 “멈춘 것처럼 보이는” 일반적인 원인입니다.
- OpenClaw는 감지된 컨텍스트 윈도우가 **32k** 미만이면 경고하고, **16k** 미만이면 차단합니다. 이 사전 점검에 걸리면 서버/모델 컨텍스트 한도를 높이거나 더 큰 모델을 선택하세요.
- LM Studio 모델이 언로드되었나요? 다시 로드하세요. 콜드 스타트는 흔한 “멈춤” 원인입니다.
- OpenClaw는 감지된 컨텍스트 윈도우가 **32k** 미만이면 경고하고 **16k** 미만이면 차단합니다. 이 사전 점검에 걸리면 서버/모델 컨텍스트 한도를 높이거나 더 큰 모델을 선택하세요.
- 컨텍스트 오류가 발생하나요? `contextWindow`를 낮추거나 서버 한도를 높이세요.
- OpenAI 호환 서버가 `messages[].content ... expected a string`을 반환하나요?
해당 모델 항목에 `compat.requiresStringContent: true`를 추가하세요.
- 작은 직접 `/v1/chat/completions` 호출은 작동하지만 `openclaw infer model run`이 Gemma 또는 다른 로컬 모델에서 실패하나요? 먼저
`compat.supportsTools: false`로 도구 스키마를 비활성화한 뒤 다시 테스트하세요. 더 큰 OpenClaw 프롬프트에서만 서버가 계속 충돌한다면, 업스트림 서버/모델의 한계로 보세요.
- 안전성: 로컬 모델은 공급자 측 필터를 건너뜁니다. 프롬프트 인젝션의 영향을 줄이기 위해 에이전트 범위를 좁게 유지하고 Compaction을 켜 두세요.
- OpenAI 호환 서버가 `messages[].content ... expected a string`을 반환하나요? 해당 모델 항목에 `compat.requiresStringContent: true`를 추가하세요.
- 직접적인 작은 `/v1/chat/completions` 호출은 동작하지만 `openclaw infer model run`이 Gemma 또는 다른 로컬 모델에서 실패하나요? 먼저 `compat.supportsTools: false`로 도구 스키마를 비활성화한 뒤 다시 테스트하세요. 서버가 더 큰 OpenClaw 프롬프트에서만 계속 충돌한다면, 업스트림 서버/모델 한계로 간주하세요.
- 안전성: 로컬 모델은 provider 측 필터를 건너뛰므로 프롬프트 인젝션의 영향 범위를 줄이기 위해 에이전트 범위를 좁게 유지하고 Compaction을 켜 두세요.

File diff suppressed because it is too large Load Diff

View File

@ -1,30 +1,27 @@
---
read_when:
- 모델 프로바이더로 GitHub Copilot를 사용하려고 합니다
- 모델 제공자로 GitHub Copilot을 사용하려고 합니다
- '`openclaw models auth login-github-copilot` 흐름이 필요합니다'
summary: 디바이스 흐름을 사용해 OpenClaw에서 GitHub Copilot에 로그인하기
summary: 디바이스 플로우를 사용해 OpenClaw에서 GitHub Copilot에 로그인합니다
title: GitHub Copilot
x-i18n:
generated_at: "2026-04-12T23:30:47Z"
generated_at: "2026-04-15T14:40:33Z"
model: gpt-5.4
provider: openai
source_hash: 51fee006e7d4e78e37b0c29356b0090b132de727d99b603441767d3fb642140b
source_hash: b8258fecff22fb73b057de878462941f6eb86d0c5f775c5eac4840e95ba5eccf
source_path: providers/github-copilot.md
workflow: 15
---
# GitHub Copilot
GitHub Copilot는 GitHub의 AI 코딩 도우미입니다. GitHub 계정과 요금제에 맞는 Copilot
모델에 접근할 수 있도록 해줍니다. OpenClaw는 Copilot을 모델
프로바이더로 두 가지 방식으로 사용할 수 있습니다.
GitHub Copilot은 GitHub의 AI 코딩 도우미입니다. GitHub 계정과 요금제에 맞는 Copilot 모델에 액세스할 수 있습니다. OpenClaw는 Copilot을 모델 제공자로 두 가지 방식으로 사용할 수 있습니다.
## OpenClaw에서 Copilot을 사용하는 두 가지 방법
<Tabs>
<Tab title="내장 프로바이더 (github-copilot)">
네이티브 디바이스 로그인 흐름을 사용해 GitHub 토큰을 얻은 다음, OpenClaw가 실행될 때 이를
Copilot API 토큰으로 교환합니다. VS Code가 필요하지 않기 때문에 이것이 **기본값**이자 가장 간단한 경로입니다.
<Tab title="내장 제공자 (github-copilot)">
OpenClaw가 실행될 때 GitHub 토큰을 얻기 위해 기본 디바이스 로그인 흐름을 사용한 다음, 이를 Copilot API 토큰으로 교환합니다. VS Code가 필요하지 않기 때문에 이것이 **기본값**이자 가장 간단한 방법입니다.
<Steps>
<Step title="로그인 명령 실행">
@ -32,15 +29,14 @@ GitHub Copilot는 GitHub의 AI 코딩 도우미입니다. GitHub 계정과 요
openclaw models auth login-github-copilot
```
URL에 방문해 일회용 코드를 입력하라는 메시지가 표시됩니다. 완료될 때까지
터미널을 열어 두세요.
URL로 이동하여 일회용 코드를 입력하라는 안내가 표시됩니다. 완료될 때까지 터미널을 열어 두세요.
</Step>
<Step title="기본 모델 설정">
```bash
openclaw models set github-copilot/gpt-4o
```
또는 구성에서:
또는 config에서:
```json5
{
@ -53,12 +49,10 @@ GitHub Copilot는 GitHub의 AI 코딩 도우미입니다. GitHub 계정과 요
</Tab>
<Tab title="Copilot Proxy Plugin (copilot-proxy)">
**Copilot Proxy** VS Code 확장을 로컬 브리지로 사용합니다. OpenClaw는
프록시의 `/v1` 엔드포인트와 통신하고, 그곳에서 구성한 모델 목록을 사용합니다.
로컬 브리지로 **Copilot Proxy** VS Code 확장을 사용합니다. OpenClaw는 프록시의 `/v1` 엔드포인트와 통신하고, 그곳에서 구성한 모델 목록을 사용합니다.
<Note>
이미 VS Code에서 Copilot Proxy를 실행 중이거나
이를 통해 라우팅해야 하는 경우 이 옵션을 선택하세요. Plugin을 활성화하고 VS Code 확장을 계속 실행 상태로 유지해야 합니다.
이미 VS Code에서 Copilot Proxy를 실행 중이거나 이를 통해 라우팅해야 할 때 이 방법을 선택하세요. Plugin을 활성화하고 VS Code 확장이 계속 실행 중이어야 합니다.
</Note>
</Tab>
@ -66,69 +60,95 @@ GitHub Copilot는 GitHub의 AI 코딩 도우미입니다. GitHub 계정과 요
## 선택적 플래그
| 플래그 | 설명 |
| Flag | 설명 |
| --------------- | --------------------------------------------------- |
| `--yes` | 확인 프롬프트 건너뛰기 |
| `--set-default` | 프로바이더의 권장 기본 모델도 함께 적용 |
| `--yes` | 확인 프롬프트 건너뛰기 |
| `--set-default` | 제공자가 권장하는 기본 모델도 함께 적용 |
```bash
# 확인 건너뛰기
openclaw models auth login-github-copilot --yes
# 로그인하고 한 번에 기본 모델 설정
# 한 번에 로그인하고 기본 모델 설정
openclaw models auth login --provider github-copilot --method device --set-default
```
<AccordionGroup>
<Accordion title="대화형 TTY 필요">
디바이스 로그인 흐름에는 대화형 TTY가 필요합니다. 비대화형 스크립트나 CI 파이프라인이 아니라
터미널에서 직접 실행하세요.
디바이스 로그인 흐름에는 대화형 TTY가 필요합니다. 비대화형 스크립트나 CI 파이프라인이 아니라, 터미널에서 직접 실행하세요.
</Accordion>
<Accordion title="모델 사용 가능 여부는 요금제에 따라 달라집니다">
Copilot 모델 사용 가능 여부는 GitHub 요금제에 따라 다릅니다. 어떤 모델이
거부되면 다른 ID를 시도해 보세요(예: `github-copilot/gpt-4.1`).
Copilot 모델 사용 가능 여부는 GitHub 요금제에 따라 달라집니다. 모델이 거부되면 다른 ID(예: `github-copilot/gpt-4.1`)를 시도해 보세요.
</Accordion>
<Accordion title="전송 선택">
Claude 모델 ID는 자동으로 Anthropic Messages 전송을 사용합니다. GPT,
o-series, Gemini 모델은 OpenAI Responses 전송을 유지합니다. OpenClaw는
모델 ref를 기준으로 올바른 전송을 선택합니다.
<Accordion title="전송 방식 선택">
Claude 모델 ID는 자동으로 Anthropic Messages 전송 방식을 사용합니다. GPT, o-series, Gemini 모델은 OpenAI Responses 전송 방식을 유지합니다. OpenClaw는 모델 ref를 기준으로 올바른 전송 방식을 선택합니다.
</Accordion>
<Accordion title="환경 변수 확인 순서">
OpenClaw는 다음 우선순위 순서로 환경 변수에서 Copilot 인증을 확인합니다:
<Accordion title="환경 변수 확인 우선순위">
OpenClaw는 다음 우선순위에 따라 환경 변수에서 Copilot 인증을 확인합니다:
| 우선순위 | 변수 | 참고 |
| -------- | -------------------- | ------------------------------------- |
| 1 | `COPILOT_GITHUB_TOKEN` | 가장 높은 우선순위, Copilot 전용 |
| 2 | `GH_TOKEN` | GitHub CLI 토큰(대체 경로) |
| 3 | `GITHUB_TOKEN` | 표준 GitHub 토큰(가장 낮은 우선순위) |
| Priority | Variable | Notes |
| -------- | --------------------- | -------------------------------- |
| 1 | `COPILOT_GITHUB_TOKEN` | 가장 높은 우선순위, Copilot 전용 |
| 2 | `GH_TOKEN` | GitHub CLI 토큰 (대체 수단) |
| 3 | `GITHUB_TOKEN` | 표준 GitHub 토큰 (가장 낮음) |
여러 변수가 설정되어 있으면 OpenClaw는 가장 우선순위가 높은 변수를 사용합니다.
디바이스 로그인 흐름(`openclaw models auth login-github-copilot`)은
인증 프로필 저장소에 토큰을 저장하며, 모든 환경
변수보다 우선합니다.
인증 프로필 저장소에 토큰을 저장하며 모든 환경 변수보다 우선합니다.
</Accordion>
<Accordion title="토큰 저장">
로그인은 인증 프로필 저장소에 GitHub 토큰을 저장하고, OpenClaw가 실행될 때 이를
Copilot API 토큰으로 교환합니다. 토큰을 수동으로
관리할 필요는 없습니다.
로그인은 GitHub 토큰을 인증 프로필 저장소에 저장하고, OpenClaw가 실행될 때 이를 Copilot API 토큰으로 교환합니다. 토큰을 수동으로 관리할 필요는 없습니다.
</Accordion>
</AccordionGroup>
<Warning>
대화형 TTY가 필요합니다. 로그인 명령은 헤드리스 스크립트나 CI 작업 내부가 아니라
터미널에서 직접 실행하세요.
대화형 TTY가 필요합니다. 로그인 명령은 헤드리스 스크립트나 CI 작업 내부가 아니라 터미널에서 직접 실행하세요.
</Warning>
## 관련 문서
## 메모리 검색 임베딩
GitHub Copilot은 [메모리 검색](/ko/concepts/memory-search)을 위한 임베딩 제공자로도 사용할 수 있습니다. Copilot 구독이 있고 로그인한 상태라면, OpenClaw는 별도의 API 키 없이도 이를 임베딩에 사용할 수 있습니다.
### 자동 감지
`memorySearch.provider``"auto"`(기본값)일 때 GitHub Copilot은 우선순위 15로 시도됩니다. 즉, 로컬 임베딩 다음이면서 OpenAI 및 기타 유료 제공자보다 앞섭니다. GitHub 토큰을 사용할 수 있으면 OpenClaw는 Copilot API에서 사용 가능한 임베딩 모델을 찾아 자동으로 가장 적합한 모델을 선택합니다.
### 명시적 config
```json5
{
agents: {
defaults: {
memorySearch: {
provider: "github-copilot",
// 선택 사항: 자동으로 검색된 모델 재정의
model: "text-embedding-3-small",
},
},
},
}
```
### 작동 방식
1. OpenClaw가 GitHub 토큰을 확인합니다(환경 변수 또는 인증 프로필에서).
2. 이를 수명이 짧은 Copilot API 토큰으로 교환합니다.
3. Copilot `/models` 엔드포인트를 조회하여 사용 가능한 임베딩 모델을 찾습니다.
4. 가장 적합한 모델을 선택합니다(`text-embedding-3-small` 선호).
5. Copilot `/embeddings` 엔드포인트로 임베딩 요청을 보냅니다.
모델 사용 가능 여부는 GitHub 요금제에 따라 달라집니다. 사용할 수 있는 임베딩 모델이 없으면 OpenClaw는 Copilot을 건너뛰고 다음 제공자를 시도합니다.
## 관련 항목
<CardGroup cols={2}>
<Card title="모델 선택" href="/ko/concepts/model-providers" icon="layers">
프로바이더, 모델 ref, 페일오버 동작 선택하기.
제공자, 모델 ref, 장애 조치 동작 선택.
</Card>
<Card title="OAuth 및 인증" href="/ko/gateway/authentication" icon="key">
인증 세부 정보와 자격 증명 재사용 규칙.

View File

@ -1,21 +1,21 @@
---
read_when:
- Ollama를 통해 클라우드 또는 로컬 모델로 OpenClaw를 실행하려고 합니다
- Ollama 설정 및 구성 안내가 필요합니다
- Ollama를 통해 클라우드 또는 로컬 모델로 OpenClaw를 실행하고 싶습니다.
- Ollama 설정 및 구성 안내가 필요합니다.
summary: Ollama로 OpenClaw 실행하기(클라우드 및 로컬 모델)
title: Ollama
x-i18n:
generated_at: "2026-04-12T23:31:48Z"
generated_at: "2026-04-15T14:40:45Z"
model: gpt-5.4
provider: openai
source_hash: ec796241b884ca16ec7077df4f3f1910e2850487bb3ea94f8fdb37c77e02b219
source_hash: 098e083e0fc484bddb5270eb630c55d7832039b462d1710372b6afece5cefcdf
source_path: providers/ollama.md
workflow: 15
---
# Ollama
Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있게 해주는 로컬 LLM 런타임입니다. OpenClaw는 Ollama의 네이티브 API(`/api/chat`)와 통합되며, 스트리밍과 도구 호출을 지원하고, `OLLAMA_API_KEY`(또는 인증 프로필)를 사용하면서 명시적인 `models.providers.ollama` 항목을 정의하지 않으면 로컬 Ollama 모델을 자동 검색할 수 있습니다.
OpenClaw는 호스팅된 클라우드 모델과 로컬/자체 호스팅 Ollama 서버를 위해 Ollama의 네이티브 API(`/api/chat`)와 통합됩니다. Ollama는 세 가지 모드로 사용할 수 있습니다: 접근 가능한 Ollama 호스트를 통한 `Cloud + Local`, `https://ollama.com`을 대상으로 하는 `Cloud only`, 또는 접근 가능한 Ollama 호스트를 대상으로 하는 `Local only`.
<Warning>
**원격 Ollama 사용자**: OpenClaw에서 `/v1` OpenAI 호환 URL(`http://host:11434/v1`)을 사용하지 마세요. 이렇게 하면 도구 호출이 깨지고 모델이 원시 도구 JSON을 일반 텍스트로 출력할 수 있습니다. 대신 네이티브 Ollama API URL을 사용하세요: `baseUrl: "http://host:11434"` (`/v1` 없음).
@ -27,7 +27,7 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
<Tabs>
<Tab title="온보딩(권장)">
**가장 적합한 경우:** 자동 모델 검색이 포함된 동작하는 Ollama 설정까지 가장 빠른 경로.
**적합한 경우:** 작동하는 Ollama 클라우드 또는 로컬 설정까지 가장 빠르게 진행하고 싶을 때.
<Steps>
<Step title="온보딩 실행">
@ -35,16 +35,15 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
openclaw onboard
```
provider 목록에서 **Ollama**를 선택하세요.
공급자 목록에서 **Ollama**를 선택하세요.
</Step>
<Step title="모드 선택">
- **클라우드 + 로컬** — 클라우드 호스팅 모델과 로컬 모델을 함께 사용
- **로컬** — 로컬 모델만 사용
**클라우드 + 로컬**을 선택했고 ollama.com에 로그인되어 있지 않다면, 온보딩이 브라우저 로그인 흐름을 엽니다.
- **Cloud + Local** — 로컬 Ollama 호스트와, 그 호스트를 통해 라우팅되는 클라우드 모델
- **Cloud only**`https://ollama.com`을 통한 호스팅된 Ollama 모델
- **Local only** — 로컬 모델만 사용
</Step>
<Step title="모델 선택">
온보딩은 사용 가능한 모델을 검색하고 기본값을 제안합니다. 선택한 모델을 로컬에서 사용할 수 없으면 자동으로 가져옵니다.
`Cloud only``OLLAMA_API_KEY`를 요청하고 호스팅된 클라우드 기본값을 제안합니다. `Cloud + Local``Local only`는 Ollama base URL을 요청하고, 사용 가능한 모델을 검색하며, 선택한 로컬 모델이 아직 없으면 자동으로 pull합니다. `Cloud + Local`은 해당 Ollama 호스트가 클라우드 액세스를 위해 로그인되어 있는지도 확인합니다.
</Step>
<Step title="모델 사용 가능 여부 확인">
```bash
@ -61,7 +60,7 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
--accept-risk
```
선택적으로 사용자 지정 base URL 또는 모델을 지정할 수 있습니다:
필요하면 사용자 지정 base URL 또는 모델도 지정할 수 있습니다.
```bash
openclaw onboard --non-interactive \
@ -74,37 +73,35 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
</Tab>
<Tab title="수동 설정">
**가장 적합한 경우:** 설치, 모델 pull, 구성에 대한 완전한 제어.
**적합한 경우:** 클라우드 또는 로컬 설정을 완전히 제어하고 싶을 때.
<Steps>
<Step title="Ollama 설치">
[ollama.com/download](https://ollama.com/download)에서 다운로드하세요.
<Step title="클라우드 또는 로컬 선택">
- **Cloud + Local**: Ollama를 설치하고 `ollama signin`으로 로그인한 뒤, 클라우드 요청을 해당 호스트를 통해 라우팅
- **Cloud only**: `OLLAMA_API_KEY`와 함께 `https://ollama.com` 사용
- **Local only**: [ollama.com/download](https://ollama.com/download)에서 Ollama 설치
</Step>
<Step title="로컬 모델 pull">
<Step title="로컬 모델 pull (local only)">
```bash
ollama pull gemma4
# or
# 또는
ollama pull gpt-oss:20b
# or
# 또는
ollama pull llama3.3
```
</Step>
<Step title="클라우드 모델용 로그인(선택 사항)">
클라우드 모델도 사용하려면:
```bash
ollama signin
```
</Step>
<Step title="OpenClaw에서 Ollama 활성화">
API 키에는 아무 값이나 설정해도 됩니다(Ollama는 실제 키를 요구하지 않음):
`Cloud only`에는 실제 `OLLAMA_API_KEY`를 사용하세요. 호스트 기반 설정에서는 아무 자리표시자 값이나 동작합니다.
```bash
# 환경 변수 설정
# Cloud
export OLLAMA_API_KEY="your-ollama-api-key"
# Local-only
export OLLAMA_API_KEY="ollama-local"
# 또는 구성 파일에서 설정
openclaw config set models.providers.ollama.apiKey "ollama-local"
# 또는 config 파일에 설정
openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
```
</Step>
<Step title="모델 확인 및 설정">
@ -113,7 +110,7 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
openclaw models set ollama/gemma4
```
또는 구성에서 기본값을 설정:
또는 config에서 기본값을 설정할 수 있습니다.
```json5
{
@ -133,19 +130,24 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
## 클라우드 모델
<Tabs>
<Tab title="클라우드 + 로컬">
클라우드 모델을 사용하면 로컬 모델과 함께 클라우드 호스팅 모델을 실행할 수 있습니다. 예로 `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`가 있으며, 이들은 로컬 `ollama pull`**필요하지 않습니다**.
<Tab title="Cloud + Local">
`Cloud + Local`은 로컬 모델과 클라우드 모델 모두에 대해 접근 가능한 Ollama 호스트를 제어 지점으로 사용합니다. 이것은 Ollama가 권장하는 하이브리드 흐름입니다.
설정 중에 **클라우드 + 로컬** 모드를 선택하세요. 마법사는 로그인 여부를 확인하고 필요할 때 브라우저 로그인 흐름을 엽니다. 인증을 확인할 수 없으면 마법사는 로컬 모델 기본값으로 대체합니다.
설정 중에 **Cloud + Local**을 사용하세요. OpenClaw는 Ollama base URL을 요청하고, 해당 호스트에서 로컬 모델을 검색하며, 호스트가 `ollama signin`으로 클라우드 액세스에 로그인되어 있는지 확인합니다. 호스트가 로그인되어 있으면 OpenClaw는 `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud` 같은 호스팅된 클라우드 기본값도 제안합니다.
[ollama.com/signin](https://ollama.com/signin)에서 직접 로그인할 수도 있습니다.
OpenClaw는 현재 다음 클라우드 기본값을 제안합니다: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`.
호스트가 아직 로그인되어 있지 않으면, `ollama signin`을 실행할 때까지 OpenClaw는 설정을 local-only로 유지합니다.
</Tab>
<Tab title="로컬만">
로컬 전용 모드에서 OpenClaw는 로컬 Ollama 인스턴스에서 모델을 검색합니다. 클라우드 로그인은 필요하지 않습니다.
<Tab title="Cloud only">
`Cloud only``https://ollama.com`의 Ollama 호스팅 API를 대상으로 실행됩니다.
설정 중에 **Cloud only**를 사용하세요. OpenClaw는 `OLLAMA_API_KEY`를 요청하고, `baseUrl: "https://ollama.com"`을 설정하며, 호스팅된 클라우드 모델 목록을 초기화합니다. 이 경로는 로컬 Ollama 서버나 `ollama signin`이 **필요하지 않습니다**.
</Tab>
<Tab title="Local only">
local-only 모드에서 OpenClaw는 구성된 Ollama 인스턴스에서 모델을 검색합니다. 이 경로는 로컬 또는 자체 호스팅 Ollama 서버용입니다.
OpenClaw는 현재 로컬 기본값으로 `gemma4`를 제안합니다.
@ -154,18 +156,18 @@ Ollama는 내 컴퓨터에서 오픈 소스 모델을 쉽게 실행할 수 있
## 모델 검색(암시적 provider)
`OLLAMA_API_KEY`(또는 인증 프로필)를 설정하고 **`models.providers.ollama`를 정의하지 않으면**, OpenClaw는 `http://127.0.0.1:11434`의 로컬 Ollama 인스턴스에서 모델을 검색합니다.
`OLLAMA_API_KEY`(또는 auth 프로필)를 설정하고 **`models.providers.ollama`를 정의하지 않으면**, OpenClaw는 `http://127.0.0.1:11434`의 로컬 Ollama 인스턴스에서 모델을 검색합니다.
| Behavior | Detail |
| 동작 | 세부 정보 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Catalog query | `/api/tags` 조회 |
| Capability detection | 최선의 노력 방식의 `/api/show` 조회를 사용해 `contextWindow`를 읽고 기능(vision 포함)을 감지 |
| Vision models | `/api/show``vision` 기능을 보고하는 모델은 이미지 지원 가능(`input: ["text", "image"]`)으로 표시되므로, OpenClaw가 프롬프트에 이미지를 자동 주입함 |
| Reasoning detection | 모델 이름 휴리스틱(`r1`, `reasoning`, `think`)으로 `reasoning` 표시 |
| Token limits | OpenClaw가 사용하는 기본 Ollama 최대 토큰 한도로 `maxTokens` 설정 |
| Costs | 모든 비용을 `0`으로 설정 |
| 카탈로그 쿼리 | `/api/tags` 조회 |
| 기능 감지 | 최선형 `/api/show` 조회를 사용해 `contextWindow`를 읽고 기능(vision 포함)을 감지 |
| 비전 모델 | `/api/show`에서 `vision` 기능이 보고된 모델은 이미지 지원 모델(`input: ["text", "image"]`)로 표시되므로, OpenClaw가 프롬프트에 이미지를 자동 주입함 |
| 추론 감지 | 모델 이름 휴리스틱(`r1`, `reasoning`, `think`)으로 `reasoning` 표시 |
| 토큰 제한 | OpenClaw가 사용하는 기본 Ollama 최대 토큰 한도로 `maxTokens` 설정 |
| 비용 | 모든 비용을 `0`으로 설정 |
이렇게 하면 카탈로그를 로컬 Ollama 인스턴스와 일치시킨 상태로 유지하면서 수동 모델 항목 정의를 피할 수 있습니다.
이렇게 하면 수동 모델 항목 없이도 로컬 Ollama 인스턴스와 정렬된 카탈로그를 유지할 수 있습니다.
```bash
# 사용 가능한 모델 확인
@ -173,7 +175,7 @@ ollama list
openclaw models list
```
새 모델을 추가하려면 Ollama로 pull만 하면 됩니다:
새 모델을 추가하려면 Ollama로 간단히 pull하면 됩니다.
```bash
ollama pull mistral
@ -182,45 +184,45 @@ ollama pull mistral
새 모델은 자동으로 검색되어 바로 사용할 수 있습니다.
<Note>
`models.providers.ollama`를 명시적으로 설정하면 자동 검색은 건너뛰며, 모델을 수동으로 정의해야 합니다. 아래의 명시적 구성 섹션을 참조하세요.
`models.providers.ollama`를 명시적으로 설정하면 자동 검색은 건너뛰며, 모델을 수동으로 정의해야 합니다. 아래의 명시적 config 섹션을 참고하세요.
</Note>
## 구성
<Tabs>
<Tab title="기본(암시적 검색)">
Ollama를 활성화하는 가장 간단한 방법은 환경 변수를 사용하는 것입니다:
가장 간단한 local-only 활성화 경로는 환경 변수를 사용하는 것입니다.
```bash
export OLLAMA_API_KEY="ollama-local"
```
<Tip>
`OLLAMA_API_KEY`가 설정되어 있으면 provider 항목에서 `apiKey`를 생략할 수 있으며, OpenClaw가 사용 가능 여부 확인을 위해 이를 채워 넣습니다.
`OLLAMA_API_KEY`가 설정되어 있으면 provider 항목에서 `apiKey`를 생략할 수 있으며, OpenClaw가 가용성 확인을 위해 이를 채웁니다.
</Tip>
</Tab>
<Tab title="명시적(수동 모델)">
Ollama가 다른 호스트/포트에서 실행 중이거나, 특정 컨텍스트 윈도우 또는 모델 목록을 강제하고 싶거나, 완전히 수동 모델 정의를 원하는 경우 명시적 구성을 사용하세요.
호스팅된 클라우드 설정이 필요하거나, Ollama가 다른 호스트/포트에서 실행되거나, 특정 컨텍스트 윈도우 또는 모델 목록을 강제하고 싶거나, 모델 정의를 완전히 수동으로 관리하고 싶다면 명시적 config를 사용하세요.
```json5
{
models: {
providers: {
ollama: {
baseUrl: "http://ollama-host:11434",
apiKey: "ollama-local",
baseUrl: "https://ollama.com",
apiKey: "OLLAMA_API_KEY",
api: "ollama",
models: [
{
id: "gpt-oss:20b",
name: "GPT-OSS 20B",
id: "kimi-k2.5:cloud",
name: "kimi-k2.5:cloud",
reasoning: false,
input: ["text"],
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 8192,
maxTokens: 8192 * 10
contextWindow: 128000,
maxTokens: 8192
}
]
}
@ -232,7 +234,7 @@ ollama pull mistral
</Tab>
<Tab title="사용자 지정 base URL">
Ollama가 다른 호스트나 포트에서 실행 중인 경우(명시적 구성은 자동 검색을 비활성화하므로 모델을 수동 정의해야 함):
Ollama가 다른 호스트나 포트에서 실행 중인 경우(명시적 config는 자동 검색을 비활성화하므로 모델을 수동으로 정의해야 함):
```json5
{
@ -249,7 +251,7 @@ ollama pull mistral
```
<Warning>
URL에 `/v1`을 추가하지 마세요. `/v1` 경로는 OpenAI 호환 모드를 사용하며, 이 모드에서는 도구 호출이 신뢰할 수 없습니다. 경로 접미사 없이 기본 Ollama URL을 사용하세요.
URL에 `/v1`을 추가하지 마세요. `/v1` 경로는 OpenAI 호환 모드를 사용하며, 이 경우 도구 호출이 신뢰할 수 없습니다. 경로 접미사 없이 기본 Ollama URL을 사용하세요.
</Warning>
</Tab>
@ -257,7 +259,7 @@ ollama pull mistral
### 모델 선택
구성이 완료되면 모든 Ollama 모델을 사용할 수 있습니다:
구성이 끝나면 모든 Ollama 모델을 사용할 수 있습니다.
```json5
{
@ -272,17 +274,17 @@ ollama pull mistral
}
```
## Ollama Web Search
## Ollama 웹 검색
OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합니다.
OpenClaw는 번들`web_search` provider로 **Ollama 웹 검색**을 지원합니다.
| Property | Detail |
| ----------- | --------------------------------------------------------------------------------------------------------------------- |
| Host | 구성된 Ollama 호스트 사용(`models.providers.ollama.baseUrl`이 설정된 경우 해당 값, 아니면 `http://127.0.0.1:11434`) |
| Auth | 키 불필요 |
| Requirement | Ollama가 실행 중이어야 하며 `ollama signin`으로 로그인되어 있어야 함 |
| 속성 | 세부 정보 |
| ----------- | ----------------------------------------------------------------------------------------------------------------- |
| 호스트 | 구성된 Ollama 호스트를 사용함(`models.providers.ollama.baseUrl`이 설정된 경우 그 값, 아니면 `http://127.0.0.1:11434`) |
| 인증 | 키 불필요 |
| 요구 사항 | Ollama가 실행 중이어야 하며 `ollama signin`으로 로그인되어 있어야 함 |
`openclaw onboard` 또는 `openclaw configure --section web` 중에 **Ollama Web Search**를 선택하거나 다음과 같이 설정하세요:
`openclaw onboard` 또는 `openclaw configure --section web` 중에 **Ollama 웹 검색**을 선택하거나, 다음과 같이 설정하세요.
```json5
{
@ -297,7 +299,7 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
```
<Note>
전체 설정 및 동작 세부 정보는 [Ollama Web Search](/ko/tools/ollama-search)를 참조하세요.
전체 설정 및 동작 세부 정보는 [Ollama 웹 검색](/ko/tools/ollama-search)을 참고하세요.
</Note>
## 고급 구성
@ -305,10 +307,10 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
<AccordionGroup>
<Accordion title="레거시 OpenAI 호환 모드">
<Warning>
**OpenAI 호환 모드에서는 도구 호출이 신뢰할 수 없습니다.** 프록시에 OpenAI 형식이 꼭 필요하고 네이티브 도구 호출 동작에 의존하지 않는 경우에만 이 모드를 사용하세요.
**OpenAI 호환 모드에서는 도구 호출이 신뢰할 수 없습니다.** 프록시 때문에 OpenAI 형식이 꼭 필요한 경우에만 이 모드를 사용하고, 네이티브 도구 호출 동작에 의존하지 세요.
</Warning>
대신 OpenAI 호환 엔드포인트를 사용해야 하는 경우(예: OpenAI 형식만 지원하는 프록시 뒤에 있는 경우), `api: "openai-completions"`를 명시적으로 설정하세요:
대신 OpenAI 호환 엔드포인트를 사용해야 한다면(예: OpenAI 형식만 지원하는 프록시 뒤에 있는 경우), `api: "openai-completions"`를 명시적으로 설정하세요.
```json5
{
@ -326,9 +328,9 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
}
```
이 모드는 스트리밍과 도구 호출을 동시에 지원하지 못할 수 있습니다. 모델 구성에서 `params: { streaming: false }`로 스트리밍을 비활성화해야 할 수 있습니다.
이 모드는 스트리밍과 도구 호출을 동시에 지원하지 않을 수 있습니다. 모델 config에서 `params: { streaming: false }`로 스트리밍을 비활성화해야 할 수 있습니다.
Ollama에서 `api: "openai-completions"`를 사용할 때 OpenClaw는 기본적으로 `options.num_ctx`를 주입하므로, Ollama가 조용히 4096 컨텍스트 윈도우로 대체되지 않습니다. 프록시/업스트림이 알 수 없는 `options` 필드를 거부하는 경우 이 동작을 비활성화하세요:
Ollama와 함께 `api: "openai-completions"`를 사용하면, OpenClaw는 기본적으로 `options.num_ctx`를 주입하여 Ollama가 조용히 4096 컨텍스트 윈도우로 되돌아가지 않도록 합니다. 프록시/업스트림이 알 수 없는 `options` 필드를 거부한다면 이 동작을 비활성화하세요.
```json5
{
@ -351,7 +353,7 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
<Accordion title="컨텍스트 윈도우">
자동 검색된 모델의 경우, OpenClaw는 가능하면 Ollama가 보고한 컨텍스트 윈도우를 사용하고, 그렇지 않으면 OpenClaw가 사용하는 기본 Ollama 컨텍스트 윈도우로 대체합니다.
명시적 provider 구성에서 `contextWindow``maxTokens`를 재정의할 수 있습니다:
명시적 provider config에서 `contextWindow``maxTokens`를 재정의할 수 있습니다.
```json5
{
@ -374,7 +376,7 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
</Accordion>
<Accordion title="추론 모델">
OpenClaw는 기본적으로 `deepseek-r1`, `reasoning`, `think` 같은 이름의 모델을 추론 가능 모델로 처리합니다.
OpenClaw는 기본적으로 `deepseek-r1`, `reasoning`, `think` 같은 이름을 가진 모델을 추론 가능 모델로 취급합니다.
```bash
ollama pull deepseek-r1:32b
@ -385,18 +387,18 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
</Accordion>
<Accordion title="모델 비용">
Ollama는 무료이며 로컬에서 실행되므로 모든 모델 비용은 $0으로 설정됩니다. 이는 자동 검색된 모델과 수동 정의된 모델 모두에 적용됩니다.
Ollama는 무료이며 로컬에서 실행되므로, 모든 모델 비용은 $0으로 설정됩니다. 이는 자동 검색된 모델과 수동으로 정의된 모델 모두에 적용됩니다.
</Accordion>
<Accordion title="메모리 임베딩">
번들 Ollama Plugin은 [메모리 검색](/ko/concepts/memory)을 위한 메모리 임베딩 provider를 등록합니다. 구성된 Ollama base URL과 API 키를 사용합니다.
번들 Ollama Plugin은 [메모리 검색](/ko/concepts/memory)을 위한 메모리 임베딩 provider를 등록합니다. 구성된 Ollama base URL과 API 키를 사용합니다.
| Property | Value |
| 속성 | 값 |
| ------------- | ------------------- |
| Default model | `nomic-embed-text` |
| Auto-pull | 예 — 로컬에 없으면 임베딩 모델을 자동으로 pull |
| 기본 모델 | `nomic-embed-text` |
| 자동 pull | 예 — 임베딩 모델이 로컬에 없으면 자동으로 pull됨 |
메모리 검색 임베딩 provider로 Ollama를 선택하려면:
메모리 검색 임베딩 provider로 Ollama를 선택하려면 다음과 같이 설정하세요.
```json5
{
@ -411,10 +413,10 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
</Accordion>
<Accordion title="스트리밍 구성">
OpenClaw의 Ollama 통합은 기본적으로 **네이티브 Ollama API**(`/api/chat`)를 사용하며, 이 스트리밍과 도구 호출을 동시에 완전히 지원합니다. 별도의 특별한 구성은 필요하지 않습니다.
OpenClaw의 Ollama 통합은 기본적으로 **네이티브 Ollama API**(`/api/chat`)를 사용하며, 이 방식은 스트리밍과 도구 호출을 동시에 완전히 지원합니다. 특별한 구성은 필요하지 않습니다.
<Tip>
OpenAI 호환 엔드포인트를 사용해야 하는 경우 위의 "레거시 OpenAI 호환 모드" 섹션을 참조하세요. 그 모드에서는 스트리밍과 도구 호출이 동시에 동작하지 않을 수 있습니다.
OpenAI 호환 엔드포인트를 사용해야 한다면, 위의 "레거시 OpenAI 호환 모드" 섹션을 참고하세요. 해당 모드에서는 스트리밍과 도구 호출이 동시에 동작하지 않을 수 있습니다.
</Tip>
</Accordion>
@ -424,13 +426,13 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
<AccordionGroup>
<Accordion title="Ollama가 감지되지 않음">
Ollama가 실행 중인지, `OLLAMA_API_KEY`(또는 인증 프로필)를 설정했는지, 그리고 명시적인 `models.providers.ollama` 항목을 **정의하지 않았는지** 확인하세요:
Ollama가 실행 중인지, `OLLAMA_API_KEY`(또는 auth 프로필)를 설정했는지, 그리고 명시적인 `models.providers.ollama` 항목을 **정의하지 않았는지** 확인하세요.
```bash
ollama serve
```
API에 접근 가능한지도 확인하세요:
API에 접근할 수 있는지도 확인하세요.
```bash
curl http://localhost:11434/api/tags
@ -438,8 +440,8 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
</Accordion>
<Accordion title="사용 가능한 모델 없음">
모델이 목록에 없으면 로컬에서 모델을 pull하거나 `models.providers.ollama`에 명시적으로 정의하세요.
<Accordion title="사용 가능한 모델 없음">
모델이 목록에 없으면, 모델을 로컬에서 pull하거나 `models.providers.ollama`에 명시적으로 정의하세요.
```bash
ollama list # 설치된 항목 확인
@ -451,10 +453,10 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
</Accordion>
<Accordion title="연결 거부됨">
Ollama가 올바른 포트에서 실행 중인지 확인하세요:
Ollama가 올바른 포트에서 실행 중인지 확인하세요.
```bash
# Ollama 실행 여부 확인
# Ollama가 실행 중인지 확인
ps aux | grep ollama
# 또는 Ollama 재시작
@ -468,19 +470,19 @@ OpenClaw는 번들 `web_search` provider로 **Ollama Web Search**를 지원합
추가 도움말: [문제 해결](/ko/help/troubleshooting) 및 [FAQ](/ko/help/faq).
</Note>
## 관련
## 관련 항목
<CardGroup cols={2}>
<Card title="모델 provider" href="/ko/concepts/model-providers" icon="layers">
모든 provider, 모델 참조 및 장애 조치 동작 개요.
모든 provider, 모델 ref, 장애 조치 동작 개요.
</Card>
<Card title="모델 선택" href="/ko/concepts/models" icon="brain">
모델 선택 및 구성 방법.
모델을 선택하고 구성하는 방법.
</Card>
<Card title="Ollama Web Search" href="/ko/tools/ollama-search" icon="magnifying-glass">
<Card title="Ollama 웹 검색" href="/ko/tools/ollama-search" icon="magnifying-glass">
Ollama 기반 웹 검색의 전체 설정 및 동작 세부 정보.
</Card>
<Card title="구성" href="/ko/gateway/configuration" icon="gear">
전체 구성 참조.
전체 config 참조.
</Card>
</CardGroup>

View File

@ -1,96 +1,93 @@
---
read_when:
- 메모리 검색 provider 또는 임베딩 모델을 구성하려고 합니다
- QMD 백엔드를 설정하려고 합니다
- 하이브리드 검색, MMR 또는 시간 감쇠를 조정하려고 합니다
- 멀티모달 메모리 인덱싱을 활성화하려고 합니다
summary: 메모리 검색, 임베딩 provider, QMD, 하이브리드 검색, 멀티모달 인덱싱을 위한 모든 구성 옵션
- 메모리 검색 제공자나 임베딩 모델을 구성하고 싶습니다.
- QMD 백엔드를 설정하고 싶습니다.
- 하이브리드 검색, MMR 또는 시간 감쇠를 조정하고 싶습니다.
- 멀티모달 메모리 인덱싱을 활성화하고 싶습니다.
summary: 메모리 검색, 임베딩 제공자, QMD, 하이브리드 검색, 멀티모달 인덱싱을 위한 모든 구성 옵션
title: 메모리 구성 참조
x-i18n:
generated_at: "2026-04-12T23:33:47Z"
generated_at: "2026-04-15T14:40:54Z"
model: gpt-5.4
provider: openai
source_hash: 299ca9b69eea292ea557a2841232c637f5c1daf2bc0f73c0a42f7c0d8d566ce2
source_hash: 334c3c4dac08e864487047d3822c75f96e9e7a97c38be4b4e0cd9e63c4489a53
source_path: reference/memory-config.md
workflow: 15
---
# 메모리 구성 참조
이 페이지는 OpenClaw 메모리 검색의 모든 구성 옵션을 나열합니다. 개념적 개요는 다음을 참조하세요:
이 페이지는 OpenClaw 메모리 검색의 모든 구성 옵션이 정리되어 있습니다. 개념적 개요는 다음 문서를 참고하세요.
- [메모리 개요](/ko/concepts/memory) -- 메모리 작동 방식
- [Builtin 엔진](/ko/concepts/memory-builtin) -- 기본 SQLite 백엔드
- [메모리 개요](/ko/concepts/memory) -- 메모리 작동 방식
- [내장 엔진](/ko/concepts/memory-builtin) -- 기본 SQLite 백엔드
- [QMD 엔진](/ko/concepts/memory-qmd) -- 로컬 우선 사이드카
- [메모리 검색](/ko/concepts/memory-search) -- 검색 파이프라인 및 조정
- [Active Memory](/ko/concepts/active-memory) -- 대화형 세션용 메모리 하위 agent 활성화
- [메모리 검색](/ko/concepts/memory-search) -- 검색 파이프라인 및 튜닝
- [Active Memory](/ko/concepts/active-memory) -- 대화형 세션에서 메모리 서브에이전트 활성화
별도 명시가 없는 한, 모든 메모리 검색 설정은
`openclaw.json``agents.defaults.memorySearch` 아래에 있습니다.
별도 표기가 없는 한 모든 메모리 검색 설정은 `openclaw.json``agents.defaults.memorySearch` 아래에 있습니다.
**Active Memory** 기능 토글과 하위 agent 구성을 찾고 있다면,
그 설정은 `memorySearch`가 아니라 `plugins.entries.active-memory` 아래에 있습니다.
**Active Memory** 기능 토글과 서브에이전트 구성을 찾고 있다면, 그것은 `memorySearch`가 아니라 `plugins.entries.active-memory` 아래에 있습니다.
Active Memory는 2단계 게이트 모델을 사용합니다:
Active Memory는 두 단계 게이트 모델을 사용합니다.
1. Plugin이 활성화되어 있어야 하고 현재 agent ID를 대상으로 해야 합니다
2. 요청이 적격한 대화형 영속 채팅 세션이어야 합니다
1. Plugin이 활성화되어 있어야 하고 현재 에이전트 ID를 대상으로 해야 합니다.
2. 요청이 적격한 대화형 영구 채팅 세션이어야 합니다.
활성화 모델, Plugin 소유 구성, transcript 영속성, 안전한 롤아웃 패턴은
[Active Memory](/ko/concepts/active-memory)를 참조하세요.
활성화 모델, Plugin 소유 구성, 대화 기록 영속성, 안전한 롤아웃 패턴은 [Active Memory](/ko/concepts/active-memory)를 참고하세요.
---
## Provider 선택
## 제공자 선택
| Key | Type | Default | Description |
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------- |
| `provider` | `string` | 자동 감지 | 임베딩 adapter ID: `openai`, `gemini`, `voyage`, `mistral`, `bedrock`, `ollama`, `local` |
| `model` | `string` | provider 기본값 | 임베딩 모델 이름 |
| `fallback` | `string` | `"none"` | 기본 provider 실패 시 사용할 대체 adapter ID |
| `enabled` | `boolean` | `true` | 메모리 검색 활성화 또는 비활성화 |
| 키 | 타입 | 기본값 | 설명 |
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| `provider` | `string` | 자동 감지 | 임베딩 어댑터 ID: `bedrock`, `gemini`, `github-copilot`, `local`, `mistral`, `ollama`, `openai`, `voyage` |
| `model` | `string` | 제공자 기본값 | 임베딩 모델 이름 |
| `fallback` | `string` | `"none"` | 기본 제공자 실패 시 사용할 대체 어댑터 ID |
| `enabled` | `boolean` | `true` | 메모리 검색 활성화 또는 비활성화 |
### 자동 감지 순서
`provider`가 설정되지 않으면 OpenClaw는 사용 가능한 첫 번째 항목을 선택합니다:
`provider`를 설정하지 않으면 OpenClaw는 사용 가능한 첫 번째 항목을 선택합니다.
1. `local` -- `memorySearch.local.modelPath`가 구성되어 있고 파일이 존재하는 경우.
2. `openai` -- OpenAI 키를 확인할 수 있는 경우.
3. `gemini` -- Gemini 키를 확인할 수 있는 경우.
4. `voyage` -- Voyage 키를 확인할 수 있는 경우.
5. `mistral` -- Mistral 키를 확인할 수 있는 경우.
6. `bedrock` -- AWS SDK 자격 증명 체인이 확인되는 경우(인스턴스 역할, 액세스 키, 프로필, SSO, web identity 또는 공유 구성).
1. `local` -- `memorySearch.local.modelPath`가 구성되어 있고 파일이 존재하는 경우
2. `github-copilot` -- GitHub Copilot 토큰을 확인할 수 있는 경우(환경 변수 또는 인증 프로필)
3. `openai` -- OpenAI 키를 확인할 수 있는 경우
4. `gemini` -- Gemini 키를 확인할 수 있는 경우
5. `voyage` -- Voyage 키를 확인할 수 있는 경우
6. `mistral` -- Mistral 키를 확인할 수 있는 경우
7. `bedrock` -- AWS SDK 자격 증명 체인이 확인되는 경우(인스턴스 역할, 액세스 키, 프로필, SSO, 웹 아이덴티티 또는 공유 구성)
`ollama`는 지원되지만 자동 감지되지 않습니다(명시적으로 설정해야 함).
`ollama`는 지원되지만 자동 감지되지 않습니다(명시적으로 설정해야 함).
### API 키 확인
원격 임베딩에는 API 키가 필요합니다. 대신 Bedrock은 AWS SDK 기본
자격 증명 체인(인스턴스 역할, SSO, 액세스 키)을 사용합니다.
원격 임베딩에는 API 키가 필요합니다. 대신 Bedrock은 AWS SDK 기본 자격 증명 체인(인스턴스 역할, SSO, 액세스 키)을 사용합니다.
| Provider | Env var | Config key |
| -------- | ------------------------------ | --------------------------------- |
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
| Bedrock | AWS 자격 증명 체인 | API 키 불필요 |
| Ollama | `OLLAMA_API_KEY` (자리표시자) | -- |
| 제공자 | 환경 변수 | 구성 키 |
| -------------- | -------------------------------------------------- | --------------------------------- |
| Bedrock | AWS 자격 증명 체인 | API 키 필요 없음 |
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
| GitHub Copilot | `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN` | 장치 로그인 기반 인증 프로필 |
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
| Ollama | `OLLAMA_API_KEY` (자리표시자) | -- |
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
Codex OAuth는 채팅/completions만 지원하며 임베딩
요청에는 사용할 수 없습니다.
Codex OAuth는 채팅/완성만 지원하며 임베딩 요청에는 사용할 수 없습니다.
---
## 원격 엔드포인트 구성
사용자 지정 OpenAI 호환 엔드포인트 또는 provider 기본값 재정의용:
사용자 지정 OpenAI 호환 엔드포인트를 사용하거나 제공자 기본값을 재정의하려면 다음을 사용하세요.
| Key | Type | Description |
| 키 | 타입 | 설명 |
| ---------------- | -------- | -------------------------------------------------- |
| `remote.baseUrl` | `string` | 사용자 지정 API base URL |
| `remote.apiKey` | `string` | API 키 재정의 |
| `remote.headers` | `object` | 추가 HTTP 헤더(provider 기본값과 병합됨) |
| `remote.baseUrl` | `string` | 사용자 지정 API 기본 URL |
| `remote.apiKey` | `string` | API 키 재정의 |
| `remote.headers` | `object` | 추가 HTTP 헤더(제공자 기본값과 병합됨) |
```json5
{
@ -113,13 +110,13 @@ Codex OAuth는 채팅/completions만 지원하며 임베딩
## Gemini 전용 구성
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ---------------------- | -------- | ---------------------- | ------------------------------------------ |
| `model` | `string` | `gemini-embedding-001` | `gemini-embedding-2-preview`도 지원 |
| `outputDimensionality` | `number` | `3072` | Embedding 2의 경우: 768, 1536 또는 3072 |
| `model` | `string` | `gemini-embedding-001` | `gemini-embedding-2-preview`도 지원 |
| `outputDimensionality` | `number` | `3072` | Embedding 2의 경우: 768, 1536 또는 3072 |
<Warning>
`model` 또는 `outputDimensionality`를 변경하면 자동으로 전체 재인덱싱이 수행됩니다.
모델 또는 `outputDimensionality`를 변경하면 전체 재인덱싱이 자동으로 수행됩니다.
</Warning>
---
@ -127,8 +124,7 @@ Codex OAuth는 채팅/completions만 지원하며 임베딩
## Bedrock 임베딩 구성
Bedrock은 AWS SDK 기본 자격 증명 체인을 사용하므로 API 키가 필요 없습니다.
OpenClaw가 Bedrock이 활성화된 인스턴스 역할이 있는 EC2에서 실행 중이라면,
provider와 model만 설정하면 됩니다:
OpenClaw가 Bedrock이 활성화된 인스턴스 역할로 EC2에서 실행되는 경우, 제공자와 모델만 설정하면 됩니다.
```json5
{
@ -143,17 +139,16 @@ provider와 model만 설정하면 됩니다:
}
```
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ---------------------- | -------- | ------------------------------ | ------------------------------- |
| `model` | `string` | `amazon.titan-embed-text-v2:0` | 모든 Bedrock 임베딩 모델 ID |
| `outputDimensionality` | `number` | 모델 기본값 | Titan V2의 경우: 256, 512 또는 1024 |
| `model` | `string` | `amazon.titan-embed-text-v2:0` | 모든 Bedrock 임베딩 모델 ID |
| `outputDimensionality` | `number` | 모델 기본값 | Titan V2의 경우: 256, 512 또는 1024 |
### 지원 모델
### 지원되는 모델
다음 모델이 지원됩니다(패밀리 감지 및 차원
기본값 포함):
다음 모델이 지원됩니다(패밀리 감지 및 기본 차원값 포함).
| Model ID | Provider | Default Dims | Configurable Dims |
| 모델 ID | 제공자 | 기본 차원 | 설정 가능한 차원 |
| ------------------------------------------ | ---------- | ------------ | -------------------- |
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 |
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
@ -166,25 +161,23 @@ provider와 model만 설정하면 됩니다:
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
처리량 접미사가 붙은 변형(예: `amazon.titan-embed-text-v1:2:8k`)은
기본 모델의 구성을 상속합니다.
처리량 접미사가 붙은 변형(예: `amazon.titan-embed-text-v1:2:8k`)은 기본 모델의 구성을 상속합니다.
### 인증
Bedrock 인증은 표준 AWS SDK 자격 증명 확인 순서를 사용합니다:
Bedrock 인증은 표준 AWS SDK 자격 증명 확인 순서를 사용합니다.
1. 환경 변수(`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`)
2. SSO 토큰 캐시
3. Web identity 토큰 자격 증명
3. 웹 아이덴티티 토큰 자격 증명
4. 공유 자격 증명 및 구성 파일
5. ECS 또는 EC2 메타데이터 자격 증명
리전은 `AWS_REGION`, `AWS_DEFAULT_REGION`, `amazon-bedrock`
provider `baseUrl`에서 확인되거나, 기본값으로 `us-east-1`을 사용합니다.
리전은 `AWS_REGION`, `AWS_DEFAULT_REGION`, `amazon-bedrock` 제공자의 `baseUrl`에서 확인되며, 없으면 기본값 `us-east-1`이 사용됩니다.
### IAM 권한
IAM 역할 또는 사용자에게는 다음 권한이 필요합니다:
IAM 역할 또는 사용자에게는 다음 권한이 필요합니다.
```json
{
@ -194,7 +187,7 @@ IAM 역할 또는 사용자에게는 다음 권한이 필요합니다:
}
```
최소 권한 원칙을 적용하려면 `InvokeModel`을 특정 모델로 제한하세요:
최소 권한 원칙을 적용하려면 `InvokeModel`을 특정 모델로 범위를 제한하세요.
```
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
@ -204,42 +197,42 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
## 로컬 임베딩 구성
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| --------------------- | -------- | ---------------------- | ------------------------------- |
| `local.modelPath` | `string` | 자동 다운로드 | GGUF 모델 파일 경로 |
| `local.modelCacheDir` | `string` | node-llama-cpp 기본값 | 다운로드된 모델의 캐시 디렉터리 |
| `local.modelPath` | `string` | 자동 다운로드 | GGUF 모델 파일 경로 |
| `local.modelCacheDir` | `string` | node-llama-cpp 기본값 | 다운로드된 모델의 캐시 디렉터리 |
기본 모델: `embeddinggemma-300m-qat-Q8_0.gguf` (~0.6 GB, 자동 다운로드).
기본 모델: `embeddinggemma-300m-qat-Q8_0.gguf`(~0.6GB, 자동 다운로드).
네이티브 빌드 필요: `pnpm approve-builds``pnpm rebuild node-llama-cpp`.
---
## 하이브리드 검색 구성
모두 `memorySearch.query.hybrid` 아래에 있습니다:
모두 `memorySearch.query.hybrid` 아래에 있습니다.
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| --------------------- | --------- | ------- | ---------------------------------- |
| `enabled` | `boolean` | `true` | 하이브리드 BM25 + 벡터 검색 활성화 |
| `vectorWeight` | `number` | `0.7` | 벡터 점수 가중치(0-1) |
| `textWeight` | `number` | `0.3` | BM25 점수 가중치(0-1) |
| `candidateMultiplier` | `number` | `4` | 후보 풀 크기 배수 |
| `vectorWeight` | `number` | `0.7` | 벡터 점수 가중치(0-1) |
| `textWeight` | `number` | `0.3` | BM25 점수 가중치(0-1) |
| `candidateMultiplier` | `number` | `4` | 후보 풀 크기 배수 |
### MMR(다양성)
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ------------- | --------- | ------- | ------------------------------------ |
| `mmr.enabled` | `boolean` | `false` | MMR 재순위화 활성화 |
| `mmr.lambda` | `number` | `0.7` | 0 = 최대 다양성, 1 = 최대 관련성 |
| `mmr.enabled` | `boolean` | `false` | MMR 재순위화 활성화 |
| `mmr.lambda` | `number` | `0.7` | 0 = 최대 다양성, 1 = 최대 관련성 |
### 시간 감쇠(최신성)
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ---------------------------- | --------- | ------- | ------------------------- |
| `temporalDecay.enabled` | `boolean` | `false` | 최신성 가중치 활성화 |
| `temporalDecay.halfLifeDays` | `number` | `30` | 점수가 N일마다 절반이 됨 |
| `temporalDecay.enabled` | `boolean` | `false` | 최신성 부스트 활성화 |
| `temporalDecay.halfLifeDays` | `number` | `30` | N일마다 점수가 절반으로 감소 |
상시 파일(`MEMORY.md`, `memory/`의 날짜 없는 파일)은 감쇠되지 않습니다.
에버그린 파일(`MEMORY.md`, `memory/`의 날짜가 없는 파일)은 감쇠되지 않습니다.
### 전체 예시
@ -266,9 +259,9 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
## 추가 메모리 경로
| Key | Type | Description |
| 키 | 타입 | 설명 |
| ------------ | ---------- | ---------------------------------------- |
| `extraPaths` | `string[]` | 인덱싱할 추가 디렉터리 또는 파일 |
| `extraPaths` | `string[]` | 인덱싱할 추가 디렉터리 또는 파일 |
```json5
{
@ -282,31 +275,24 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
}
```
경로는 절대 경로 또는 워크스페이스 상대 경로일 수 있습니다. 디렉터리는
`.md` 파일을 위해 재귀적으로 스캔됩니다. 심볼릭 링크 처리 방식은 활성 백엔드에 따라 다릅니다:
builtin 엔진은 심볼릭 링크를 무시하고, QMD는 기본 QMD 스캐너 동작을 따릅니다.
경로는 절대 경로이거나 워크스페이스 기준 상대 경로일 수 있습니다. 디렉터리는 `.md` 파일을 재귀적으로 스캔합니다. 심볼릭 링크 처리 방식은 활성 백엔드에 따라 다릅니다. 내장 엔진은 심볼릭 링크를 무시하고, QMD는 기본 QMD 스캐너의 동작을 따릅니다.
agent 범위의 교차 agent transcript 검색에는
`memory.qmd.paths` 대신 `agents.list[].memorySearch.qmd.extraCollections`를 사용하세요.
이 추가 컬렉션은 동일한 `{ path, name, pattern? }` 형태를 따르지만,
agent별로 병합되며 경로가 현재 워크스페이스 밖을 가리킬 때 명시적 공유 이름을 유지할 수 있습니다.
동일한 확인된 경로가 `memory.qmd.paths`
`memorySearch.qmd.extraCollections`에 모두 나타나면, QMD는 첫 번째 항목을 유지하고
중복 항목은 건너뜁니다.
에이전트 범위의 교차 에이전트 대화 기록 검색에는 `memory.qmd.paths` 대신 `agents.list[].memorySearch.qmd.extraCollections`를 사용하세요. 이러한 추가 컬렉션은 동일한 `{ path, name, pattern? }` 형태를 따르지만, 에이전트별로 병합되며 경로가 현재 워크스페이스 외부를 가리킬 때 명시적인 공유 이름을 유지할 수 있습니다.
동일한 확인된 경로가 `memory.qmd.paths``memorySearch.qmd.extraCollections`에 모두 나타나면, QMD는 첫 번째 항목을 유지하고 중복 항목은 건너뜁니다.
---
## 멀티모달 메모리(Gemini)
Gemini Embedding 2를 사용해 Markdown과 함께 이미지 및 오디오를 인덱싱합니다:
Gemini Embedding 2를 사용해 Markdown과 함께 이미지 및 오디오를 인덱싱합니다.
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ------------------------- | ---------- | ---------- | -------------------------------------- |
| `multimodal.enabled` | `boolean` | `false` | 멀티모달 인덱싱 활성화 |
| `multimodal.enabled` | `boolean` | `false` | 멀티모달 인덱싱 활성화 |
| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]`, 또는 `["all"]` |
| `multimodal.maxFileBytes` | `number` | `10000000` | 인덱싱할 최대 파일 크기 |
| `multimodal.maxFileBytes` | `number` | `10000000` | 인덱싱할 최대 파일 크기 |
`extraPaths` 파일에만 적용됩니다. 기본 메모리 루트는 계속 Markdown 전용입니다.
`extraPaths`에 있는 파일에만 적용됩니다. 기본 메모리 루트는 계속 Markdown 전용입니다.
`gemini-embedding-2-preview`가 필요합니다. `fallback`은 반드시 `"none"`이어야 합니다.
지원 형식: `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif`
@ -316,117 +302,109 @@ Gemini Embedding 2를 사용해 Markdown과 함께 이미지 및 오디오를
## 임베딩 캐시
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ------------------ | --------- | ------- | -------------------------------- |
| `cache.enabled` | `boolean` | `false` | SQLite에 청크 임베딩 캐시 |
| `cache.maxEntries` | `number` | `50000` | 최대 캐시 임베딩 수 |
| `cache.enabled` | `boolean` | `false` | SQLite에 청크 임베딩 캐시 |
| `cache.maxEntries` | `number` | `50000` | 최대 캐시 임베딩 수 |
재인덱싱 또는 transcript 업데이트 중 변경되지 않은 텍스트의 재임베딩을 방지합니다.
재인덱싱이나 대화 기록 업데이트 중 변경되지 않은 텍스트를 다시 임베딩하는 일을 방지합니다.
---
## 배치 인덱싱
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ----------------------------- | --------- | ------- | -------------------------- |
| `remote.batch.enabled` | `boolean` | `false` | 배치 임베딩 API 활성화 |
| `remote.batch.concurrency` | `number` | `2` | 병렬 배치 작업 수 |
| `remote.batch.wait` | `boolean` | `true` | 배치 완료까지 대기 |
| `remote.batch.pollIntervalMs` | `number` | -- | 폴링 간격 |
| `remote.batch.timeoutMinutes` | `number` | -- | 배치 타임아웃 |
| `remote.batch.enabled` | `boolean` | `false` | 배치 임베딩 API 활성화 |
| `remote.batch.concurrency` | `number` | `2` | 병렬 배치 작업 수 |
| `remote.batch.wait` | `boolean` | `true` | 배치 완료까지 대기 |
| `remote.batch.pollIntervalMs` | `number` | -- | 폴링 간격 |
| `remote.batch.timeoutMinutes` | `number` | -- | 배치 타임아웃 |
`openai`, `gemini`, `voyage`에서 사용할 수 있습니다. OpenAI 배치는 일반적으로
대규모 백필에 가장 빠르고 비용 효율적입니다.
`openai`, `gemini`, `voyage`에서 사용할 수 있습니다. OpenAI 배치는 일반적으로 대규모 백필에서 가장 빠르고 비용도 가장 저렴합니다.
---
## 세션 메모리 검색(실험적)
세션 transcript를 인덱싱하고 이를 `memory_search`를 통해 표시합니다:
세션 대화 기록을 인덱싱하고 이를 `memory_search`를 통해 노출합니다.
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ----------------------------- | ---------- | ------------ | --------------------------------------- |
| `experimental.sessionMemory` | `boolean` | `false` | 세션 인덱싱 활성화 |
| `sources` | `string[]` | `["memory"]` | transcript를 포함하려면 `"sessions"` 추가 |
| `sync.sessions.deltaBytes` | `number` | `100000` | 재인덱싱 바이트 임계값 |
| `sync.sessions.deltaMessages` | `number` | `50` | 재인덱싱 메시지 임계값 |
| `experimental.sessionMemory` | `boolean` | `false` | 세션 인덱싱 활성화 |
| `sources` | `string[]` | `["memory"]` | 대화 기록을 포함하려면 `"sessions"` 추가 |
| `sync.sessions.deltaBytes` | `number` | `100000` | 재인덱싱 바이트 임계값 |
| `sync.sessions.deltaMessages` | `number` | `50` | 재인덱싱 메시지 임계값 |
세션 인덱싱은 opt-in이며 비동기적으로 실행됩니다. 결과는 약간
오래되었을 수 있습니다. 세션 로그는 디스크에 저장되므로 파일시스템 접근을
신뢰 경계로 취급하세요.
세션 인덱싱은 옵트인 방식이며 비동기로 실행됩니다. 결과가 약간 오래되었을 수 있습니다. 세션 로그는 디스크에 저장되므로 파일 시스템 접근을 신뢰 경계로 취급하세요.
---
## SQLite 벡터 가속(sqlite-vec)
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ---------------------------- | --------- | ------- | --------------------------------- |
| `store.vector.enabled` | `boolean` | `true` | 벡터 쿼리에 sqlite-vec 사용 |
| `store.vector.extensionPath` | `string` | bundled | sqlite-vec 경로 재정의 |
| `store.vector.enabled` | `boolean` | `true` | 벡터 쿼리에 sqlite-vec 사용 |
| `store.vector.extensionPath` | `string` | bundled | sqlite-vec 경로 재정의 |
sqlite-vec를 사용할 수 없으면 OpenClaw는 자동으로 프로세스 내 cosine
similarity로 대체합니다.
sqlite-vec를 사용할 수 없으면 OpenClaw는 자동으로 프로세스 내 코사인 유사도 계산으로 대체합니다.
---
## 인덱스 저장소
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| --------------------- | -------- | ------------------------------------- | ------------------------------------------- |
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | 인덱스 위치(`{agentId}` 토큰 지원) |
| `store.fts.tokenizer` | `string` | `unicode61` | FTS5 tokenizer(`unicode61` 또는 `trigram`) |
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | 인덱스 위치(`{agentId}` 토큰 지원) |
| `store.fts.tokenizer` | `string` | `unicode61` | FTS5 토크나이저(`unicode61` 또는 `trigram`) |
---
## QMD 백엔드 구성
활성화하려면 `memory.backend = "qmd"`를 설정하세요. 모든 QMD 설정은
`memory.qmd` 아래에 있습니다:
`memory.qmd` 아래에 있습니다.
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ------------------------ | --------- | -------- | -------------------------------------------- |
| `command` | `string` | `qmd` | QMD 실행 파일 경로 |
| `searchMode` | `string` | `search` | 검색 명령: `search`, `vsearch`, `query` |
| `includeDefaultMemory` | `boolean` | `true` | `MEMORY.md` + `memory/**/*.md` 자동 인덱싱 |
| `paths[]` | `array` | -- | 추가 경로: `{ name, path, pattern? }` |
| `sessions.enabled` | `boolean` | `false` | 세션 transcript 인덱싱 |
| `sessions.retentionDays` | `number` | -- | transcript 보존 기간 |
| `sessions.exportDir` | `string` | -- | 내보내기 디렉터리 |
| `command` | `string` | `qmd` | QMD 실행 파일 경로 |
| `searchMode` | `string` | `search` | 검색 명령: `search`, `vsearch`, `query` |
| `includeDefaultMemory` | `boolean` | `true` | `MEMORY.md` + `memory/**/*.md` 자동 인덱싱 |
| `paths[]` | `array` | -- | 추가 경로: `{ name, path, pattern? }` |
| `sessions.enabled` | `boolean` | `false` | 세션 대화 기록 인덱싱 |
| `sessions.retentionDays` | `number` | -- | 대화 기록 보존 기간 |
| `sessions.exportDir` | `string` | -- | 내보내기 디렉터리 |
OpenClaw는 현재 QMD 컬렉션 및 MCP 쿼리 형식을 우선 사용하지만,
필요할 경우 레거시 `--mask` 컬렉션 플래그와 이전 MCP 도구 이름으로 대체하여
오래된 QMD 릴리스도 계속 동작하도록 유지합니다.
OpenClaw는 현재 QMD 컬렉션 및 MCP 쿼리 형식을 우선 사용하지만, 필요할 경우 레거시 `--mask` 컬렉션 플래그와 이전 MCP 도구 이름으로 대체해 이전 QMD 릴리스도 계속 작동하도록 유지합니다.
QMD 모델 재정의는 OpenClaw 구성이 아니라 QMD 쪽에 유지됩니다. 전역적으로
QMD 모델을 재정의해야 한다면 Gateway 런타임 환경에서
`QMD_EMBED_MODEL`, `QMD_RERANK_MODEL`, `QMD_GENERATE_MODEL` 같은 환경 변수를 설정하세요.
QMD 모델 재정의는 OpenClaw 구성이 아니라 QMD 측에 유지됩니다. QMD 모델을 전역으로 재정의해야 한다면 게이트웨이 런타임 환경에서 `QMD_EMBED_MODEL`, `QMD_RERANK_MODEL`, `QMD_GENERATE_MODEL` 같은 환경 변수를 설정하세요.
### 업데이트 일정
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ------------------------- | --------- | ------- | ------------------------------------- |
| `update.interval` | `string` | `5m` | 새로고침 간격 |
| `update.debounceMs` | `number` | `15000` | 파일 변경 디바운스 |
| `update.onBoot` | `boolean` | `true` | 시작 시 새로고침 |
| `update.waitForBootSync` | `boolean` | `false` | 새로고침 완료까지 시작 차단 |
| `update.embedInterval` | `string` | -- | 별도 임베딩 주기 |
| `update.commandTimeoutMs` | `number` | -- | QMD 명령 타임아웃 |
| `update.updateTimeoutMs` | `number` | -- | QMD 업데이트 작업 타임아웃 |
| `update.embedTimeoutMs` | `number` | -- | QMD 임베딩 작업 타임아웃 |
| `update.interval` | `string` | `5m` | 새로 고침 간격 |
| `update.debounceMs` | `number` | `15000` | 파일 변경 디바운스 |
| `update.onBoot` | `boolean` | `true` | 시작 시 새로 고침 |
| `update.waitForBootSync` | `boolean` | `false` | 새로 고침 완료까지 시작 차단 |
| `update.embedInterval` | `string` | -- | 별도 임베딩 주기 |
| `update.commandTimeoutMs` | `number` | -- | QMD 명령 타임아웃 |
| `update.updateTimeoutMs` | `number` | -- | QMD 업데이트 작업 타임아웃 |
| `update.embedTimeoutMs` | `number` | -- | QMD 임베딩 작업 타임아웃 |
### 제한
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ------------------------- | -------- | ------- | -------------------------- |
| `limits.maxResults` | `number` | `6` | 최대 검색 결과 수 |
| `limits.maxSnippetChars` | `number` | -- | 스니펫 길이 제한 |
| `limits.maxInjectedChars` | `number` | -- | 총 주입 문자 수 제한 |
| `limits.timeoutMs` | `number` | `4000` | 검색 타임아웃 |
| `limits.maxResults` | `number` | `6` | 최대 검색 결과 수 |
| `limits.maxSnippetChars` | `number` | -- | 스니펫 길이 제한 |
| `limits.maxInjectedChars` | `number` | -- | 전체 주입 문자 수 제한 |
| `limits.timeoutMs` | `number` | `4000` | 검색 타임아웃 |
### 범위
어떤 세션이 QMD 검색 결과를 받을 수 있는지 제어합니다. 스키마는
[`session.sendPolicy`](/ko/gateway/configuration-reference#session)와 동일합니다:
[`session.sendPolicy`](/ko/gateway/configuration-reference#session)와 같습니다.
```json5
{
@ -441,21 +419,20 @@ QMD 모델을 재정의해야 한다면 Gateway 런타임 환경에서
}
```
배포 기본값은 direct 및 channel 세션은 허용하고,
group은 계속 거부합니다.
기본 제공 설정은 direct 및 채널 세션은 허용하고, 그룹은 계속 거부합니다.
기본값은 DM 전용입니다. `match.keyPrefix`는 정규화된 세션 키와 일치하고,
기본값은 DM 전용입니다. `match.keyPrefix`는 정규화된 세션 키와 일치합니다.
`match.rawKeyPrefix``agent:<id>:`를 포함한 원시 키와 일치합니다.
### 인용
`memory.citations`는 모든 백엔드에 적용됩니다:
`memory.citations`는 모든 백엔드에 적용됩니다.
| Value | Behavior |
| 값 | 동작 |
| ---------------- | --------------------------------------------------- |
| `auto` (기본값) | 스니펫에 `Source: <path#line>` 푸터 포함 |
| `on` | 항상 푸터 포함 |
| `off` | 푸터 생략(path는 여전히 내부적으로 agent에 전달됨) |
| `auto` (기본값) | 스니펫에 `Source: <path#line>` 바닥글 포함 |
| `on` | 항상 바닥글 포함 |
| `off` | 바닥글 생략(경로는 여전히 내부적으로 에이전트에 전달됨) |
### 전체 QMD 예시
@ -480,22 +457,20 @@ group은 계속 거부합니다.
---
## Dreaming(실험적)
## Dreaming
Dreaming은 `agents.defaults.memorySearch` 아래가 아니라
`plugins.entries.memory-core.config.dreaming` 아래에 구성됩니다.
Dreaming은 `agents.defaults.memorySearch`가 아니라 `plugins.entries.memory-core.config.dreaming` 아래에서 구성합니다.
Dreaming은 하나의 예약된 스윕으로 실행되며 내부적인 light/deep/REM 단계를
구현 세부 사항으로 사용합니다.
Dreaming은 예약된 한 번의 스윕으로 실행되며, 내부적인 구현 세부 사항으로 light/deep/REM 단계를 사용합니다.
개념적 동작과 슬래시 명령어는 [Dreaming](/ko/concepts/dreaming)을 참조하세요.
개념적 동작과 슬래시 명령은 [Dreaming](/ko/concepts/dreaming)을 참고하세요.
### 사용자 설정
| Key | Type | Default | Description |
| 키 | 타입 | 기본값 | 설명 |
| ----------- | --------- | ----------- | ------------------------------------------------- |
| `enabled` | `boolean` | `false` | Dreaming 전체 활성화 또는 비활성화 |
| `frequency` | `string` | `0 3 * * *` | 전체 Dreaming 스윕용 선택적 Cron 주기 |
| `enabled` | `boolean` | `false` | Dreaming 전체 활성화 또는 비활성화 |
| `frequency` | `string` | `0 3 * * *` | 전체 Dreaming 스윕의 선택적 Cron 주기 |
### 예시
@ -519,5 +494,5 @@ Dreaming은 하나의 예약된 스윕으로 실행되며 내부적인 light/dee
참고:
- Dreaming은 머신 상태를 `memory/.dreams/`에 기록합니다.
- Dreaming은 사람이 읽을 수 있는 내러티브 출력을 `DREAMS.md`(또는 기존 `dreams.md`)에 기록합니다.
- light/deep/REM 단계 정책과 임계값은 내부 동작이며 사용자 대상 구성이 아닙니다.
- Dreaming은 사람이 읽을 수 있는 서술형 출력을 `DREAMS.md`(또는 기존 `dreams.md`)에 기록합니다.
- light/deep/REM 단계 정책과 임계값은 내부 동작이며 사용자 대상 구성 항목이 아닙니다.

View File

@ -1,16 +1,16 @@
---
read_when:
- 특정 온보딩 단계나 플래그를 찾을 때
- 비대화형 모드로 온보딩을 자동화할 때
- 온보딩 동작을 디버깅할 때
- 특정 온보딩 단계 또는 플래그 찾기
- 비대화형 모드로 온보딩 자동화하기
- 온보딩 동작 디버깅하기
sidebarTitle: Onboarding Reference
summary: 'CLI 온보딩 전체 참조: 모든 단계, 플래그, config 필드'
summary: 'CLI 온보딩 전체 참조: 모든 단계, 플래그, config 필드'
title: 온보딩 참조
x-i18n:
generated_at: "2026-04-07T06:01:52Z"
generated_at: "2026-04-15T14:40:59Z"
model: gpt-5.4
provider: openai
source_hash: a142b9ec4323fabb9982d05b64375d2b4a4007dffc910acbee3a38ff871a7236
source_hash: 1db3ff789422617634e6624f9d12c18b6a6c573721226b9c0fa6f6b7956ef33d
source_path: reference/wizard.md
workflow: 15
---
@ -18,138 +18,137 @@ x-i18n:
# 온보딩 참조
이 문서는 `openclaw onboard`의 전체 참조입니다.
상위 수준 개요는 [온보딩(CLI)](/ko/start/wizard)을 참고하세요.
상위 수준 개요는 [온보딩 (CLI)](/ko/start/wizard)를 참조하세요.
## 흐름 세부 정보(로컬 모드)
## 흐름 세부 정보 (local 모드)
<Steps>
<Step title="기존 config 감지">
- `~/.openclaw/openclaw.json`이 있으면 **유지 / 수정 / 재설정** 중에서 선택합니다.
- 온보딩을 다시 실행해도 명시적으로 **재설정**을 선택하지 않는 한
(`--reset`을 전달하는 경우 포함) 아무것도 지워지지 않습니다.
- CLI `--reset`의 기본값은 `config+creds+sessions`이며, workspace까지 제거하려면
`--reset-scope full`을 사용하세요.
- config가 유효하지 않거나 레거시 키를 포함하고 있으면, 마법사는 중지되고
- `~/.openclaw/openclaw.json`이 있으면 **유지 / 수정 / 초기화**를 선택합니다.
- 온보딩을 다시 실행해도 명시적으로 **초기화**를 선택하지 않는 한 아무것도 지워지지 않습니다
(또는 `--reset`을 전달한 경우).
- CLI `--reset`의 기본값은 `config+creds+sessions`이며, workspace까지 제거하려면 `--reset-scope full`을 사용하세요.
- config가 유효하지 않거나 레거시 키를 포함하고 있으면, 마법사는 중단되고
계속하기 전에 `openclaw doctor`를 실행하라고 안내합니다.
- 재설정은 `trash`를 사용하며(`rm`은 절대 사용하지 않음) 다음 범위를 제공합니다:
- Config만
- Config + credentials + sessions
- 전체 재설정(workspace도 제거)
- 초기화는 `trash`를 사용하며(`rm`은 절대 사용하지 않음) 다음 범위를 제공합니다:
- config만
- config + 자격 증명 + 세션
- 전체 초기화 (workspace도 제거)
</Step>
<Step title="모델/인증">
- **Anthropic API 키**: 있으면 `ANTHROPIC_API_KEY`를 사용하고, 없으면 키를 입력받은 뒤 daemon에서 사용할 수 있도록 저장합니다.
- **Anthropic API 키**: onboarding/configure에서 선호되는 Anthropic assistant 선택지입니다.
- **Anthropic setup-token**: OpenClaw는 현재 가능할 때 Claude CLI 재사용을 선호하지만, onboarding/configure에서는 여전히 사용할 수 있습니다.
- **OpenAI Code (Codex) 구독(Codex CLI)**: `~/.codex/auth.json`이 있으면 온보딩에서 이를 재사용할 수 있습니다. 재사용된 Codex CLI 자격 증명은 계속 Codex CLI가 관리합니다. 만료되면 OpenClaw는 먼저 그 소스를 다시 읽고, provider가 이를 갱신할 수 있으면 직접 소유권을 가져오지 않고 갱신된 자격 증명을 다시 Codex 저장소에 기록합니다.
- **OpenAI Code (Codex) 구독(OAuth)**: 브라우저 흐름으로 진행되며, `code#state`를 붙여 넣습니다.
- **Anthropic API 키**: `ANTHROPIC_API_KEY`가 있으면 이를 사용하고, 없으면 키를 요청한 뒤 daemon 사용을 위해 저장합니다.
- **Anthropic API 키**: 온보딩/configure에서 선호되는 Anthropic 도우미 선택지입니다.
- **Anthropic setup-token**: 여전히 온보딩/configure에서 사용할 수 있지만, OpenClaw는 이제 가능하면 Claude CLI 재사용을 우선합니다.
- **OpenAI Code (Codex) 구독 (Codex CLI)**: `~/.codex/auth.json`이 있으면 온보딩에서 이를 재사용할 수 있습니다. 재사용된 Codex CLI 자격 증명은 계속 Codex CLI가 관리합니다. 만료되면 OpenClaw는 먼저 그 소스를 다시 읽고, 제공자가 갱신할 수 있는 경우 자격 증명을 직접 가져오지 않고 갱신된 자격 증명을 Codex 저장소에 다시 기록합니다.
- **OpenAI Code (Codex) 구독 (OAuth)**: 브라우저 흐름이며 `code#state`를 붙여 넣습니다.
- 모델이 설정되지 않았거나 `openai/*`인 경우 `agents.defaults.model``openai-codex/gpt-5.4`로 설정합니다.
- **OpenAI API 키**: 있으면 `OPENAI_API_KEY`를 사용하고, 없으면 키를 입력받은 뒤 auth profile에 저장합니다.
- **OpenAI API 키**: `OPENAI_API_KEY`가 있으면 이를 사용하고, 없으면 키를 요청한 뒤 인증 프로필에 저장합니다.
- 모델이 설정되지 않았거나 `openai/*` 또는 `openai-codex/*`인 경우 `agents.defaults.model``openai/gpt-5.4`로 설정합니다.
- **xAI (Grok) API 키**: `XAI_API_KEY`입력받고 xAI를 모델 provider로 구성합니다.
- **OpenCode**: `OPENCODE_API_KEY`(또는 `OPENCODE_ZEN_API_KEY`, https://opencode.ai/auth 에서 발급)를 입력받고 Zen 또는 Go 카탈로그를 선택할 수 있게 합니다.
- **Ollama**: Ollama 기본 URL을 입력받고, **Cloud + Local** 또는 **Local** 모드를 제안하며, 사용 가능한 모델을 검색하고 필요하면 선택한 로컬 모델을 자동으로 pull합니다.
- **xAI (Grok) API 키**: `XAI_API_KEY`요청하고 xAI를 모델 제공자로 구성합니다.
- **OpenCode**: `OPENCODE_API_KEY`(또는 `OPENCODE_ZEN_API_KEY`, 발급처: https://opencode.ai/auth)를 요청하고 Zen 또는 Go 카탈로그를 선택하게 합니다.
- **Ollama**: 먼저 **Cloud + Local**, **Cloud only**, **Local only**를 제공합니다. `Cloud only``OLLAMA_API_KEY`를 요청하고 `https://ollama.com`을 사용합니다. 호스트 기반 모드는 Ollama 기본 URL을 요청하고, 사용 가능한 모델을 검색하며, 필요할 때 선택한 로컬 모델을 자동으로 pull합니다. `Cloud + Local`은 해당 Ollama 호스트가 cloud 액세스를 위해 로그인되어 있는지도 확인합니다.
- 자세한 내용: [Ollama](/ko/providers/ollama)
- **API 키**: 키를 대신 저장해 줍니다.
- **Vercel AI Gateway (멀티 모델 프록시)**: `AI_GATEWAY_API_KEY`를 입력받습니다.
- **API 키**: 키를 대신 저장니다.
- **Vercel AI Gateway (다중 모델 프록시)**: `AI_GATEWAY_API_KEY`를 요청합니다.
- 자세한 내용: [Vercel AI Gateway](/ko/providers/vercel-ai-gateway)
- **Cloudflare AI Gateway**: Account ID, Gateway ID, `CLOUDFLARE_AI_GATEWAY_API_KEY`입력받습니다.
- **Cloudflare AI Gateway**: Account ID, Gateway ID, `CLOUDFLARE_AI_GATEWAY_API_KEY`요청합니다.
- 자세한 내용: [Cloudflare AI Gateway](/ko/providers/cloudflare-ai-gateway)
- **MiniMax**: config가 자동으로 기록되며, 호스팅 기본값은 `MiniMax-M2.7`입니다.
- **MiniMax**: config가 자동으로 작성되며, 호스팅 기본값은 `MiniMax-M2.7`입니다.
API 키 설정은 `minimax/...`를 사용하고, OAuth 설정은
`minimax-portal/...`를 사용합니다.
- 자세한 내용: [MiniMax](/ko/providers/minimax)
- **StepFun**: config가 중국 또는 글로벌 엔드포인트의 StepFun standard 또는 Step Plan용으로 자동 작성됩니다.
- Standard에는 현재 `step-3.5-flash`가 포함되며, Step Plan에는 `step-3.5-flash-2603`도 포함됩니다.
- **StepFun**: 중국 또는 글로벌 엔드포인트에서 StepFun standard 또는 Step Plan용 config가 자동으로 작성됩니다.
- 현재 Standard에는 `step-3.5-flash`가 포함되며, Step Plan에는 `step-3.5-flash-2603`도 포함됩니다.
- 자세한 내용: [StepFun](/ko/providers/stepfun)
- **Synthetic (Anthropic 호환)**: `SYNTHETIC_API_KEY`입력받습니다.
- **Synthetic (Anthropic 호환)**: `SYNTHETIC_API_KEY`요청합니다.
- 자세한 내용: [Synthetic](/ko/providers/synthetic)
- **Moonshot (Kimi K2)**: config가 자동으로 기록됩니다.
- **Kimi Coding**: config가 자동으로 기록됩니다.
- **Moonshot (Kimi K2)**: config가 자동으로 작성됩니다.
- **Kimi Coding**: config가 자동으로 작성됩니다.
- 자세한 내용: [Moonshot AI (Kimi + Kimi Coding)](/ko/providers/moonshot)
- **건너뛰기**: 아직 인증을 구성하지 않습니다.
- 감지된 옵션에서 기본 모델을 선택합니다(또는 provider/model을 직접 입력). 가장 좋은 품질과 더 낮은 prompt-injection 위험을 위해, provider 스택에서 사용할 수 있는 가장 강력한 최신 세대 모델을 선택하세요.
- 온보딩은 모델 검사를 실행하며, 구성된 모델을 알 수 없거나 인증이 없으면 경고합니다.
- API 키 저장 모드의 기본값은 평문 auth-profile 값입니다. 대신 env 기반 ref를 저장하려면 `--secret-input-mode ref`를 사용하세요(예: `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
- Auth profile`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`에 저장됩니다(API 키 + OAuth). `~/.openclaw/credentials/oauth.json`은 레거시 가져오기 전용입니다.
- **건너뛰기**: 아직 인증이 구성되지 않습니다.
- 감지된 옵션에서 기본 모델을 선택합니다(또는 제공자/모델을 수동으로 입력합니다). 최상의 품질과 더 낮은 프롬프트 인젝션 위험을 위해 제공자 스택에서 사용할 수 있는 가장 강력한 최신 세대 모델을 선택하세요.
- 온보딩은 모델 검사를 실행하고, 구성된 모델을 알 수 없거나 인증이 누락된 경우 경고를 표시합니다.
- API 키 저장 모드의 기본값은 평문 인증 프로필 값입니다. 대신 env 기반 ref를 저장하려면 `--secret-input-mode ref`를 사용하세요(예: `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
- 인증 프로필`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`에 저장됩니다(API 키 + OAuth). `~/.openclaw/credentials/oauth.json`은 레거시 가져오기 전용입니다.
- 자세한 내용: [/concepts/oauth](/ko/concepts/oauth)
<Note>
헤드리스/서버 팁: 브라우저가 있는 머신에서 OAuth를 완료한 뒤,
해당 agent`auth-profiles.json`(예:
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, 또는 대응하
헤드리스/서버 팁: 브라우저가 있는 장치에서 OAuth를 완료한 다음,
해당 에이전트`auth-profiles.json`(예:
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json` 또는 대응되
`$OPENCLAW_STATE_DIR/...` 경로)을 gateway 호스트로 복사하세요. `credentials/oauth.json`
레거시 가져오기 소스일 뿐입니다.
</Note>
</Step>
<Step title="워크스페이스">
- 기본값은 `~/.openclaw/workspace`입니다(변경 가능).
- agent 부트스트랩 ritual에 필요한 workspace 파일을 시드합니다.
<Step title="Workspace">
- 기본값은 `~/.openclaw/workspace`입니다(구성 가능).
- 에이전트 bootstrap ritual에 필요한 workspace 파일을 시드합니다.
- 전체 workspace 레이아웃 + 백업 가이드: [Agent workspace](/ko/concepts/agent-workspace)
</Step>
<Step title="Gateway">
- 포트, bind, auth mode, tailscale 노출.
- 인증 권장 사항: loopback에서도 **Token**을 유지해 로컬 WS 클라이언트가 인증하도록 하세요.
- 토큰 모드에서 대화형 설정은 다음을 제공합니다:
- **평문 토큰 생성/저장**(기본값)
- **SecretRef 사용**(선택 사항)
- Quickstart는 온보딩 probe/dashboard bootstrap을 위해 `env`, `file`, `exec` provider 전반에서 기존 `gateway.auth.token` SecretRef를 재사용합니다.
- 해당 SecretRef가 구성되어 있지만 확인할 수 없으면, 온보딩은 런타임 인증을 조용히 약화시키는 대신 명확한 수정 메시지와 함께 조기에 실패합니다.
- 비밀번호 모드에서도 대화형 설정은 평문 또는 SecretRef 저장을 지원합니다.
- 비대화형 토큰 SecretRef 경로: `--gateway-token-ref-env <ENV_VAR>`.
- 온보딩 프로세스 환경에 비어 있지 않은 env var가 필요합니다.
- 포트, bind, 인증 모드, Tailscale 노출.
- 인증 권장 사항: local loopback에서도 **Token**을 유지해 로컬 WS 클라이언트가 인증하도록 하세요.
- token 모드에서 대화형 설정은 다음을 제공합니다:
- **평문 token 생성/저장** (기본값)
- **SecretRef 사용** (선택 사항)
- 빠른 시작은 온보딩 프로브/대시보드 bootstrap을 위해 `env`, `file`, `exec` 제공자 전반에서 기존 `gateway.auth.token` SecretRef를 재사용합니다.
- 해당 SecretRef가 구성되어 있지만 확인할 수 없으면, 온보딩은 런타임 인증을 조용히 저하시키는 대신 명확한 수정 메시지와 함께 초기에 실패합니다.
- password 모드에서 대화형 설정도 평문 또는 SecretRef 저장을 지원합니다.
- 비대화형 token SecretRef 경로: `--gateway-token-ref-env <ENV_VAR>`.
- 온보딩 프로세스 환경에 비어 있지 않은 환경 변수가 필요합니다.
- `--gateway-token`과 함께 사용할 수 없습니다.
- 모든 로컬 프로세스를 완전히 신뢰하는 경우에만 인증을 비활성화하세요.
- loopback이 아닌 bind 여전히 인증이 필요합니다.
- loopback이 아닌 bind에도 여전히 인증이 필요합니다.
</Step>
<Step title="채널">
- [WhatsApp](/ko/channels/whatsapp): 선택적 QR 로그인.
- [Telegram](/ko/channels/telegram): 봇 토큰.
- [Discord](/ko/channels/discord): 봇 토큰.
- [Google Chat](/ko/channels/googlechat): 서비스 계정 JSON + webhook audience.
- [Mattermost](/ko/channels/mattermost) (plugin): 봇 토큰 + 기본 URL.
- [Google Chat](/ko/channels/googlechat): 서비스 계정 JSON + Webhook audience.
- [Mattermost](/ko/channels/mattermost) (Plugin): 봇 토큰 + 기본 URL.
- [Signal](/ko/channels/signal): 선택적 `signal-cli` 설치 + 계정 config.
- [BlueBubbles](/ko/channels/bluebubbles): **iMessage에 권장**; 서버 URL + 비밀번호 + webhook.
- [BlueBubbles](/ko/channels/bluebubbles): **iMessage에 권장**; 서버 URL + 비밀번호 + Webhook.
- [iMessage](/ko/channels/imessage): 레거시 `imsg` CLI 경로 + DB 액세스.
- DM 보안: 기본값은 페어링입니다. 첫 번째 DM은 코드를 전송하며, `openclaw pairing approve <channel> <code>`로 승인하거나 allowlist를 사용할 수 있습니다.
- DM 보안: 기본값은 pairing입니다. 첫 DM은 코드를 전송하며, `openclaw pairing approve <channel> <code>`로 승인하거나 허용 목록을 사용할 수 있습니다.
</Step>
<Step title="웹 검색">
- Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG, Tavily 같은 지원 provider를 선택합니다(또는 건너뜁니다).
- API 기반 provider는 빠른 설정을 위해 env var 또는 기존 config를 사용할 수 있고, 키가 필요 없는 provider는 provider별 사전 요구 사항을 대신 사용합니다.
- `--skip-search`로 건너뛸 수 있습니다.
- Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG, Tavily 같은 지원 제공자를 선택합니다(또는 건너뜁니다).
- API 기반 제공자는 빠른 설정을 위해 환경 변수 또는 기존 config를 사용할 수 있으며, 키가 필요 없는 제공자는 각 제공자별 선행 조건을 사용합니다.
- `--skip-search`로 건너니다.
- 나중에 구성: `openclaw configure --section web`.
</Step>
<Step title="데몬 설치">
<Step title="Daemon 설치">
- macOS: LaunchAgent
- 로그인된 사용자 세션이 필요합니다. 헤드리스 환경에서는 사용자 지정 LaunchDaemon을 사용하세요(기본 제공되지 않음).
- 로그인된 사용자 세션이 필요합니다. 헤드리스의 경우 사용자 지정 LaunchDaemon을 사용하세요(기본 제공되지 않음).
- Linux(및 WSL2를 통한 Windows): systemd 사용자 유닛
- 온보딩은 로그아웃 후에도 Gateway가 계속 실행되도록 `loginctl enable-linger <user>`를 활성화하려고 시도합니다.
- 온보딩은 로그아웃 후에도 Gateway가 계속 실행되도록 `loginctl enable-linger <user>` 활성화를 시도합니다.
- sudo를 요청할 수 있습니다(`/var/lib/systemd/linger`에 기록). 먼저 sudo 없이 시도합니다.
- **런타임 선택:** Node(권장; WhatsApp/Telegram에 필요). Bun은 **권장되지 않습니다**.
- 토큰 인증에 토큰이 필요하고 `gateway.auth.token`이 SecretRef로 관리되는 경우, daemon 설치는 이를 검증하지만 확인된 평문 토큰 값을 supervisor 서비스 환경 메타데이터에 저장하지는 않습니다.
- 토큰 인증에 토큰이 필요하고 구성된 토큰 SecretRef가 확인되지 않으면, daemon 설치는 실행 가능한 안내와 함께 차단됩니다.
- **런타임 선택:** Node(권장, WhatsApp/Telegram에 필요). Bun은 **권장되지 않습니다**.
- token 인증에 token이 필요하고 `gateway.auth.token`이 SecretRef로 관리되는 경우, daemon 설치는 이를 검증하지만 확인된 평문 token 값을 supervisor 서비스 환경 메타데이터에 유지하지 않습니다.
- token 인증에 token이 필요하고 구성된 token SecretRef를 확인할 수 없는 경우, daemon 설치는 실행 가능한 안내와 함께 차단됩니다.
- `gateway.auth.token``gateway.auth.password`가 모두 구성되어 있고 `gateway.auth.mode`가 설정되지 않은 경우, mode를 명시적으로 설정할 때까지 daemon 설치가 차단됩니다.
</Step>
<Step title="상태 점검">
- 필요하면 Gateway를 시작하고 `openclaw health`를 실행합니다.
- 팁: `openclaw status --deep`는 상태 출력에 라이브 gateway 상태 probe를 추가하며, 지원되는 경우 채널 probe도 포함합니다(reachable gateway 필요).
- 팁: `openclaw status --deep`는 상태 출력에 실시간 gateway 상태 프로브를 추가하며, 지원되는 경우 채널 프로브도 포함합니다(도달 가능한 gateway 필요).
</Step>
<Step title="Skills (권장)">
- 사용 가능한 Skills를 읽고 요구 사항을 확인합니다.
- 노드 매니저를 선택할 수 있습니다: **npm / pnpm** (bun은 권장되지 않음).
- 선택적 의존성을 설치합니다(일부는 macOS에서 Homebrew 사용).
- 노드 관리자 **npm / pnpm**을 선택하게 합니다(bun은 권장되지 않음).
- 선택적 종속성을 설치합니다(일부는 macOS에서 Homebrew 사용).
</Step>
<Step title="완료">
- 추가 기능용 iOS/Android/macOS 앱을 포함한 요약 + 다음 단계가 표시됩니다.
- 추가 기능을 위한 iOS/Android/macOS 앱을 포함해 요약과 다음 단계를 표시합니다.
</Step>
</Steps>
<Note>
GUI가 감지되지 않으면, 온보딩은 브라우저를 여는 대신 Control UI용 SSH 포트 포워딩 안내를 출력합니다.
Control UI 에셋이 없으면, 온보딩은 이를 빌드하려고 시도하며 폴백은 `pnpm ui:build`입니다(UI 의존성을 자동 설치).
GUI가 감지되지 않으면, 온보딩은 브라우저를 여는 대신 Control UI용 SSH 포트 포워딩 지침을 출력합니다.
Control UI 자산이 없으면 온보딩이 이를 빌드하려 시도하며, 대체 방법은 `pnpm ui:build`입니다(UI 종속성 자동 설치).
</Note>
## 비대화형 모드
온보딩을 자동화하거나 스크립트하려면 `--non-interactive`를 사용하세요:
온보딩을 자동화하거나 스크립트로 실행하려면 `--non-interactive`를 사용하세요:
```bash
openclaw onboard --non-interactive \
@ -165,7 +164,7 @@ openclaw onboard --non-interactive \
기계가 읽을 수 있는 요약을 원하면 `--json`을 추가하세요.
비대화형 모드에서의 Gateway 토큰 SecretRef:
비대화형 모드에서의 Gateway token SecretRef:
```bash
export OPENCLAW_GATEWAY_TOKEN="your-token"
@ -179,13 +178,13 @@ openclaw onboard --non-interactive \
`--gateway-token``--gateway-token-ref-env`는 함께 사용할 수 없습니다.
<Note>
`--json`**비대화형 모드**를 의미하지 않습니다. 스크립트에서는 `--non-interactive`(및 `--workspace`)를 사용하세요.
`--json`은 비대화형 모드를 의미하지 않습니다. 스크립트에서는 `--non-interactive`(및 `--workspace`)를 사용하세요.
</Note>
provider별 명령 예시는 [CLI 자동화](/ko/start/wizard-cli-automation#provider-specific-examples)에 있습니다.
이 참조 페이지는 플래그 의미와 단계 순서를 확인할 때 사용하세요.
제공자별 명령 예시는 [CLI 자동화](/ko/start/wizard-cli-automation#provider-specific-examples)에 있습니다.
플래그 의미와 단계 순서는 이 참조 페이지를 사용하세요.
### 에이전트 추가(비대화형)
### 에이전트 추가 (비대화형)
```bash
openclaw agents add work \
@ -196,23 +195,23 @@ openclaw agents add work \
--json
```
## Gateway 마법사 RPC
## Gateway wizard RPC
Gateway는 RPC를 통해 온보딩 흐름을 노출합니다(`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`).
Gateway는 RPC(`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`)를 통해 온보딩 흐름을 노출합니다.
클라이언트(macOS 앱, Control UI)는 온보딩 로직을 다시 구현하지 않고도 단계를 렌더링할 수 있습니다.
## Signal 설정(signal-cli)
## Signal 설정 (signal-cli)
온보딩은 GitHub 릴리스에서 `signal-cli`를 설치할 수 있습니다:
- 적절한 릴리스 에셋을 다운로드합니다.
- 적절한 릴리스 자산을 다운로드합니다.
- 이를 `~/.openclaw/tools/signal-cli/<version>/` 아래에 저장합니다.
- config에 `channels.signal.cliPath`를 기록합니다.
참고:
- JVM 빌드에는 **Java 21**이 필요합니다.
- 사용 가능한 경우 네이티브 빌드를 사용합니다.
- 가능한 경우 네이티브 빌드가 사용됩니다.
- Windows는 WSL2를 사용하며, signal-cli 설치는 WSL 내부에서 Linux 흐름을 따릅니다.
## 마법사가 기록하는 내용
@ -220,15 +219,15 @@ Gateway는 RPC를 통해 온보딩 흐름을 노출합니다(`wizard.start`, `wi
`~/.openclaw/openclaw.json`의 일반적인 필드:
- `agents.defaults.workspace`
- `agents.defaults.model` / `models.providers` (Minimax를 선택한 경우)
- `tools.profile` (로컬 온보딩은 설정되지 않은 경우 기본값으로 `"coding"`을 사용하며, 기존의 명시적 값은 유지됨)
- `agents.defaults.model` / `models.providers` (MiniMax를 선택한 경우)
- `tools.profile` (local 온보딩은 설정되지 않은 경우 기본값으로 `"coding"`을 사용하며, 기존에 명시된 값은 유지됩니다)
- `gateway.*` (mode, bind, auth, tailscale)
- `session.dmScope` (동작 세부 정보: [CLI 설정 참조](/ko/start/wizard-cli-reference#outputs-and-internals))
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
- 프롬프트 중에 선택하는 경우 채널 allowlist(Slack/Discord/Matrix/Microsoft Teams) - 가능하면 이름이 ID로 확인됩니다.
- 프롬프트에서 선택하면 채널 허용 목록(Slack/Discord/Matrix/Microsoft Teams)도 기록됩니다(가능하면 이름이 ID로 확인됩니다).
- `skills.install.nodeManager`
- `setup --node-manager``npm`, `pnpm`, `bun`허용합니다.
- 수동 config는 `skills.install.nodeManager`를 직접 설정하여 여전히 `yarn`을 사용할 수 있습니다.
- `setup --node-manager``npm`, `pnpm`, `bun`받습니다.
- 수동 config에서`skills.install.nodeManager`를 직접 설정하여 여전히 `yarn`을 사용할 수 있습니다.
- `wizard.lastRunAt`
- `wizard.lastRunVersion`
- `wizard.lastRunCommit`
@ -240,13 +239,12 @@ Gateway는 RPC를 통해 온보딩 흐름을 노출합니다(`wizard.start`, `wi
WhatsApp 자격 증명은 `~/.openclaw/credentials/whatsapp/<accountId>/` 아래에 저장됩니다.
세션은 `~/.openclaw/agents/<agentId>/sessions/` 아래에 저장됩니다.
일부 채널은 plugin으로 제공됩니다. 설정 중 하나를 선택하면, 온보딩은
구성하기 전에 해당 plugin을 설치하도록(npm 또는 로컬 경로) 안내합니다.
일부 채널은 Plugin으로 제공됩니다. 설정 중 하나를 선택하면, 온보딩은 이를 구성하기 전에 설치할 수 있도록 `npm` 또는 로컬 경로를 사용한 설치를 안내합니다.
## 관련 문서
- 온보딩 개요: [온보딩(CLI)](/ko/start/wizard)
- 온보딩 개요: [온보딩 (CLI)](/ko/start/wizard)
- macOS 앱 온보딩: [온보딩](/ko/start/onboarding)
- Config 참조: [Gateway configuration](/ko/gateway/configuration)
- Providers: [WhatsApp](/ko/channels/whatsapp), [Telegram](/ko/channels/telegram), [Discord](/ko/channels/discord), [Google Chat](/ko/channels/googlechat), [Signal](/ko/channels/signal), [BlueBubbles](/ko/channels/bluebubbles) (iMessage), [iMessage](/ko/channels/imessage) (레거시)
- config 참조: [Gateway 구성](/ko/gateway/configuration)
- 제공자: [WhatsApp](/ko/channels/whatsapp), [Telegram](/ko/channels/telegram), [Discord](/ko/channels/discord), [Google Chat](/ko/channels/googlechat), [Signal](/ko/channels/signal), [BlueBubbles](/ko/channels/bluebubbles) (iMessage), [iMessage](/ko/channels/imessage) (레거시)
- Skills: [Skills](/ko/tools/skills), [Skills config](/ko/tools/skills-config)

View File

@ -1,116 +1,116 @@
---
read_when:
- '`openclaw onboard`의 자세한 동작이 필요한 경우'
- 온보딩 결과를 디버깅하거나 온보딩 클라이언트를 통합하는 경우
- '`openclaw onboard`의 자세한 동작이 필요합니다'
- 온보딩 결과를 디버그하거나 온보딩 클라이언트를 통합하고 있습니다
sidebarTitle: CLI reference
summary: CLI 설정 흐름, auth/모델 설정, 출력, 내부 동작에 대한 전체 참조
summary: CLI 설정 흐름, 인증/모델 설정, 출력 및 내부 동작에 대한 완전한 참조
title: CLI 설정 참조
x-i18n:
generated_at: "2026-04-06T03:12:49Z"
generated_at: "2026-04-15T14:41:06Z"
model: gpt-5.4
provider: openai
source_hash: 92f379b34a2b48c68335dae4f759117c770f018ec51b275f4f40421c6b3abb23
source_hash: 61ca679caca3b43fa02388294007f89db22d343e49e10b61d8d118cd8fbb7369
source_path: start/wizard-cli-reference.md
workflow: 15
---
# CLI 설정 참조
이 페이지는 `openclaw onboard`의 전체 참조입니다.
짧은 가이드는 [Onboarding (CLI)](/ko/start/wizard)를 참조하세요.
이 페이지는 `openclaw onboard`의 전체 참조 문서입니다.
짧은 안내는 [온보딩 (CLI)](/ko/start/wizard)를 참고하세요.
## 마법사가 하는 일
## 마법사가 수행하는 작업
로컬 모드(기본값)는 다음 과정을 안내합니다:
로컬 모드(기본값)는 다음 항목을 안내합니다.
- 모델 및 auth 설정(OpenAI Code 구독 OAuth, Anthropic Claude CLI 또는 API 키, 그리고 MiniMax, GLM, Ollama, Moonshot, StepFun, AI Gateway 옵션)
- 워크스페이스 위치 및 bootstrap 파일
- Gateway 설정(포트, bind, auth, Tailscale)
- 채널 및 provider(Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles, 기타 번들 채널 plugin)
- 데몬 설치(LaunchAgent, systemd 사용자 유닛, 또는 Startup 폴더 폴백이 있는 네이티브 Windows Scheduled Task)
- 모델 및 인증 설정(OpenAI Code 구독 OAuth, Anthropic Claude CLI 또는 API 키, 그리고 MiniMax, GLM, Ollama, Moonshot, StepFun, AI Gateway 옵션)
- 워크스페이스 위치 및 부트스트랩 파일
- Gateway 설정(포트, 바인드, 인증, Tailscale)
- 채널 및 제공자(Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles 및 기타 번들 채널 Plugin)
- 데몬 설치(LaunchAgent, systemd 사용자 유닛 또는 기본 Windows Scheduled Task와 Startup 폴더 대체 경로)
- 상태 점검
- Skills 설정
원격 모드는 이 컴퓨터가 다른 위치의 gateway에 연결되도록 구성합니다.
원격 호스트에는 아무것도 설치하거나 수정하지 않습니다.
## 로컬 흐름 세부 사항
## 로컬 흐름 세부사항
<Steps>
<Step title="기존 config 감지">
- `~/.openclaw/openclaw.json`이 있으면 유지, 수정, 또는 재설정을 선택합니다.
- 마법사를 다시 실행해도 명시적으로 재설정을 선택하지 않는 한(또는 `--reset`을 전달하지 않는 한) 아무것도 지워지지 않습니다.
- CLI `--reset`의 기본값은 `config+creds+sessions`이며, 워크스페이스 제거하려면 `--reset-scope full`을 사용하세요.
- config가 유효하지 않거나 레거시 키를 포함하고 있으면, 마법사는 중단하고 계속하기 전에 `openclaw doctor`를 실행하라고 요청합니다.
- 재설정은 `trash`를 사용하며 다음 범위를 제공합니다:
- config
- config + 자격 증명 + 세션
<Step title="기존 구성 감지">
- `~/.openclaw/openclaw.json`이 있으면 Keep, Modify 또는 Reset을 선택합니다.
- 마법사를 다시 실행해도 명시적으로 Reset을 선택하지 않는 한(또는 `--reset`을 전달하지 않는 한) 아무것도 지워지지 않습니다.
- CLI `--reset`의 기본값은 `config+creds+sessions`이며, 워크스페이스까지 제거하려면 `--reset-scope full`을 사용하세요.
- 구성이 유효하지 않거나 레거시 키를 포함하면, 마법사는 중단하고 계속하기 전에 `openclaw doctor`를 실행하라고 요청합니다.
- Reset은 `trash`를 사용하며 다음 범위를 제공합니다.
- 구성
- 구성 + 자격 증명 + 세션
- 전체 재설정(워크스페이스도 제거)
</Step>
<Step title="모델 및 auth">
- 전체 옵션 매트릭스는 [Auth and model options](#auth-and-model-options)에 있습니다.
<Step title="모델 및 인증">
- 전체 옵션 매트릭스는 [인증 및 모델 옵션](#auth-and-model-options)에 있습니다.
</Step>
<Step title="워크스페이스">
- 기본값은 `~/.openclaw/workspace`입니다(변경 가능).
- 최초 실행 bootstrap ritual에 필요한 워크스페이스 파일을 시드합니다.
- 워크스페이스 레이아웃: [Agent workspace](/ko/concepts/agent-workspace).
- 기본값은 `~/.openclaw/workspace`입니다(구성 가능).
- 첫 실행 부트스트랩 의식에 필요한 워크스페이스 파일을 시드합니다.
- 워크스페이스 레이아웃: [에이전트 워크스페이스](/ko/concepts/agent-workspace).
</Step>
<Step title="Gateway">
- 포트, bind, auth 모드, Tailscale 노출 여부를 묻습니다.
- 권장 사항: loopback에서도 토큰 auth를 활성화해 로컬 WS 클라이언트가 인증하도록 유지하세요.
- 토큰 모드에서 대화형 설정은 다음을 제공합니다:
- 포트, 바인드, 인증 모드, Tailscale 노출 여부를 묻습니다.
- 권장 사항: 로컬 WS 클라이언트도 인증해야 하므로 loopback만 사용하더라도 토큰 인증을 활성화한 상태로 유지하세요.
- 토큰 모드에서 대화형 설정은 다음을 제공합니다.
- **일반 텍스트 토큰 생성/저장** (기본값)
- **SecretRef 사용** (옵트인)
- 비밀번호 모드에서도 대화형 설정은 일반 텍스트 또는 SecretRef 저장을 지원합니다.
- 비대화형 토큰 SecretRef 경로: `--gateway-token-ref-env <ENV_VAR>`.
- 온보딩 프로세스 환경에 비어 있지 않은 env var가 필요합니다.
- 온보딩 프로세스 환경에 비어 있지 않은 환경 변수가 필요합니다.
- `--gateway-token`과 함께 사용할 수 없습니다.
- 모든 로컬 프로세스를 완전히 신뢰하는 경우에만 auth를 비활성화하세요.
- loopback이 아닌 bind에도 여전히 auth가 필요합니다.
- 모든 로컬 프로세스를 완전히 신뢰하는 경우에만 인증을 비활성화하세요.
- loopback이 아닌 바인드도 여전히 인증이 필요합니다.
</Step>
<Step title="채널">
- [WhatsApp](/ko/channels/whatsapp): 선택적 QR 로그인
- [Telegram](/ko/channels/telegram): 봇 토큰
- [Discord](/ko/channels/discord): 봇 토큰
- [Google Chat](/ko/channels/googlechat): 서비스 계정 JSON + webhook audience
- [Google Chat](/ko/channels/googlechat): 서비스 계정 JSON + Webhook audience
- [Mattermost](/ko/channels/mattermost): 봇 토큰 + 기본 URL
- [Signal](/ko/channels/signal): 선택적 `signal-cli` 설치 + 계정 config
- [BlueBubbles](/ko/channels/bluebubbles): iMessage에 권장; 서버 URL + 비밀번호 + webhook
- [Signal](/ko/channels/signal): 선택적 `signal-cli` 설치 + 계정 구성
- [BlueBubbles](/ko/channels/bluebubbles): iMessage에 권장; 서버 URL + 비밀번호 + Webhook
- [iMessage](/ko/channels/imessage): 레거시 `imsg` CLI 경로 + DB 접근
- DM 보안: 기본값은 페어링입니다. 첫 DM은 코드를 보내며,
- DM 보안: 기본값은 페어링입니다. 첫 DM은 코드를 전송하며,
`openclaw pairing approve <channel> <code>`로 승인하거나 allowlist를 사용할 수 있습니다.
</Step>
<Step title="데몬 설치">
- macOS: LaunchAgent
- 로그인된 사용자 세션이 필요합니다. headless 환경에서는 커스텀 LaunchDaemon을 사용하세요(기본 제공되지 않음).
- 로그인된 사용자 세션이 필요합니다. 헤드리스 환경에서는 사용자 지정 LaunchDaemon을 사용하세요(기본 제공되지 않음).
- Linux 및 WSL2를 통한 Windows: systemd 사용자 유닛
- 마법사는 로그아웃 후에도 gateway가 유지되도록 `loginctl enable-linger <user>`를 시도합니다.
- 마법사는 로그아웃 후에도 gateway가 계속 실행되도록 `loginctl enable-linger <user>`를 시도합니다.
- sudo를 요청할 수 있습니다(`/var/lib/systemd/linger`에 기록). 먼저 sudo 없이 시도합니다.
- 네이티브 Windows: 우선 Scheduled Task
- 태스크 생성이 거부되면 OpenClaw는 사용자별 Startup 폴더 로그인 항목으로 폴백하고 gateway를 즉시 시작합니다.
- Scheduled Task는 더 나은 supervisor 상태를 제공하므로 여전히 우선 방식입니다.
- 런타임 선택: Node(권장; WhatsApp과 Telegram에 필요). Bun은 권장되지 않습니다.
- 기본 Windows: 먼저 Scheduled Task
- 작업 생성이 거부되면, OpenClaw는 사용자별 Startup 폴더 로그인 항목으로 대체하고 gateway를 즉시 시작합니다.
- Scheduled Task는 더 나은 supervisor 상태를 제공하므로 여전히 선호됩니다.
- 런타임 선택: Node(권장, WhatsApp 및 Telegram에 필요). Bun은 권장되지 않습니다.
</Step>
<Step title="상태 점검">
- 필요하면 gateway를 시작하고 `openclaw health`를 실행합니다.
- `openclaw status --deep`는 지원되는 경우 채널 프로브를 포함 라이브 gateway 상태 프로브를 상태 출력에 추가합니다.
- `openclaw status --deep`는 지원되는 경우 채널 프로브를 포함 라이브 gateway 상태 프로브를 상태 출력에 추가합니다.
</Step>
<Step title="Skills">
- 사용 가능한 Skills를 읽고 요구 사항을 확인합니다.
- node manager로 npm, pnpm, 또는 bun을 선택할 수 있습니다.
- 노드 관리자로 npm, pnpm 또는 bun을 선택할 수 있습니다.
- 선택적 의존성을 설치합니다(일부는 macOS에서 Homebrew 사용).
</Step>
<Step title="완료">
- iOS, Android, macOS 앱 옵션을 포함한 요약 및 다음 단계가 표시됩니다.
<Step title="마무리">
- 요약 및 다음 단계(iOS, Android, macOS 앱 옵션 포함)를 제공합니다.
</Step>
</Steps>
<Note>
GUI가 감지되지 않으면 마법사는 브라우저를 여는 대신 Control UI용 SSH 포트 포워딩 안내를 출력합니다.
Control UI 자산이 없으면 마법사는 이를 빌드하려고 시도하며, 폴백은 `pnpm ui:build`입니다(UI 의존성 자동 설치).
GUI가 감지되지 않으면, 마법사는 브라우저를 여는 대신 Control UI용 SSH 포트 포워딩 지침을 출력합니다.
Control UI 자산이 없으면, 마법사는 이를 빌드하려고 시도합니다. 대체 경로는 `pnpm ui:build`이며(UI 의존성을 자동 설치함)입니다.
</Note>
## 원격 모드 세부 사항
## 원격 모드 세부사항
원격 모드는 이 컴퓨터가 다른 위치의 gateway에 연결되도록 구성합니다.
@ -121,145 +121,146 @@ Control UI 자산이 없으면 마법사는 이를 빌드하려고 시도하며,
설정하는 항목:
- 원격 gateway URL (`ws://...`)
- 원격 gateway auth가 필요한 경우 토큰(권장)
- 원격 gateway 인증이 필요한 경우 토큰(권장)
<Note>
- gateway가 loopback 전용이면 SSH 터널링 또는 tailnet을 사용하세요.
- 탐지 힌트:
- 검색 힌트:
- macOS: Bonjour (`dns-sd`)
- Linux: Avahi (`avahi-browse`)
</Note>
## Auth and model options
## 인증 및 모델 옵션
<AccordionGroup>
<Accordion title="Anthropic API 키">
있으면 `ANTHROPIC_API_KEY`를 사용하고, 없으면 키를 입력받은 뒤 데몬에서 사용할 수 있도록 저장합니다.
`ANTHROPIC_API_KEY`가 있으면 이를 사용하고, 없으면 키를 요청한 뒤 데몬에서 사용할 수 있도록 저장합니다.
</Accordion>
<Accordion title="OpenAI Code 구독(Codex CLI 재사용)">
`~/.codex/auth.json`이 있으면 마법사가 이를 재사용할 수 있습니다.
재사용된 Codex CLI 자격 증명은 계속 Codex CLI가 관리합니다. 만료되면 OpenClaw는
먼저 해당 소스를 다시 읽고, provider가 이를 갱신할 수 있으면
소유권을 가져오는 대신 갱신된 자격 증명을 다시 Codex 저장소에 기록합니다.
먼저 해당 소스를 다시 읽고, 제공자가 이를 갱신할 수 있으면
자격 증명의 소유권을 가져오지 않고 갱신된 자격 증명을 다시 Codex 저장소에 기록합니다.
</Accordion>
<Accordion title="OpenAI Code 구독(OAuth)">
브라우저 흐름; `code#state`를 붙여 넣습니다.
브라우저 흐름이며 `code#state`를 붙여 넣습니다.
모델이 설정되지 않았거나 `openai/*`인 경우 `agents.defaults.model``openai-codex/gpt-5.4`로 설정합니다.
</Accordion>
<Accordion title="OpenAI API 키">
있으면 `OPENAI_API_KEY`를 사용하고, 없으면 키를 입력받은 뒤 자격 증명을 auth 프로필에 저장합니다.
`OPENAI_API_KEY`가 있으면 이를 사용하고, 없으면 키를 요청한 뒤 자격 증명을 auth profile에 저장합니다.
모델이 설정되지 않았거나 `openai/*`, `openai-codex/*`인 경우 `agents.defaults.model``openai/gpt-5.4`로 설정합니다.
모델이 설정되지 않았거나 `openai/*` 또는 `openai-codex/*`인 경우 `agents.defaults.model``openai/gpt-5.4`로 설정합니다.
</Accordion>
<Accordion title="xAI (Grok) API 키">
`XAI_API_KEY`입력받고 xAI를 모델 provider로 구성합니다.
`XAI_API_KEY`요청하고 xAI를 모델 제공자로 구성합니다.
</Accordion>
<Accordion title="OpenCode">
`OPENCODE_API_KEY`(또는 `OPENCODE_ZEN_API_KEY`)를 입력받고 Zen 또는 Go 카탈로그를 선택하게 합니다.
`OPENCODE_API_KEY`(또는 `OPENCODE_ZEN_API_KEY`)를 요청하고 Zen 또는 Go 카탈로그를 선택하게 합니다.
설정 URL: [opencode.ai/auth](https://opencode.ai/auth).
</Accordion>
<Accordion title="API 키(일반)">
키를 대신 저장합니다.
</Accordion>
<Accordion title="Vercel AI Gateway">
`AI_GATEWAY_API_KEY`입력받습니다.
`AI_GATEWAY_API_KEY`요청합니다.
자세한 내용: [Vercel AI Gateway](/ko/providers/vercel-ai-gateway).
</Accordion>
<Accordion title="Cloudflare AI Gateway">
account ID, gateway ID, `CLOUDFLARE_AI_GATEWAY_API_KEY`를 입력받습니다.
계정 ID, gateway ID, `CLOUDFLARE_AI_GATEWAY_API_KEY`를 요청합니다.
자세한 내용: [Cloudflare AI Gateway](/ko/providers/cloudflare-ai-gateway).
</Accordion>
<Accordion title="MiniMax">
config가 자동으로 기록됩니다. 호스팅 기본값은 `MiniMax-M2.7`입니다. API 키 설정은
`minimax/...`를 사용하고, OAuth 설정은 `minimax-portal/...` 사용합니다.
구성이 자동으로 기록됩니다. 호스팅 기본값은 `MiniMax-M2.7`이며, API 키 설정은
`minimax/...`를 사용하고 OAuth 설정은 `minimax-portal/...` 사용합니다.
자세한 내용: [MiniMax](/ko/providers/minimax).
</Accordion>
<Accordion title="StepFun">
중국 또는 글로벌 엔드포인트의 StepFun standard 또는 Step Plan용 config가 자동으로 기록됩니다.
중국 또는 글로벌 엔드포인트의 StepFun standard 또는 Step Plan에 맞게 구성이 자동으로 기록됩니다.
Standard에는 현재 `step-3.5-flash`가 포함되며, Step Plan에는 `step-3.5-flash-2603`도 포함됩니다.
자세한 내용: [StepFun](/ko/providers/stepfun).
</Accordion>
<Accordion title="Synthetic (Anthropic 호환)">
`SYNTHETIC_API_KEY`입력받습니다.
`SYNTHETIC_API_KEY`요청합니다.
자세한 내용: [Synthetic](/ko/providers/synthetic).
</Accordion>
<Accordion title="Ollama (클라우드 및 로컬 오픈 모델)">
기본 URL(기본값 `http://127.0.0.1:11434`)을 입력받은 다음 Cloud + Local 또는 Local 모드를 제안합니다.
사용 가능한 모델을 탐지하고 기본값을 제안합니다.
<Accordion title="Ollama (Cloud 및 로컬 오픈 모델)">
먼저 `Cloud + Local`, `Cloud only`, `Local only`를 묻습니다.
`Cloud only``OLLAMA_API_KEY``https://ollama.com`을 사용합니다.
호스트 기반 모드는 기본 URL(기본값 `http://127.0.0.1:11434`)을 요청하고, 사용 가능한 모델을 검색하며, 기본값을 제안합니다.
`Cloud + Local`은 해당 Ollama 호스트가 cloud 액세스를 위해 로그인되어 있는지도 확인합니다.
자세한 내용: [Ollama](/ko/providers/ollama).
</Accordion>
<Accordion title="Moonshot 및 Kimi Coding">
Moonshot(Kimi K2) 및 Kimi Coding config가 자동으로 기록됩니다.
Moonshot (Kimi K2) 및 Kimi Coding 구성은 자동으로 기록됩니다.
자세한 내용: [Moonshot AI (Kimi + Kimi Coding)](/ko/providers/moonshot).
</Accordion>
<Accordion title="커스텀 provider">
OpenAI 호환 및 Anthropic 호환 엔드포인트와 동작합니다.
<Accordion title="사용자 지정 제공자">
OpenAI 호환 및 Anthropic 호환 엔드포인트와 함께 작동합니다.
대화형 온보딩은 다른 provider API 키 흐름과 동일한 API 키 저장 옵션을 지원합니다:
대화형 온보딩은 다른 제공자 API 키 흐름과 동일한 API 키 저장 선택지를 지원합니다.
- **지금 API 키 붙여넣기** (일반 텍스트)
- **secret reference 사용** (env ref 또는 구성된 provider ref, 사전 검증 포함)
- **시크릿 참조 사용** (환경 변수 ref 또는 구성된 provider ref, 사전 검증 포함)
비대화형 플래그:
- `--auth-choice custom-api-key`
- `--custom-base-url`
- `--custom-model-id`
- `--custom-api-key` (선택 사항; `CUSTOM_API_KEY`로 폴백)
- `--custom-api-key` (선택 사항, 없으면 `CUSTOM_API_KEY` 사용)
- `--custom-provider-id` (선택 사항)
- `--custom-compatibility <openai|anthropic>` (선택 사항; 기본값 `openai`)
- `--custom-compatibility <openai|anthropic>` (선택 사항, 기본값 `openai`)
</Accordion>
<Accordion title="건너뛰기">
auth를 구성하지 않은 상태로 둡니다.
인증을 구성하지 않은 상태로 둡니다.
</Accordion>
</AccordionGroup>
모델 동작:
- 탐지된 옵션에서 기본 모델을 선택하거나, provider와 모델을 수동으로 입력합니다.
- 온보딩이 provider auth 선택에서 시작되면 모델 선택기는
해당 provider를 자동으로 우선 적용합니다. Volcengine과 BytePlus의 경우 이 우선순위는
- 감지된 옵션에서 기본 모델을 선택하거나, 제공자와 모델을 수동으로 입력합니다.
- 온보딩이 제공자 인증 선택에서 시작되면, 모델 선택기는
해당 제공자를 자동으로 우선시합니다. Volcengine 및 BytePlus의 경우, 동일한 우선순위가
해당 coding-plan 변형(`volcengine-plan/*`,
`byteplus-plan/*`)과도 일치합니다.
- 해당 선호 provider 필터 결과가 비어 있으면, 선택기는 모델이 없다고 표시하는 대신
전체 카탈로그로 폴백합니다.
- 마법사는 모델 검사를 실행하고 구성된 모델을 알 수 없거나 auth가 없으면 경고합니다.
`byteplus-plan/*`)에도 적용됩니다.
- 이 기본 제공자 필터의 결과가 비어 있으면,
모델을 하나도 표시하지 않는 대신 전체 카탈로그로 대체합니다.
- 마법사는 모델 검사를 실행하고 구성된 모델을 알 수 없거나 인증이 누락된 경우 경고합니다.
자격 증명 및 프로필 경로:
자격 증명 및 profile 경로:
- Auth 프로필(API 키 + OAuth): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
- 레거시 OAuth import: `~/.openclaw/credentials/oauth.json`
- Auth profile(API 키 + OAuth): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
- 레거시 OAuth 가져오기: `~/.openclaw/credentials/oauth.json`
자격 증명 저장 모드:
- 기본 온보딩 동작은 API 키를 auth 프로필에 일반 텍스트 값으로 저장합니다.
- `--secret-input-mode ref`는 일반 텍스트 키 저장 대신 reference 모드를 활성화합니다.
대화형 설정에서는 다음 중 하나를 선택할 수 있습니다:
- 기본 온보딩 동작은 API 키를 auth profile에 일반 텍스트 값으로 저장합니다.
- `--secret-input-mode ref`는 일반 텍스트 키 저장 대신 참조 모드를 활성화합니다.
대화형 설정에서는 다음 중 하나를 선택할 수 있습니다.
- 환경 변수 ref(예: `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`)
- provider 별칭 + id를 사용하는 구성된 provider ref(`file` 또는 `exec`)
- 대화형 reference 모드는 저장 전에 빠른 사전 검증을 실행합니다.
- Env ref: 현재 온보딩 환경에서 변수 이름과 비어 있지 않은 값을 검증합니다.
- Provider ref: provider config를 검증하고 요청된 id를 해석합니다.
- 사전 검증이 실패하면 온보딩이 오류를 보여 주고 다시 시도할 수 있게 합니다.
- 구성된 provider ref(`file` 또는 `exec`)와 provider 별칭 + id
- 대화형 참조 모드는 저장 전에 빠른 사전 검증을 실행합니다.
- Env ref: 변수 이름과 현재 온보딩 환경에서 비어 있지 않은 값을 검증합니다.
- Provider ref: provider 구성을 검증하고 요청한 id를 확인합니다.
- 사전 검증이 실패하면 온보딩은 오류를 표시하고 다시 시도할 수 있게 합니다.
- 비대화형 모드에서 `--secret-input-mode ref`는 env 기반만 지원합니다.
- provider env var를 온보딩 프로세스 환경에 설정하세요.
- 인라인 키 플래그(예: `--openai-api-key`)는 해당 env var가 설정되어 있어야 하며, 그렇지 않으면 온보딩이 즉시 실패합니다.
- 커스텀 provider의 경우 비대화형 `ref` 모드는 `models.providers.<id>.apiKey``{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`로 저장합니다.
- 이 커스텀 provider 경우 `--custom-api-key` `CUSTOM_API_KEY`가 설정되어 있어야 하며, 그렇지 않으면 온보딩이 즉시 실패합니다.
- Gateway auth 자격 증명은 대화형 설정에서 일반 텍스트와 SecretRef 선택을 지원합니다:
- 토큰 모드: **일반 텍스트 토큰 생성/저장**(기본값) 또는 **SecretRef 사용**.
- 온보딩 프로세스 환경에 provider 환경 변수를 설정하세요.
- 인라인 키 플래그(예: `--openai-api-key`)는 해당 환경 변수가 설정되어 있어야 하며, 그렇지 않으면 온보딩이 즉시 실패합니다.
- 사용자 지정 제공자의 경우 비대화형 `ref` 모드는 `models.providers.<id>.apiKey``{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`로 저장합니다.
- 이 사용자 지정 제공자 경우에는 `--custom-api-key`를 사용하려면 `CUSTOM_API_KEY`가 설정되어 있어야 하며, 그렇지 않으면 온보딩이 즉시 실패합니다.
- Gateway 인증 자격 증명은 대화형 설정에서 일반 텍스트와 SecretRef 선택을 모두 지원합니다.
- 토큰 모드: **일반 텍스트 토큰 생성/저장** (기본값) 또는 **SecretRef 사용**.
- 비밀번호 모드: 일반 텍스트 또는 SecretRef.
- 비대화형 토큰 SecretRef 경로: `--gateway-token-ref-env <ENV_VAR>`.
- 기존 일반 텍스트 설정은 변경 없이 계속 작합니다.
- 기존 일반 텍스트 설정은 변경 없이 계속 작합니다.
<Note>
헤드리스 및 서버 팁: 브라우저가 있는 컴퓨터에서 OAuth를 완료한 다음
해당 에이전트의 `auth-profiles.json`(예:
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, 또는 해당하는
헤드리스 및 서버 팁: 브라우저가 있는 컴퓨터에서 OAuth를 완료한 다음, 해당 에이전트의 `auth-profiles.json`(예:
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json` 또는 일치하는
`$OPENCLAW_STATE_DIR/...` 경로)을 gateway 호스트로 복사하세요. `credentials/oauth.json`
레거시 import 소스일 뿐입니다.
레거시 가져오기 소스일 뿐입니다.
</Note>
## 출력 및 내부 동작
@ -268,28 +269,28 @@ Control UI 자산이 없으면 마법사는 이를 빌드하려고 시도하며,
- `agents.defaults.workspace`
- `agents.defaults.model` / `models.providers` (MiniMax를 선택한 경우)
- `tools.profile` (로컬 온보딩은 설정되지 않은 경우 기본값으로 `"coding"`을 사용하며, 기존 명시적 값은 유지됩니다)
- `tools.profile` (로컬 온보딩은 설정되지 않은 경우 기본값으로 `"coding"`을 사용하며, 기존의 명시적 값은 유지됨)
- `gateway.*` (mode, bind, auth, Tailscale)
- `session.dmScope` (로컬 온보딩은 설정되지 않은 경우 기본값으로 `per-channel-peer`를 사용하며, 기존 명시적 값은 유지됩니다)
- `session.dmScope` (로컬 온보딩은 설정되지 않은 경우 기본값으로 `per-channel-peer`를 사용하며, 기존의 명시적 값은 유지됨)
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
- 프롬프트 중 옵트인하면 채널 allowlist(Slack, Discord, Matrix, Microsoft Teams)도 포함됩니다(가능하면 이름을 ID로 해석)
- 프롬프트 중 옵트인한 경우의 채널 allowlist(Slack, Discord, Matrix, Microsoft Teams) (가능하면 이름을 ID로 확인)
- `skills.install.nodeManager`
- `setup --node-manager` 플래그는 `npm`, `pnpm`, 또는 `bun`을 허용합니다.
- 수동 config에서는 나중에 `skills.install.nodeManager: "yarn"`도 설정할 수 있습니다.
- `setup --node-manager` 플래그는 `npm`, `pnpm`, `bun`을 허용합니다.
- 수동 구성에서는 나중에 `skills.install.nodeManager: "yarn"`도 설정할 수 있습니다.
- `wizard.lastRunAt`
- `wizard.lastRunVersion`
- `wizard.lastRunCommit`
- `wizard.lastRunCommand`
- `wizard.lastRunMode`
`openclaw agents add``agents.list[]` 선택적 `bindings`를 기록합니다.
`openclaw agents add``agents.list[]` 선택적 `bindings`를 기록합니다.
WhatsApp 자격 증명은 `~/.openclaw/credentials/whatsapp/<accountId>/` 아래에 저장됩니다.
세션은 `~/.openclaw/agents/<agentId>/sessions/` 아래에 저장됩니다.
<Note>
일부 채널은 plugin으로 제공됩니다. 설정 중 선택하면 마법사는
채널 구성을 진행하기 전에 plugin 설치(npm 또는 로컬 경로)를 묻습니다.
일부 채널은 Plugin으로 제공됩니다. 설정 중 선택하면 마법사는
채널 구성을 시작하기 전에 Plugin 설치(npm 또는 로컬 경로)를 묻습니다.
</Note>
Gateway 마법사 RPC:
@ -303,15 +304,15 @@ Gateway 마법사 RPC:
Signal 설정 동작:
- 적절한 릴리스 자산을 다운로드
- `~/.openclaw/tools/signal-cli/<version>/` 아래에 저장
- config에 `channels.signal.cliPath` 기록
- JVM 빌드는 Java 21이 필요
- 가능하면 네이티브 빌드를 사용
- Windows는 WSL2를 사용하며 WSL 내부에서 Linux signal-cli 흐름을 따름
- 적절한 릴리스 자산을 다운로드합니다
- 이를 `~/.openclaw/tools/signal-cli/<version>/` 아래에 저장합니다
- 구성에 `channels.signal.cliPath`를 기록합니다
- JVM 빌드는 Java 21이 필요합니다
- 사용 가능한 경우 네이티브 빌드가 사용됩니다
- Windows는 WSL2를 사용하며 WSL 내부에서 Linux `signal-cli` 흐름을 따릅니다
## 관련 문서
- 온보딩 허브: [Onboarding (CLI)](/ko/start/wizard)
- 자동화 및 스크립트: [CLI Automation](/ko/start/wizard-cli-automation)
- 명령 참조: [`openclaw onboard`](/cli/onboard)
- 온보딩 허브: [온보딩 (CLI)](/ko/start/wizard)
- 자동화 및 스크립트: [CLI 자동화](/ko/start/wizard-cli-automation)
- 명령 참조: [`openclaw onboard`](/cli/onboard)