chore(i18n): refresh id translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-15 14:48:30 +00:00
parent 97f26ad9b2
commit 8fd59714ec
12 changed files with 1746 additions and 1606 deletions

View File

@ -3,21 +3,21 @@ read_when:
- Anda ingin promosi memori berjalan secara otomatis
- Anda ingin memahami apa yang dilakukan setiap fase Dreaming
- Anda ingin menyetel konsolidasi tanpa mengotori `MEMORY.md`
summary: Konsolidasi memori latar belakang dengan fase ringan, dalam, dan REM serta Buku Harian Mimpi
title: Dreaming (eksperimental)
summary: Konsolidasi memori latar belakang dengan fase ringan, dalam, dan REM serta Jurnal Mimpi
title: Dreaming
x-i18n:
generated_at: "2026-04-15T09:14:51Z"
generated_at: "2026-04-15T14:40:58Z"
model: gpt-5.4
provider: openai
source_hash: 5882a5068f2eabe54ca9893184e5385330a432b921870c38626399ce11c31e25
source_hash: a5bcaec80f62e7611ed533094ef1917bd72c885f57252824db910e1f0496adc6
source_path: concepts/dreaming.md
workflow: 15
---
# Dreaming (eksperimental)
# Dreaming
Dreaming adalah sistem konsolidasi memori latar belakang di `memory-core`.
Sistem ini membantu OpenClaw memindahkan sinyal jangka pendek yang kuat ke memori yang tahan lama sambil
Sistem ini membantu OpenClaw memindahkan sinyal jangka pendek yang kuat ke memori tahan lama sambil
menjaga prosesnya tetap dapat dijelaskan dan ditinjau.
Dreaming bersifat **opsional** dan dinonaktifkan secara default.
@ -35,32 +35,32 @@ Promosi jangka panjang tetap hanya menulis ke `MEMORY.md`.
Dreaming menggunakan tiga fase kooperatif:
| Fase | Tujuan | Penulisan tahan lama |
| ----- | ----------------------------------------- | -------------------- |
| Light | Mengurutkan dan menyiapkan materi jangka pendek terbaru | Tidak |
| Deep | Menilai dan mempromosikan kandidat tahan lama | Ya (`MEMORY.md`) |
| REM | Merefleksikan tema dan gagasan yang berulang | Tidak |
| Fase | Tujuan | Penulisan tahan lama |
| ----- | ---------------------------------------- | -------------------- |
| Light | Menyortir dan menyiapkan materi jangka pendek terbaru | Tidak |
| Deep | Memberi skor dan mempromosikan kandidat tahan lama | Ya (`MEMORY.md`) |
| REM | Merefleksikan tema dan gagasan yang berulang | Tidak |
Fase-fase ini adalah detail implementasi internal, bukan "mode"
terpisah yang dikonfigurasi pengguna.
terpisah yang dikonfigurasi oleh pengguna.
### Fase Light
Fase Light mengingest sinyal memori harian terbaru dan jejak recall, menghapus duplikasi,
dan menyiapkan baris kandidat.
- Membaca dari status recall jangka pendek, file memori harian terbaru, dan transkrip sesi yang telah disunting bila tersedia.
- Membaca dari status recall jangka pendek, file memori harian terbaru, dan transkrip sesi yang telah disunting jika tersedia.
- Menulis blok `## Light Sleep` yang dikelola ketika penyimpanan mencakup output inline.
- Mencatat sinyal penguatan untuk peringkat deep di tahap selanjutnya.
- Mencatat sinyal reinforcement untuk pemeringkatan deep nanti.
- Tidak pernah menulis ke `MEMORY.md`.
### Fase Deep
Fase Deep menentukan apa yang menjadi memori jangka panjang.
Fase Deep memutuskan apa yang menjadi memori jangka panjang.
- Memberi peringkat kandidat menggunakan penilaian berbobot dan gerbang ambang.
- Memeringkat kandidat menggunakan penilaian berbobot dan ambang batas.
- Mengharuskan `minScore`, `minRecallCount`, dan `minUniqueQueries` terpenuhi.
- Menghidrasi ulang cuplikan dari file harian aktif sebelum menulis, sehingga cuplikan lama/yang dihapus dilewati.
- Menghidrasi ulang cuplikan dari file harian langsung sebelum menulis, sehingga cuplikan usang/terhapus dilewati.
- Menambahkan entri yang dipromosikan ke `MEMORY.md`.
- Menulis ringkasan `## Deep Sleep` ke `DREAMS.md` dan secara opsional menulis `memory/dreaming/deep/YYYY-MM-DD.md`.
@ -70,62 +70,62 @@ Fase REM mengekstrak pola dan sinyal reflektif.
- Membangun ringkasan tema dan refleksi dari jejak jangka pendek terbaru.
- Menulis blok `## REM Sleep` yang dikelola ketika penyimpanan mencakup output inline.
- Mencatat sinyal penguatan REM yang digunakan oleh peringkat deep.
- Mencatat sinyal reinforcement REM yang digunakan oleh pemeringkatan deep.
- Tidak pernah menulis ke `MEMORY.md`.
## Ingestion transkrip sesi
Dreaming dapat mengingest transkrip sesi yang telah disunting ke dalam korpus dreaming. Ketika
Dreaming dapat mengingest transkrip sesi yang telah disunting ke dalam korpus dreaming. Saat
transkrip tersedia, transkrip tersebut dimasukkan ke fase Light bersama
sinyal memori harian dan jejak recall. Konten pribadi dan sensitif disunting
sebelum ingestion.
## Dream Diary
## Jurnal Mimpi
Dreaming juga menyimpan **Dream Diary** naratif di `DREAMS.md`.
Setelah setiap fase memiliki cukup materi, `memory-core` menjalankan giliran subagen latar belakang
best-effort (menggunakan model runtime default) dan menambahkan entri diary singkat.
Dreaming juga menyimpan **Jurnal Mimpi** naratif di `DREAMS.md`.
Setelah setiap fase memiliki materi yang cukup, `memory-core` menjalankan giliran subagen latar belakang
best-effort (menggunakan model runtime default) dan menambahkan entri jurnal singkat.
Diary ini ditujukan untuk dibaca manusia di UI Dreams, bukan sebagai sumber promosi.
Artefak diary/laporan yang dihasilkan Dreaming dikecualikan dari
promosi jangka pendek. Hanya cuplikan memori yang berlandaskan bukti yang memenuhi syarat untuk dipromosikan ke
Jurnal ini untuk dibaca manusia di UI Dreams, bukan sumber promosi.
Artefak jurnal/laporan yang dihasilkan Dreaming dikecualikan dari
promosi jangka pendek. Hanya cuplikan memori yang berlandaskan data yang memenuhi syarat untuk dipromosikan ke
`MEMORY.md`.
Ada juga jalur backfill historis yang berlandaskan bukti untuk pekerjaan peninjauan dan pemulihan:
Ada juga jalur backfill historis yang berlandaskan data untuk pekerjaan peninjauan dan pemulihan:
- `memory rem-harness --path ... --grounded` mempratinjau output diary berlandaskan bukti dari catatan historis `YYYY-MM-DD.md`.
- `memory rem-backfill --path ...` menulis entri diary berlandaskan bukti yang dapat dibalik ke `DREAMS.md`.
- `memory rem-backfill --path ... --stage-short-term` menyiapkan kandidat tahan lama berlandaskan bukti ke penyimpanan bukti jangka pendek yang sama yang sudah digunakan oleh fase Deep normal.
- `memory rem-backfill --rollback` dan `--rollback-short-term` menghapus artefak backfill yang telah disiapkan tersebut tanpa menyentuh entri diary biasa atau recall jangka pendek aktif.
- `memory rem-harness --path ... --grounded` mempratinjau output jurnal berlandaskan data dari catatan historis `YYYY-MM-DD.md`.
- `memory rem-backfill --path ...` menulis entri jurnal berlandaskan data yang dapat dibalik ke `DREAMS.md`.
- `memory rem-backfill --path ... --stage-short-term` menyiapkan kandidat tahan lama berlandaskan data ke penyimpanan bukti jangka pendek yang sama yang sudah digunakan fase deep normal.
- `memory rem-backfill --rollback` dan `--rollback-short-term` menghapus artefak backfill yang disiapkan tersebut tanpa menyentuh entri jurnal biasa atau recall jangka pendek langsung.
Control UI menampilkan alur backfill/reset diary yang sama sehingga Anda dapat memeriksa
hasilnya di scene Dreams sebelum memutuskan apakah kandidat berlandaskan bukti tersebut
layak dipromosikan. Scene juga menampilkan jalur berlandaskan bukti yang berbeda sehingga Anda dapat melihat
UI Control menampilkan alur backfill/reset jurnal yang sama sehingga Anda dapat memeriksa
hasilnya di scene Dreams sebelum memutuskan apakah kandidat berlandaskan data
layak dipromosikan. Scene juga menampilkan jalur berlandaskan data yang terpisah sehingga Anda dapat melihat
entri jangka pendek yang disiapkan mana yang berasal dari pemutaran ulang historis, item yang dipromosikan
mana yang dipimpin oleh data berlandaskan bukti, serta menghapus hanya entri tersiap berlandaskan bukti
tanpa menyentuh status jangka pendek aktif biasa.
mana yang dipimpin oleh data berlandaskan, dan menghapus hanya entri yang disiapkan khusus berlandaskan data tanpa
menyentuh status jangka pendek langsung biasa.
## Sinyal peringkat Deep
## Sinyal pemeringkatan Deep
Peringkat deep menggunakan enam sinyal dasar berbobot ditambah penguatan fase:
Pemeringkatan Deep menggunakan enam sinyal dasar berbobot ditambah reinforcement fase:
| Sinyal | Bobot | Deskripsi |
| ------------------- | ----- | ------------------------------------------------- |
| Sinyal | Bobot | Deskripsi |
| ------------------- | ----- | ------------------------------------------------ |
| Frekuensi | 0.24 | Berapa banyak sinyal jangka pendek yang dikumpulkan entri |
| Relevansi | 0.30 | Kualitas pengambilan rata-rata untuk entri |
| Keragaman kueri | 0.15 | Konteks kueri/hari berbeda yang memunculkannya |
| Kekinian | 0.15 | Skor kesegaran yang meluruh terhadap waktu |
| Konsolidasi | 0.10 | Kekuatan kemunculan berulang lintas hari |
| Kekayaan konseptual | 0.06 | Kepadatan tag konsep dari cuplikan/path |
| Relevansi | 0.30 | Kualitas pengambilan rata-rata untuk entri |
| Keragaman kueri | 0.15 | Konteks kueri/hari berbeda yang memunculkannya |
| Keterkinian | 0.15 | Skor kesegaran dengan peluruhan waktu |
| Konsolidasi | 0.10 | Kekuatan kemunculan ulang lintas hari |
| Kekayaan konseptual | 0.06 | Kepadatan tag konsep dari cuplikan/path |
Hit fase Light dan REM menambahkan sedikit peningkatan yang meluruh terhadap waktu dari
Hit fase Light dan REM menambahkan sedikit peningkatan dengan peluruhan keterkinian dari
`memory/.dreams/phase-signals.json`.
## Penjadwalan
Saat diaktifkan, `memory-core` secara otomatis mengelola satu job cron untuk satu penyapuan dreaming penuh. Setiap penyapuan menjalankan fase secara berurutan: light -> REM -> deep.
Saat diaktifkan, `memory-core` mengelola secara otomatis satu tugas Cron untuk satu sapuan dreaming penuh. Setiap sapuan menjalankan fase secara berurutan: light -> REM -> deep.
Perilaku cadence default:
Perilaku kadensi default:
| Pengaturan | Default |
| -------------------- | ----------- |
@ -151,7 +151,7 @@ Aktifkan dreaming:
}
```
Aktifkan dreaming dengan cadence penyapuan kustom:
Aktifkan dreaming dengan kadensi sapuan kustom:
```json
{
@ -191,7 +191,7 @@ openclaw memory promote --limit 5
openclaw memory status --deep
```
`memory promote` manual menggunakan ambang fase Deep secara default kecuali ditimpa
`memory promote` manual menggunakan ambang fase deep secara default kecuali diganti
dengan flag CLI.
Jelaskan mengapa kandidat tertentu akan atau tidak akan dipromosikan:
@ -218,22 +218,22 @@ Semua pengaturan berada di bawah `plugins.entries.memory-core.config.dreaming`.
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
Kebijakan fase, ambang, dan perilaku penyimpanan adalah detail implementasi
internal (bukan konfigurasi yang ditujukan untuk pengguna).
Kebijakan fase, ambang batas, dan perilaku penyimpanan adalah detail implementasi
internal (bukan konfigurasi yang dihadapi pengguna).
Lihat [Referensi konfigurasi Memory](/id/reference/memory-config#dreaming-experimental)
Lihat [Referensi konfigurasi Memory](/id/reference/memory-config#dreaming)
untuk daftar kunci lengkap.
## UI Dreams
Saat diaktifkan, tab **Dreams** di Gateway menampilkan:
- status dreaming aktif saat ini
- status tingkat fase dan keberadaan managed sweep
- jumlah jangka pendek, berlandaskan bukti, sinyal, dan yang dipromosikan hari ini
- waktu jalankan terjadwal berikutnya
- jalur Scene berlandaskan bukti yang berbeda untuk entri replay historis yang disiapkan
- pembaca Dream Diary yang dapat diperluas yang didukung oleh `doctor.memory.dreamDiary`
- status aktif dreaming saat ini
- status tingkat fase dan keberadaan sapuan terkelola
- jumlah jangka pendek, berlandaskan data, sinyal, dan yang dipromosikan hari ini
- waktu jadwal eksekusi berikutnya
- jalur Scene berlandaskan data yang terpisah untuk entri pemutaran ulang historis yang disiapkan
- pembaca Jurnal Mimpi yang dapat diperluas yang didukung oleh `doctor.memory.dreamDiary`
## Terkait

View File

@ -0,0 +1,56 @@
---
read_when:
- Anda melihat kunci konfigurasi `.experimental` dan ingin mengetahui apakah itu stabil
- Anda ingin mencoba fitur runtime pratinjau tanpa membingungkannya dengan default normal
- Anda ingin satu tempat untuk menemukan flag eksperimental yang saat ini didokumentasikan
summary: Apa arti flag eksperimental di OpenClaw dan mana saja yang saat ini didokumentasikan
title: Fitur Eksperimental
x-i18n:
generated_at: "2026-04-15T14:40:34Z"
model: gpt-5.4
provider: openai
source_hash: 2d1c7b3d4cd56ef8a0bdab1deb9918e9b2c9a33f956d63193246087f8633dcf3
source_path: concepts/experimental-features.md
workflow: 15
---
# Fitur eksperimental
Fitur eksperimental di OpenClaw adalah **permukaan pratinjau yang bersifat opt-in**. Fitur-fitur ini
berada di balik flag eksplisit karena masih memerlukan penggunaan di dunia nyata
sebelum layak mendapatkan default yang stabil atau kontrak publik yang
berumur panjang.
Perlakukan ini berbeda dari konfigurasi normal:
- Biarkan **nonaktif secara default** kecuali dokumen terkait menyarankan Anda untuk mencobanya.
- Harapkan **bentuk dan perilaku berubah** lebih cepat dibandingkan konfigurasi stabil.
- Utamakan jalur stabil terlebih dahulu jika sudah tersedia.
- Jika Anda menerapkan OpenClaw secara luas, uji flag eksperimental di lingkungan
yang lebih kecil sebelum memasukkannya ke baseline bersama.
## Flag yang saat ini didokumentasikan
| Permukaan | Kunci | Gunakan saat | Selengkapnya |
| ------------------------ | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| Runtime model lokal | `agents.defaults.experimental.localModelLean` | Backend lokal yang lebih kecil atau lebih ketat mengalami kendala dengan permukaan tool default penuh OpenClaw | [Model Lokal](/id/gateway/local-models) |
| Pencarian memori | `agents.defaults.memorySearch.experimental.sessionMemory` | Anda ingin `memory_search` mengindeks transkrip sesi sebelumnya dan menerima biaya penyimpanan/pengindeksan tambahan | [Referensi konfigurasi memori](/id/reference/memory-config#session-memory-search-experimental) |
| Tool perencanaan terstruktur | `tools.experimental.planTool` | Anda ingin tool `update_plan` terstruktur diekspos untuk pelacakan pekerjaan multi-langkah di runtime dan UI yang kompatibel | [Referensi konfigurasi Gateway](/id/gateway/configuration-reference#toolsexperimental) |
## Mode lean model lokal
`agents.defaults.experimental.localModelLean: true` adalah katup pelepas tekanan
untuk penyiapan model lokal yang lebih lemah. Ini memangkas tool default yang
berat seperti `browser`, `cron`, dan `message` sehingga bentuk prompt menjadi lebih kecil dan kurang rapuh
untuk backend kompatibel OpenAI yang memiliki konteks kecil atau lebih ketat.
Ini memang **bukan** jalur normal. Jika backend Anda menangani runtime penuh
dengan baik, biarkan ini nonaktif.
## Eksperimental bukan berarti tersembunyi
Jika sebuah fitur bersifat eksperimental, OpenClaw harus menyatakannya dengan
jelas di dokumen dan di jalur konfigurasinya sendiri. Yang **tidak** boleh
dilakukan adalah menyelundupkan perilaku pratinjau ke dalam knob default yang
terlihat stabil lalu berpura-pura itu normal. Begitulah cara permukaan
konfigurasi menjadi berantakan.

View File

@ -1,15 +1,15 @@
---
read_when:
- Anda ingin memahami cara kerja `memory_search`
- Anda ingin memahami cara kerja memory_search
- Anda ingin memilih penyedia embedding
- Anda ingin menyetel kualitas pencarian
summary: Bagaimana pencarian memori menemukan catatan yang relevan menggunakan embedding dan pengambilan hibrida
title: Pencarian Memori
x-i18n:
generated_at: "2026-04-12T23:28:18Z"
generated_at: "2026-04-15T14:40:35Z"
model: gpt-5.4
provider: openai
source_hash: 71fde251b7d2dc455574aa458e7e09136f30613609ad8dafeafd53b2729a0310
source_hash: f5757aa8fe8f7fec30ef5c826f72230f591ce4cad591d81a091189d50d4262ed
source_path: concepts/memory-search.md
workflow: 15
---
@ -17,13 +17,13 @@ x-i18n:
# Pencarian Memori
`memory_search` menemukan catatan yang relevan dari file memori Anda, bahkan ketika
redaksinya berbeda dari teks aslinya. Fitur ini bekerja dengan mengindeks memori ke dalam potongan-potongan kecil
dan mencarinya menggunakan embedding, kata kunci, atau keduanya.
redaksinya berbeda dari teks aslinya. Fitur ini bekerja dengan mengindeks memori menjadi
potongan-potongan kecil lalu mencarinya menggunakan embedding, kata kunci, atau keduanya.
## Mulai cepat
Jika Anda telah mengonfigurasi kunci API OpenAI, Gemini, Voyage, atau Mistral, pencarian memori
akan bekerja secara otomatis. Untuk menetapkan penyedia secara eksplisit:
Jika Anda memiliki langganan GitHub Copilot, kunci API OpenAI, Gemini, Voyage, atau Mistral yang dikonfigurasi, pencarian memori akan berfungsi secara otomatis. Untuk menetapkan penyedia
secara eksplisit:
```json5
{
@ -42,15 +42,16 @@ node-llama-cpp).
## Penyedia yang didukung
| Penyedia | ID | Perlu kunci API | Catatan |
| -------- | --------- | --------------- | ---------------------------------------------------- |
| OpenAI | `openai` | Ya | Terdeteksi otomatis, cepat |
| Gemini | `gemini` | Ya | Mendukung pengindeksan gambar/audio |
| Voyage | `voyage` | Ya | Terdeteksi otomatis |
| Mistral | `mistral` | Ya | Terdeteksi otomatis |
| Bedrock | `bedrock` | Tidak | Terdeteksi otomatis saat rantai kredensial AWS terselesaikan |
| Ollama | `ollama` | Tidak | Lokal, harus ditetapkan secara eksplisit |
| Local | `local` | Tidak | Model GGUF, unduhan ~0,6 GB |
| Penyedia | ID | Perlu kunci API | Catatan |
| -------------- | ---------------- | --------------- | ---------------------------------------------------- |
| Bedrock | `bedrock` | Tidak | Terdeteksi otomatis ketika rantai kredensial AWS terselesaikan |
| Gemini | `gemini` | Ya | Mendukung pengindeksan gambar/audio |
| GitHub Copilot | `github-copilot` | Tidak | Terdeteksi otomatis, menggunakan langganan Copilot |
| Local | `local` | Tidak | Model GGUF, unduhan ~0.6 GB |
| Mistral | `mistral` | Ya | Terdeteksi otomatis |
| Ollama | `ollama` | Tidak | Lokal, harus ditetapkan secara eksplisit |
| OpenAI | `openai` | Ya | Terdeteksi otomatis, cepat |
| Voyage | `voyage` | Ya | Terdeteksi otomatis |
## Cara kerja pencarian
@ -69,31 +70,31 @@ flowchart LR
- **Pencarian vektor** menemukan catatan dengan makna yang serupa ("gateway host" cocok dengan
"mesin yang menjalankan OpenClaw").
- **Pencarian kata kunci BM25** menemukan kecocokan persis (ID, string error, kunci config
).
- **Pencarian kata kunci BM25** menemukan kecocokan yang persis (ID, string error, kunci
konfigurasi).
Jika hanya satu jalur yang tersedia (tidak ada embedding atau tidak ada FTS), jalur lainnya akan berjalan sendiri.
Jika hanya satu jalur yang tersedia (tanpa embedding atau tanpa FTS), jalur lainnya berjalan sendiri.
Ketika embedding tidak tersedia, OpenClaw tetap menggunakan pemeringkatan leksikal atas hasil FTS alih-alih hanya kembali ke urutan kecocokan persis mentah. Mode terdegradasi itu meningkatkan potongan dengan cakupan istilah kueri yang lebih kuat dan jalur file yang relevan, sehingga recall tetap berguna bahkan tanpa `sqlite-vec` atau penyedia embedding.
Ketika embedding tidak tersedia, OpenClaw tetap menggunakan pemeringkatan leksikal atas hasil FTS alih-alih hanya kembali ke pengurutan kecocokan persis mentah. Mode degradasi itu meningkatkan potongan dengan cakupan istilah kueri yang lebih kuat dan jalur file yang relevan, sehingga recall tetap berguna bahkan tanpa `sqlite-vec` atau penyedia embedding.
## Meningkatkan kualitas pencarian
Dua fitur opsional membantu ketika Anda memiliki riwayat catatan yang besar:
### Peluruhan temporal
### Temporal decay
Catatan lama secara bertahap kehilangan bobot peringkat sehingga informasi terbaru muncul lebih dulu.
Catatan lama secara bertahap kehilangan bobot pemeringkatan sehingga informasi terbaru muncul lebih dulu.
Dengan half-life bawaan 30 hari, catatan dari bulan lalu mendapat skor 50% dari
bobot aslinya. File yang selalu relevan seperti `MEMORY.md` tidak pernah mengalami peluruhan.
bobot aslinya. File evergreen seperti `MEMORY.md` tidak pernah mengalami decay.
<Tip>
Aktifkan peluruhan temporal jika agen Anda memiliki catatan harian selama berbulan-bulan dan informasi usang
terus mendapat peringkat lebih tinggi daripada konteks terbaru.
Aktifkan temporal decay jika agen Anda memiliki catatan harian selama berbulan-bulan dan
informasi usang terus berada di atas konteks yang lebih baru.
</Tip>
### MMR (keragaman)
### MMR (keberagaman)
Mengurangi hasil yang redundan. Jika lima catatan semuanya menyebut config router yang sama, MMR
Mengurangi hasil yang redundan. Jika lima catatan semuanya menyebut konfigurasi router yang sama, MMR
memastikan hasil teratas mencakup topik yang berbeda alih-alih berulang.
<Tip>
@ -123,8 +124,7 @@ catatan harian yang berbeda.
## Memori multimodal
Dengan Gemini Embedding 2, Anda dapat mengindeks file gambar dan audio bersama
Markdown. Kueri pencarian tetap berupa teks, tetapi dapat cocok dengan konten visual dan audio.
Lihat [referensi konfigurasi Memori](/id/reference/memory-config) untuk
Markdown. Kueri pencarian tetap berupa teks, tetapi akan cocok dengan konten visual dan audio. Lihat [referensi konfigurasi Memory](/id/reference/memory-config) untuk
penyiapan.
## Pencarian memori sesi
@ -132,7 +132,7 @@ penyiapan.
Anda dapat secara opsional mengindeks transkrip sesi sehingga `memory_search` dapat mengingat
percakapan sebelumnya. Ini bersifat opt-in melalui
`memorySearch.experimental.sessionMemory`. Lihat
[referensi konfigurasi](/id/reference/memory-config) untuk detailnya.
[referensi konfigurasi](/id/reference/memory-config) untuk detail.
## Pemecahan masalah
@ -145,8 +145,8 @@ percakapan sebelumnya. Ini bersifat opt-in melalui
**Teks CJK tidak ditemukan?** Bangun ulang indeks FTS dengan
`openclaw memory index --force`.
## Bacaan lebih lanjut
## Bacaan lanjutan
- [Active Memory](/id/concepts/active-memory) -- memori sub-agen untuk sesi chat interaktif
- [Memori](/id/concepts/memory) -- tata letak file, backend, alat
- [Referensi konfigurasi Memori](/id/reference/memory-config) -- semua pengaturan config
- [Memory](/id/concepts/memory) -- tata letak file, backend, alat
- [Referensi konfigurasi Memory](/id/reference/memory-config) -- semua opsi konfigurasi

View File

@ -2,84 +2,83 @@
read_when:
- Anda ingin memahami cara kerja memori
- Anda ingin mengetahui file memori apa yang harus ditulis
summary: Bagaimana OpenClaw mengingat hal-hal di berbagai sesi
summary: Bagaimana OpenClaw mengingat berbagai hal di seluruh sesi
title: Ikhtisar Memori
x-i18n:
generated_at: "2026-04-09T01:27:51Z"
generated_at: "2026-04-15T14:40:32Z"
model: gpt-5.4
provider: openai
source_hash: 2fe47910f5bf1c44be379e971c605f1cb3a29befcf2a7ee11fb3833cbe3b9059
source_hash: ad1adafe1d81f1703d24f48a9c9da2b25a0ebbd4aad4f65d8bde5df78195d55b
source_path: concepts/memory.md
workflow: 15
---
# Ikhtisar Memori
OpenClaw mengingat berbagai hal dengan menulis **file Markdown biasa** di workspace agen Anda. Model hanya "mengingat" apa yang disimpan ke disk -- tidak ada status tersembunyi.
OpenClaw mengingat berbagai hal dengan menulis **file Markdown biasa** di workspace agen Anda. Model hanya "mengingat" apa yang disimpan ke disk -- tidak ada state tersembunyi.
## Cara kerjanya
Agen Anda memiliki tiga file terkait memori:
Agen Anda memiliki tiga file yang terkait dengan memori:
- **`MEMORY.md`** -- memori jangka panjang. Fakta, preferensi, dan keputusan yang tahan lama. Dimuat saat awal setiap sesi DM.
- **`memory/YYYY-MM-DD.md`** -- catatan harian. Konteks berjalan dan pengamatan. Catatan hari ini dan kemarin dimuat secara otomatis.
- **`DREAMS.md`** (eksperimental, opsional) -- Dream Diary dan ringkasan penyapuan dreaming untuk ditinjau manusia, termasuk entri backfill historis yang berlandaskan data.
- **`MEMORY.md`** -- memori jangka panjang. Fakta, preferensi, dan keputusan yang bertahan lama. Dimuat pada awal setiap sesi DM.
- **`memory/YYYY-MM-DD.md`** -- catatan harian. Konteks dan observasi yang berjalan. Catatan hari ini dan kemarin dimuat secara otomatis.
- **`DREAMS.md`** (opsional) -- Buku Harian Mimpi dan ringkasan penyapuan Dreaming untuk tinjauan manusia, termasuk entri backfill historis yang terlandaskan.
File-file ini berada di workspace agen (default `~/.openclaw/workspace`).
<Tip>
Jika Anda ingin agen Anda mengingat sesuatu, cukup minta: "Ingat bahwa saya
lebih menyukai TypeScript." Agen akan menuliskannya ke file yang sesuai.
Jika Anda ingin agen Anda mengingat sesuatu, cukup minta: "Ingat bahwa saya lebih suka TypeScript." Agen akan menuliskannya ke file yang sesuai.
</Tip>
## Tool memori
## Alat memori
Agen memiliki dua tool untuk bekerja dengan memori:
Agen memiliki dua alat untuk bekerja dengan memori:
- **`memory_search`** -- menemukan catatan yang relevan menggunakan pencarian semantik, bahkan ketika susunan katanya berbeda dari aslinya.
- **`memory_get`** -- membaca file memori tertentu atau rentang baris tertentu.
- **`memory_get`** -- membaca file memori tertentu atau rentang baris.
Kedua tool disediakan oleh plugin memori yang aktif (default: `memory-core`).
Kedua alat disediakan oleh Plugin memori aktif (default: `memory-core`).
## Plugin pendamping Memory Wiki
Jika Anda ingin memori tahan lama berfungsi lebih seperti basis pengetahuan yang dipelihara daripada sekadar catatan mentah, gunakan plugin bawaan `memory-wiki`.
Jika Anda ingin memori yang bertahan lama berperilaku lebih seperti basis pengetahuan yang dipelihara daripada sekadar catatan mentah, gunakan Plugin bawaan `memory-wiki`.
`memory-wiki` mengompilasi pengetahuan tahan lama ke dalam vault wiki dengan:
`memory-wiki` mengompilasi pengetahuan yang bertahan lama ke dalam vault wiki dengan:
- struktur halaman yang deterministik
- klaim dan bukti yang terstruktur
- pelacakan kontradiksi dan kebaruan
- dasbor yang dihasilkan
- ringkasan terkompilasi untuk konsumen agen/runtime
- tool native wiki seperti `wiki_search`, `wiki_get`, `wiki_apply`, dan `wiki_lint`
- digest terkompilasi untuk konsumen agen/runtime
- alat yang native untuk wiki seperti `wiki_search`, `wiki_get`, `wiki_apply`, dan `wiki_lint`
Plugin ini tidak menggantikan plugin memori yang aktif. Plugin memori yang aktif tetap memiliki kendali atas recall, promosi, dan dreaming. `memory-wiki` menambahkan lapisan pengetahuan kaya provenance di sampingnya.
Ini tidak menggantikan Plugin memori aktif. Plugin memori aktif tetap memiliki recall, promosi, dan Dreaming. `memory-wiki` menambahkan lapisan pengetahuan yang kaya provenance di sampingnya.
Lihat [Memory Wiki](/id/plugins/memory-wiki).
## Pencarian memori
Ketika penyedia embedding dikonfigurasi, `memory_search` menggunakan **pencarian hibrida** -- menggabungkan kemiripan vektor (makna semantik) dengan pencocokan kata kunci (istilah persis seperti ID dan simbol kode). Ini berfungsi langsung tanpa konfigurasi tambahan setelah Anda memiliki API key untuk penyedia yang didukung.
Ketika penyedia embedding dikonfigurasi, `memory_search` menggunakan **pencarian hibrida** -- menggabungkan kemiripan vektor (makna semantik) dengan pencocokan kata kunci (istilah persis seperti ID dan simbol kode). Ini berfungsi langsung setelah Anda memiliki API key untuk penyedia yang didukung.
<Info>
OpenClaw mendeteksi otomatis penyedia embedding Anda dari API key yang tersedia. Jika Anda memiliki key OpenAI, Gemini, Voyage, atau Mistral yang dikonfigurasi, pencarian memori akan diaktifkan secara otomatis.
OpenClaw secara otomatis mendeteksi penyedia embedding Anda dari API key yang tersedia. Jika Anda telah mengonfigurasi key OpenAI, Gemini, Voyage, atau Mistral, pencarian memori akan diaktifkan secara otomatis.
</Info>
Untuk detail tentang cara kerja pencarian, opsi penyetelan, dan penyiapan penyedia, lihat
[Memory Search](/id/concepts/memory-search).
Untuk detail tentang cara kerja pencarian, opsi penyesuaian, dan penyiapan penyedia, lihat
[Pencarian Memori](/id/concepts/memory-search).
## Backend memori
<CardGroup cols={3}>
<Card title="Bawaan (default)" icon="database" href="/id/concepts/memory-builtin">
Berbasis SQLite. Berfungsi langsung dengan pencarian kata kunci, kemiripan vektor, dan pencarian hibrida. Tanpa dependensi tambahan.
Berbasis SQLite. Berfungsi langsung dengan pencarian kata kunci, kemiripan vektor, dan pencarian hibrida. Tidak memerlukan dependensi tambahan.
</Card>
<Card title="QMD" icon="search" href="/id/concepts/memory-qmd">
Sidecar local-first dengan reranking, perluasan kueri, dan kemampuan untuk mengindeks direktori di luar workspace.
</Card>
<Card title="Honcho" icon="brain" href="/id/concepts/memory-honcho">
Memori lintas sesi yang AI-native dengan pemodelan pengguna, pencarian semantik, dan kesadaran multi-agen. Instal plugin.
Memori lintas sesi yang native AI dengan pemodelan pengguna, pencarian semantik, dan kesadaran multi-agen. Instalasi Plugin.
</Card>
</CardGroup>
@ -87,41 +86,43 @@ Memori lintas sesi yang AI-native dengan pemodelan pengguna, pencarian semantik,
<CardGroup cols={1}>
<Card title="Memory Wiki" icon="book" href="/id/plugins/memory-wiki">
Mengompilasi memori tahan lama menjadi vault wiki kaya provenance dengan klaim, dasbor, mode bridge, dan alur kerja yang ramah Obsidian.
Mengompilasi memori yang bertahan lama ke dalam vault wiki yang kaya provenance dengan klaim, dasbor, mode bridge, dan alur kerja yang ramah Obsidian.
</Card>
</CardGroup>
## Flush memori otomatis
Sebelum [compaction](/id/concepts/compaction) merangkum percakapan Anda, OpenClaw menjalankan giliran diam-diam yang mengingatkan agen untuk menyimpan konteks penting ke file memori. Ini aktif secara default -- Anda tidak perlu mengonfigurasi apa pun.
Sebelum [Compaction](/id/concepts/compaction) merangkum percakapan Anda, OpenClaw menjalankan giliran senyap yang mengingatkan agen untuk menyimpan konteks penting ke file memori. Ini aktif secara default -- Anda tidak perlu mengonfigurasi apa pun.
<Tip>
Flush memori mencegah hilangnya konteks selama compaction. Jika agen Anda memiliki fakta penting dalam percakapan yang belum ditulis ke file, fakta tersebut akan disimpan secara otomatis sebelum peringkasan terjadi.
Flush memori mencegah kehilangan konteks selama Compaction. Jika agen Anda memiliki fakta penting dalam percakapan yang belum ditulis ke file, fakta tersebut akan disimpan secara otomatis sebelum peringkasan terjadi.
</Tip>
## Dreaming (eksperimental)
## Dreaming
Dreaming adalah proses konsolidasi latar belakang opsional untuk memori. Sistem ini mengumpulkan sinyal jangka pendek, memberi skor pada kandidat, dan hanya mempromosikan item yang memenuhi syarat ke memori jangka panjang (`MEMORY.md`).
Dreaming adalah proses konsolidasi latar belakang opsional untuk memori. Ini mengumpulkan sinyal jangka pendek, memberi skor pada kandidat, dan hanya mempromosikan item yang memenuhi syarat ke memori jangka panjang (`MEMORY.md`).
Sistem ini dirancang untuk menjaga memori jangka panjang tetap bernilai tinggi:
Ini dirancang untuk menjaga agar memori jangka panjang tetap memiliki sinyal tinggi:
- **Opt-in**: dinonaktifkan secara default.
- **Terjadwal**: ketika diaktifkan, `memory-core` mengelola otomatis satu cron job berulang untuk penyapuan dreaming penuh.
- **Berambang**: promosi harus melewati gerbang skor, frekuensi recall, dan keragaman kueri.
- **Dapat ditinjau**: ringkasan fase dan entri buku harian ditulis ke `DREAMS.md` untuk ditinjau manusia.
- **Terjadwal**: saat diaktifkan, `memory-core` secara otomatis mengelola satu pekerjaan Cron berulang untuk penyapuan Dreaming penuh.
- **Berambang batas**: promosi harus melewati gerbang skor, frekuensi recall, dan keragaman kueri.
- **Dapat ditinjau**: ringkasan fase dan entri buku harian ditulis ke `DREAMS.md` untuk tinjauan manusia.
Untuk perilaku fase, sinyal penilaian, dan detail Dream Diary, lihat
[Dreaming (experimental)](/id/concepts/dreaming).
Untuk perilaku fase, sinyal penilaian, dan detail Buku Harian Mimpi, lihat
[Dreaming](/id/concepts/dreaming).
## Grounded backfill dan promosi langsung
## Backfill terlandaskan dan promosi langsung
Sistem dreaming sekarang memiliki dua jalur tinjauan yang sangat terkait:
Sistem Dreaming kini memiliki dua jalur peninjauan yang sangat terkait:
- **Live dreaming** bekerja dari penyimpanan dreaming jangka pendek di bawah
`memory/.dreams/` dan inilah yang digunakan fase mendalam normal saat memutuskan apa yang dapat lulus ke `MEMORY.md`.
- **Grounded backfill** membaca catatan historis `memory/YYYY-MM-DD.md` sebagai file harian mandiri dan menulis keluaran tinjauan terstruktur ke `DREAMS.md`.
- **Dreaming langsung** bekerja dari penyimpanan Dreaming jangka pendek di bawah
`memory/.dreams/` dan itulah yang digunakan fase mendalam normal saat memutuskan apa yang
dapat lulus ke `MEMORY.md`.
- **Backfill terlandaskan** membaca catatan historis `memory/YYYY-MM-DD.md` sebagai
file harian mandiri dan menulis keluaran tinjauan terstruktur ke `DREAMS.md`.
Grounded backfill berguna saat Anda ingin memutar ulang catatan lama dan memeriksa apa yang menurut sistem bersifat tahan lama tanpa mengedit `MEMORY.md` secara manual.
Backfill terlandaskan berguna ketika Anda ingin memutar ulang catatan lama dan memeriksa apa yang menurut sistem bersifat tahan lama tanpa mengedit `MEMORY.md` secara manual.
Saat Anda menggunakan:
@ -129,13 +130,13 @@ Saat Anda menggunakan:
openclaw memory rem-backfill --path ./memory --stage-short-term
```
kandidat tahan lama yang berlandaskan data tidak dipromosikan secara langsung. Kandidat tersebut dipentaskan ke penyimpanan dreaming jangka pendek yang sama yang sudah digunakan oleh fase mendalam normal. Artinya:
kandidat tahan lama yang terlandaskan tidak dipromosikan secara langsung. Kandidat tersebut dipentaskan ke penyimpanan Dreaming jangka pendek yang sama yang sudah digunakan fase mendalam normal. Artinya:
- `DREAMS.md` tetap menjadi permukaan tinjauan manusia.
- penyimpanan jangka pendek tetap menjadi permukaan pemeringkatan yang berhadapan dengan mesin.
- penyimpanan jangka pendek tetap menjadi permukaan pemeringkatan yang menghadap mesin.
- `MEMORY.md` tetap hanya ditulis oleh promosi mendalam.
Jika Anda memutuskan pemutaran ulang itu tidak berguna, Anda dapat menghapus artefak yang dipentaskan tanpa menyentuh entri buku harian biasa atau status recall normal:
Jika Anda memutuskan pemutaran ulang itu tidak berguna, Anda dapat menghapus artefak yang dipentaskan tanpa menyentuh entri buku harian biasa atau state recall normal:
```bash
openclaw memory rem-backfill --rollback
@ -154,11 +155,11 @@ openclaw memory index --force # Bangun ulang indeks
- [Builtin Memory Engine](/id/concepts/memory-builtin) -- backend SQLite default
- [QMD Memory Engine](/id/concepts/memory-qmd) -- sidecar local-first tingkat lanjut
- [Honcho Memory](/id/concepts/memory-honcho) -- memori lintas sesi AI-native
- [Memory Wiki](/id/plugins/memory-wiki) -- vault pengetahuan terkompilasi dan tool native wiki
- [Memory Search](/id/concepts/memory-search) -- pipeline pencarian, penyedia, dan
penyetelan
- [Dreaming (experimental)](/id/concepts/dreaming) -- promosi latar belakang
- [Honcho Memory](/id/concepts/memory-honcho) -- memori lintas sesi yang native AI
- [Memory Wiki](/id/plugins/memory-wiki) -- vault pengetahuan terkompilasi dan alat yang native untuk wiki
- [Pencarian Memori](/id/concepts/memory-search) -- pipeline pencarian, penyedia, dan
penyesuaian
- [Dreaming](/id/concepts/dreaming) -- promosi latar belakang
dari recall jangka pendek ke memori jangka panjang
- [Memory configuration reference](/id/reference/memory-config) -- semua opsi konfigurasi
- [Compaction](/id/concepts/compaction) -- bagaimana compaction berinteraksi dengan memori
- [Referensi konfigurasi memori](/id/reference/memory-config) -- semua opsi konfigurasi
- [Compaction](/id/concepts/compaction) -- bagaimana Compaction berinteraksi dengan memori

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,28 @@
---
read_when:
- Anda ingin menyajikan model dari mesin GPU Anda sendiri
- Anda sedang menghubungkan LM Studio atau proksi yang kompatibel dengan OpenAI
- Anda sedang menyiapkan LM Studio atau proxy yang kompatibel dengan OpenAI
- Anda memerlukan panduan model lokal yang paling aman
summary: Jalankan OpenClaw pada LLM lokal (LM Studio, vLLM, LiteLLM, endpoint OpenAI kustom)
title: Model Lokal
x-i18n:
generated_at: "2026-04-15T09:14:51Z"
generated_at: "2026-04-15T14:40:33Z"
model: gpt-5.4
provider: openai
source_hash: 8778cc1c623a356ff3cf306c494c046887f9417a70ec71e659e4a8aae912a780
source_hash: 7a506ff83e4c2870d3878339f646c906584454a156ecd618c360f592cf3b0011
source_path: gateway/local-models.md
workflow: 15
---
# Model lokal
Penggunaan lokal memungkinkan, tetapi OpenClaw mengharapkan konteks besar + pertahanan kuat terhadap injeksi prompt. Kartu kecil akan memangkas konteks dan melemahkan keamanan. Targetkan spesifikasi tinggi: **≥2 Mac Studio dengan konfigurasi maksimal atau rig GPU setara (~$30k+)**. Satu GPU **24 GB** hanya cocok untuk prompt yang lebih ringan dengan latensi lebih tinggi. Gunakan **varian model terbesar / ukuran penuh yang dapat Anda jalankan**; checkpoint yang sangat dikuantisasi atau “kecil” meningkatkan risiko injeksi prompt (lihat [Keamanan](/id/gateway/security)).
Lokal bisa dilakukan, tetapi OpenClaw mengharapkan konteks besar + pertahanan yang kuat terhadap injeksi prompt. Kartu kecil memotong konteks dan melemahkan keamanan. Targetkan tinggi: **≥2 Mac Studio yang dimaksimalkan atau rig GPU setara (~$30k+)**. Satu GPU **24 GB** hanya cocok untuk prompt yang lebih ringan dengan latensi lebih tinggi. Gunakan **varian model terbesar / ukuran penuh yang bisa Anda jalankan**; checkpoint yang dikuantisasi secara agresif atau “kecil” meningkatkan risiko injeksi prompt (lihat [Keamanan](/id/gateway/security)).
Jika Anda menginginkan penyiapan lokal dengan hambatan paling rendah, mulai dengan [LM Studio](/id/providers/lmstudio) atau [Ollama](/id/providers/ollama) dan `openclaw onboard`. Halaman ini adalah panduan beropini untuk stack lokal kelas atas dan server lokal kustom yang kompatibel dengan OpenAI.
Jika Anda menginginkan penyiapan lokal dengan hambatan paling rendah, mulai dengan [LM Studio](/id/providers/lmstudio) atau [Ollama](/id/providers/ollama) dan `openclaw onboard`. Halaman ini adalah panduan yang bersifat opini untuk stack lokal kelas atas dan server lokal kustom yang kompatibel dengan OpenAI.
## Direkomendasikan: LM Studio + model lokal besar (Responses API)
Stack lokal terbaik saat ini. Muat model besar di LM Studio (misalnya, build Qwen, DeepSeek, atau Llama ukuran penuh), aktifkan server lokal (default `http://127.0.0.1:1234`), dan gunakan Responses API untuk memisahkan penalaran dari teks akhir.
Stack lokal terbaik saat ini. Muat model besar di LM Studio (misalnya build Qwen, DeepSeek, atau Llama ukuran penuh), aktifkan server lokal (default `http://127.0.0.1:1234`), dan gunakan Responses API untuk memisahkan penalaran dari teks akhir.
```json5
{
@ -62,15 +62,15 @@ Stack lokal terbaik saat ini. Muat model besar di LM Studio (misalnya, build Qwe
**Daftar periksa penyiapan**
- Instal LM Studio: [https://lmstudio.ai](https://lmstudio.ai)
- Di LM Studio, unduh **build model terbesar yang tersedia** (hindari varian “small”/yang sangat dikuantisasi), jalankan server, pastikan `http://127.0.0.1:1234/v1/models` menampilkannya.
- Ganti `my-local-model` dengan ID model sebenarnya yang ditampilkan di LM Studio.
- Di LM Studio, unduh **build model terbesar yang tersedia** (hindari varian “small”/yang dikuantisasi berat), mulai server, pastikan `http://127.0.0.1:1234/v1/models` menampilkannya.
- Ganti `my-local-model` dengan ID model aktual yang ditampilkan di LM Studio.
- Pastikan model tetap dimuat; cold-load menambah latensi startup.
- Sesuaikan `contextWindow`/`maxTokens` jika build LM Studio Anda berbeda.
- Untuk WhatsApp, tetap gunakan Responses API agar hanya teks akhir yang dikirim.
Tetap konfigurasikan model ter-hosting meskipun berjalan secara lokal; gunakan `models.mode: "merge"` agar fallback tetap tersedia.
Tetap konfigurasikan model yang dihosting bahkan saat berjalan secara lokal; gunakan `models.mode: "merge"` agar fallback tetap tersedia.
### Konfigurasi hibrida: primer ter-hosting, fallback lokal
### Konfigurasi hibrida: hosted sebagai utama, lokal sebagai fallback
```json5
{
@ -111,16 +111,16 @@ Tetap konfigurasikan model ter-hosting meskipun berjalan secara lokal; gunakan `
}
```
### Lokal sebagai prioritas dengan jaring pengaman ter-hosting
### Lokal lebih dulu dengan jaring pengaman hosted
Tukar urutan primer dan fallback; pertahankan blok provider yang sama dan `models.mode: "merge"` agar Anda dapat fallback ke Sonnet atau Opus saat mesin lokal tidak aktif.
Tukar urutan primary dan fallback; pertahankan blok provider yang sama dan `models.mode: "merge"` agar Anda dapat beralih ke Sonnet atau Opus saat mesin lokal tidak aktif.
### Hosting regional / perutean data
- Varian MiniMax/Kimi/GLM ter-hosting juga tersedia di OpenRouter dengan endpoint yang dipatok ke wilayah tertentu (misalnya, di-host di AS). Pilih varian regional di sana agar lalu lintas tetap berada dalam yurisdiksi pilihan Anda sambil tetap menggunakan `models.mode: "merge"` untuk fallback Anthropic/OpenAI.
- Hanya lokal tetap menjadi jalur privasi terkuat; perutean regional ter-hosting adalah jalan tengah saat Anda membutuhkan fitur provider tetapi tetap ingin mengendalikan aliran data.
- Varian MiniMax/Kimi/GLM yang dihosting juga tersedia di OpenRouter dengan endpoint yang dipatok ke wilayah tertentu (misalnya dihosting di AS). Pilih varian regional di sana agar trafik tetap berada dalam yurisdiksi pilihan Anda sambil tetap menggunakan `models.mode: "merge"` untuk fallback Anthropic/OpenAI.
- Hanya-lokal tetap merupakan jalur privasi terkuat; perutean regional yang dihosting adalah jalan tengah saat Anda memerlukan fitur penyedia tetapi ingin mengendalikan aliran data.
## Proksi lokal lain yang kompatibel dengan OpenAI
## Proxy lokal lain yang kompatibel dengan OpenAI
vLLM, LiteLLM, OAI-proxy, atau gateway kustom dapat digunakan jika mereka mengekspos endpoint `/v1` bergaya OpenAI. Ganti blok provider di atas dengan endpoint dan ID model Anda:
@ -150,30 +150,46 @@ vLLM, LiteLLM, OAI-proxy, atau gateway kustom dapat digunakan jika mereka mengek
}
```
Pertahankan `models.mode: "merge"` agar model ter-hosting tetap tersedia sebagai fallback.
Pertahankan `models.mode: "merge"` agar model yang dihosting tetap tersedia sebagai fallback.
Catatan perilaku untuk backend `/v1` lokal/proksi:
Catatan perilaku untuk backend `/v1` lokal/proxy:
- OpenClaw memperlakukan ini sebagai rute kompatibel OpenAI bergaya proksi, bukan endpoint OpenAI native
- pembentukan permintaan khusus OpenAI native tidak berlaku di sini: tidak ada `service_tier`, tidak ada Responses `store`, tidak ada pembentukan payload kompatibilitas penalaran OpenAI, dan tidak ada petunjuk cache prompt
- header atribusi OpenClaw tersembunyi (`originator`, `version`, `User-Agent`) tidak disisipkan pada URL proksi kustom ini
- OpenClaw memperlakukan ini sebagai rute proxy bergaya OpenAI yang kompatibel, bukan endpoint OpenAI native
- pembentukan permintaan khusus OpenAI native tidak berlaku di sini: tidak ada
`service_tier`, tidak ada Responses `store`, tidak ada pembentukan payload kompatibilitas reasoning OpenAI,
dan tidak ada petunjuk prompt-cache
- header atribusi OpenClaw tersembunyi (`originator`, `version`, `User-Agent`)
tidak disisipkan pada URL proxy kustom ini
Catatan kompatibilitas untuk backend yang kompatibel dengan OpenAI tetapi lebih ketat:
Catatan kompatibilitas untuk backend kompatibel OpenAI yang lebih ketat:
- Beberapa server hanya menerima `messages[].content` berbentuk string pada Chat Completions, bukan array bagian konten terstruktur. Atur `models.providers.<provider>.models[].compat.requiresStringContent: true` untuk endpoint tersebut.
- Beberapa backend lokal yang lebih kecil atau lebih ketat tidak stabil dengan bentuk prompt runtime agen penuh milik OpenClaw, terutama saat skema tool disertakan. Jika backend berfungsi untuk panggilan `/v1/chat/completions` langsung yang kecil tetapi gagal pada giliran agen OpenClaw normal, pertama coba `agents.defaults.localModelMode: "lean"` untuk menghapus tool default yang berat seperti `browser`, `cron`, dan `message`; jika masih gagal, coba `models.providers.<provider>.models[].compat.supportsTools: false`.
- Jika backend masih gagal hanya pada eksekusi OpenClaw yang lebih besar, masalah yang tersisa biasanya adalah kapasitas model/server upstream atau bug backend, bukan lapisan transport OpenClaw.
- Beberapa server hanya menerima `messages[].content` berbentuk string pada Chat Completions, bukan
array content-part terstruktur. Atur
`models.providers.<provider>.models[].compat.requiresStringContent: true` untuk
endpoint tersebut.
- Beberapa backend lokal yang lebih kecil atau lebih ketat tidak stabil dengan bentuk prompt
runtime agen penuh OpenClaw, terutama saat skema tool disertakan. Jika
backend berfungsi untuk panggilan langsung `/v1/chat/completions` yang kecil tetapi gagal pada giliran agen
OpenClaw normal, pertama coba
`agents.defaults.experimental.localModelLean: true` untuk menghapus tool default
yang berat seperti `browser`, `cron`, dan `message`; ini adalah flag
eksperimental, bukan pengaturan mode-default yang stabil. Lihat
[Fitur Eksperimental](/id/concepts/experimental-features). Jika masih gagal, coba
`models.providers.<provider>.models[].compat.supportsTools: false`.
- Jika backend masih gagal hanya pada proses OpenClaw yang lebih besar, masalah yang tersisa
biasanya adalah kapasitas model/server di hulu atau bug backend, bukan lapisan
transport OpenClaw.
## Pemecahan masalah
- Gateway dapat menjangkau proksi? `curl http://127.0.0.1:1234/v1/models`.
- Model LM Studio tidak dimuat? Muat ulang; cold start adalah penyebab umum “macet”.
- OpenClaw memperingatkan saat jendela konteks yang terdeteksi berada di bawah **32k** dan memblokir di bawah **16k**. Jika Anda menemui preflight itu, tingkatkan batas konteks server/model atau pilih model yang lebih besar.
- Error konteks? Turunkan `contextWindow` atau naikkan batas server Anda.
- Gateway dapat menjangkau proxy? `curl http://127.0.0.1:1234/v1/models`.
- Model LM Studio dibongkar? Muat ulang; cold start adalah penyebab umum “menggantung”.
- OpenClaw memperingatkan ketika context window yang terdeteksi di bawah **32k** dan memblokir di bawah **16k**. Jika Anda menemui preflight itu, tingkatkan batas konteks server/model atau pilih model yang lebih besar.
- Error konteks? Turunkan `contextWindow` atau tingkatkan batas server Anda.
- Server yang kompatibel dengan OpenAI mengembalikan `messages[].content ... expected a string`?
Tambahkan `compat.requiresStringContent: true` pada entri model tersebut.
- Panggilan `/v1/chat/completions` langsung yang kecil berfungsi, tetapi `openclaw infer model run`
- Panggilan langsung `/v1/chat/completions` yang kecil berfungsi, tetapi `openclaw infer model run`
gagal pada Gemma atau model lokal lain? Nonaktifkan skema tool terlebih dahulu dengan
`compat.supportsTools: false`, lalu uji lagi. Jika server masih crash hanya
pada prompt OpenClaw yang lebih besar, anggap ini sebagai keterbatasan model/server upstream.
- Keamanan: model lokal melewati filter sisi provider; pertahankan agen tetap sempit dan Compaction aktif untuk membatasi radius dampak injeksi prompt.
pada prompt OpenClaw yang lebih besar, anggap ini sebagai keterbatasan server/model di hulu.
- Keamanan: model lokal melewati filter sisi penyedia; batasi agen dan biarkan compaction aktif untuk membatasi dampak injeksi prompt.

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +1,27 @@
---
read_when:
- Anda ingin menggunakan GitHub Copilot sebagai provider model
- Anda ingin menggunakan GitHub Copilot sebagai penyedia model
- Anda memerlukan alur `openclaw models auth login-github-copilot`
summary: Masuk ke GitHub Copilot dari OpenClaw menggunakan device flow
summary: Masuk ke GitHub Copilot dari OpenClaw menggunakan alur perangkat
title: GitHub Copilot
x-i18n:
generated_at: "2026-04-12T23:30:48Z"
generated_at: "2026-04-15T14:40:35Z"
model: gpt-5.4
provider: openai
source_hash: 51fee006e7d4e78e37b0c29356b0090b132de727d99b603441767d3fb642140b
source_hash: b8258fecff22fb73b057de878462941f6eb86d0c5f775c5eac4840e95ba5eccf
source_path: providers/github-copilot.md
workflow: 15
---
# GitHub Copilot
GitHub Copilot adalah asisten coding AI dari GitHub. Ini menyediakan akses ke model
Copilot untuk akun dan paket GitHub Anda. OpenClaw dapat menggunakan Copilot sebagai provider model
dengan dua cara yang berbeda.
GitHub Copilot adalah asisten coding AI dari GitHub. Layanan ini memberikan akses ke model Copilot untuk akun dan paket GitHub Anda. OpenClaw dapat menggunakan Copilot sebagai penyedia model dengan dua cara yang berbeda.
## Dua cara menggunakan Copilot di OpenClaw
<Tabs>
<Tab title="Provider bawaan (github-copilot)">
Gunakan alur login perangkat native untuk mendapatkan token GitHub, lalu menukarkannya dengan
token API Copilot saat OpenClaw berjalan. Ini adalah jalur **default** dan paling sederhana
karena tidak memerlukan VS Code.
<Tab title="Built-in provider (github-copilot)">
Gunakan alur login perangkat bawaan untuk memperoleh token GitHub, lalu menukarkannya dengan token API Copilot saat OpenClaw berjalan. Ini adalah jalur **default** dan paling sederhana karena tidak memerlukan VS Code.
<Steps>
<Step title="Jalankan perintah login">
@ -33,10 +29,9 @@ dengan dua cara yang berbeda.
openclaw models auth login-github-copilot
```
Anda akan diminta mengunjungi URL dan memasukkan kode satu kali. Biarkan
terminal tetap terbuka sampai selesai.
Anda akan diminta mengunjungi URL dan memasukkan kode sekali pakai. Biarkan terminal tetap terbuka sampai proses selesai.
</Step>
<Step title="Setel model default">
<Step title="Tetapkan model default">
```bash
openclaw models set github-copilot/gpt-4o
```
@ -53,13 +48,11 @@ dengan dua cara yang berbeda.
</Tab>
<Tab title="Plugin Copilot Proxy (copilot-proxy)">
Gunakan ekstensi VS Code **Copilot Proxy** sebagai bridge lokal. OpenClaw berbicara ke
endpoint `/v1` milik proxy dan menggunakan daftar model yang Anda konfigurasikan di sana.
<Tab title="Copilot Proxy plugin (copilot-proxy)">
Gunakan ekstensi VS Code **Copilot Proxy** sebagai jembatan lokal. OpenClaw berkomunikasi dengan endpoint `/v1` milik proxy dan menggunakan daftar model yang Anda konfigurasikan di sana.
<Note>
Pilih ini ketika Anda sudah menjalankan Copilot Proxy di VS Code atau perlu merutekan
melaluinya. Anda harus mengaktifkan Plugin dan menjaga ekstensi VS Code tetap berjalan.
Pilih ini jika Anda sudah menjalankan Copilot Proxy di VS Code atau perlu merutekan melalui layanan tersebut. Anda harus mengaktifkan Plugin dan tetap menjalankan ekstensi VS Code.
</Note>
</Tab>
@ -67,70 +60,100 @@ dengan dua cara yang berbeda.
## Flag opsional
| Flag | Deskripsi |
| --------------- | ---------------------------------------------------- |
| `--yes` | Lewati prompt konfirmasi |
| `--set-default` | Terapkan juga model default yang direkomendasikan provider |
| Flag | Deskripsi |
| --------------- | --------------------------------------------------- |
| `--yes` | Lewati prompt konfirmasi |
| `--set-default` | Juga terapkan model default yang direkomendasikan penyedia |
```bash
# Lewati konfirmasi
openclaw models auth login-github-copilot --yes
# Login dan setel model default dalam satu langkah
# Login dan tetapkan model default dalam satu langkah
openclaw models auth login --provider github-copilot --method device --set-default
```
<AccordionGroup>
<Accordion title="Memerlukan TTY interaktif">
Alur login perangkat memerlukan TTY interaktif. Jalankan langsung di
terminal, bukan di skrip non-interaktif atau pipeline CI.
<Accordion title="TTY interaktif diperlukan">
Alur login perangkat memerlukan TTY interaktif. Jalankan langsung di terminal, bukan dalam skrip non-interaktif atau pipeline CI.
</Accordion>
<Accordion title="Ketersediaan model bergantung pada paket Anda">
Ketersediaan model Copilot bergantung pada paket GitHub Anda. Jika suatu model
ditolak, coba ID lain (misalnya `github-copilot/gpt-4.1`).
Ketersediaan model Copilot bergantung pada paket GitHub Anda. Jika sebuah model ditolak, coba ID lain (misalnya `github-copilot/gpt-4.1`).
</Accordion>
<Accordion title="Pemilihan transport">
ID model Claude menggunakan transport Anthropic Messages secara otomatis. GPT,
model seri-o, dan Gemini tetap menggunakan transport OpenAI Responses. OpenClaw
memilih transport yang benar berdasarkan ref model.
ID model Claude secara otomatis menggunakan transport Anthropic Messages. Model GPT, o-series, dan Gemini tetap menggunakan transport OpenAI Responses. OpenClaw memilih transport yang benar berdasarkan ref model.
</Accordion>
<Accordion title="Urutan resolusi variabel environment">
OpenClaw menyelesaikan auth Copilot dari variabel environment dalam
urutan prioritas berikut:
<Accordion title="Urutan resolusi variabel lingkungan">
OpenClaw menyelesaikan auth Copilot dari variabel lingkungan dengan urutan prioritas berikut:
| Prioritas | Variabel | Catatan |
| --------- | --------------------- | ------------------------------------- |
| 1 | `COPILOT_GITHUB_TOKEN` | Prioritas tertinggi, khusus Copilot |
| 2 | `GH_TOKEN` | Token GitHub CLI (fallback) |
| 3 | `GITHUB_TOKEN` | Token GitHub standar (terendah) |
| Priority | Variable | Notes |
| -------- | --------------------- | -------------------------------- |
| 1 | `COPILOT_GITHUB_TOKEN` | Prioritas tertinggi, khusus Copilot |
| 2 | `GH_TOKEN` | Token GitHub CLI (fallback) |
| 3 | `GITHUB_TOKEN` | Token GitHub standar (terendah) |
Saat beberapa variabel disetel, OpenClaw menggunakan yang berprioritas tertinggi.
Alur login perangkat (`openclaw models auth login-github-copilot`) menyimpan
tokennya di penyimpanan profil auth dan memiliki prioritas di atas semua
variabel environment.
Saat beberapa variabel ditetapkan, OpenClaw menggunakan yang prioritasnya paling tinggi.
Alur login perangkat (`openclaw models auth login-github-copilot`) menyimpan tokennya di penyimpanan profil auth dan memiliki prioritas lebih tinggi daripada semua variabel lingkungan.
</Accordion>
<Accordion title="Penyimpanan token">
Login menyimpan token GitHub di penyimpanan profil auth dan menukarkannya
dengan token API Copilot saat OpenClaw berjalan. Anda tidak perlu mengelola
token secara manual.
Login menyimpan token GitHub di penyimpanan profil auth dan menukarkannya dengan token API Copilot saat OpenClaw berjalan. Anda tidak perlu mengelola token secara manual.
</Accordion>
</AccordionGroup>
<Warning>
Memerlukan TTY interaktif. Jalankan perintah login langsung di terminal, bukan
di dalam skrip headless atau job CI.
Memerlukan TTY interaktif. Jalankan perintah login langsung di terminal, bukan di dalam skrip headless atau job CI.
</Warning>
## Embedding pencarian memori
GitHub Copilot juga dapat berfungsi sebagai penyedia embedding untuk
[pencarian memori](/id/concepts/memory-search). Jika Anda memiliki langganan Copilot dan
sudah login, OpenClaw dapat menggunakannya untuk embedding tanpa kunci API terpisah.
### Deteksi otomatis
Saat `memorySearch.provider` adalah `"auto"` (default), GitHub Copilot dicoba
pada prioritas 15 -- setelah embedding lokal tetapi sebelum OpenAI dan penyedia
berbayar lainnya. Jika token GitHub tersedia, OpenClaw menemukan model
embedding yang tersedia dari API Copilot dan secara otomatis memilih yang terbaik.
### Config eksplisit
```json5
{
agents: {
defaults: {
memorySearch: {
provider: "github-copilot",
// Opsional: ganti model yang ditemukan secara otomatis
model: "text-embedding-3-small",
},
},
},
}
```
### Cara kerjanya
1. OpenClaw menyelesaikan token GitHub Anda (dari variabel lingkungan atau profil auth).
2. Menukarkannya dengan token API Copilot berumur pendek.
3. Mengueri endpoint `/models` Copilot untuk menemukan model embedding yang tersedia.
4. Memilih model terbaik (lebih memilih `text-embedding-3-small`).
5. Mengirim permintaan embedding ke endpoint `/embeddings` Copilot.
Ketersediaan model bergantung pada paket GitHub Anda. Jika tidak ada model embedding yang
tersedia, OpenClaw melewati Copilot dan mencoba penyedia berikutnya.
## Terkait
<CardGroup cols={2}>
<Card title="Pemilihan model" href="/id/concepts/model-providers" icon="layers">
Memilih provider, ref model, dan perilaku failover.
Memilih penyedia, ref model, dan perilaku failover.
</Card>
<Card title="OAuth dan auth" href="/id/gateway/authentication" icon="key">
Detail auth dan aturan penggunaan ulang kredensial.

View File

@ -5,29 +5,29 @@ read_when:
summary: Jalankan OpenClaw dengan Ollama (model cloud dan lokal)
title: Ollama
x-i18n:
generated_at: "2026-04-12T23:31:51Z"
generated_at: "2026-04-15T14:40:48Z"
model: gpt-5.4
provider: openai
source_hash: ec796241b884ca16ec7077df4f3f1910e2850487bb3ea94f8fdb37c77e02b219
source_hash: 098e083e0fc484bddb5270eb630c55d7832039b462d1710372b6afece5cefcdf
source_path: providers/ollama.md
workflow: 15
---
# Ollama
Ollama adalah runtime LLM lokal yang memudahkan Anda menjalankan model open-source di mesin Anda. OpenClaw terintegrasi dengan API native Ollama (`/api/chat`), mendukung streaming dan pemanggilan tool, serta dapat menemukan model Ollama lokal secara otomatis saat Anda melakukan opt-in dengan `OLLAMA_API_KEY` (atau profil auth) dan tidak mendefinisikan entri `models.providers.ollama` secara eksplisit.
OpenClaw terintegrasi dengan API native Ollama (`/api/chat`) untuk model cloud yang dihosting dan server Ollama lokal/self-hosted. Anda dapat menggunakan Ollama dalam tiga mode: `Cloud + Local` melalui host Ollama yang dapat dijangkau, `Cloud only` terhadap `https://ollama.com`, atau `Local only` terhadap host Ollama yang dapat dijangkau.
<Warning>
**Pengguna Ollama remote**: Jangan gunakan URL OpenAI-compatible `/v1` (`http://host:11434/v1`) dengan OpenClaw. Ini merusak pemanggilan tool dan model dapat mengeluarkan JSON tool mentah sebagai teks biasa. Gunakan URL API native Ollama sebagai gantinya: `baseUrl: "http://host:11434"` (tanpa `/v1`).
**Pengguna Ollama jarak jauh**: Jangan gunakan URL kompatibel OpenAI `/v1` (`http://host:11434/v1`) dengan OpenClaw. Ini merusak pemanggilan tool dan model dapat mengeluarkan JSON tool mentah sebagai teks biasa. Gunakan URL API native Ollama sebagai gantinya: `baseUrl: "http://host:11434"` (tanpa `/v1`).
</Warning>
## Memulai
Pilih metode penyiapan dan mode yang Anda inginkan.
Pilih metode dan mode penyiapan yang Anda inginkan.
<Tabs>
<Tab title="Onboarding (direkomendasikan)">
**Terbaik untuk:** jalur tercepat menuju penyiapan Ollama yang berfungsi dengan penemuan model otomatis.
**Paling cocok untuk:** cara tercepat menuju penyiapan Ollama cloud atau lokal yang berfungsi.
<Steps>
<Step title="Jalankan onboarding">
@ -35,18 +35,17 @@ Pilih metode penyiapan dan mode yang Anda inginkan.
openclaw onboard
```
Pilih **Ollama** dari daftar provider.
Pilih **Ollama** dari daftar penyedia.
</Step>
<Step title="Pilih mode Anda">
- **Cloud + Local** — model yang dihosting di cloud dan model lokal sekaligus
- **Local** — hanya model lokal
Jika Anda memilih **Cloud + Local** dan belum masuk ke ollama.com, onboarding akan membuka alur masuk browser.
- **Cloud + Local** — host Ollama lokal ditambah model cloud yang dirutekan melalui host tersebut
- **Cloud only** — model Ollama yang dihosting melalui `https://ollama.com`
- **Local only** — hanya model lokal
</Step>
<Step title="Pilih model">
Onboarding menemukan model yang tersedia dan menyarankan default. Onboarding akan otomatis menarik model yang dipilih jika model tersebut belum tersedia secara lokal.
`Cloud only` meminta `OLLAMA_API_KEY` dan menyarankan default cloud yang dihosting. `Cloud + Local` dan `Local only` meminta URL dasar Ollama, menemukan model yang tersedia, dan secara otomatis menarik model lokal yang dipilih jika belum tersedia. `Cloud + Local` juga memeriksa apakah host Ollama tersebut sudah masuk untuk akses cloud.
</Step>
<Step title="Verifikasi model tersedia">
<Step title="Verifikasi bahwa model tersedia">
```bash
openclaw models list --provider ollama
```
@ -61,7 +60,7 @@ Pilih metode penyiapan dan mode yang Anda inginkan.
--accept-risk
```
Secara opsional tentukan base URL atau model kustom:
Secara opsional tentukan URL dasar atau model kustom:
```bash
openclaw onboard --non-interactive \
@ -74,13 +73,15 @@ Pilih metode penyiapan dan mode yang Anda inginkan.
</Tab>
<Tab title="Penyiapan manual">
**Terbaik untuk:** kontrol penuh atas instalasi, penarikan model, dan konfigurasi.
**Paling cocok untuk:** kontrol penuh atas penyiapan cloud atau lokal.
<Steps>
<Step title="Instal Ollama">
Unduh dari [ollama.com/download](https://ollama.com/download).
<Step title="Pilih cloud atau lokal">
- **Cloud + Local**: instal Ollama, masuk dengan `ollama signin`, dan rutekan permintaan cloud melalui host tersebut
- **Cloud only**: gunakan `https://ollama.com` dengan `OLLAMA_API_KEY`
- **Local only**: instal Ollama dari [ollama.com/download](https://ollama.com/download)
</Step>
<Step title="Tarik model lokal">
<Step title="Tarik model lokal (hanya lokal)">
```bash
ollama pull gemma4
# atau
@ -89,31 +90,27 @@ Pilih metode penyiapan dan mode yang Anda inginkan.
ollama pull llama3.3
```
</Step>
<Step title="Masuk untuk model cloud (opsional)">
Jika Anda juga menginginkan model cloud:
```bash
ollama signin
```
</Step>
<Step title="Aktifkan Ollama untuk OpenClaw">
Setel nilai apa pun untuk API key (Ollama tidak memerlukan key sungguhan):
Untuk `Cloud only`, gunakan `OLLAMA_API_KEY` asli Anda. Untuk penyiapan berbasis host, nilai placeholder apa pun dapat digunakan:
```bash
# Setel variabel environment
# Cloud
export OLLAMA_API_KEY="your-ollama-api-key"
# Hanya lokal
export OLLAMA_API_KEY="ollama-local"
# Atau konfigurasi di file config Anda
openclaw config set models.providers.ollama.apiKey "ollama-local"
# Atau konfigurasi di file konfigurasi Anda
openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
```
</Step>
<Step title="Periksa dan setel model Anda">
<Step title="Periksa dan atur model Anda">
```bash
openclaw models list
openclaw models set ollama/gemma4
```
Atau setel default di konfigurasi:
Atau atur default di konfigurasi:
```json5
{
@ -134,41 +131,46 @@ Pilih metode penyiapan dan mode yang Anda inginkan.
<Tabs>
<Tab title="Cloud + Local">
Model cloud memungkinkan Anda menjalankan model yang dihosting di cloud bersama model lokal Anda. Contohnya termasuk `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, dan `glm-5.1:cloud` -- model-model ini **tidak** memerlukan `ollama pull` lokal.
`Cloud + Local` menggunakan host Ollama yang dapat dijangkau sebagai titik kontrol untuk model lokal dan cloud. Ini adalah alur hibrida yang direkomendasikan oleh Ollama.
Pilih mode **Cloud + Local** selama penyiapan. Wizard memeriksa apakah Anda sudah masuk dan membuka alur masuk browser bila diperlukan. Jika autentikasi tidak dapat diverifikasi, wizard akan kembali ke default model lokal.
Gunakan **Cloud + Local** saat penyiapan. OpenClaw meminta URL dasar Ollama, menemukan model lokal dari host tersebut, dan memeriksa apakah host sudah masuk untuk akses cloud dengan `ollama signin`. Saat host sudah masuk, OpenClaw juga menyarankan default cloud yang dihosting seperti `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, dan `glm-5.1:cloud`.
Anda juga dapat masuk langsung di [ollama.com/signin](https://ollama.com/signin).
OpenClaw saat ini menyarankan default cloud berikut: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`.
Jika host belum masuk, OpenClaw akan mempertahankan penyiapan hanya lokal sampai Anda menjalankan `ollama signin`.
</Tab>
<Tab title="Hanya lokal">
Dalam mode hanya lokal, OpenClaw menemukan model dari instance Ollama lokal. Tidak perlu masuk ke cloud.
<Tab title="Cloud only">
`Cloud only` berjalan terhadap API hosted Ollama di `https://ollama.com`.
Gunakan **Cloud only** saat penyiapan. OpenClaw meminta `OLLAMA_API_KEY`, menetapkan `baseUrl: "https://ollama.com"`, dan mengisi daftar model cloud yang dihosting. Jalur ini **tidak** memerlukan server Ollama lokal atau `ollama signin`.
</Tab>
<Tab title="Local only">
Dalam mode hanya lokal, OpenClaw menemukan model dari instance Ollama yang dikonfigurasi. Jalur ini ditujukan untuk server Ollama lokal atau self-hosted.
OpenClaw saat ini menyarankan `gemma4` sebagai default lokal.
</Tab>
</Tabs>
## Penemuan model (provider implisit)
## Penemuan model (penyedia implisit)
Saat Anda menyetel `OLLAMA_API_KEY` (atau profil auth) dan **tidak** mendefinisikan `models.providers.ollama`, OpenClaw menemukan model dari instance Ollama lokal di `http://127.0.0.1:11434`.
Saat Anda menetapkan `OLLAMA_API_KEY` (atau profil autentikasi) dan **tidak** mendefinisikan `models.providers.ollama`, OpenClaw menemukan model dari instance Ollama lokal di `http://127.0.0.1:11434`.
| Behavior | Detail |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Kueri katalog | Mengueri `/api/tags` |
| Deteksi kemampuan | Menggunakan lookup `/api/show` best-effort untuk membaca `contextWindow` dan mendeteksi kemampuan (termasuk vision) |
| Model vision | Model dengan kemampuan `vision` yang dilaporkan oleh `/api/show` ditandai sebagai mampu-gambar (`input: ["text", "image"]`), sehingga OpenClaw otomatis menyuntikkan gambar ke prompt |
| Deteksi reasoning | Menandai `reasoning` dengan heuristik nama model (`r1`, `reasoning`, `think`) |
| Batas token | Menyetel `maxTokens` ke batas maksimum token default Ollama yang digunakan oleh OpenClaw |
| Biaya | Menyetel semua biaya ke `0` |
| Perilaku | Detail |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Kueri katalog | Mengueri `/api/tags` |
| Deteksi kapabilitas | Menggunakan lookup `/api/show` best-effort untuk membaca `contextWindow` dan mendeteksi kapabilitas (termasuk vision) |
| Model vision | Model dengan kapabilitas `vision` yang dilaporkan oleh `/api/show` ditandai sebagai mampu menerima gambar (`input: ["text", "image"]`), sehingga OpenClaw secara otomatis menyisipkan gambar ke prompt |
| Deteksi penalaran | Menandai `reasoning` dengan heuristik nama model (`r1`, `reasoning`, `think`) |
| Batas token | Menetapkan `maxTokens` ke batas maksimum token Ollama default yang digunakan oleh OpenClaw |
| Biaya | Menetapkan semua biaya ke `0` |
Ini menghindari entri model manual sambil menjaga katalog tetap selaras dengan instance Ollama lokal.
```bash
# Lihat model apa saja yang tersedia
# Lihat model yang tersedia
ollama list
openclaw models list
```
@ -179,48 +181,48 @@ Untuk menambahkan model baru, cukup tarik dengan Ollama:
ollama pull mistral
```
Model baru akan otomatis ditemukan dan tersedia untuk digunakan.
Model baru akan ditemukan secara otomatis dan tersedia untuk digunakan.
<Note>
Jika Anda menyetel `models.providers.ollama` secara eksplisit, penemuan otomatis dilewati dan Anda harus mendefinisikan model secara manual. Lihat bagian konfigurasi eksplisit di bawah.
Jika Anda menetapkan `models.providers.ollama` secara eksplisit, penemuan otomatis dilewati dan Anda harus mendefinisikan model secara manual. Lihat bagian konfigurasi eksplisit di bawah.
</Note>
## Konfigurasi
<Tabs>
<Tab title="Dasar (penemuan implisit)">
Cara paling sederhana untuk mengaktifkan Ollama adalah melalui variabel environment:
Jalur aktivasi hanya lokal yang paling sederhana adalah melalui variabel lingkungan:
```bash
export OLLAMA_API_KEY="ollama-local"
```
<Tip>
Jika `OLLAMA_API_KEY` disetel, Anda dapat menghilangkan `apiKey` pada entri provider dan OpenClaw akan mengisinya untuk pemeriksaan ketersediaan.
Jika `OLLAMA_API_KEY` ditetapkan, Anda dapat menghilangkan `apiKey` di entri penyedia dan OpenClaw akan mengisinya untuk pemeriksaan ketersediaan.
</Tip>
</Tab>
<Tab title="Eksplisit (model manual)">
Gunakan konfigurasi eksplisit saat Ollama berjalan di host/port lain, Anda ingin memaksakan context window atau daftar model tertentu, atau Anda menginginkan definisi model yang sepenuhnya manual.
Gunakan konfigurasi eksplisit saat Anda menginginkan penyiapan cloud yang dihosting, Ollama berjalan di host/port lain, Anda ingin memaksakan jendela konteks atau daftar model tertentu, atau Anda ingin definisi model sepenuhnya manual.
```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
}
]
}
@ -231,7 +233,7 @@ Jika Anda menyetel `models.providers.ollama` secara eksplisit, penemuan otomatis
</Tab>
<Tab title="Base URL kustom">
<Tab title="URL dasar kustom">
Jika Ollama berjalan di host atau port yang berbeda (konfigurasi eksplisit menonaktifkan penemuan otomatis, jadi definisikan model secara manual):
```json5
@ -241,7 +243,7 @@ Jika Anda menyetel `models.providers.ollama` secara eksplisit, penemuan otomatis
ollama: {
apiKey: "ollama-local",
baseUrl: "http://ollama-host:11434", // Tanpa /v1 - gunakan URL API native Ollama
api: "ollama", // Setel secara eksplisit untuk menjamin perilaku pemanggilan tool native
api: "ollama", // Tetapkan secara eksplisit untuk menjamin perilaku pemanggilan tool native
},
},
},
@ -249,7 +251,7 @@ Jika Anda menyetel `models.providers.ollama` secara eksplisit, penemuan otomatis
```
<Warning>
Jangan tambahkan `/v1` ke URL. Jalur `/v1` menggunakan mode OpenAI-compatible, di mana pemanggilan tool tidak andal. Gunakan URL dasar Ollama tanpa sufiks path.
Jangan tambahkan `/v1` ke URL. Jalur `/v1` menggunakan mode kompatibel OpenAI, tempat pemanggilan tool tidak andal. Gunakan URL dasar Ollama tanpa sufiks jalur.
</Warning>
</Tab>
@ -272,17 +274,17 @@ Setelah dikonfigurasi, semua model Ollama Anda tersedia:
}
```
## Ollama Web Search
## Pencarian Web Ollama
OpenClaw mendukung **Ollama Web Search** sebagai provider `web_search` bawaan.
OpenClaw mendukung **Ollama Web Search** sebagai penyedia `web_search` bawaan.
| Property | Detail |
| ----------- | ----------------------------------------------------------------------------------------------------------------- |
| Host | Menggunakan host Ollama yang dikonfigurasi (`models.providers.ollama.baseUrl` jika disetel, jika tidak `http://127.0.0.1:11434`) |
| Auth | Tanpa key |
| Requirement | Ollama harus berjalan dan sudah masuk dengan `ollama signin` |
| Properti | Detail |
| ----------- | ------------------------------------------------------------------------------------------------------------------ |
| Host | Menggunakan host Ollama yang dikonfigurasi (`models.providers.ollama.baseUrl` jika ditetapkan, jika tidak `http://127.0.0.1:11434`) |
| Auth | Tidak memerlukan kunci |
| Persyaratan | Ollama harus berjalan dan sudah masuk dengan `ollama signin` |
Pilih **Ollama Web Search** saat `openclaw onboard` atau `openclaw configure --section web`, atau setel:
Pilih **Ollama Web Search** saat `openclaw onboard` atau `openclaw configure --section web`, atau atur:
```json5
{
@ -297,18 +299,18 @@ Pilih **Ollama Web Search** saat `openclaw onboard` atau `openclaw configure --s
```
<Note>
Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools/ollama-search).
Untuk detail lengkap penyiapan dan perilaku, lihat [Ollama Web Search](/id/tools/ollama-search).
</Note>
## Konfigurasi lanjutan
<AccordionGroup>
<Accordion title="Mode OpenAI-compatible lama">
<Accordion title="Mode kompatibel OpenAI lama">
<Warning>
**Pemanggilan tool tidak andal dalam mode OpenAI-compatible.** Gunakan mode ini hanya jika Anda memerlukan format OpenAI untuk proxy dan tidak bergantung pada perilaku pemanggilan tool native.
**Pemanggilan tool tidak andal dalam mode kompatibel OpenAI.** Gunakan mode ini hanya jika Anda memerlukan format OpenAI untuk proxy dan tidak bergantung pada perilaku pemanggilan tool native.
</Warning>
Jika Anda perlu menggunakan endpoint OpenAI-compatible sebagai gantinya (misalnya, di balik proxy yang hanya mendukung format OpenAI), setel `api: "openai-completions"` secara eksplisit:
Jika Anda perlu menggunakan endpoint kompatibel OpenAI sebagai gantinya (misalnya, di balik proxy yang hanya mendukung format OpenAI), tetapkan `api: "openai-completions"` secara eksplisit:
```json5
{
@ -326,9 +328,9 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
}
```
Mode ini mungkin tidak mendukung streaming dan pemanggilan tool secara bersamaan. Anda mungkin perlu menonaktifkan streaming dengan `params: { streaming: false }` di konfigurasi model.
Mode ini mungkin tidak mendukung streaming dan pemanggilan tool secara bersamaan. Anda mungkin perlu menonaktifkan streaming dengan `params: { streaming: false }` dalam konfigurasi model.
Saat `api: "openai-completions"` digunakan dengan Ollama, OpenClaw secara default menyuntikkan `options.num_ctx` agar Ollama tidak diam-diam kembali ke context window 4096. Jika proxy/upstream Anda menolak field `options` yang tidak dikenal, nonaktifkan perilaku ini:
Saat `api: "openai-completions"` digunakan dengan Ollama, OpenClaw secara default menyisipkan `options.num_ctx` agar Ollama tidak diam-diam kembali ke jendela konteks 4096. Jika proxy/upstream Anda menolak field `options` yang tidak dikenal, nonaktifkan perilaku ini:
```json5
{
@ -348,10 +350,10 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
</Accordion>
<Accordion title="Context window">
Untuk model yang ditemukan otomatis, OpenClaw menggunakan context window yang dilaporkan oleh Ollama bila tersedia, jika tidak maka kembali ke context window default Ollama yang digunakan oleh OpenClaw.
<Accordion title="Jendela konteks">
Untuk model yang ditemukan secara otomatis, OpenClaw menggunakan jendela konteks yang dilaporkan oleh Ollama jika tersedia, jika tidak maka akan kembali ke jendela konteks Ollama default yang digunakan oleh OpenClaw.
Anda dapat menimpa `contextWindow` dan `maxTokens` dalam konfigurasi provider eksplisit:
Anda dapat mengganti `contextWindow` dan `maxTokens` dalam konfigurasi penyedia eksplisit:
```json5
{
@ -374,7 +376,7 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
</Accordion>
<Accordion title="Model reasoning">
OpenClaw memperlakukan model dengan nama seperti `deepseek-r1`, `reasoning`, atau `think` sebagai model yang mampu reasoning secara default.
OpenClaw memperlakukan model dengan nama seperti `deepseek-r1`, `reasoning`, atau `think` sebagai model yang mendukung reasoning secara default.
```bash
ollama pull deepseek-r1:32b
@ -385,20 +387,20 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
</Accordion>
<Accordion title="Biaya model">
Ollama gratis dan berjalan secara lokal, jadi semua biaya model disetel ke $0. Ini berlaku untuk model yang ditemukan otomatis maupun yang didefinisikan secara manual.
Ollama gratis dan berjalan secara lokal, jadi semua biaya model ditetapkan ke $0. Ini berlaku untuk model yang ditemukan secara otomatis maupun yang didefinisikan secara manual.
</Accordion>
<Accordion title="Embedding memori">
Plugin Ollama bawaan mendaftarkan provider embedding memori untuk
[pencarian memori](/id/concepts/memory). Ini menggunakan base URL Ollama dan
API key yang dikonfigurasi.
Plugin Ollama bawaan mendaftarkan penyedia embedding memori untuk
[pencarian memori](/id/concepts/memory). Ini menggunakan URL dasar Ollama
dan API key yang dikonfigurasi.
| Property | Value |
| Properti | Nilai |
| ------------- | ------------------- |
| Default model | `nomic-embed-text` |
| Auto-pull | Ya — model embedding ditarik secara otomatis jika belum ada secara lokal |
| Model default | `nomic-embed-text` |
| Tarik otomatis | Ya — model embedding ditarik secara otomatis jika belum ada secara lokal |
Untuk memilih Ollama sebagai provider embedding pencarian memori:
Untuk memilih Ollama sebagai penyedia embedding pencarian memori:
```json5
{
@ -416,7 +418,7 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
Integrasi Ollama OpenClaw menggunakan **API native Ollama** (`/api/chat`) secara default, yang sepenuhnya mendukung streaming dan pemanggilan tool secara bersamaan. Tidak diperlukan konfigurasi khusus.
<Tip>
Jika Anda perlu menggunakan endpoint OpenAI-compatible, lihat bagian "Mode OpenAI-compatible lama" di atas. Streaming dan pemanggilan tool mungkin tidak berfungsi secara bersamaan dalam mode tersebut.
Jika Anda perlu menggunakan endpoint yang kompatibel dengan OpenAI, lihat bagian "Mode kompatibel OpenAI lama" di atas. Streaming dan pemanggilan tool mungkin tidak berfungsi secara bersamaan dalam mode tersebut.
</Tip>
</Accordion>
@ -426,7 +428,7 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
<AccordionGroup>
<Accordion title="Ollama tidak terdeteksi">
Pastikan Ollama berjalan dan Anda telah menyetel `OLLAMA_API_KEY` (atau profil auth), serta Anda **tidak** mendefinisikan entri `models.providers.ollama` secara eksplisit:
Pastikan Ollama sedang berjalan dan Anda telah menetapkan `OLLAMA_API_KEY` (atau profil autentikasi), dan Anda **tidak** mendefinisikan entri `models.providers.ollama` eksplisit:
```bash
ollama serve
@ -444,7 +446,7 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
Jika model Anda tidak tercantum, tarik model tersebut secara lokal atau definisikan secara eksplisit di `models.providers.ollama`.
```bash
ollama list # Lihat apa yang terinstal
ollama list # Lihat yang terinstal
ollama pull gemma4
ollama pull gpt-oss:20b
ollama pull llama3.3 # Atau model lain
@ -452,11 +454,11 @@ Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools
</Accordion>
<Accordion title="Connection refused">
<Accordion title="Koneksi ditolak">
Periksa bahwa Ollama berjalan pada port yang benar:
```bash
# Periksa apakah Ollama sedang berjalan
# Periksa apakah Ollama berjalan
ps aux | grep ollama
# Atau mulai ulang Ollama
@ -473,8 +475,8 @@ Bantuan lebih lanjut: [Pemecahan masalah](/id/help/troubleshooting) dan [FAQ](/i
## Terkait
<CardGroup cols={2}>
<Card title="Provider model" href="/id/concepts/model-providers" icon="layers">
Ringkasan semua provider, ref model, dan perilaku failover.
<Card title="Penyedia model" href="/id/concepts/model-providers" icon="layers">
Ikhtisar semua penyedia, ref model, dan perilaku failover.
</Card>
<Card title="Pemilihan model" href="/id/concepts/models" icon="brain">
Cara memilih dan mengonfigurasi model.

View File

@ -1,97 +1,98 @@
---
read_when:
- Anda ingin mengonfigurasi provider pencarian memori atau model embedding
- Anda ingin mengonfigurasi penyedia pencarian memori atau model embedding
- Anda ingin menyiapkan backend QMD
- Anda ingin menyetel pencarian hibrida, MMR, atau temporal decay
- Anda ingin menyesuaikan pencarian hibrida, MMR, atau peluruhan temporal
- Anda ingin mengaktifkan pengindeksan memori multimodal
summary: Semua knob konfigurasi untuk pencarian memori, provider embedding, QMD, pencarian hibrida, dan pengindeksan multimodal
summary: Semua opsi konfigurasi untuk pencarian memori, penyedia embedding, QMD, pencarian hibrida, dan pengindeksan multimodal
title: Referensi konfigurasi memori
x-i18n:
generated_at: "2026-04-12T23:33:38Z"
generated_at: "2026-04-15T14:41:00Z"
model: gpt-5.4
provider: openai
source_hash: 299ca9b69eea292ea557a2841232c637f5c1daf2bc0f73c0a42f7c0d8d566ce2
source_hash: 334c3c4dac08e864487047d3822c75f96e9e7a97c38be4b4e0cd9e63c4489a53
source_path: reference/memory-config.md
workflow: 15
---
# Referensi konfigurasi memori
Halaman ini mencantumkan setiap knob konfigurasi untuk pencarian memori OpenClaw. Untuk
ikhtisar konseptual, lihat:
Halaman ini mencantumkan setiap opsi konfigurasi untuk pencarian memori OpenClaw. Untuk gambaran konseptual, lihat:
- [Ikhtisar Memori](/id/concepts/memory) -- cara kerja memori
- [Builtin Engine](/id/concepts/memory-builtin) -- backend SQLite default
- [QMD Engine](/id/concepts/memory-qmd) -- sidecar local-first
- [Pencarian Memori](/id/concepts/memory-search) -- pipeline pencarian dan penyetelan
- [Active Memory](/id/concepts/active-memory) -- mengaktifkan sub-agent memori untuk sesi interaktif
- [Mesin Bawaan](/id/concepts/memory-builtin) -- backend SQLite default
- [Mesin QMD](/id/concepts/memory-qmd) -- sidecar yang mengutamakan lokal
- [Pencarian Memori](/id/concepts/memory-search) -- pipeline pencarian dan penyesuaian
- [Active Memory](/id/concepts/active-memory) -- mengaktifkan sub-agen memori untuk sesi interaktif
Semua pengaturan pencarian memori berada di bawah `agents.defaults.memorySearch` dalam
`openclaw.json` kecuali jika disebutkan lain.
Semua pengaturan pencarian memori berada di bawah `agents.defaults.memorySearch` di
`openclaw.json` kecuali jika dinyatakan lain.
Jika Anda mencari toggle fitur **Active Memory** dan config sub-agent,
Jika Anda mencari tombol fitur **active memory** dan config sub-agen,
itu berada di bawah `plugins.entries.active-memory`, bukan `memorySearch`.
Active Memory menggunakan model dua gerbang:
Active memory menggunakan model dua gerbang:
1. plugin harus diaktifkan dan menargetkan id agent saat ini
1. plugin harus diaktifkan dan menargetkan id agen saat ini
2. permintaan harus berupa sesi chat persisten interaktif yang memenuhi syarat
Lihat [Active Memory](/id/concepts/active-memory) untuk model aktivasi,
config milik plugin, persistensi transkrip, dan pola rollout yang aman.
config milik plugin, persistensi transkrip, dan pola peluncuran yang aman.
---
## Pemilihan provider
## Pemilihan penyedia
| Key | Tipe | Default | Deskripsi |
| ---------- | --------- | ---------------- | ----------------------------------------------------------------------------------------- |
| `provider` | `string` | terdeteksi otomatis | ID adapter embedding: `openai`, `gemini`, `voyage`, `mistral`, `bedrock`, `ollama`, `local` |
| `model` | `string` | default provider | Nama model embedding |
| `fallback` | `string` | `"none"` | ID adapter fallback saat yang utama gagal |
| `enabled` | `boolean` | `true` | Mengaktifkan atau menonaktifkan pencarian memori |
| Key | Type | Default | Description |
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| `provider` | `string` | terdeteksi otomatis | ID adaptor embedding: `bedrock`, `gemini`, `github-copilot`, `local`, `mistral`, `ollama`, `openai`, `voyage` |
| `model` | `string` | default penyedia | Nama model embedding |
| `fallback` | `string` | `"none"` | ID adaptor fallback saat yang utama gagal |
| `enabled` | `boolean` | `true` | Mengaktifkan atau menonaktifkan pencarian memori |
### Urutan deteksi otomatis
Saat `provider` tidak ditetapkan, OpenClaw memilih yang pertama tersedia:
1. `local` -- jika `memorySearch.local.modelPath` dikonfigurasi dan file tersebut ada.
2. `openai` -- jika key OpenAI dapat di-resolve.
3. `gemini` -- jika key Gemini dapat di-resolve.
4. `voyage` -- jika key Voyage dapat di-resolve.
5. `mistral` -- jika key Mistral dapat di-resolve.
6. `bedrock` -- jika rantai kredensial AWS SDK dapat di-resolve (instance role, access key, profile, SSO, web identity, atau shared config).
2. `github-copilot` -- jika token GitHub Copilot dapat di-resolve (variabel lingkungan atau profil auth).
3. `openai` -- jika kunci OpenAI dapat di-resolve.
4. `gemini` -- jika kunci Gemini dapat di-resolve.
5. `voyage` -- jika kunci Voyage dapat di-resolve.
6. `mistral` -- jika kunci Mistral dapat di-resolve.
7. `bedrock` -- jika rantai kredensial AWS SDK berhasil di-resolve (peran instance, access key, profil, SSO, identitas web, atau config bersama).
`ollama` didukung tetapi tidak terdeteksi otomatis (tetapkan secara eksplisit).
`ollama` didukung tetapi tidak dideteksi otomatis (tetapkan secara eksplisit).
### Resolusi kunci API
Embedding jarak jauh memerlukan kunci API. Bedrock menggunakan rantai kredensial default AWS SDK
sebagai gantinya (instance role, SSO, access key).
sebagai gantinya (peran instance, SSO, access key).
| Provider | Env var | Key config |
| -------- | ------------------------------ | ---------------------------------- |
| 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 | Rantai kredensial AWS | Tidak memerlukan kunci API |
| Ollama | `OLLAMA_API_KEY` (placeholder) | -- |
| Provider | Env var | Config key |
| -------------- | -------------------------------------------------- | --------------------------------- |
| Bedrock | rantai kredensial AWS | Tidak memerlukan kunci API |
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
| GitHub Copilot | `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN` | Profil auth melalui login perangkat |
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
| Ollama | `OLLAMA_API_KEY` (placeholder) | -- |
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
Codex OAuth hanya mencakup chat/completions dan tidak memenuhi permintaan
OAuth Codex hanya mencakup chat/completions dan tidak memenuhi permintaan
embedding.
---
## Config endpoint jarak jauh
Untuk endpoint kustom yang kompatibel dengan OpenAI atau mengoverride default provider:
Untuk endpoint kompatibel OpenAI kustom atau menimpa default penyedia:
| Key | Tipe | Deskripsi |
| ---------------- | -------- | ------------------------------------------------ |
| `remote.baseUrl` | `string` | Base URL API kustom |
| `remote.apiKey` | `string` | Override kunci API |
| `remote.headers` | `object` | Header HTTP tambahan (digabung dengan default provider) |
| Key | Type | Description |
| ---------------- | -------- | -------------------------------------------------- |
| `remote.baseUrl` | `string` | URL dasar API kustom |
| `remote.apiKey` | `string` | Timpa kunci API |
| `remote.headers` | `object` | Header HTTP tambahan (digabungkan dengan default penyedia) |
```json5
{
@ -114,13 +115,13 @@ Untuk endpoint kustom yang kompatibel dengan OpenAI atau mengoverride default pr
## Config khusus Gemini
| Key | Tipe | Default | Deskripsi |
| ---------------------- | -------- | ---------------------- | ---------------------------------------- |
| Key | Type | Default | Description |
| ---------------------- | -------- | ---------------------- | ------------------------------------------ |
| `model` | `string` | `gemini-embedding-001` | Juga mendukung `gemini-embedding-2-preview` |
| `outputDimensionality` | `number` | `3072` | Untuk Embedding 2: 768, 1536, atau 3072 |
| `outputDimensionality` | `number` | `3072` | Untuk Embedding 2: 768, 1536, atau 3072 |
<Warning>
Mengubah model atau `outputDimensionality` memicu reindex penuh otomatis.
Mengubah model atau `outputDimensionality` memicu pengindeksan ulang penuh secara otomatis.
</Warning>
---
@ -128,8 +129,8 @@ Mengubah model atau `outputDimensionality` memicu reindex penuh otomatis.
## Config embedding Bedrock
Bedrock menggunakan rantai kredensial default AWS SDK -- tidak memerlukan kunci API.
Jika OpenClaw berjalan di EC2 dengan instance role yang mengaktifkan Bedrock, cukup tetapkan
provider dan model:
Jika OpenClaw berjalan di EC2 dengan peran instance yang mendukung Bedrock, cukup tetapkan
penyedia dan model:
```json5
{
@ -144,47 +145,47 @@ provider dan model:
}
```
| Key | Tipe | Default | Deskripsi |
| ---------------------- | -------- | ------------------------------ | ---------------------------- |
| `model` | `string` | `amazon.titan-embed-text-v2:0` | ID model embedding Bedrock apa pun |
| Key | Type | Default | Description |
| ---------------------- | -------- | ------------------------------ | ------------------------------- |
| `model` | `string` | `amazon.titan-embed-text-v2:0` | ID model embedding Bedrock apa pun |
| `outputDimensionality` | `number` | default model | Untuk Titan V2: 256, 512, atau 1024 |
### Model yang didukung
Model berikut didukung (dengan deteksi keluarga dan default dimensi):
| ID Model | Provider | Dims Default | Dims yang Dapat Dikonfigurasi |
| ------------------------------------------ | ---------- | ------------ | ----------------------------- |
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 |
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
| `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- |
| `amazon.titan-embed-image-v1` | Amazon | 1024 | -- |
| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 |
| `cohere.embed-english-v3` | Cohere | 1024 | -- |
| `cohere.embed-multilingual-v3` | Cohere | 1024 | -- |
| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 |
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
| Model ID | Provider | Default Dims | Configurable Dims |
| ------------------------------------------ | ---------- | ------------ | -------------------- |
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 |
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
| `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- |
| `amazon.titan-embed-image-v1` | Amazon | 1024 | -- |
| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 |
| `cohere.embed-english-v3` | Cohere | 1024 | -- |
| `cohere.embed-multilingual-v3` | Cohere | 1024 | -- |
| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 |
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
Varian dengan sufiks throughput (misalnya, `amazon.titan-embed-text-v1:2:8k`) mewarisi
konfigurasi model dasarnya.
config model dasarnya.
### Autentikasi
Autentikasi Bedrock menggunakan urutan resolusi kredensial AWS SDK standar:
Auth Bedrock menggunakan urutan resolusi kredensial AWS SDK standar:
1. Variabel lingkungan (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`)
2. Cache token SSO
3. Kredensial token web identity
4. File shared credentials dan config
3. Kredensial token identitas web
4. File kredensial dan config bersama
5. Kredensial metadata ECS atau EC2
Region di-resolve dari `AWS_REGION`, `AWS_DEFAULT_REGION`, `baseUrl` provider
Region di-resolve dari `AWS_REGION`, `AWS_DEFAULT_REGION`, `baseUrl` penyedia
`amazon-bedrock`, atau default ke `us-east-1`.
### Izin IAM
Role atau user IAM memerlukan:
Peran atau pengguna IAM memerlukan:
```json
{
@ -194,7 +195,7 @@ Role atau user IAM memerlukan:
}
```
Untuk least-privilege, batasi `InvokeModel` ke model tertentu:
Untuk hak istimewa minimum, batasi `InvokeModel` ke model tertentu:
```
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
@ -204,9 +205,9 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
## Config embedding lokal
| Key | Tipe | Default | Deskripsi |
| --------------------- | -------- | ---------------------- | ---------------------------- |
| `local.modelPath` | `string` | diunduh otomatis | Path ke file model GGUF |
| Key | Type | Default | Description |
| --------------------- | -------- | ---------------------- | ------------------------------- |
| `local.modelPath` | `string` | diunduh otomatis | Path ke file model GGUF |
| `local.modelCacheDir` | `string` | default node-llama-cpp | Direktori cache untuk model yang diunduh |
Model default: `embeddinggemma-300m-qat-Q8_0.gguf` (~0.6 GB, diunduh otomatis).
@ -216,30 +217,30 @@ Memerlukan build native: `pnpm approve-builds` lalu `pnpm rebuild node-llama-cpp
## Config pencarian hibrida
Semua berada di bawah `memorySearch.query.hybrid`:
Semua di bawah `memorySearch.query.hybrid`:
| Key | Tipe | Default | Deskripsi |
| --------------------- | --------- | ------- | --------------------------------- |
| `enabled` | `boolean` | `true` | Aktifkan pencarian hibrida BM25 + vector |
| `vectorWeight` | `number` | `0.7` | Bobot untuk skor vector (0-1) |
| Key | Type | Default | Description |
| --------------------- | --------- | ------- | ---------------------------------- |
| `enabled` | `boolean` | `true` | Aktifkan pencarian hibrida BM25 + vektor |
| `vectorWeight` | `number` | `0.7` | Bobot untuk skor vektor (0-1) |
| `textWeight` | `number` | `0.3` | Bobot untuk skor BM25 (0-1) |
| `candidateMultiplier` | `number` | `4` | Pengali ukuran kumpulan kandidat |
| `candidateMultiplier` | `number` | `4` | Pengali ukuran kumpulan kandidat |
### MMR (keragaman)
### MMR (keberagaman)
| Key | Tipe | Default | Deskripsi |
| Key | Type | Default | Description |
| ------------- | --------- | ------- | ------------------------------------ |
| `mmr.enabled` | `boolean` | `false` | Aktifkan pemeringkatan ulang MMR |
| `mmr.lambda` | `number` | `0.7` | 0 = keragaman maksimum, 1 = relevansi maksimum |
| `mmr.enabled` | `boolean` | `false` | Aktifkan pemeringkatan ulang MMR |
| `mmr.lambda` | `number` | `0.7` | 0 = keberagaman maksimum, 1 = relevansi maksimum |
### Temporal decay (keterkinian)
### Peluruhan temporal (keterkinian)
| Key | Tipe | Default | Deskripsi |
| ---------------------------- | --------- | ------- | ---------------------------- |
| `temporalDecay.enabled` | `boolean` | `false` | Aktifkan peningkatan keterkinian |
| `temporalDecay.halfLifeDays` | `number` | `30` | Skor menjadi setengah setiap N hari |
| Key | Type | Default | Description |
| ---------------------------- | --------- | ------- | ------------------------- |
| `temporalDecay.enabled` | `boolean` | `false` | Aktifkan peningkatan skor keterkinian |
| `temporalDecay.halfLifeDays` | `number` | `30` | Skor berkurang setengah setiap N hari |
File evergreen (`MEMORY.md`, file tanpa tanggal di `memory/`) tidak pernah dikenai decay.
File evergreen (`MEMORY.md`, file tanpa tanggal di `memory/`) tidak pernah dikenai peluruhan.
### Contoh lengkap
@ -266,8 +267,8 @@ File evergreen (`MEMORY.md`, file tanpa tanggal di `memory/`) tidak pernah diken
## Path memori tambahan
| Key | Tipe | Deskripsi |
| ------------ | ---------- | -------------------------------------- |
| Key | Type | Description |
| ------------ | ---------- | ---------------------------------------- |
| `extraPaths` | `string[]` | Direktori atau file tambahan untuk diindeks |
```json5
@ -284,17 +285,17 @@ File evergreen (`MEMORY.md`, file tanpa tanggal di `memory/`) tidak pernah diken
Path dapat berupa absolut atau relatif terhadap workspace. Direktori dipindai
secara rekursif untuk file `.md`. Penanganan symlink bergantung pada backend aktif:
builtin engine mengabaikan symlink, sedangkan QMD mengikuti perilaku scanner QMD
mesin bawaan mengabaikan symlink, sedangkan QMD mengikuti perilaku pemindai QMD
yang mendasarinya.
Untuk pencarian transkrip lintas-agent yang dibatasi agent, gunakan
Untuk pencarian transkrip lintas agen dengan cakupan agen, gunakan
`agents.list[].memorySearch.qmd.extraCollections` alih-alih `memory.qmd.paths`.
Extra collection tersebut mengikuti bentuk `{ path, name, pattern? }` yang sama, tetapi
digabung per agent dan dapat mempertahankan nama bersama yang eksplisit saat path
menunjuk ke luar workspace saat ini.
Jika path hasil resolve yang sama muncul di `memory.qmd.paths` dan
Koleksi tambahan tersebut mengikuti bentuk `{ path, name, pattern? }` yang sama, tetapi
digabungkan per agen dan dapat mempertahankan nama bersama yang eksplisit saat path
mengarah ke luar workspace saat ini.
Jika path hasil resolve yang sama muncul baik di `memory.qmd.paths` maupun
`memorySearch.qmd.extraCollections`, QMD mempertahankan entri pertama dan melewati
duplikatnya.
duplikat tersebut.
---
@ -302,13 +303,13 @@ duplikatnya.
Indeks gambar dan audio bersama Markdown menggunakan Gemini Embedding 2:
| Key | Tipe | Default | Deskripsi |
| ------------------------- | ---------- | ---------- | ---------------------------------------- |
| `multimodal.enabled` | `boolean` | `false` | Aktifkan pengindeksan multimodal |
| Key | Type | Default | Description |
| ------------------------- | ---------- | ---------- | -------------------------------------- |
| `multimodal.enabled` | `boolean` | `false` | Aktifkan pengindeksan multimodal |
| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]`, atau `["all"]` |
| `multimodal.maxFileBytes` | `number` | `10000000` | Ukuran file maksimum untuk pengindeksan |
| `multimodal.maxFileBytes` | `number` | `10000000` | Ukuran file maksimum untuk pengindeksan |
Hanya berlaku untuk file di `extraPaths`. Root memori default tetap hanya Markdown.
Hanya berlaku untuk file di `extraPaths`. Root memori default tetap khusus Markdown.
Memerlukan `gemini-embedding-2-preview`. `fallback` harus `"none"`.
Format yang didukung: `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif`
@ -318,24 +319,24 @@ Format yang didukung: `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif`
## Cache embedding
| Key | Tipe | Default | Deskripsi |
| ------------------ | --------- | ------- | ----------------------------------- |
| `cache.enabled` | `boolean` | `false` | Cache embedding chunk di SQLite |
| `cache.maxEntries` | `number` | `50000` | Jumlah maksimum embedding yang di-cache |
| Key | Type | Default | Description |
| ------------------ | --------- | ------- | -------------------------------- |
| `cache.enabled` | `boolean` | `false` | Cache embedding chunk di SQLite |
| `cache.maxEntries` | `number` | `50000` | Embedding yang di-cache maksimum |
Mencegah embedding ulang teks yang tidak berubah selama reindex atau pembaruan transkrip.
Mencegah embedding ulang pada teks yang tidak berubah selama pengindeksan ulang atau pembaruan transkrip.
---
## Pengindeksan batch
| Key | Tipe | Default | Deskripsi |
| ----------------------------- | --------- | ------- | ----------------------------- |
| `remote.batch.enabled` | `boolean` | `false` | Aktifkan API embedding batch |
| `remote.batch.concurrency` | `number` | `2` | Job batch paralel |
| `remote.batch.wait` | `boolean` | `true` | Tunggu batch selesai |
| `remote.batch.pollIntervalMs` | `number` | -- | Interval polling |
| `remote.batch.timeoutMinutes` | `number` | -- | Timeout batch |
| Key | Type | Default | Description |
| ----------------------------- | --------- | ------- | -------------------------- |
| `remote.batch.enabled` | `boolean` | `false` | Aktifkan API embedding batch |
| `remote.batch.concurrency` | `number` | `2` | Job batch paralel |
| `remote.batch.wait` | `boolean` | `true` | Tunggu penyelesaian batch |
| `remote.batch.pollIntervalMs` | `number` | -- | Interval polling |
| `remote.batch.timeoutMinutes` | `number` | -- | Batas waktu batch |
Tersedia untuk `openai`, `gemini`, dan `voyage`. Batch OpenAI biasanya
paling cepat dan paling murah untuk backfill besar.
@ -346,34 +347,34 @@ paling cepat dan paling murah untuk backfill besar.
Indeks transkrip sesi dan tampilkan melalui `memory_search`:
| Key | Tipe | Default | Deskripsi |
| ----------------------------- | ---------- | ------------ | ---------------------------------------- |
| `experimental.sessionMemory` | `boolean` | `false` | Aktifkan pengindeksan sesi |
| Key | Type | Default | Description |
| ----------------------------- | ---------- | ------------ | --------------------------------------- |
| `experimental.sessionMemory` | `boolean` | `false` | Aktifkan pengindeksan sesi |
| `sources` | `string[]` | `["memory"]` | Tambahkan `"sessions"` untuk menyertakan transkrip |
| `sync.sessions.deltaBytes` | `number` | `100000` | Ambang byte untuk reindex |
| `sync.sessions.deltaMessages` | `number` | `50` | Ambang jumlah pesan untuk reindex |
| `sync.sessions.deltaBytes` | `number` | `100000` | Ambang byte untuk pengindeksan ulang |
| `sync.sessions.deltaMessages` | `number` | `50` | Ambang pesan untuk pengindeksan ulang |
Pengindeksan sesi bersifat opt-in dan berjalan secara asinkron. Hasil dapat sedikit
stale. Log sesi berada di disk, jadi perlakukan akses filesystem sebagai batas
Pengindeksan sesi bersifat opt-in dan berjalan secara asinkron. Hasilnya bisa sedikit
tidak mutakhir. Log sesi berada di disk, jadi perlakukan akses filesystem sebagai batas
kepercayaan.
---
## Akselerasi vector SQLite (`sqlite-vec`)
## Akselerasi vektor SQLite (sqlite-vec)
| Key | Tipe | Default | Deskripsi |
| ---------------------------- | --------- | ------- | ---------------------------------- |
| `store.vector.enabled` | `boolean` | `true` | Gunakan `sqlite-vec` untuk query vector |
| `store.vector.extensionPath` | `string` | bundled | Override path `sqlite-vec` |
| Key | Type | Default | Description |
| ---------------------------- | --------- | ------- | --------------------------------- |
| `store.vector.enabled` | `boolean` | `true` | Gunakan sqlite-vec untuk kueri vektor |
| `store.vector.extensionPath` | `string` | bundled | Timpa path sqlite-vec |
Saat `sqlite-vec` tidak tersedia, OpenClaw otomatis kembali ke cosine
similarity dalam proses.
Saat sqlite-vec tidak tersedia, OpenClaw secara otomatis beralih ke
similaritas cosine dalam proses.
---
## Penyimpanan indeks
| Key | Tipe | Default | Deskripsi |
| Key | Type | Default | Description |
| --------------------- | -------- | ------------------------------------- | ------------------------------------------- |
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | Lokasi indeks (mendukung token `{agentId}`) |
| `store.fts.tokenizer` | `string` | `unicode61` | Tokenizer FTS5 (`unicode61` atau `trigram`) |
@ -382,52 +383,53 @@ similarity dalam proses.
## Config backend QMD
Tetapkan `memory.backend = "qmd"` untuk mengaktifkan. Semua pengaturan QMD berada di bawah
Tetapkan `memory.backend = "qmd"` untuk mengaktifkannya. Semua pengaturan QMD berada di bawah
`memory.qmd`:
| Key | Tipe | Default | Deskripsi |
| ------------------------ | --------- | -------- | ------------------------------------------- |
| `command` | `string` | `qmd` | Path executable QMD |
| Key | Type | Default | Description |
| ------------------------ | --------- | -------- | -------------------------------------------- |
| `command` | `string` | `qmd` | Path executable QMD |
| `searchMode` | `string` | `search` | Perintah pencarian: `search`, `vsearch`, `query` |
| `includeDefaultMemory` | `boolean` | `true` | Otomatis mengindeks `MEMORY.md` + `memory/**/*.md` |
| `paths[]` | `array` | -- | Path tambahan: `{ name, path, pattern? }` |
| `sessions.enabled` | `boolean` | `false` | Indeks transkrip sesi |
| `sessions.retentionDays` | `number` | -- | Retensi transkrip |
| `sessions.exportDir` | `string` | -- | Direktori ekspor |
| `includeDefaultMemory` | `boolean` | `true` | Indeks otomatis `MEMORY.md` + `memory/**/*.md` |
| `paths[]` | `array` | -- | Path tambahan: `{ name, path, pattern? }` |
| `sessions.enabled` | `boolean` | `false` | Indeks transkrip sesi |
| `sessions.retentionDays` | `number` | -- | Retensi transkrip |
| `sessions.exportDir` | `string` | -- | Direktori ekspor |
OpenClaw lebih memilih bentuk collection dan query MCP QMD saat ini, tetapi tetap
membuat rilis QMD lama berfungsi dengan kembali ke flag collection `--mask` lama
dan nama tool MCP lama bila diperlukan.
OpenClaw mengutamakan koleksi QMD saat ini dan bentuk kueri MCP, tetapi tetap
membuat rilis QMD yang lebih lama tetap berfungsi dengan beralih ke flag koleksi
`--mask` lama dan nama tool MCP yang lebih lama bila diperlukan.
Override model QMD tetap berada di sisi QMD, bukan config OpenClaw. Jika Anda perlu
mengoverride model QMD secara global, tetapkan variabel lingkungan seperti
`QMD_EMBED_MODEL`, `QMD_RERANK_MODEL`, dan `QMD_GENERATE_MODEL` di lingkungan runtime gateway.
Penggantian model QMD tetap berada di sisi QMD, bukan config OpenClaw. Jika Anda perlu
menimpa model QMD secara global, tetapkan variabel lingkungan seperti
`QMD_EMBED_MODEL`, `QMD_RERANK_MODEL`, dan `QMD_GENERATE_MODEL` di lingkungan runtime
Gateway.
### Jadwal pembaruan
| Key | Tipe | Default | Deskripsi |
| ------------------------- | --------- | ------- | -------------------------------------- |
| `update.interval` | `string` | `5m` | Interval refresh |
| `update.debounceMs` | `number` | `15000` | Debounce perubahan file |
| `update.onBoot` | `boolean` | `true` | Refresh saat startup |
| `update.waitForBootSync` | `boolean` | `false` | Blok startup sampai refresh selesai |
| `update.embedInterval` | `string` | -- | Cadence embedding terpisah |
| `update.commandTimeoutMs` | `number` | -- | Timeout untuk perintah QMD |
| `update.updateTimeoutMs` | `number` | -- | Timeout untuk operasi update QMD |
| `update.embedTimeoutMs` | `number` | -- | Timeout untuk operasi embed QMD |
| Key | Type | Default | Description |
| ------------------------- | --------- | ------- | ------------------------------------- |
| `update.interval` | `string` | `5m` | Interval penyegaran |
| `update.debounceMs` | `number` | `15000` | Debounce perubahan file |
| `update.onBoot` | `boolean` | `true` | Segarkan saat startup |
| `update.waitForBootSync` | `boolean` | `false` | Blokir startup sampai penyegaran selesai |
| `update.embedInterval` | `string` | -- | Irama embedding terpisah |
| `update.commandTimeoutMs` | `number` | -- | Batas waktu untuk perintah QMD |
| `update.updateTimeoutMs` | `number` | -- | Batas waktu untuk operasi pembaruan QMD |
| `update.embedTimeoutMs` | `number` | -- | Batas waktu untuk operasi embedding QMD |
### Batas
| Key | Tipe | Default | Deskripsi |
| ------------------------- | -------- | ------- | ----------------------------- |
| `limits.maxResults` | `number` | `6` | Jumlah maksimum hasil pencarian |
| `limits.maxSnippetChars` | `number` | -- | Batasi panjang snippet |
| `limits.maxInjectedChars` | `number` | -- | Batasi total karakter yang diinjeksi |
| `limits.timeoutMs` | `number` | `4000` | Timeout pencarian |
| Key | Type | Default | Description |
| ------------------------- | -------- | ------- | -------------------------- |
| `limits.maxResults` | `number` | `6` | Hasil pencarian maksimum |
| `limits.maxSnippetChars` | `number` | -- | Batasi panjang cuplikan |
| `limits.maxInjectedChars` | `number` | -- | Batasi total karakter yang disuntikkan |
| `limits.timeoutMs` | `number` | `4000` | Batas waktu pencarian |
### Cakupan
Mengontrol sesi mana yang dapat menerima hasil pencarian QMD. Skemanya sama dengan
Mengontrol sesi mana yang dapat menerima hasil pencarian QMD. Skema yang sama seperti
[`session.sendPolicy`](/id/gateway/configuration-reference#session):
```json5
@ -446,20 +448,20 @@ Mengontrol sesi mana yang dapat menerima hasil pencarian QMD. Skemanya sama deng
Default bawaan mengizinkan sesi direct dan channel, sambil tetap menolak
grup.
Default-nya hanya DM. `match.keyPrefix` mencocokkan key sesi yang dinormalisasi;
`match.rawKeyPrefix` mencocokkan key mentah termasuk `agent:<id>:`.
Default adalah khusus DM. `match.keyPrefix` cocok dengan kunci sesi yang dinormalisasi;
`match.rawKeyPrefix` cocok dengan kunci mentah termasuk `agent:<id>:`.
### Sitasi
`memory.citations` berlaku untuk semua backend:
| Value | Perilaku |
| ---------------- | ---------------------------------------------------- |
| `auto` (default) | Sertakan footer `Source: <path#line>` di snippet |
| Value | Behavior |
| ---------------- | --------------------------------------------------- |
| `auto` (default) | Sertakan footer `Source: <path#line>` dalam cuplikan |
| `on` | Selalu sertakan footer |
| `off` | Hilangkan footer (path tetap diteruskan ke agent secara internal) |
| `off` | Hilangkan footer (path tetap diteruskan ke agen secara internal) |
### Contoh QMD lengkap
### Contoh lengkap QMD
```json5
{
@ -482,7 +484,7 @@ Default-nya hanya DM. `match.keyPrefix` mencocokkan key sesi yang dinormalisasi;
---
## Dreaming (eksperimental)
## Dreaming
Dreaming dikonfigurasi di bawah `plugins.entries.memory-core.config.dreaming`,
bukan di bawah `agents.defaults.memorySearch`.
@ -494,10 +496,10 @@ Untuk perilaku konseptual dan slash command, lihat [Dreaming](/id/concepts/dream
### Pengaturan pengguna
| Key | Tipe | Default | Deskripsi |
| ----------- | --------- | ----------- | ------------------------------------------------ |
| `enabled` | `boolean` | `false` | Aktifkan atau nonaktifkan Dreaming sepenuhnya |
| `frequency` | `string` | `0 3 * * *` | Cadence Cron opsional untuk sapuan Dreaming penuh |
| Key | Type | Default | Description |
| ----------- | --------- | ----------- | ------------------------------------------------- |
| `enabled` | `boolean` | `false` | Aktifkan atau nonaktifkan Dreaming sepenuhnya |
| `frequency` | `string` | `0 3 * * *` | Irama Cron opsional untuk keseluruhan sapuan Dreaming |
### Contoh
@ -522,4 +524,4 @@ Catatan:
- Dreaming menulis status mesin ke `memory/.dreams/`.
- Dreaming menulis output naratif yang dapat dibaca manusia ke `DREAMS.md` (atau `dreams.md` yang sudah ada).
- Kebijakan fase light/deep/REM dan ambangnya adalah perilaku internal, bukan config yang menghadap pengguna.
- Kebijakan dan ambang fase light/deep/REM adalah perilaku internal, bukan config yang ditujukan untuk pengguna.

View File

@ -7,10 +7,10 @@ sidebarTitle: Onboarding Reference
summary: 'Referensi lengkap untuk onboarding CLI: setiap langkah, flag, dan field konfigurasi'
title: Referensi Onboarding
x-i18n:
generated_at: "2026-04-07T09:20:03Z"
generated_at: "2026-04-15T14:41:01Z"
model: gpt-5.4
provider: openai
source_hash: a142b9ec4323fabb9982d05b64375d2b4a4007dffc910acbee3a38ff871a7236
source_hash: 1db3ff789422617634e6624f9d12c18b6a6c573721226b9c0fa6f6b7956ef33d
source_path: reference/wizard.md
workflow: 15
---
@ -25,31 +25,31 @@ Untuk ikhtisar tingkat tinggi, lihat [Onboarding (CLI)](/id/start/wizard).
<Steps>
<Step title="Deteksi konfigurasi yang ada">
- Jika `~/.openclaw/openclaw.json` ada, pilih **Keep / Modify / Reset**.
- Menjalankan ulang onboarding **tidak** menghapus apa pun kecuali Anda secara eksplisit memilih **Reset**
- Menjalankan onboarding kembali **tidak** menghapus apa pun kecuali Anda secara eksplisit memilih **Reset**
(atau memberikan `--reset`).
- CLI `--reset` secara default menggunakan `config+creds+sessions`; gunakan `--reset-scope full`
- CLI `--reset` default ke `config+creds+sessions`; gunakan `--reset-scope full`
untuk juga menghapus workspace.
- Jika konfigurasi tidak valid atau berisi key lama, wizard berhenti dan meminta
- Jika konfigurasi tidak valid atau berisi kunci lama, wizard berhenti dan meminta
Anda menjalankan `openclaw doctor` sebelum melanjutkan.
- Reset menggunakan `trash` (bukan `rm`) dan menawarkan cakupan:
- Hanya konfigurasi
- Konfigurasi + kredensial + sesi
- Reset penuh (juga menghapus workspace)
</Step>
<Step title="Model/Autentikasi">
<Step title="Model/Auth">
- **Kunci API Anthropic**: menggunakan `ANTHROPIC_API_KEY` jika ada atau meminta kunci, lalu menyimpannya untuk penggunaan daemon.
- **Kunci API Anthropic**: pilihan asisten Anthropic yang diutamakan dalam onboarding/configure.
- **Anthropic setup-token**: masih tersedia di onboarding/configure, meskipun OpenClaw sekarang lebih memilih penggunaan ulang Claude CLI bila tersedia.
- **Langganan OpenAI Code (Codex) (Codex CLI)**: jika `~/.codex/auth.json` ada, onboarding dapat menggunakannya kembali. Kredensial Codex CLI yang digunakan ulang tetap dikelola oleh Codex CLI; saat kedaluwarsa OpenClaw membaca ulang sumber itu terlebih dahulu dan, ketika provider dapat menyegarkannya, menulis kembali kredensial yang disegarkan ke penyimpanan Codex alih-alih mengambil alih pengelolaannya sendiri.
- **Anthropic setup-token**: masih tersedia dalam onboarding/configure, meskipun OpenClaw kini lebih memilih penggunaan ulang Claude CLI jika tersedia.
- **Langganan OpenAI Code (Codex) (Codex CLI)**: jika `~/.codex/auth.json` ada, onboarding dapat menggunakannya kembali. Kredensial Codex CLI yang digunakan kembali tetap dikelola oleh Codex CLI; saat kedaluwarsa OpenClaw terlebih dahulu membaca ulang sumber tersebut dan, ketika penyedianya dapat menyegarkannya, menulis kembali kredensial yang disegarkan ke penyimpanan Codex alih-alih mengambil alih pengelolaannya sendiri.
- **Langganan OpenAI Code (Codex) (OAuth)**: alur browser; tempel `code#state`.
- Menetapkan `agents.defaults.model` ke `openai-codex/gpt-5.4` saat model belum ditetapkan atau `openai/*`.
- **Kunci API OpenAI**: menggunakan `OPENAI_API_KEY` jika ada atau meminta kunci, lalu menyimpannya di auth profile.
- Menetapkan `agents.defaults.model` ke `openai/gpt-5.4` saat model belum ditetapkan, `openai/*`, atau `openai-codex/*`.
- **Kunci API xAI (Grok)**: meminta `XAI_API_KEY` dan mengonfigurasi xAI sebagai provider model.
- Menetapkan `agents.defaults.model` ke `openai-codex/gpt-5.4` saat model belum disetel atau `openai/*`.
- **Kunci API OpenAI**: menggunakan `OPENAI_API_KEY` jika ada atau meminta kunci, lalu menyimpannya dalam profil auth.
- Menetapkan `agents.defaults.model` ke `openai/gpt-5.4` saat model belum disetel, `openai/*`, atau `openai-codex/*`.
- **Kunci API xAI (Grok)**: meminta `XAI_API_KEY` dan mengonfigurasi xAI sebagai penyedia model.
- **OpenCode**: meminta `OPENCODE_API_KEY` (atau `OPENCODE_ZEN_API_KEY`, dapatkan di https://opencode.ai/auth) dan memungkinkan Anda memilih katalog Zen atau Go.
- **Ollama**: meminta base URL Ollama, menawarkan mode **Cloud + Local** atau **Local**, mendeteksi model yang tersedia, dan otomatis menarik model lokal yang dipilih bila diperlukan.
- **Ollama**: terlebih dahulu menawarkan **Cloud + Local**, **Cloud only**, atau **Local only**. `Cloud only` meminta `OLLAMA_API_KEY` dan menggunakan `https://ollama.com`; mode berbasis host meminta URL dasar Ollama, menemukan model yang tersedia, dan otomatis menarik model lokal yang dipilih bila diperlukan; `Cloud + Local` juga memeriksa apakah host Ollama tersebut sudah masuk untuk akses cloud.
- Detail lebih lanjut: [Ollama](/id/providers/ollama)
- **API key**: menyimpan kunci untuk Anda.
- **Kunci API**: menyimpan kunci untuk Anda.
- **Vercel AI Gateway (proxy multi-model)**: meminta `AI_GATEWAY_API_KEY`.
- Detail lebih lanjut: [Vercel AI Gateway](/id/providers/vercel-ai-gateway)
- **Cloudflare AI Gateway**: meminta Account ID, Gateway ID, dan `CLOUDFLARE_AI_GATEWAY_API_KEY`.
@ -58,26 +58,26 @@ Untuk ikhtisar tingkat tinggi, lihat [Onboarding (CLI)](/id/start/wizard).
Penyiapan kunci API menggunakan `minimax/...`, dan penyiapan OAuth menggunakan
`minimax-portal/...`.
- Detail lebih lanjut: [MiniMax](/id/providers/minimax)
- **StepFun**: konfigurasi ditulis otomatis untuk StepFun standard atau Step Plan pada endpoint China atau global.
- Standard saat ini mencakup `step-3.5-flash`, dan Step Plan juga mencakup `step-3.5-flash-2603`.
- **StepFun**: konfigurasi ditulis otomatis untuk StepFun standar atau Step Plan pada endpoint China atau global.
- Standar saat ini mencakup `step-3.5-flash`, dan Step Plan juga mencakup `step-3.5-flash-2603`.
- Detail lebih lanjut: [StepFun](/id/providers/stepfun)
- **Synthetic (kompatibel dengan Anthropic)**: meminta `SYNTHETIC_API_KEY`.
- **Synthetic (kompatibel Anthropic)**: meminta `SYNTHETIC_API_KEY`.
- Detail lebih lanjut: [Synthetic](/id/providers/synthetic)
- **Moonshot (Kimi K2)**: konfigurasi ditulis otomatis.
- **Kimi Coding**: konfigurasi ditulis otomatis.
- Detail lebih lanjut: [Moonshot AI (Kimi + Kimi Coding)](/id/providers/moonshot)
- **Skip**: belum ada autentikasi yang dikonfigurasi.
- Pilih model default dari opsi yang terdeteksi (atau masukkan provider/model secara manual). Untuk kualitas terbaik dan risiko prompt injection yang lebih rendah, pilih model generasi terbaru terkuat yang tersedia dalam stack provider Anda.
- Onboarding menjalankan pemeriksaan model dan memperingatkan jika model yang dikonfigurasi tidak dikenal atau autentikasinya tidak ada.
- Mode penyimpanan kunci API secara default menggunakan nilai auth-profile plaintext. Gunakan `--secret-input-mode ref` untuk menyimpan ref berbasis env sebagai gantinya (misalnya `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
- Auth profile berada di `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (kunci API + OAuth). `~/.openclaw/credentials/oauth.json` adalah sumber impor lama saja.
- **Lewati**: auth belum dikonfigurasi.
- Pilih model default dari opsi yang terdeteksi (atau masukkan penyedia/model secara manual). Untuk kualitas terbaik dan risiko prompt injection yang lebih rendah, pilih model generasi terbaru terkuat yang tersedia di stack penyedia Anda.
- Onboarding menjalankan pemeriksaan model dan memperingatkan jika model yang dikonfigurasi tidak dikenal atau auth tidak ada.
- Mode penyimpanan kunci API default ke nilai profil auth plaintext. Gunakan `--secret-input-mode ref` untuk menyimpan ref berbasis env sebagai gantinya (misalnya `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
- Profil auth berada di `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (kunci API + OAuth). `~/.openclaw/credentials/oauth.json` adalah warisan dan hanya untuk impor.
- Detail lebih lanjut: [/concepts/oauth](/id/concepts/oauth)
<Note>
Tip headless/server: selesaikan OAuth di mesin yang memiliki browser, lalu salin
Tip headless/server: selesaikan OAuth pada mesin dengan browser, lalu salin
`auth-profiles.json` agen tersebut (misalnya
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, atau path
`$OPENCLAW_STATE_DIR/...` yang sesuai) ke host gateway. `credentials/oauth.json`
hanya merupakan sumber impor lama.
hanya merupakan sumber impor warisan.
</Note>
</Step>
<Step title="Workspace">
@ -86,55 +86,55 @@ Untuk ikhtisar tingkat tinggi, lihat [Onboarding (CLI)](/id/start/wizard).
- Tata letak workspace lengkap + panduan cadangan: [Workspace agen](/id/concepts/agent-workspace)
</Step>
<Step title="Gateway">
- Port, bind, mode autentikasi, eksposur Tailscale.
- Rekomendasi autentikasi: tetap gunakan **Token** bahkan untuk loopback agar klien WS lokal harus terautentikasi.
- Port, bind, mode auth, eksposur Tailscale.
- Rekomendasi auth: tetap gunakan **Token** bahkan untuk loopback agar klien WS lokal tetap harus diautentikasi.
- Dalam mode token, penyiapan interaktif menawarkan:
- **Generate/store plaintext token** (default)
- **Use SecretRef** (opsional)
- Quickstart menggunakan ulang SecretRef `gateway.auth.token` yang ada di provider `env`, `file`, dan `exec` untuk probe onboarding/bootstrap dashboard.
- Jika SecretRef tersebut dikonfigurasi tetapi tidak dapat di-resolve, onboarding gagal lebih awal dengan pesan perbaikan yang jelas alih-alih secara diam-diam menurunkan autentikasi runtime.
- Dalam mode password, penyiapan interaktif juga mendukung penyimpanan plaintext atau SecretRef.
- **Hasilkan/simpan token plaintext** (default)
- **Gunakan SecretRef** (opsional)
- Quickstart menggunakan ulang SecretRef `gateway.auth.token` yang ada di seluruh penyedia `env`, `file`, dan `exec` untuk bootstrap probe/dashboard onboarding.
- Jika SecretRef tersebut dikonfigurasi tetapi tidak dapat di-resolve, onboarding gagal lebih awal dengan pesan perbaikan yang jelas alih-alih menurunkan auth runtime secara diam-diam.
- Dalam mode kata sandi, penyiapan interaktif juga mendukung penyimpanan plaintext atau SecretRef.
- Path SecretRef token non-interaktif: `--gateway-token-ref-env <ENV_VAR>`.
- Memerlukan env var yang tidak kosong di lingkungan proses onboarding.
- Memerlukan env var yang tidak kosong dalam environment proses onboarding.
- Tidak dapat digabungkan dengan `--gateway-token`.
- Nonaktifkan autentikasi hanya jika Anda sepenuhnya memercayai setiap proses lokal.
- Bind non-loopback tetap memerlukan autentikasi.
- Nonaktifkan auth hanya jika Anda sepenuhnya memercayai setiap proses lokal.
- Bind non-loopback tetap memerlukan auth.
</Step>
<Step title="Channels">
<Step title="Channel">
- [WhatsApp](/id/channels/whatsapp): login QR opsional.
- [Telegram](/id/channels/telegram): bot token.
- [Discord](/id/channels/discord): bot token.
- [Google Chat](/id/channels/googlechat): JSON service account + webhook audience.
- [Mattermost](/id/channels/mattermost) (plugin): bot token + base URL.
- [Telegram](/id/channels/telegram): token bot.
- [Discord](/id/channels/discord): token bot.
- [Google Chat](/id/channels/googlechat): JSON akun layanan + audience webhook.
- [Mattermost](/id/channels/mattermost) (Plugin): token bot + URL dasar.
- [Signal](/id/channels/signal): instalasi `signal-cli` opsional + konfigurasi akun.
- [BlueBubbles](/id/channels/bluebubbles): **direkomendasikan untuk iMessage**; URL server + password + webhook.
- [BlueBubbles](/id/channels/bluebubbles): **direkomendasikan untuk iMessage**; URL server + kata sandi + Webhook.
- [iMessage](/id/channels/imessage): path CLI `imsg` lama + akses DB.
- Keamanan DM: default-nya adalah pairing. DM pertama mengirim kode; setujui melalui `openclaw pairing approve <channel> <code>` atau gunakan allowlist.
</Step>
<Step title="Pencarian web">
- Pilih provider yang didukung seperti Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG, atau Tavily (atau lewati).
- Provider berbasis API dapat menggunakan env var atau konfigurasi yang ada untuk penyiapan cepat; provider tanpa kunci menggunakan prasyarat khusus provider masing-masing.
- Pilih penyedia yang didukung seperti Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG, atau Tavily (atau lewati).
- Penyedia berbasis API dapat menggunakan env vars atau konfigurasi yang ada untuk penyiapan cepat; penyedia tanpa kunci menggunakan prasyarat khusus penyedianya.
- Lewati dengan `--skip-search`.
- Konfigurasikan nanti: `openclaw configure --section web`.
</Step>
<Step title="Instalasi daemon">
- macOS: LaunchAgent
- Memerlukan sesi pengguna yang login; untuk headless, gunakan LaunchDaemon kustom (tidak disertakan).
- Linux (dan Windows melalui WSL2): unit systemd pengguna
- Onboarding mencoba mengaktifkan lingering melalui `loginctl enable-linger <user>` agar Gateway tetap aktif setelah logout.
- Mungkin meminta sudo (menulis ke `/var/lib/systemd/linger`); pertama-tama mencoba tanpa sudo.
- Memerlukan sesi pengguna yang sedang login; untuk headless, gunakan LaunchDaemon kustom (tidak disertakan).
- Linux (dan Windows melalui WSL2): unit pengguna systemd
- Onboarding mencoba mengaktifkan lingering melalui `loginctl enable-linger <user>` agar Gateway tetap berjalan setelah logout.
- Mungkin meminta sudo (menulis ke `/var/lib/systemd/linger`); pertama-tama dicoba tanpa sudo.
- **Pemilihan runtime:** Node (direkomendasikan; diperlukan untuk WhatsApp/Telegram). Bun **tidak direkomendasikan**.
- Jika autentikasi token memerlukan token dan `gateway.auth.token` dikelola SecretRef, instalasi daemon memvalidasinya tetapi tidak menyimpan nilai token plaintext yang sudah di-resolve ke metadata lingkungan layanan supervisor.
- Jika autentikasi token memerlukan token dan token SecretRef yang dikonfigurasi belum di-resolve, instalasi daemon diblokir dengan panduan yang dapat ditindaklanjuti.
- Jika `gateway.auth.token` dan `gateway.auth.password` sama-sama dikonfigurasi dan `gateway.auth.mode` belum ditetapkan, instalasi daemon diblokir sampai mode ditetapkan secara eksplisit.
- Jika auth token memerlukan token dan `gateway.auth.token` dikelola oleh SecretRef, instalasi daemon memvalidasinya tetapi tidak menyimpan nilai token plaintext yang sudah di-resolve ke metadata environment layanan supervisor.
- Jika auth token memerlukan token dan token SecretRef yang dikonfigurasi belum di-resolve, instalasi daemon diblokir dengan panduan yang dapat ditindaklanjuti.
- Jika `gateway.auth.token` dan `gateway.auth.password` sama-sama dikonfigurasi dan `gateway.auth.mode` belum disetel, instalasi daemon diblokir sampai mode ditetapkan secara eksplisit.
</Step>
<Step title="Pemeriksaan kesehatan">
- Memulai Gateway (jika perlu) dan menjalankan `openclaw health`.
- Tip: `openclaw status --deep` menambahkan probe kesehatan gateway live ke output status, termasuk probe channel bila didukung (memerlukan gateway yang dapat dijangkau).
- Tip: `openclaw status --deep` menambahkan probe kesehatan gateway langsung ke output status, termasuk probe channel bila didukung (memerlukan gateway yang dapat dijangkau).
</Step>
<Step title="Skills (direkomendasikan)">
<Step title="Skills (disarankan)">
- Membaca Skills yang tersedia dan memeriksa persyaratan.
- Memungkinkan Anda memilih node manager: **npm / pnpm** (bun tidak direkomendasikan).
- Memungkinkan Anda memilih pengelola node: **npm / pnpm** (bun tidak direkomendasikan).
- Menginstal dependensi opsional (beberapa menggunakan Homebrew di macOS).
</Step>
<Step title="Selesai">
@ -144,7 +144,7 @@ Untuk ikhtisar tingkat tinggi, lihat [Onboarding (CLI)](/id/start/wizard).
<Note>
Jika tidak ada GUI yang terdeteksi, onboarding mencetak instruksi port-forward SSH untuk Control UI alih-alih membuka browser.
Jika aset Control UI tidak ada, onboarding mencoba membangunnya; fallback-nya adalah `pnpm ui:build` (otomatis menginstal dependensi UI).
Jika aset Control UI tidak ada, onboarding mencoba membangunnya; fallback-nya adalah `pnpm ui:build` (secara otomatis menginstal dependensi UI).
</Note>
## Mode non-interaktif
@ -165,7 +165,7 @@ openclaw onboard --non-interactive \
Tambahkan `--json` untuk ringkasan yang dapat dibaca mesin.
Gateway token SecretRef dalam mode non-interaktif:
SecretRef token gateway dalam mode non-interaktif:
```bash
export OPENCLAW_GATEWAY_TOKEN="your-token"
@ -182,7 +182,7 @@ openclaw onboard --non-interactive \
`--json` **tidak** menyiratkan mode non-interaktif. Gunakan `--non-interactive` (dan `--workspace`) untuk skrip.
</Note>
Contoh perintah khusus provider ada di [CLI Automation](/id/start/wizard-cli-automation#provider-specific-examples).
Contoh perintah khusus penyedia ada di [Otomatisasi CLI](/id/start/wizard-cli-automation#provider-specific-examples).
Gunakan halaman referensi ini untuk semantik flag dan urutan langkah.
### Tambah agen (non-interaktif)
@ -196,7 +196,7 @@ openclaw agents add work \
--json
```
## RPC wizard Gateway
## Gateway wizard RPC
Gateway mengekspos alur onboarding melalui RPC (`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`).
Klien (aplikasi macOS, Control UI) dapat merender langkah-langkah tanpa mengimplementasikan ulang logika onboarding.
@ -212,23 +212,23 @@ Onboarding dapat menginstal `signal-cli` dari rilis GitHub:
Catatan:
- Build JVM memerlukan **Java 21**.
- Build native digunakan bila tersedia.
- Build native digunakan jika tersedia.
- Windows menggunakan WSL2; instalasi signal-cli mengikuti alur Linux di dalam WSL.
## Apa yang ditulis wizard
## Yang ditulis oleh wizard
Field umum di `~/.openclaw/openclaw.json`:
- `agents.defaults.workspace`
- `agents.defaults.model` / `models.providers` (jika Minimax dipilih)
- `tools.profile` (onboarding lokal secara default menggunakan `"coding"` saat belum ditetapkan; nilai eksplisit yang sudah ada dipertahankan)
- `gateway.*` (mode, bind, autentikasi, tailscale)
- `tools.profile` (onboarding lokal secara default menggunakan `"coding"` saat belum disetel; nilai eksplisit yang sudah ada akan dipertahankan)
- `gateway.*` (mode, bind, auth, Tailscale)
- `session.dmScope` (detail perilaku: [Referensi Penyiapan CLI](/id/start/wizard-cli-reference#outputs-and-internals))
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
- Allowlist channel (Slack/Discord/Matrix/Microsoft Teams) saat Anda memilih ikut serta selama prompt (nama di-resolve ke ID bila memungkinkan).
- Allowlist channel (Slack/Discord/Matrix/Microsoft Teams) saat Anda memilihnya selama prompt (nama di-resolve menjadi ID bila memungkinkan).
- `skills.install.nodeManager`
- `setup --node-manager` menerima `npm`, `pnpm`, atau `bun`.
- Konfigurasi manual masih dapat menggunakan `yarn` dengan menetapkan `skills.install.nodeManager` secara langsung.
- Konfigurasi manual tetap dapat menggunakan `yarn` dengan menetapkan `skills.install.nodeManager` secara langsung.
- `wizard.lastRunAt`
- `wizard.lastRunVersion`
- `wizard.lastRunCommit`
@ -240,13 +240,13 @@ Field umum di `~/.openclaw/openclaw.json`:
Kredensial WhatsApp disimpan di `~/.openclaw/credentials/whatsapp/<accountId>/`.
Sesi disimpan di `~/.openclaw/agents/<agentId>/sessions/`.
Beberapa channel dikirimkan sebagai plugin. Saat Anda memilih salah satunya selama penyiapan, onboarding
Beberapa channel disediakan sebagai Plugin. Saat Anda memilih salah satunya selama penyiapan, onboarding
akan meminta untuk menginstalnya (npm atau path lokal) sebelum dapat dikonfigurasi.
## Dokumentasi terkait
## Dokumen terkait
- Ikhtisar onboarding: [Onboarding (CLI)](/id/start/wizard)
- Onboarding aplikasi macOS: [Onboarding](/id/start/onboarding)
- Referensi konfigurasi: [Konfigurasi Gateway](/id/gateway/configuration)
- Provider: [WhatsApp](/id/channels/whatsapp), [Telegram](/id/channels/telegram), [Discord](/id/channels/discord), [Google Chat](/id/channels/googlechat), [Signal](/id/channels/signal), [BlueBubbles](/id/channels/bluebubbles) (iMessage), [iMessage](/id/channels/imessage) (lama)
- Penyedia: [WhatsApp](/id/channels/whatsapp), [Telegram](/id/channels/telegram), [Discord](/id/channels/discord), [Google Chat](/id/channels/googlechat), [Signal](/id/channels/signal), [BlueBubbles](/id/channels/bluebubbles) (iMessage), [iMessage](/id/channels/imessage) (lama)
- Skills: [Skills](/id/tools/skills), [Konfigurasi Skills](/id/tools/skills-config)

View File

@ -3,18 +3,18 @@ read_when:
- Anda memerlukan perilaku terperinci untuk `openclaw onboard`
- Anda sedang men-debug hasil onboarding atau mengintegrasikan klien onboarding
sidebarTitle: CLI reference
summary: Referensi lengkap untuk alur setup CLI, setup auth/model, output, dan detail internal
title: Referensi Setup CLI
summary: Referensi lengkap untuk alur penyiapan CLI, penyiapan autentikasi/model, output, dan detail internal
title: Referensi Penyiapan CLI
x-i18n:
generated_at: "2026-04-06T03:11:46Z"
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
---
# Referensi Setup CLI
# Referensi Penyiapan CLI
Halaman ini adalah referensi lengkap untuk `openclaw onboard`.
Untuk panduan singkat, lihat [Onboarding (CLI)](/id/start/wizard).
@ -23,60 +23,60 @@ Untuk panduan singkat, lihat [Onboarding (CLI)](/id/start/wizard).
Mode lokal (default) memandu Anda melalui:
- Setup model dan auth (OAuth subscription OpenAI Code, Anthropic Claude CLI atau API key, serta opsi MiniMax, GLM, Ollama, Moonshot, StepFun, dan AI Gateway)
- Penyiapan model dan autentikasi (OAuth langganan OpenAI Code, Anthropic Claude CLI atau API key, serta opsi MiniMax, GLM, Ollama, Moonshot, StepFun, dan AI Gateway)
- Lokasi workspace dan file bootstrap
- Pengaturan gateway (port, bind, auth, Tailscale)
- Channel dan provider (Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles, dan plugin channel bawaan lainnya)
- Instalasi daemon (LaunchAgent, systemd user unit, atau native Windows Scheduled Task dengan fallback Startup-folder)
- Pengaturan Gateway (port, bind, auth, tailscale)
- Channel dan provider (Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles, dan Plugin channel bawaan lainnya)
- Instalasi daemon (LaunchAgent, systemd user unit, atau Scheduled Task Windows native dengan fallback folder Startup)
- Pemeriksaan kesehatan
- Setup Skills
- Penyiapan Skills
Mode remote mengonfigurasi mesin ini untuk terhubung ke gateway di tempat lain.
Mode ini tidak menginstal atau memodifikasi apa pun di host remote.
Mode ini tidak menginstal atau mengubah apa pun di host remote.
## Detail alur lokal
<Steps>
<Step title="Deteksi config yang ada">
<Step title="Deteksi konfigurasi yang ada">
- Jika `~/.openclaw/openclaw.json` ada, pilih Keep, Modify, atau Reset.
- Menjalankan ulang wizard tidak menghapus apa pun kecuali Anda secara eksplisit memilih Reset (atau memberikan `--reset`).
- `--reset` pada CLI default ke `config+creds+sessions`; gunakan `--reset-scope full` untuk juga menghapus workspace.
- Jika config tidak valid atau berisi kunci legacy, wizard berhenti dan meminta Anda menjalankan `openclaw doctor` sebelum melanjutkan.
- Menjalankan ulang wizard tidak akan menghapus apa pun kecuali Anda secara eksplisit memilih Reset (atau memberikan `--reset`).
- CLI `--reset` default ke `config+creds+sessions`; gunakan `--reset-scope full` untuk juga menghapus workspace.
- Jika konfigurasi tidak valid atau berisi key lama, wizard berhenti dan meminta Anda menjalankan `openclaw doctor` sebelum melanjutkan.
- Reset menggunakan `trash` dan menawarkan cakupan:
- Hanya config
- Config + kredensial + sesi
- Hanya konfigurasi
- Konfigurasi + kredensial + sesi
- Reset penuh (juga menghapus workspace)
</Step>
<Step title="Model dan auth">
- Matriks opsi lengkap ada di [Opsi auth dan model](#opsi-auth-dan-model).
<Step title="Model dan autentikasi">
- Matriks opsi lengkap ada di [Opsi autentikasi dan model](#auth-and-model-options).
</Step>
<Step title="Workspace">
- Default `~/.openclaw/workspace` (dapat dikonfigurasi).
- Mengisi file workspace yang diperlukan untuk ritual bootstrap saat pertama kali dijalankan.
- Menyiapkan file workspace yang diperlukan untuk ritual bootstrap saat pertama kali dijalankan.
- Tata letak workspace: [Workspace agen](/id/concepts/agent-workspace).
</Step>
<Step title="Gateway">
- Meminta port, bind, mode auth, dan eksposur Tailscale.
- Disarankan: tetap aktifkan auth token bahkan untuk loopback agar klien WS lokal harus melakukan autentikasi.
- Dalam mode token, setup interaktif menawarkan:
- **Buat/simpan token plaintext** (default)
- **Gunakan SecretRef** (opt-in)
- Dalam mode password, setup interaktif juga mendukung penyimpanan plaintext atau SecretRef.
- Path SecretRef token non-interaktif: `--gateway-token-ref-env <ENV_VAR>`.
- Memerlukan env var yang tidak kosong dalam lingkungan proses onboarding.
- Meminta port, bind, mode auth, dan eksposur tailscale.
- Direkomendasikan: tetap aktifkan auth token bahkan untuk loopback agar klien WS lokal harus melakukan autentikasi.
- Dalam mode token, penyiapan interaktif menawarkan:
- **Generate/store plaintext token** (default)
- **Use SecretRef** (opsional)
- Dalam mode kata sandi, penyiapan interaktif juga mendukung penyimpanan plaintext atau SecretRef.
- Jalur SecretRef token non-interaktif: `--gateway-token-ref-env <ENV_VAR>`.
- Memerlukan env var yang tidak kosong di environment proses onboarding.
- Tidak dapat digabungkan dengan `--gateway-token`.
- Nonaktifkan auth hanya jika Anda sepenuhnya memercayai setiap proses lokal.
- Bind non-loopback tetap memerlukan auth.
</Step>
<Step title="Channel">
- [WhatsApp](/id/channels/whatsapp): login QR opsional
- [Telegram](/id/channels/telegram): bot token
- [Discord](/id/channels/discord): bot token
- [Google Chat](/id/channels/googlechat): JSON service account + webhook audience
- [Mattermost](/id/channels/mattermost): bot token + base URL
- [Signal](/id/channels/signal): instalasi `signal-cli` opsional + config akun
- [BlueBubbles](/id/channels/bluebubbles): direkomendasikan untuk iMessage; URL server + password + webhook
- [iMessage](/id/channels/imessage): path `imsg` CLI legacy + akses DB
- [Telegram](/id/channels/telegram): token bot
- [Discord](/id/channels/discord): token bot
- [Google Chat](/id/channels/googlechat): JSON akun layanan + audiens webhook
- [Mattermost](/id/channels/mattermost): token bot + URL dasar
- [Signal](/id/channels/signal): instalasi `signal-cli` opsional + konfigurasi akun
- [BlueBubbles](/id/channels/bluebubbles): direkomendasikan untuk iMessage; URL server + kata sandi + webhook
- [iMessage](/id/channels/imessage): jalur CLI `imsg` lama + akses DB
- Keamanan DM: default-nya adalah pairing. DM pertama mengirim kode; setujui melalui
`openclaw pairing approve <channel> <code>` atau gunakan allowlist.
</Step>
@ -84,30 +84,30 @@ Mode ini tidak menginstal atau memodifikasi apa pun di host remote.
- macOS: LaunchAgent
- Memerlukan sesi pengguna yang sedang login; untuk headless, gunakan LaunchDaemon kustom (tidak disertakan).
- Linux dan Windows melalui WSL2: systemd user unit
- Wizard mencoba `loginctl enable-linger <user>` agar gateway tetap aktif setelah logout.
- Dapat meminta sudo (menulis ke `/var/lib/systemd/linger`); pertama-tama mencoba tanpa sudo.
- Native Windows: Scheduled Task terlebih dahulu
- Jika pembuatan task ditolak, OpenClaw fallback ke item login Startup-folder per pengguna dan langsung menyalakan gateway.
- Wizard mencoba `loginctl enable-linger <user>` agar gateway tetap berjalan setelah logout.
- Mungkin meminta sudo (menulis `/var/lib/systemd/linger`); pertama-tama mencoba tanpa sudo.
- Windows native: Scheduled Task terlebih dahulu
- Jika pembuatan task ditolak, OpenClaw akan fallback ke item login folder Startup per pengguna dan segera memulai gateway.
- Scheduled Task tetap lebih disukai karena memberikan status supervisor yang lebih baik.
- Pemilihan runtime: Node (disarankan; wajib untuk WhatsApp dan Telegram). Bun tidak disarankan.
- Pemilihan runtime: Node (direkomendasikan; diperlukan untuk WhatsApp dan Telegram). Bun tidak direkomendasikan.
</Step>
<Step title="Pemeriksaan kesehatan">
- Menyalakan gateway (jika perlu) dan menjalankan `openclaw health`.
- `openclaw status --deep` menambahkan probe kesehatan gateway live ke output status, termasuk probe channel bila didukung.
- Memulai gateway (jika perlu) dan menjalankan `openclaw health`.
- `openclaw status --deep` menambahkan probe kesehatan gateway langsung ke output status, termasuk probe channel jika didukung.
</Step>
<Step title="Skills">
- Membaca Skills yang tersedia dan memeriksa persyaratan.
- Memungkinkan Anda memilih manajer node: npm, pnpm, atau bun.
- Menginstal dependency opsional (sebagian menggunakan Homebrew di macOS).
- Menginstal dependensi opsional (beberapa menggunakan Homebrew di macOS).
</Step>
<Step title="Selesai">
- Ringkasan dan langkah selanjutnya, termasuk opsi app iOS, Android, dan macOS.
- Ringkasan dan langkah berikutnya, termasuk opsi aplikasi iOS, Android, dan macOS.
</Step>
</Steps>
<Note>
Jika tidak ada GUI yang terdeteksi, wizard mencetak instruksi port-forward SSH untuk Control UI alih-alih membuka browser.
Jika aset Control UI tidak ada, wizard mencoba membangunnya; fallback-nya adalah `pnpm ui:build` (secara otomatis menginstal dependency UI).
Jika aset Control UI tidak ada, wizard mencoba membangunnya; fallback-nya adalah `pnpm ui:build` (secara otomatis menginstal dependensi UI).
</Note>
## Detail mode remote
@ -115,52 +115,52 @@ Jika aset Control UI tidak ada, wizard mencoba membangunnya; fallback-nya adalah
Mode remote mengonfigurasi mesin ini untuk terhubung ke gateway di tempat lain.
<Info>
Mode remote tidak menginstal atau memodifikasi apa pun di host remote.
Mode remote tidak menginstal atau mengubah apa pun di host remote.
</Info>
Yang Anda tetapkan:
Yang Anda atur:
- URL gateway remote (`ws://...`)
- Token jika auth gateway remote diperlukan (disarankan)
- Token jika auth gateway remote diperlukan (direkomendasikan)
<Note>
- Jika gateway hanya loopback, gunakan tunneling SSH atau tailnet.
- Petunjuk penemuan:
- Petunjuk discovery:
- macOS: Bonjour (`dns-sd`)
- Linux: Avahi (`avahi-browse`)
</Note>
## Opsi auth dan model
## Opsi autentikasi dan model
<AccordionGroup>
<Accordion title="API key Anthropic">
<Accordion title="Anthropic API key">
Menggunakan `ANTHROPIC_API_KEY` jika ada atau meminta key, lalu menyimpannya untuk penggunaan daemon.
</Accordion>
<Accordion title="Subscription OpenAI Code (penggunaan ulang Codex CLI)">
<Accordion title="Langganan OpenAI Code (penggunaan ulang Codex CLI)">
Jika `~/.codex/auth.json` ada, wizard dapat menggunakannya kembali.
Kredensial Codex CLI yang digunakan ulang tetap dikelola oleh Codex CLI; saat kedaluwarsa OpenClaw
membaca ulang sumber itu terlebih dahulu dan, ketika provider dapat me-refresh-nya, menulis
kredensial yang diperbarui kembali ke penyimpanan Codex alih-alih mengambil alih kepemilikannya
terlebih dahulu membaca ulang sumber tersebut dan, ketika provider dapat me-refresh-nya, menulis
kembali kredensial yang diperbarui ke penyimpanan Codex alih-alih mengambil alih pengelolaannya
sendiri.
</Accordion>
<Accordion title="Subscription OpenAI Code (OAuth)">
<Accordion title="Langganan OpenAI Code (OAuth)">
Alur browser; tempel `code#state`.
Menetapkan `agents.defaults.model` ke `openai-codex/gpt-5.4` saat model belum ditetapkan atau `openai/*`.
Mengatur `agents.defaults.model` ke `openai-codex/gpt-5.4` saat model belum disetel atau `openai/*`.
</Accordion>
<Accordion title="API key OpenAI">
Menggunakan `OPENAI_API_KEY` jika ada atau meminta key, lalu menyimpan kredensial di profil auth.
<Accordion title="OpenAI API key">
Menggunakan `OPENAI_API_KEY` jika ada atau meminta key, lalu menyimpan kredensial dalam profil auth.
Menetapkan `agents.defaults.model` ke `openai/gpt-5.4` saat model belum ditetapkan, `openai/*`, atau `openai-codex/*`.
Mengatur `agents.defaults.model` ke `openai/gpt-5.4` saat model belum disetel, `openai/*`, atau `openai-codex/*`.
</Accordion>
<Accordion title="API key xAI (Grok)">
<Accordion title="xAI (Grok) API key">
Meminta `XAI_API_KEY` dan mengonfigurasi xAI sebagai provider model.
</Accordion>
<Accordion title="OpenCode">
Meminta `OPENCODE_API_KEY` (atau `OPENCODE_ZEN_API_KEY`) dan memungkinkan Anda memilih katalog Zen atau Go.
URL setup: [opencode.ai/auth](https://opencode.ai/auth).
URL penyiapan: [opencode.ai/auth](https://opencode.ai/auth).
</Accordion>
<Accordion title="API key (generik)">
Menyimpan key untuk Anda.
@ -170,38 +170,40 @@ Yang Anda tetapkan:
Detail lebih lanjut: [Vercel AI Gateway](/id/providers/vercel-ai-gateway).
</Accordion>
<Accordion title="Cloudflare AI Gateway">
Meminta account ID, gateway ID, dan `CLOUDFLARE_AI_GATEWAY_API_KEY`.
Meminta ID akun, ID gateway, dan `CLOUDFLARE_AI_GATEWAY_API_KEY`.
Detail lebih lanjut: [Cloudflare AI Gateway](/id/providers/cloudflare-ai-gateway).
</Accordion>
<Accordion title="MiniMax">
Config ditulis secara otomatis. Default hosted adalah `MiniMax-M2.7`; setup API key menggunakan
`minimax/...`, dan setup OAuth menggunakan `minimax-portal/...`.
Konfigurasi ditulis otomatis. Default host adalah `MiniMax-M2.7`; penyiapan API key menggunakan
`minimax/...`, dan penyiapan OAuth menggunakan `minimax-portal/...`.
Detail lebih lanjut: [MiniMax](/id/providers/minimax).
</Accordion>
<Accordion title="StepFun">
Config ditulis secara otomatis untuk endpoint standar StepFun atau Step Plan pada endpoint China atau global.
Standar saat ini mencakup `step-3.5-flash`, dan Step Plan juga mencakup `step-3.5-flash-2603`.
Konfigurasi ditulis otomatis untuk StepFun standard atau Step Plan pada endpoint China atau global.
Standard saat ini mencakup `step-3.5-flash`, dan Step Plan juga mencakup `step-3.5-flash-2603`.
Detail lebih lanjut: [StepFun](/id/providers/stepfun).
</Accordion>
<Accordion title="Synthetic (kompatibel dengan Anthropic)">
<Accordion title="Synthetic (kompatibel Anthropic)">
Meminta `SYNTHETIC_API_KEY`.
Detail lebih lanjut: [Synthetic](/id/providers/synthetic).
</Accordion>
<Accordion title="Ollama (Cloud dan open model lokal)">
Meminta base URL (default `http://127.0.0.1:11434`), lalu menawarkan mode Cloud + Local atau Local.
Menemukan model yang tersedia dan menyarankan default.
<Accordion title="Ollama (Cloud dan model terbuka lokal)">
Pertama meminta `Cloud + Local`, `Cloud only`, atau `Local only`.
`Cloud only` menggunakan `OLLAMA_API_KEY` dengan `https://ollama.com`.
Mode berbasis host meminta URL dasar (default `http://127.0.0.1:11434`), menemukan model yang tersedia, dan menyarankan default.
`Cloud + Local` juga memeriksa apakah host Ollama tersebut sudah login untuk akses cloud.
Detail lebih lanjut: [Ollama](/id/providers/ollama).
</Accordion>
<Accordion title="Moonshot dan Kimi Coding">
Config Moonshot (Kimi K2) dan Kimi Coding ditulis secara otomatis.
Konfigurasi Moonshot (Kimi K2) dan Kimi Coding ditulis otomatis.
Detail lebih lanjut: [Moonshot AI (Kimi + Kimi Coding)](/id/providers/moonshot).
</Accordion>
<Accordion title="Provider kustom">
Berfungsi dengan endpoint yang kompatibel dengan OpenAI dan kompatibel dengan Anthropic.
Bekerja dengan endpoint yang kompatibel dengan OpenAI dan kompatibel dengan Anthropic.
Onboarding interaktif mendukung pilihan penyimpanan API key yang sama seperti alur API key provider lainnya:
- **Tempel API key sekarang** (plaintext)
- **Gunakan secret reference** (env ref atau provider ref yang dikonfigurasi, dengan validasi preflight)
- **Paste API key now** (plaintext)
- **Use secret reference** (referensi env atau referensi provider yang dikonfigurasi, dengan validasi preflight)
Flag non-interaktif:
- `--auth-choice custom-api-key`
@ -220,63 +222,63 @@ Yang Anda tetapkan:
Perilaku model:
- Pilih model default dari opsi yang terdeteksi, atau masukkan provider dan model secara manual.
- Saat onboarding dimulai dari pilihan auth provider, pemilih model mengutamakan
- Saat onboarding dimulai dari pilihan auth provider, pemilih model akan memprioritaskan
provider tersebut secara otomatis. Untuk Volcengine dan BytePlus, preferensi yang sama
juga cocok dengan varian coding-plan mereka (`volcengine-plan/*`,
`byteplus-plan/*`).
- Jika filter provider yang diprioritaskan itu kosong, pemilih akan fallback ke
katalog penuh alih-alih tidak menampilkan model sama sekali.
katalog lengkap alih-alih tidak menampilkan model apa pun.
- Wizard menjalankan pemeriksaan model dan memperingatkan jika model yang dikonfigurasi tidak dikenal atau auth tidak ada.
Path kredensial dan profil:
Jalur kredensial dan profil:
- Profil auth (API key + OAuth): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
- Impor OAuth legacy: `~/.openclaw/credentials/oauth.json`
- Impor OAuth lama: `~/.openclaw/credentials/oauth.json`
Mode penyimpanan kredensial:
- Perilaku onboarding default menyimpan API key sebagai nilai plaintext di profil auth.
- `--secret-input-mode ref` mengaktifkan mode reference alih-alih penyimpanan key plaintext.
Dalam setup interaktif, Anda dapat memilih:
- env variable ref (misalnya `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`)
- provider ref yang dikonfigurasi (`file` atau `exec`) dengan alias + id provider
- Mode reference interaktif menjalankan validasi preflight cepat sebelum menyimpan.
- Env refs: memvalidasi nama variabel + nilai tidak kosong dalam lingkungan onboarding saat ini.
- Provider refs: memvalidasi config provider dan menyelesaikan id yang diminta.
- Perilaku onboarding default menyimpan API key sebagai nilai plaintext dalam profil auth.
- `--secret-input-mode ref` mengaktifkan mode referensi alih-alih penyimpanan key plaintext.
Dalam penyiapan interaktif, Anda dapat memilih salah satu:
- referensi env var (misalnya `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`)
- referensi provider yang dikonfigurasi (`file` atau `exec`) dengan alias provider + id
- Mode referensi interaktif menjalankan validasi preflight cepat sebelum menyimpan.
- Referensi env: memvalidasi nama variabel + nilai tidak kosong di environment onboarding saat ini.
- Referensi provider: memvalidasi konfigurasi provider dan me-resolve id yang diminta.
- Jika preflight gagal, onboarding menampilkan error dan memungkinkan Anda mencoba lagi.
- Dalam mode non-interaktif, `--secret-input-mode ref` hanya didukung berbasis env.
- Tetapkan env var provider dalam lingkungan proses onboarding.
- Flag key inline (misalnya `--openai-api-key`) mengharuskan env var tersebut ditetapkan; jika tidak onboarding akan gagal cepat.
- Dalam mode non-interaktif, `--secret-input-mode ref` hanya didukung dengan env.
- Setel env var provider di environment proses onboarding.
- Flag key inline (misalnya `--openai-api-key`) mensyaratkan env var tersebut disetel; jika tidak, onboarding gagal cepat.
- Untuk provider kustom, mode `ref` non-interaktif menyimpan `models.providers.<id>.apiKey` sebagai `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`.
- Dalam kasus provider kustom tersebut, `--custom-api-key` mengharuskan `CUSTOM_API_KEY` ditetapkan; jika tidak onboarding akan gagal cepat.
- Kredensial auth gateway mendukung pilihan plaintext dan SecretRef dalam setup interaktif:
- Mode token: **Buat/simpan token plaintext** (default) atau **Gunakan SecretRef**.
- Mode password: plaintext atau SecretRef.
- Path SecretRef token non-interaktif: `--gateway-token-ref-env <ENV_VAR>`.
- Setup plaintext yang ada tetap berfungsi tanpa perubahan.
- Dalam kasus provider kustom tersebut, `--custom-api-key` mensyaratkan `CUSTOM_API_KEY` disetel; jika tidak, onboarding gagal cepat.
- Kredensial auth gateway mendukung pilihan plaintext dan SecretRef dalam penyiapan interaktif:
- Mode token: **Generate/store plaintext token** (default) atau **Use SecretRef**.
- Mode kata sandi: plaintext atau SecretRef.
- Jalur SecretRef token non-interaktif: `--gateway-token-ref-env <ENV_VAR>`.
- Penyiapan plaintext yang sudah ada tetap berfungsi tanpa perubahan.
<Note>
Tip headless dan server: selesaikan OAuth di mesin yang memiliki browser, lalu salin
`auth-profiles.json` milik agen tersebut (misalnya
Tip untuk headless dan server: selesaikan OAuth di mesin dengan browser, lalu salin
`auth-profiles.json` agen tersebut (misalnya
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, atau path
`$OPENCLAW_STATE_DIR/...` yang sesuai) ke host gateway. `credentials/oauth.json`
hanya merupakan sumber impor legacy.
hanya merupakan sumber impor lama.
</Note>
## Output dan detail internal
Field yang umum di `~/.openclaw/openclaw.json`:
Field umum dalam `~/.openclaw/openclaw.json`:
- `agents.defaults.workspace`
- `agents.defaults.model` / `models.providers` (jika Minimax dipilih)
- `tools.profile` (onboarding lokal default ke `"coding"` saat belum ditetapkan; nilai eksplisit yang sudah ada dipertahankan)
- `gateway.*` (mode, bind, auth, Tailscale)
- `session.dmScope` (onboarding lokal default-nya `per-channel-peer` saat belum ditetapkan; nilai eksplisit yang sudah ada dipertahankan)
- `tools.profile` (onboarding lokal default ke `"coding"` saat belum disetel; nilai eksplisit yang sudah ada tetap dipertahankan)
- `gateway.*` (mode, bind, auth, tailscale)
- `session.dmScope` (onboarding lokal secara default menetapkan ini ke `per-channel-peer` saat belum disetel; nilai eksplisit yang sudah ada tetap dipertahankan)
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
- Allowlist channel (Slack, Discord, Matrix, Microsoft Teams) saat Anda melakukan opt-in selama prompt (nama diselesaikan ke ID bila memungkinkan)
- Allowlist channel (Slack, Discord, Matrix, Microsoft Teams) saat Anda ikut serta selama prompt (nama di-resolve menjadi ID jika memungkinkan)
- `skills.install.nodeManager`
- Flag `setup --node-manager` menerima `npm`, `pnpm`, atau `bun`.
- Config manual tetap dapat menetapkan `skills.install.nodeManager: "yarn"` nanti.
- Konfigurasi manual masih dapat menetapkan `skills.install.nodeManager: "yarn"` nanti.
- `wizard.lastRunAt`
- `wizard.lastRunVersion`
- `wizard.lastRunCommit`
@ -285,34 +287,34 @@ Field yang umum di `~/.openclaw/openclaw.json`:
`openclaw agents add` menulis `agents.list[]` dan `bindings` opsional.
Kredensial WhatsApp berada di `~/.openclaw/credentials/whatsapp/<accountId>/`.
Sesi disimpan di `~/.openclaw/agents/<agentId>/sessions/`.
Kredensial WhatsApp berada di bawah `~/.openclaw/credentials/whatsapp/<accountId>/`.
Sesi disimpan di bawah `~/.openclaw/agents/<agentId>/sessions/`.
<Note>
Sebagian channel dikirim sebagai plugin. Saat dipilih selama setup, wizard
meminta untuk menginstal plugin tersebut (npm atau path lokal) sebelum konfigurasi channel.
Beberapa channel dikirim sebagai Plugin. Saat dipilih selama penyiapan, wizard
meminta untuk menginstal Plugin (npm atau path lokal) sebelum konfigurasi channel.
</Note>
RPC wizard gateway:
RPC wizard Gateway:
- `wizard.start`
- `wizard.next`
- `wizard.cancel`
- `wizard.status`
Klien (app macOS dan Control UI) dapat merender langkah-langkah tanpa mengimplementasikan ulang logika onboarding.
Klien (aplikasi macOS dan Control UI) dapat merender langkah-langkah tanpa mengimplementasikan ulang logika onboarding.
Perilaku setup Signal:
Perilaku penyiapan Signal:
- Mengunduh release asset yang sesuai
- Menyimpannya di `~/.openclaw/tools/signal-cli/<version>/`
- Menulis `channels.signal.cliPath` di config
- Mengunduh aset rilis yang sesuai
- Menyimpannya di bawah `~/.openclaw/tools/signal-cli/<version>/`
- Menulis `channels.signal.cliPath` dalam konfigurasi
- Build JVM memerlukan Java 21
- Build native digunakan bila tersedia
- Windows menggunakan WSL2 dan mengikuti alur `signal-cli` Linux di dalam WSL
- Build native digunakan jika tersedia
- Windows menggunakan WSL2 dan mengikuti alur Linux signal-cli di dalam WSL
## Dokumentasi terkait
## Dokumen terkait
- Pusat onboarding: [Onboarding (CLI)](/id/start/wizard)
- Otomasi dan skrip: [Otomasi CLI](/id/start/wizard-cli-automation)
- Hub onboarding: [Onboarding (CLI)](/id/start/wizard)
- Otomatisasi dan skrip: [Otomatisasi CLI](/id/start/wizard-cli-automation)
- Referensi perintah: [`openclaw onboard`](/cli/onboard)