FAQ
Pertanyaan Umum
Jawaban cepat plus pemecahan masalah yang lebih mendalam untuk penyiapan dunia nyata (pengembangan lokal, VPS, multi-agent, OAuth/API key, failover model). Untuk diagnostik runtime, lihat Pemecahan Masalah. Untuk referensi konfigurasi lengkap, lihat Konfigurasi.
60 detik pertama jika ada yang rusak
-
Status cepat (pemeriksaan pertama)
openclaw statusRingkasan lokal cepat: OS + pembaruan, keterjangkauan gateway/layanan, agent/sesi, konfigurasi provider + masalah runtime (saat gateway dapat dijangkau).
-
Laporan yang dapat ditempel (aman dibagikan)
openclaw status --allDiagnosis hanya-baca dengan ekor log (token disunting).
-
Status daemon + port
openclaw gateway statusMenampilkan runtime supervisor vs keterjangkauan RPC, URL target probe, dan konfigurasi mana yang kemungkinan digunakan layanan.
-
Probe mendalam
openclaw status --deepMenjalankan probe kesehatan gateway langsung, termasuk probe kanal saat didukung (memerlukan gateway yang dapat dijangkau). Lihat Kesehatan.
-
Ikuti log terbaru
openclaw logs --followJika RPC mati, gunakan cadangan:
tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"Log file terpisah dari log layanan; lihat Logging dan Pemecahan Masalah.
-
Jalankan doctor (perbaikan)
openclaw doctorMemperbaiki/memigrasikan konfigurasi/status + menjalankan pemeriksaan kesehatan. Lihat Doctor.
-
Snapshot Gateway
openclaw health --json openclaw health --verbose # menampilkan URL target + path konfigurasi saat terjadi errorMeminta snapshot lengkap dari gateway yang berjalan (hanya WS). Lihat Kesehatan.
Mulai cepat dan penyiapan pertama kali
Tanya jawab pertama kali — instalasi, onboarding, rute auth, langganan, kegagalan awal — tersedia di FAQ pertama kali.
Apa itu OpenClaw?
Apa itu OpenClaw, dalam satu paragraf?
OpenClaw adalah asisten AI pribadi yang Anda jalankan di perangkat Anda sendiri. Ia membalas di permukaan perpesanan yang sudah Anda gunakan (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat, dan plugin kanal bawaan seperti QQ Bot) dan juga dapat melakukan suara + Canvas langsung di platform yang didukung. Gateway adalah control plane yang selalu aktif; asistennya adalah produknya.
Proposisi nilai
OpenClaw bukan "sekadar pembungkus Claude." Ini adalah control plane local-first yang memungkinkan Anda menjalankan asisten yang kapabel di hardware Anda sendiri, dapat dijangkau dari aplikasi chat yang sudah Anda gunakan, dengan sesi berstatus, memori, dan alat - tanpa menyerahkan kendali workflow Anda ke SaaS hosted.
Sorotan:
- Perangkat Anda, data Anda: jalankan Gateway di mana pun Anda mau (Mac, Linux, VPS) dan simpan workspace + riwayat sesi secara lokal.
- Kanal nyata, bukan sandbox web: WhatsApp/Telegram/Slack/Discord/Signal/iMessage/dll, plus suara seluler dan Canvas di platform yang didukung.
- Agnostik model: gunakan Anthropic, OpenAI, MiniMax, OpenRouter, dll., dengan routing per-agent dan failover.
- Opsi hanya lokal: jalankan model lokal sehingga semua data dapat tetap berada di perangkat Anda jika Anda mau.
- Routing multi-agent: pisahkan agent per kanal, akun, atau tugas, masing-masing dengan workspace dan default sendiri.
- Open source dan mudah diutak-atik: inspeksi, perluas, dan self-host tanpa vendor lock-in.
Dokumentasi: Gateway, Kanal, Multi-agent, Memori.
Saya baru saja menyiapkannya - apa yang harus saya lakukan pertama?
Proyek awal yang baik:
- Bangun situs web (WordPress, Shopify, atau situs statis sederhana).
- Buat prototipe aplikasi seluler (outline, layar, rencana API).
- Atur file dan folder (pembersihan, penamaan, penandaan).
- Hubungkan Gmail dan otomatisasi ringkasan atau tindak lanjut.
Ia dapat menangani tugas besar, tetapi bekerja paling baik saat Anda membaginya menjadi beberapa fase dan menggunakan sub-agent untuk pekerjaan paralel.
Apa lima kasus penggunaan harian teratas untuk OpenClaw?
Manfaat harian biasanya terlihat seperti:
- Briefing pribadi: ringkasan inbox, kalender, dan berita yang Anda pedulikan.
- Riset dan drafting: riset cepat, ringkasan, dan draf awal untuk email atau dokumen.
- Pengingat dan tindak lanjut: dorongan dan checklist yang digerakkan Cron atau Heartbeat.
- Otomatisasi browser: mengisi formulir, mengumpulkan data, dan mengulangi tugas web.
- Koordinasi lintas perangkat: kirim tugas dari ponsel Anda, biarkan Gateway menjalankannya di server, dan dapatkan hasilnya kembali di chat.
Bisakah OpenClaw membantu dengan lead gen, outreach, iklan, dan blog untuk SaaS?
Ya untuk riset, kualifikasi, dan drafting. Ia dapat memindai situs, membuat shortlist, merangkum prospek, dan menulis draf outreach atau copy iklan.
Untuk outreach atau menjalankan iklan, tetap libatkan manusia. Hindari spam, patuhi hukum lokal dan kebijakan platform, dan tinjau apa pun sebelum dikirim. Pola paling aman adalah membiarkan OpenClaw membuat draf dan Anda menyetujuinya.
Dokumentasi: Keamanan.
Apa keunggulannya dibanding Claude Code untuk pengembangan web?
OpenClaw adalah asisten pribadi dan lapisan koordinasi, bukan pengganti IDE. Gunakan Claude Code atau Codex untuk loop coding langsung tercepat di dalam repo. Gunakan OpenClaw saat Anda menginginkan memori yang tahan lama, akses lintas perangkat, dan orkestrasi alat.
Keunggulan:
- Memori + workspace persisten di seluruh sesi
- Akses multi-platform (WhatsApp, Telegram, TUI, WebChat)
- Orkestrasi alat (browser, file, penjadwalan, hook)
- Gateway selalu aktif (jalankan di VPS, berinteraksi dari mana saja)
- Node untuk browser/layar/kamera/exec lokal
Showcase: https://openclaw.ai/showcase
Skills dan otomatisasi
Bagaimana cara menyesuaikan skills tanpa membuat repo dirty?
Gunakan override terkelola alih-alih mengedit salinan repo. Letakkan perubahan Anda di ~/.openclaw/skills/<name>/SKILL.md (atau tambahkan folder melalui skills.load.extraDirs di ~/.openclaw/openclaw.json). Presedensinya adalah <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → bawaan → skills.load.extraDirs, jadi override terkelola tetap menang atas skills bawaan tanpa menyentuh git. Jika Anda perlu menginstal skill secara global tetapi hanya terlihat oleh beberapa agent, simpan salinan bersama di ~/.openclaw/skills dan kendalikan visibilitas dengan agents.defaults.skills dan agents.list[].skills. Hanya edit yang layak upstream yang seharusnya berada di repo dan dikirim sebagai PR.
Bisakah saya memuat skills dari folder kustom?
Ya. Tambahkan direktori ekstra melalui skills.load.extraDirs di ~/.openclaw/openclaw.json (presedensi terendah). Presedensi default adalah <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → bawaan → skills.load.extraDirs. clawhub menginstal ke ./skills secara default, yang diperlakukan OpenClaw sebagai <workspace>/skills pada sesi berikutnya. Jika skill hanya boleh terlihat oleh agent tertentu, pasangkan dengan agents.defaults.skills atau agents.list[].skills.
Bagaimana saya bisa menggunakan model berbeda untuk tugas berbeda?
Saat ini pola yang didukung adalah:
- Cron job: job terisolasi dapat menetapkan override
modelper job. - Sub-agent: route tugas ke agent terpisah dengan model default berbeda.
- Beralih sesuai kebutuhan: gunakan
/modeluntuk mengganti model sesi saat ini kapan saja.
Lihat Cron job, Routing Multi-Agent, dan Perintah slash.
Bot membeku saat melakukan pekerjaan berat. Bagaimana cara mengalihkannya?
Gunakan sub-agent untuk tugas panjang atau paralel. Sub-agent berjalan dalam sesinya sendiri, mengembalikan ringkasan, dan menjaga chat utama Anda tetap responsif.
Minta bot Anda untuk "memunculkan sub-agent untuk tugas ini" atau gunakan /subagents.
Gunakan /status di chat untuk melihat apa yang sedang dilakukan Gateway saat ini (dan apakah sedang sibuk).
Tip token: tugas panjang dan sub-agent sama-sama mengonsumsi token. Jika biaya menjadi perhatian, tetapkan
model yang lebih murah untuk sub-agent melalui agents.defaults.subagents.model.
Dokumentasi: Sub-agent, Tugas Latar Belakang.
Bagaimana cara kerja sesi subagent yang terikat thread di Discord?
Gunakan pengikatan thread. Anda dapat mengikat thread Discord ke target subagent atau sesi sehingga pesan tindak lanjut di thread itu tetap berada pada sesi terikat tersebut.
Alur dasar:
- Spawn dengan
sessions_spawnmenggunakanthread: true(dan opsionalmode: "session"untuk tindak lanjut persisten). - Atau ikat manual dengan
/focus <target>. - Gunakan
/agentsuntuk memeriksa status pengikatan. - Gunakan
/session idle <duration|off>dan/session max-age <duration|off>untuk mengontrol auto-unfocus. - Gunakan
/unfocusuntuk melepaskan thread.
Konfigurasi wajib:
- Default global:
session.threadBindings.enabled,session.threadBindings.idleHours,session.threadBindings.maxAgeHours. - Override Discord:
channels.discord.threadBindings.enabled,channels.discord.threadBindings.idleHours,channels.discord.threadBindings.maxAgeHours. - Auto-bind saat spawn:
channels.discord.threadBindings.spawnSessionsdefault-nyatrue; setel kefalseuntuk menonaktifkan spawn sesi terikat thread.
Dokumentasi: Sub-agent, Discord, Referensi Konfigurasi, Perintah slash.
Subagent selesai, tetapi pembaruan penyelesaian masuk ke tempat yang salah atau tidak pernah diposting. Apa yang harus saya periksa?
Periksa rute requester yang diselesaikan terlebih dahulu:
- Pengiriman subagent mode penyelesaian lebih memilih thread terikat atau rute percakapan apa pun saat ada.
- Jika origin penyelesaian hanya membawa kanal, OpenClaw menggunakan cadangan rute tersimpan milik sesi requester (
lastChannel/lastTo/lastAccountId) sehingga pengiriman langsung masih dapat berhasil. - Jika tidak ada rute terikat maupun rute tersimpan yang dapat digunakan, pengiriman langsung dapat gagal dan hasilnya fallback ke pengiriman sesi antrean alih-alih langsung diposting ke chat.
- Target yang tidak valid atau usang masih dapat memaksa fallback antrean atau kegagalan pengiriman akhir.
- Jika balasan asisten terakhir yang terlihat dari child adalah token senyap persis
NO_REPLY/no_reply, atau persisANNOUNCE_SKIP, OpenClaw sengaja menekan announce alih-alih memposting progres sebelumnya yang usang. - Jika child timeout setelah hanya tool call, announce dapat merangkumnya menjadi ringkasan progres parsial singkat alih-alih memutar ulang output tool mentah.
Debug:
openclaw tasks show <runId-or-sessionKey>
Dokumentasi: Sub-agent, Tugas Latar Belakang, Tool Sesi.
Cron atau pengingat tidak berjalan. Apa yang harus saya periksa?
Cron berjalan di dalam proses Gateway. Jika Gateway tidak berjalan terus-menerus, job terjadwal tidak akan berjalan.
Checklist:
- Pastikan cron diaktifkan (
cron.enabled) danOPENCLAW_SKIP_CRONtidak disetel. - Periksa bahwa Gateway berjalan 24/7 (tanpa sleep/restart).
- Verifikasi pengaturan timezone untuk job (
--tzvs timezone host).
Debug:
openclaw cron run <jobId>
openclaw cron runs --id <jobId> --limit 50
Dokumentasi: Cron job, Otomatisasi & Tugas.
Cron fired, but nothing was sent to the channel. Why?
Periksa mode pengiriman terlebih dahulu:
--no-deliver/delivery.mode: "none"berarti tidak ada pengiriman fallback runner yang diharapkan.- Target pengumuman yang hilang atau tidak valid (
channel/to) berarti runner melewati pengiriman keluar. - Kegagalan autentikasi channel (
unauthorized,Forbidden) berarti runner mencoba mengirim tetapi kredensial memblokirnya. - Hasil terisolasi yang senyap (hanya
NO_REPLY/no_reply) diperlakukan sebagai sengaja tidak dapat dikirim, sehingga runner juga menekan pengiriman fallback yang diantrekan.
Untuk cron job terisolasi, agen masih dapat mengirim langsung dengan alat message
saat rute chat tersedia. --announce hanya mengontrol jalur fallback runner
untuk teks akhir yang belum dikirim oleh agen.
Debug:
openclaw cron runs --id <jobId> --limit 50
openclaw tasks show <runId-or-sessionKey>
Docs: Cron jobs, Tugas Latar Belakang.
Why did an isolated cron run switch models or retry once?
Itu biasanya jalur pengalihan model langsung, bukan penjadwalan duplikat.
Cron terisolasi dapat mempertahankan handoff model runtime dan mencoba ulang saat run aktif
melempar LiveSessionModelSwitchError. Percobaan ulang mempertahankan
provider/model yang sudah dialihkan, dan jika pengalihan membawa override profil auth baru, cron
juga mempertahankannya sebelum mencoba ulang.
Aturan pemilihan terkait:
- Override model hook Gmail menang terlebih dahulu bila berlaku.
- Lalu
modelper job. - Lalu override model sesi cron yang tersimpan.
- Lalu pemilihan model agen/default normal.
Loop percobaan ulang dibatasi. Setelah percobaan awal ditambah 2 percobaan ulang pengalihan, cron membatalkan alih-alih berulang tanpa batas.
Debug:
openclaw cron runs --id <jobId> --limit 50
openclaw tasks show <runId-or-sessionKey>
How do I install skills on Linux?
Gunakan perintah native openclaw skills atau letakkan skills ke workspace Anda. UI Skills macOS tidak tersedia di Linux.
Jelajahi skills di https://clawhub.ai.
openclaw skills search "calendar"
openclaw skills search --limit 20
openclaw skills install <skill-slug>
openclaw skills install <skill-slug> --version <version>
openclaw skills install <skill-slug> --force
openclaw skills update --all
openclaw skills list --eligible
openclaw skills check
Native openclaw skills install menulis ke direktori skills/
workspace aktif. Instal CLI clawhub terpisah hanya jika Anda ingin memublikasikan atau
menyinkronkan skills Anda sendiri. Untuk instal bersama lintas agen, letakkan skill di bawah
~/.openclaw/skills dan gunakan agents.defaults.skills atau
agents.list[].skills jika Anda ingin membatasi agen mana yang dapat melihatnya.
Can OpenClaw run tasks on a schedule or continuously in the background?
Ya. Gunakan penjadwal Gateway:
- Cron jobs untuk tugas terjadwal atau berulang (bertahan setelah restart).
- Heartbeat untuk pemeriksaan periodik "sesi utama".
- Job terisolasi untuk agen otonom yang memposting ringkasan atau mengirim ke chat.
Docs: Cron jobs, Otomasi & Tugas, Heartbeat.
Can I run Apple macOS-only skills from Linux?
Tidak secara langsung. Skills macOS dibatasi oleh metadata.openclaw.os ditambah binary yang diperlukan, dan skills hanya muncul di prompt sistem saat memenuhi syarat pada host Gateway. Di Linux, skills khusus darwin (seperti apple-notes, apple-reminders, things-mac) tidak akan dimuat kecuali Anda mengesampingkan gating tersebut.
Anda memiliki tiga pola yang didukung:
Opsi A - jalankan Gateway di Mac (paling sederhana). Jalankan Gateway di tempat binary macOS tersedia, lalu hubungkan dari Linux dalam mode jarak jauh atau melalui Tailscale. Skills dimuat secara normal karena host Gateway adalah macOS.
Opsi B - gunakan node macOS (tanpa SSH).
Jalankan Gateway di Linux, pasangkan node macOS (aplikasi menubar), dan atur Node Run Commands ke "Always Ask" atau "Always Allow" di Mac. OpenClaw dapat memperlakukan skills khusus macOS sebagai memenuhi syarat saat binary yang diperlukan ada di node. Agen menjalankan skills tersebut melalui alat nodes. Jika Anda memilih "Always Ask", menyetujui "Always Allow" dalam prompt menambahkan perintah tersebut ke allowlist.
Opsi C - proksikan binary macOS melalui SSH (lanjutan). Tetap jalankan Gateway di Linux, tetapi buat binary CLI yang diperlukan mengarah ke wrapper SSH yang berjalan di Mac. Lalu override skill agar mengizinkan Linux sehingga tetap memenuhi syarat.
-
Buat wrapper SSH untuk binary (contoh:
memountuk Apple Notes):#!/usr/bin/env bash set -euo pipefail exec ssh -T user@mac-host /opt/homebrew/bin/memo "$@" -
Letakkan wrapper di
PATHpada host Linux (misalnya~/bin/memo). -
Override metadata skill (workspace atau
~/.openclaw/skills) untuk mengizinkan Linux:--- name: apple-notes description: Manage Apple Notes via the memo CLI on macOS. metadata: { "openclaw": { "os": ["darwin", "linux"], "requires": { "bins": ["memo"] } } } --- -
Mulai sesi baru agar snapshot skills diperbarui.
Do you have a Notion or HeyGen integration?
Belum ada bawaan saat ini.
Opsi:
- Skill / plugin kustom: terbaik untuk akses API yang andal (Notion/HeyGen keduanya memiliki API).
- Otomasi browser: berfungsi tanpa kode tetapi lebih lambat dan lebih rapuh.
Jika Anda ingin mempertahankan konteks per klien (alur kerja agensi), pola sederhana adalah:
- Satu halaman Notion per klien (konteks + preferensi + pekerjaan aktif).
- Minta agen mengambil halaman tersebut di awal sesi.
Jika Anda menginginkan integrasi native, buka permintaan fitur atau buat skill yang menargetkan API tersebut.
Instal skills:
openclaw skills install <skill-slug>
openclaw skills update --all
Instalasi native ditempatkan di direktori skills/ workspace aktif. Untuk skills bersama lintas agen, tempatkan di ~/.openclaw/skills/<name>/SKILL.md. Jika hanya beberapa agen yang boleh melihat instalasi bersama, konfigurasikan agents.defaults.skills atau agents.list[].skills. Beberapa skills mengharapkan binary yang diinstal melalui Homebrew; di Linux itu berarti Linuxbrew (lihat entri FAQ Homebrew Linux di atas). Lihat Skills, Konfigurasi Skills, dan ClawHub.
Bagaimana cara menggunakan Chrome saya yang sudah masuk dengan OpenClaw?
Gunakan profil browser bawaan user, yang terhubung melalui Chrome DevTools MCP:
openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot
Jika Anda menginginkan nama khusus, buat profil MCP eksplisit:
openclaw browser create-profile --name chrome-live --driver existing-session
openclaw browser --browser-profile chrome-live tabs
Jalur ini dapat menggunakan browser host lokal atau node browser yang terhubung. Jika Gateway berjalan di tempat lain, jalankan host node di mesin browser atau gunakan CDP jarak jauh.
Batasan saat ini pada existing-session / user:
- tindakan berbasis ref, bukan berbasis CSS-selector
- unggahan memerlukan
ref/inputRefdan saat ini mendukung satu file pada satu waktu responsebody, ekspor PDF, intersepsi unduhan, dan tindakan batch masih memerlukan browser terkelola atau profil CDP mentah
Sandboxing dan memori
Apakah ada dokumen sandboxing khusus?
Ya. Lihat Sandboxing. Untuk penyiapan khusus Docker (gateway penuh di Docker atau image sandbox), lihat Docker.
Docker terasa terbatas - bagaimana cara mengaktifkan fitur lengkap?
Image default mengutamakan keamanan dan berjalan sebagai pengguna node, sehingga tidak
menyertakan paket sistem, Homebrew, atau browser bawaan. Untuk penyiapan yang lebih lengkap:
- Pertahankan
/home/nodedenganOPENCLAW_HOME_VOLUMEagar cache tetap ada. - Panggang dependency sistem ke dalam image dengan
OPENCLAW_DOCKER_APT_PACKAGES. - Instal browser Playwright melalui CLI bawaan:
node /app/node_modules/playwright-core/cli.js install chromium - Tetapkan
PLAYWRIGHT_BROWSERS_PATHdan pastikan path tersebut dipertahankan.
Bisakah saya menjaga DM tetap pribadi tetapi membuat grup publik/tersandbox dengan satu agen?
Ya - jika lalu lintas pribadi Anda adalah DM dan lalu lintas publik Anda adalah grup.
Gunakan agents.defaults.sandbox.mode: "non-main" agar sesi grup/channel (kunci non-main) berjalan di backend sandbox yang dikonfigurasi, sementara sesi DM utama tetap berada di host. Docker adalah backend default jika Anda tidak memilih salah satu. Lalu batasi alat yang tersedia dalam sesi tersandbox melalui tools.sandbox.tools.
Panduan penyiapan + contoh konfigurasi: Grup: DM pribadi + grup publik
Referensi konfigurasi utama: Konfigurasi Gateway
Bagaimana cara mengikat folder host ke dalam sandbox?
Tetapkan agents.defaults.sandbox.docker.binds ke ["host:path:mode"] (misalnya, "/home/user/src:/src:ro"). Bind global + per-agen digabungkan; bind per-agen diabaikan ketika scope: "shared". Gunakan :ro untuk apa pun yang sensitif dan ingat bahwa bind melewati dinding filesystem sandbox.
OpenClaw memvalidasi sumber bind terhadap path yang dinormalisasi dan path kanonis yang diselesaikan melalui ancestor terdalam yang sudah ada. Artinya, escape melalui symlink-parent tetap gagal tertutup bahkan ketika segmen path terakhir belum ada, dan pemeriksaan root yang diizinkan tetap berlaku setelah resolusi symlink.
Lihat Sandboxing dan Sandbox vs Kebijakan Alat vs Elevated untuk contoh dan catatan keselamatan.
Bagaimana cara kerja memori?
Memori OpenClaw hanyalah file Markdown di workspace agen:
- Catatan harian di
memory/YYYY-MM-DD.md - Catatan jangka panjang yang dikurasi di
MEMORY.md(hanya sesi utama/pribadi)
OpenClaw juga menjalankan flush memori pra-compaction senyap untuk mengingatkan model menulis catatan tahan lama sebelum auto-compaction. Ini hanya berjalan ketika workspace dapat ditulis (sandbox read-only melewatinya). Lihat Memori.
Memori terus melupakan berbagai hal. Bagaimana cara membuatnya bertahan?
Minta bot untuk menulis fakta tersebut ke memori. Catatan jangka panjang berada di MEMORY.md,
konteks jangka pendek masuk ke memory/YYYY-MM-DD.md.
Ini masih merupakan area yang sedang kami tingkatkan. Mengingatkan model untuk menyimpan memori akan membantu; model akan tahu apa yang harus dilakukan. Jika terus lupa, pastikan Gateway menggunakan workspace yang sama pada setiap eksekusi.
Dokumen: Memori, Workspace agen.
Apakah memori bertahan selamanya? Apa batasannya?
File memori berada di disk dan bertahan sampai Anda menghapusnya. Batasannya adalah penyimpanan Anda, bukan model. Konteks sesi tetap dibatasi oleh jendela konteks model, sehingga percakapan panjang dapat dipadatkan atau dipotong. Itulah mengapa pencarian memori ada - fitur ini hanya menarik bagian relevan kembali ke konteks.
Apakah pencarian memori semantik memerlukan kunci API OpenAI?
Hanya jika Anda menggunakan embedding OpenAI. OAuth Codex mencakup chat/completions dan
tidak memberikan akses embedding, jadi masuk dengan Codex (OAuth atau
login CLI Codex) tidak membantu untuk pencarian memori semantik. Embedding OpenAI
tetap memerlukan kunci API sungguhan (OPENAI_API_KEY atau models.providers.openai.apiKey).
Jika Anda tidak menetapkan penyedia secara eksplisit, OpenClaw memilih penyedia secara otomatis ketika
dapat menemukan kunci API (profil auth, models.providers.*.apiKey, atau env vars).
OpenClaw mengutamakan OpenAI jika kunci OpenAI ditemukan, jika tidak Gemini jika kunci Gemini
ditemukan, lalu Voyage, lalu Mistral. Jika tidak ada kunci jarak jauh yang tersedia, pencarian
memori tetap dinonaktifkan sampai Anda mengonfigurasinya. Jika Anda memiliki jalur model lokal
yang dikonfigurasi dan tersedia, OpenClaw
mengutamakan local. Ollama didukung ketika Anda menetapkan secara eksplisit
memorySearch.provider = "ollama".
Jika Anda lebih suka tetap lokal, tetapkan memorySearch.provider = "local" (dan secara opsional
memorySearch.fallback = "none"). Jika Anda menginginkan embedding Gemini, tetapkan
memorySearch.provider = "gemini" dan sediakan GEMINI_API_KEY (atau
memorySearch.remote.apiKey). Kami mendukung model embedding OpenAI, Gemini, Voyage, Mistral, Ollama, atau lokal
- lihat Memory untuk detail penyiapannya.
Lokasi penyimpanan di disk
Apakah semua data yang digunakan dengan OpenClaw disimpan secara lokal?
Tidak - state OpenClaw bersifat lokal, tetapi layanan eksternal tetap melihat apa yang Anda kirimkan kepada mereka.
- Lokal secara default: sesi, file memori, konfigurasi, dan workspace berada di host Gateway
(
~/.openclaw+ direktori workspace Anda). - Jarak jauh karena kebutuhan: pesan yang Anda kirim ke penyedia model (Anthropic/OpenAI/dll.) masuk ke API mereka, dan platform chat (WhatsApp/Telegram/Slack/dll.) menyimpan data pesan di server mereka.
- Anda mengendalikan jejaknya: menggunakan model lokal menjaga prompt di mesin Anda, tetapi traffic channel tetap melewati server channel tersebut.
Terkait: Workspace agen, Memory.
Di mana OpenClaw menyimpan datanya?
Semuanya berada di bawah $OPENCLAW_STATE_DIR (default: ~/.openclaw):
| Jalur | Tujuan |
|---|---|
$OPENCLAW_STATE_DIR/openclaw.json |
Konfigurasi utama (JSON5) |
$OPENCLAW_STATE_DIR/credentials/oauth.json |
Impor OAuth legacy (disalin ke profil auth saat pertama digunakan) |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json |
Profil auth (OAuth, kunci API, dan keyRef/tokenRef opsional) |
$OPENCLAW_STATE_DIR/secrets.json |
Payload secret berbasis file opsional untuk penyedia SecretRef file |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json |
File kompatibilitas legacy (entri api_key statis dibersihkan) |
$OPENCLAW_STATE_DIR/credentials/ |
State penyedia (mis. whatsapp/<accountId>/creds.json) |
$OPENCLAW_STATE_DIR/agents/ |
State per agen (agentDir + sesi) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/ |
Riwayat percakapan & state (per agen) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json |
Metadata sesi (per agen) |
Jalur single-agent legacy: ~/.openclaw/agent/* (dimigrasikan oleh openclaw doctor).
Workspace Anda (AGENTS.md, file memori, Skills, dll.) terpisah dan dikonfigurasi melalui agents.defaults.workspace (default: ~/.openclaw/workspace).
Di mana AGENTS.md / SOUL.md / USER.md / MEMORY.md sebaiknya berada?
File-file ini berada di workspace agen, bukan ~/.openclaw.
- Workspace (per agen):
AGENTS.md,SOUL.md,IDENTITY.md,USER.md,MEMORY.md,memory/YYYY-MM-DD.md,HEARTBEAT.mdopsional. Rootmemory.mdhuruf kecil hanya merupakan input perbaikan legacy;openclaw doctor --fixdapat menggabungkannya ke dalamMEMORY.mdketika kedua file ada. - Direktori state (
~/.openclaw): konfigurasi, state channel/penyedia, profil auth, sesi, log, dan Skills bersama (~/.openclaw/skills).
Workspace default adalah ~/.openclaw/workspace, dapat dikonfigurasi melalui:
{
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
}
Jika bot "lupa" setelah restart, pastikan Gateway menggunakan workspace yang sama pada setiap peluncuran (dan ingat: mode jarak jauh menggunakan workspace milik host gateway, bukan laptop lokal Anda).
Tip: jika Anda menginginkan perilaku atau preferensi yang tahan lama, minta bot untuk menuliskannya ke AGENTS.md atau MEMORY.md alih-alih mengandalkan riwayat chat.
Lihat Workspace agen dan Memory.
Strategi pencadangan yang direkomendasikan
Simpan workspace agen Anda dalam repo git privat dan cadangkan di tempat privat (misalnya GitHub private). Ini menangkap memori + file AGENTS/SOUL/USER, dan memungkinkan Anda memulihkan "pikiran" asisten nanti.
Jangan commit apa pun di bawah ~/.openclaw (kredensial, sesi, token, atau payload secret terenkripsi).
Jika Anda membutuhkan pemulihan penuh, cadangkan workspace dan direktori state
secara terpisah (lihat pertanyaan migrasi di atas).
Dokumentasi: Workspace agen.
Bagaimana cara menghapus OpenClaw sepenuhnya?
Lihat panduan khusus: Uninstall.
Bisakah agen bekerja di luar workspace?
Ya. Workspace adalah cwd default dan jangkar memori, bukan sandbox keras.
Jalur relatif diselesaikan di dalam workspace, tetapi jalur absolut dapat mengakses lokasi
host lain kecuali sandboxing diaktifkan. Jika Anda membutuhkan isolasi, gunakan
agents.defaults.sandbox atau pengaturan sandbox per agen. Jika Anda
ingin sebuah repo menjadi direktori kerja default, arahkan workspace agen tersebut
ke root repo. Repo OpenClaw hanyalah kode sumber; pisahkan
workspace kecuali Anda memang ingin agen bekerja di dalamnya.
Contoh (repo sebagai cwd default):
{
agents: {
defaults: {
workspace: "~/Projects/my-repo",
},
},
}
Mode jarak jauh: di mana penyimpanan sesi?
State sesi dimiliki oleh host gateway. Jika Anda berada dalam mode jarak jauh, penyimpanan sesi yang Anda pedulikan berada di mesin jarak jauh, bukan laptop lokal Anda. Lihat Manajemen sesi.
Dasar-dasar konfigurasi
Apa format konfigurasinya? Di mana letaknya?
OpenClaw membaca konfigurasi JSON5 opsional dari $OPENCLAW_CONFIG_PATH (default: ~/.openclaw/openclaw.json):
$OPENCLAW_CONFIG_PATH
Jika file tidak ada, OpenClaw menggunakan default yang cukup aman (termasuk workspace default ~/.openclaw/workspace).
Saya menetapkan gateway.bind: "lan" (atau "tailnet") dan sekarang tidak ada yang listen / UI mengatakan tidak terotorisasi
Bind non-loopback memerlukan jalur auth gateway yang valid. Dalam praktiknya itu berarti:
- auth shared-secret: token atau kata sandi
gateway.auth.mode: "trusted-proxy"di belakang reverse proxy identity-aware yang dikonfigurasi dengan benar
{
gateway: {
bind: "lan",
auth: {
mode: "token",
token: "replace-me",
},
},
}
Catatan:
gateway.remote.token/.passwordtidak mengaktifkan auth gateway lokal dengan sendirinya.- Jalur panggilan lokal dapat menggunakan
gateway.remote.*sebagai fallback hanya ketikagateway.auth.*tidak ditetapkan. - Untuk auth kata sandi, tetapkan
gateway.auth.mode: "password"plusgateway.auth.password(atauOPENCLAW_GATEWAY_PASSWORD) sebagai gantinya. - Jika
gateway.auth.token/gateway.auth.passworddikonfigurasi secara eksplisit melalui SecretRef dan tidak terselesaikan, resolusi gagal tertutup (tidak ada masking fallback jarak jauh). - Penyiapan Control UI shared-secret melakukan autentikasi melalui
connect.params.auth.tokenatauconnect.params.auth.password(disimpan di pengaturan app/UI). Mode yang membawa identitas seperti Tailscale Serve atautrusted-proxymenggunakan header request sebagai gantinya. Hindari meletakkan shared secret di URL. - Dengan
gateway.auth.mode: "trusted-proxy", reverse proxy loopback host yang sama memerlukangateway.auth.trustedProxy.allowLoopback = trueeksplisit dan entri loopback digateway.trustedProxies.
Mengapa saya sekarang membutuhkan token di localhost?
OpenClaw menerapkan auth gateway secara default, termasuk loopback. Pada jalur default normal, itu berarti auth token: jika tidak ada jalur auth eksplisit yang dikonfigurasi, startup gateway diselesaikan ke mode token dan menghasilkan token khusus runtime untuk startup tersebut, sehingga klien WS lokal harus melakukan autentikasi. Konfigurasikan gateway.auth.token, gateway.auth.password, OPENCLAW_GATEWAY_TOKEN, atau OPENCLAW_GATEWAY_PASSWORD secara eksplisit ketika klien membutuhkan secret yang stabil lintas restart. Ini memblokir proses lokal lain dari memanggil Gateway.
Jika Anda lebih suka jalur auth berbeda, Anda dapat memilih mode kata sandi secara eksplisit (atau, untuk reverse proxy identity-aware, trusted-proxy). Jika Anda benar-benar menginginkan loopback terbuka, tetapkan gateway.auth.mode: "none" secara eksplisit dalam konfigurasi Anda. Doctor dapat menghasilkan token untuk Anda kapan saja: openclaw doctor --generate-gateway-token.
Apakah saya harus restart setelah mengubah konfigurasi?
Gateway memantau konfigurasi dan mendukung hot-reload:
gateway.reload.mode: "hybrid"(default): menerapkan perubahan aman secara hot, restart untuk perubahan kritishot,restart,offjuga didukung
Bagaimana cara menonaktifkan tagline CLI lucu?
Tetapkan cli.banner.taglineMode dalam konfigurasi:
{
cli: {
banner: {
taglineMode: "off", // random | default | off
},
},
}
off: menyembunyikan teks tagline tetapi mempertahankan baris judul/versi banner.default: menggunakanAll your chats, one OpenClaw.setiap kali.random: tagline lucu/musiman yang berganti-ganti (perilaku default).- Jika Anda tidak menginginkan banner sama sekali, tetapkan env
OPENCLAW_HIDE_BANNER=1.
Bagaimana cara mengaktifkan pencarian web (dan fetch web)?
web_fetch berfungsi tanpa kunci API. web_search bergantung pada penyedia
yang Anda pilih:
- Penyedia berbasis API seperti Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity, dan Tavily memerlukan penyiapan kunci API normal mereka.
- Ollama Web Search bebas kunci, tetapi menggunakan host Ollama yang Anda konfigurasi dan memerlukan
ollama signin. - DuckDuckGo bebas kunci, tetapi merupakan integrasi berbasis HTML tidak resmi.
- SearXNG bebas kunci/self-hosted; konfigurasikan
SEARXNG_BASE_URLatauplugins.entries.searxng.config.webSearch.baseUrl.
Direkomendasikan: jalankan openclaw configure --section web dan pilih penyedia.
Alternatif lingkungan:
- Brave:
BRAVE_API_KEY - Exa:
EXA_API_KEY - Firecrawl:
FIRECRAWL_API_KEY - Gemini:
GEMINI_API_KEY - Grok:
XAI_API_KEY - Kimi:
KIMI_API_KEYatauMOONSHOT_API_KEY - MiniMax Search:
MINIMAX_CODE_PLAN_KEY,MINIMAX_CODING_API_KEY, atauMINIMAX_API_KEY - Perplexity:
PERPLEXITY_API_KEYatauOPENROUTER_API_KEY - SearXNG:
SEARXNG_BASE_URL - Tavily:
TAVILY_API_KEY
{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "BRAVE_API_KEY_HERE",
},
},
},
},
},
tools: {
web: {
search: {
enabled: true,
provider: "brave",
maxResults: 5,
},
fetch: {
enabled: true,
provider: "firecrawl", // optional; omit for auto-detect
},
},
},
}
Konfigurasi pencarian web khusus penyedia kini berada di bawah plugins.entries.<plugin>.config.webSearch.*.
Jalur penyedia lama tools.web.search.* masih dimuat sementara untuk kompatibilitas, tetapi tidak boleh digunakan untuk konfigurasi baru.
Konfigurasi fallback pengambilan web Firecrawl berada di bawah plugins.entries.firecrawl.config.webFetch.*.
Catatan:
- Jika Anda menggunakan daftar izin, tambahkan
web_search/web_fetch/x_searchataugroup:web. web_fetchdiaktifkan secara default (kecuali dinonaktifkan secara eksplisit).- Jika
tools.web.fetch.providerdihilangkan, OpenClaw mendeteksi otomatis penyedia fallback pengambilan pertama yang siap dari kredensial yang tersedia. Saat ini penyedia bawaan adalah Firecrawl. - Daemon membaca variabel lingkungan dari
~/.openclaw/.env(atau lingkungan layanan).
Docs: Alat web.
config.apply menghapus konfigurasi saya. Bagaimana cara memulihkan dan menghindarinya?
config.apply mengganti seluruh konfigurasi. Jika Anda mengirim objek parsial, semua
yang lain akan dihapus.
OpenClaw saat ini melindungi dari banyak penimpaan tidak sengaja:
- Penulisan konfigurasi milik OpenClaw memvalidasi konfigurasi penuh setelah perubahan sebelum menulis.
- Penulisan milik OpenClaw yang tidak valid atau destruktif ditolak dan disimpan sebagai
openclaw.json.rejected.*. - Jika edit langsung merusak startup atau hot reload, Gateway gagal tertutup atau melewati reload; Gateway tidak menulis ulang
openclaw.json. openclaw doctor --fixmenangani perbaikan dan dapat memulihkan last-known-good sambil menyimpan file yang ditolak sebagaiopenclaw.json.clobbered.*.
Pulihkan:
- Periksa
openclaw logs --followuntukInvalid config at,Config write rejected:, atauconfig reload skipped (invalid config). - Periksa
openclaw.json.clobbered.*atauopenclaw.json.rejected.*terbaru di samping konfigurasi aktif. - Jalankan
openclaw config validatedanopenclaw doctor --fix. - Salin kembali hanya key yang dimaksud dengan
openclaw config setatauconfig.patch. - Jika Anda tidak memiliki last-known-good atau payload yang ditolak, pulihkan dari cadangan, atau jalankan ulang
openclaw doctordan konfigurasi ulang channel/model. - Jika ini tidak terduga, laporkan bug dan sertakan konfigurasi terakhir yang Anda ketahui atau cadangan apa pun.
- Agen coding lokal sering kali dapat merekonstruksi konfigurasi yang berfungsi dari log atau riwayat.
Hindari:
- Gunakan
openclaw config setuntuk perubahan kecil. - Gunakan
openclaw configureuntuk edit interaktif. - Gunakan
config.schema.lookupterlebih dahulu saat Anda tidak yakin tentang path atau bentuk field yang tepat; ini mengembalikan node skema dangkal plus ringkasan child langsung untuk drill-down. - Gunakan
config.patchuntuk edit RPC parsial; gunakanconfig.applyhanya untuk penggantian konfigurasi penuh. - Jika Anda menggunakan alat
gatewaykhusus owner dari suatu run agen, alat itu tetap akan menolak penulisan ketools.exec.ask/tools.exec.security(termasuk alias lamatools.bash.*yang dinormalisasi ke path exec terlindungi yang sama).
Docs: Konfigurasi, Konfigurasi, Pemecahan masalah Gateway, Doctor.
Bagaimana cara menjalankan Gateway pusat dengan worker khusus di beberapa perangkat?
Pola umumnya adalah satu Gateway (misalnya Raspberry Pi) plus node dan agen:
- Gateway (pusat): mengelola channel (Signal/WhatsApp), routing, dan sesi.
- Node (perangkat): Mac/iOS/Android terhubung sebagai periferal dan mengekspos alat lokal (
system.run,canvas,camera). - Agen (worker): otak/workspace terpisah untuk peran khusus (misalnya "Operasi Hetzner", "Data pribadi").
- Sub-agen: memunculkan pekerjaan latar belakang dari agen utama saat Anda menginginkan paralelisme.
- TUI: terhubung ke Gateway dan berpindah agen/sesi.
Docs: Node, Akses jarak jauh, Routing Multi-Agen, Sub-agen, TUI.
Bisakah browser OpenClaw berjalan headless?
Ya. Ini adalah opsi konfigurasi:
{
browser: { headless: true },
agents: {
defaults: {
sandbox: { browser: { headless: true } },
},
},
}
Default-nya adalah false (headful). Headless lebih mungkin memicu pemeriksaan anti-bot di beberapa situs. Lihat Browser.
Headless menggunakan engine Chromium yang sama dan berfungsi untuk sebagian besar otomatisasi (formulir, klik, scraping, login). Perbedaan utamanya:
- Tidak ada jendela browser yang terlihat (gunakan screenshot jika Anda membutuhkan visual).
- Beberapa situs lebih ketat terhadap otomatisasi dalam mode headless (CAPTCHA, anti-bot). Misalnya, X/Twitter sering memblokir sesi headless.
Bagaimana cara menggunakan Brave untuk kontrol browser?
Atur browser.executablePath ke binary Brave Anda (atau browser berbasis Chromium apa pun) dan mulai ulang Gateway.
Lihat contoh konfigurasi lengkap di Browser.
Gateway dan node jarak jauh
Bagaimana perintah diteruskan antara Telegram, gateway, dan node?
Pesan Telegram ditangani oleh gateway. Gateway menjalankan agen dan baru kemudian memanggil node melalui Gateway WebSocket saat alat node diperlukan:
Telegram → Gateway → Agen → node.* → Node → Gateway → Telegram
Node tidak melihat traffic penyedia yang masuk; node hanya menerima panggilan RPC node.
Bagaimana agen saya dapat mengakses komputer saya jika Gateway di-host dari jarak jauh?
Jawaban singkat: pasangkan komputer Anda sebagai node. Gateway berjalan di tempat lain, tetapi dapat
memanggil alat node.* (screen, camera, system) di mesin lokal Anda melalui Gateway WebSocket.
Setup umum:
-
Jalankan Gateway di host yang selalu aktif (VPS/server rumah).
-
Masukkan host Gateway + komputer Anda ke tailnet yang sama.
-
Pastikan Gateway WS dapat dijangkau (bind tailnet atau tunnel SSH).
-
Buka aplikasi macOS secara lokal dan hubungkan dalam mode Jarak Jauh melalui SSH (atau tailnet langsung) agar dapat mendaftar sebagai node.
-
Setujui node di Gateway:
openclaw devices list openclaw devices approve <requestId>
Tidak diperlukan bridge TCP terpisah; node terhubung melalui Gateway WebSocket.
Pengingat keamanan: memasangkan node macOS memungkinkan system.run di mesin tersebut. Hanya
pasangkan perangkat yang Anda percaya, dan tinjau Keamanan.
Docs: Node, Protokol Gateway, Mode jarak jauh macOS, Keamanan.
Tailscale tersambung tetapi saya tidak mendapat balasan. Apa sekarang?
Periksa hal dasar:
- Gateway berjalan:
openclaw gateway status - Kesehatan Gateway:
openclaw status - Kesehatan channel:
openclaw channels status
Lalu verifikasi auth dan routing:
- Jika Anda menggunakan Tailscale Serve, pastikan
gateway.auth.allowTailscalediatur dengan benar. - Jika Anda terhubung melalui tunnel SSH, pastikan tunnel lokal aktif dan mengarah ke port yang benar.
- Pastikan daftar izin Anda (DM atau grup) mencakup akun Anda.
Docs: Tailscale, Akses jarak jauh, Channel.
Bisakah dua instance OpenClaw saling berbicara (lokal + VPS)?
Ya. Tidak ada bridge "bot-ke-bot" bawaan, tetapi Anda dapat menghubungkannya dengan beberapa cara yang andal:
Paling sederhana: gunakan channel chat normal yang dapat diakses kedua bot (Telegram/Slack/WhatsApp). Minta Bot A mengirim pesan ke Bot B, lalu biarkan Bot B membalas seperti biasa.
Bridge CLI (generik): jalankan skrip yang memanggil Gateway lain dengan
openclaw agent --message ... --deliver, menargetkan chat tempat bot lain
mendengarkan. Jika satu bot berada di VPS jarak jauh, arahkan CLI Anda ke Gateway jarak jauh itu
melalui SSH/Tailscale (lihat Akses jarak jauh).
Pola contoh (jalankan dari mesin yang dapat menjangkau Gateway target):
openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to <chat-id>
Tips: tambahkan guardrail agar kedua bot tidak berulang tanpa henti (hanya mention, daftar izin channel, atau aturan "jangan balas pesan bot").
Docs: Akses jarak jauh, CLI Agen, Kirim agen.
Apakah saya memerlukan VPS terpisah untuk beberapa agen?
Tidak. Satu Gateway dapat meng-host beberapa agen, masing-masing dengan workspace, default model, dan routing sendiri. Itu adalah setup normal dan jauh lebih murah serta sederhana daripada menjalankan satu VPS per agen.
Gunakan VPS terpisah hanya ketika Anda memerlukan isolasi keras (batas keamanan) atau konfigurasi yang sangat berbeda dan tidak ingin dibagikan. Jika tidak, pertahankan satu Gateway dan gunakan beberapa agen atau sub-agen.
Apakah ada manfaat menggunakan node di laptop pribadi saya daripada SSH dari VPS?
Ya - node adalah cara kelas utama untuk menjangkau laptop Anda dari Gateway jarak jauh, dan node membuka lebih dari sekadar akses shell. Gateway berjalan di macOS/Linux (Windows melalui WSL2) dan ringan (VPS kecil atau box sekelas Raspberry Pi sudah cukup; RAM 4 GB sudah memadai), jadi setup umum adalah host yang selalu aktif plus laptop Anda sebagai node.
- Tidak perlu SSH masuk. Node terhubung keluar ke Gateway WebSocket dan menggunakan pairing perangkat.
- Kontrol eksekusi lebih aman.
system.rundijaga oleh daftar izin/persetujuan node di laptop tersebut. - Lebih banyak alat perangkat. Node mengekspos
canvas,camera, danscreenselainsystem.run. - Otomatisasi browser lokal. Pertahankan Gateway di VPS, tetapi jalankan Chrome secara lokal melalui host node di laptop, atau lampirkan ke Chrome lokal di host melalui Chrome MCP.
SSH cocok untuk akses shell ad-hoc, tetapi node lebih sederhana untuk workflow agen berkelanjutan dan otomatisasi perangkat.
Apakah node menjalankan layanan gateway?
Tidak. Hanya satu gateway yang sebaiknya berjalan per host kecuali Anda sengaja menjalankan profil terisolasi (lihat Beberapa gateway). Node adalah periferal yang terhubung ke gateway (node iOS/Android, atau "mode node" macOS di aplikasi menubar). Untuk host node headless dan kontrol CLI, lihat CLI host Node.
Mulai ulang penuh diperlukan untuk perubahan permukaan gateway, discovery, dan Plugin yang di-host.
Apakah ada cara API / RPC untuk menerapkan konfigurasi?
Ya.
config.schema.lookup: periksa satu subtree config dengan node skema dangkalnya, petunjuk UI yang cocok, dan ringkasan anak langsung sebelum menulisconfig.get: ambil snapshot + hash saat iniconfig.patch: pembaruan parsial yang aman (disarankan untuk sebagian besar pengeditan RPC); melakukan hot-reload bila memungkinkan dan memulai ulang bila diperlukanconfig.apply: validasi + ganti seluruh config; melakukan hot-reload bila memungkinkan dan memulai ulang bila diperlukan- Tool runtime
gatewaykhusus owner tetap menolak menulis ulangtools.exec.ask/tools.exec.security; alias lamatools.bash.*dinormalisasi ke path exec terlindungi yang sama
Config minimal yang masuk akal untuk instalasi pertama
{
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Ini menetapkan workspace Anda dan membatasi siapa yang dapat memicu bot.
Bagaimana cara menyiapkan Tailscale di VPS dan terhubung dari Mac saya?
Langkah minimal:
-
Instal + login di VPS
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up -
Instal + login di Mac Anda
- Gunakan aplikasi Tailscale dan masuk ke tailnet yang sama.
-
Aktifkan MagicDNS (disarankan)
- Di konsol admin Tailscale, aktifkan MagicDNS agar VPS memiliki nama yang stabil.
-
Gunakan hostname tailnet
- SSH:
ssh [email protected] - Gateway WS:
ws://your-vps.tailnet-xxxx.ts.net:18789
- SSH:
Jika Anda menginginkan Control UI tanpa SSH, gunakan Tailscale Serve di VPS:
openclaw gateway --tailscale serve
Ini menjaga gateway tetap terikat ke loopback dan mengekspos HTTPS melalui Tailscale. Lihat Tailscale.
Bagaimana cara menghubungkan Node Mac ke Gateway jarak jauh (Tailscale Serve)?
Serve mengekspos Control UI Gateway + WS. Node terhubung melalui endpoint Gateway WS yang sama.
Penyiapan yang disarankan:
-
Pastikan VPS + Mac berada di tailnet yang sama.
-
Gunakan aplikasi macOS dalam mode Remote (target SSH dapat berupa hostname tailnet). Aplikasi akan membuat tunnel port Gateway dan terhubung sebagai Node.
-
Setujui Node di gateway:
openclaw devices list openclaw devices approve <requestId>
Docs: protokol Gateway, Discovery, mode remote macOS.
Apakah saya harus menginstal di laptop kedua atau cukup menambahkan Node?
Jika Anda hanya membutuhkan tool lokal (layar/kamera/exec) di laptop kedua, tambahkan sebagai Node. Ini mempertahankan satu Gateway dan menghindari config duplikat. Tool Node lokal saat ini hanya untuk macOS, tetapi kami berencana memperluasnya ke OS lain.
Instal Gateway kedua hanya ketika Anda membutuhkan isolasi ketat atau dua bot yang sepenuhnya terpisah.
Docs: Node, CLI Node, Beberapa gateway.
Variabel env dan pemuatan .env
Bagaimana OpenClaw memuat variabel lingkungan?
OpenClaw membaca variabel env dari proses induk (shell, launchd/systemd, CI, dll.) dan juga memuat:
.envdari direktori kerja saat ini- fallback global
.envdari~/.openclaw/.env(alias$OPENCLAW_STATE_DIR/.env)
Tidak satu pun file .env menimpa variabel env yang sudah ada.
Anda juga dapat mendefinisikan variabel env inline dalam config (diterapkan hanya jika tidak ada di env proses):
{
env: {
OPENROUTER_API_KEY: "sk-or-...",
vars: { GROQ_API_KEY: "gsk-..." },
},
}
Lihat /environment untuk prioritas dan sumber lengkap.
Saya memulai Gateway melalui layanan dan variabel env saya hilang. Sekarang bagaimana?
Dua perbaikan umum:
- Letakkan kunci yang hilang di
~/.openclaw/.envagar tetap diambil meskipun layanan tidak mewarisi env shell Anda. - Aktifkan impor shell (kemudahan opt-in):
{
env: {
shellEnv: {
enabled: true,
timeoutMs: 15000,
},
},
}
Ini menjalankan shell login Anda dan hanya mengimpor kunci yang diharapkan tetapi belum ada (tidak pernah menimpa). Padanan variabel env:
OPENCLAW_LOAD_SHELL_ENV=1, OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000.
Saya menetapkan COPILOT_GITHUB_TOKEN, tetapi status model menampilkan "Shell env: off." Mengapa?
openclaw models status melaporkan apakah impor env shell diaktifkan. "Shell env: off"
tidak berarti variabel env Anda hilang - itu hanya berarti OpenClaw tidak akan memuat
shell login Anda secara otomatis.
Jika Gateway berjalan sebagai layanan (launchd/systemd), ia tidak akan mewarisi lingkungan shell Anda. Perbaiki dengan melakukan salah satu dari ini:
-
Letakkan token di
~/.openclaw/.env:COPILOT_GITHUB_TOKEN=... -
Atau aktifkan impor shell (
env.shellEnv.enabled: true). -
Atau tambahkan ke blok
envconfig Anda (diterapkan hanya jika belum ada).
Lalu mulai ulang gateway dan periksa kembali:
openclaw models status
Token Copilot dibaca dari COPILOT_GITHUB_TOKEN (juga GH_TOKEN / GITHUB_TOKEN).
Lihat /concepts/model-providers dan /environment.
Sesi dan beberapa chat
Bagaimana cara memulai percakapan baru?
Kirim /new atau /reset sebagai pesan mandiri. Lihat Manajemen sesi.
Apakah sesi otomatis direset jika saya tidak pernah mengirim /new?
Sesi dapat kedaluwarsa setelah session.idleMinutes, tetapi ini dinonaktifkan secara default (default 0).
Tetapkan ke nilai positif untuk mengaktifkan kedaluwarsa idle. Saat diaktifkan, pesan berikutnya
setelah periode idle memulai id sesi baru untuk kunci chat tersebut.
Ini tidak menghapus transkrip - hanya memulai sesi baru.
{
session: {
idleMinutes: 240,
},
}
Apakah ada cara membuat tim instance OpenClaw (satu CEO dan banyak agen)?
Ya, melalui routing multi-agen dan sub-agen. Anda dapat membuat satu agen koordinator dan beberapa agen pekerja dengan workspace dan model mereka sendiri.
Meski begitu, ini paling baik dilihat sebagai eksperimen menyenangkan. Ini boros token dan sering kurang efisien dibanding menggunakan satu bot dengan sesi terpisah. Model umum yang kami bayangkan adalah satu bot yang Anda ajak bicara, dengan sesi berbeda untuk pekerjaan paralel. Bot itu juga dapat membuat sub-agen saat diperlukan.
Docs: Routing multi-agen, Sub-agen, CLI agen.
Mengapa konteks terpotong di tengah tugas? Bagaimana cara mencegahnya?
Konteks sesi dibatasi oleh jendela model. Chat panjang, output tool besar, atau banyak file dapat memicu Compaction atau pemotongan.
Yang membantu:
- Minta bot merangkum status saat ini dan menuliskannya ke file.
- Gunakan
/compactsebelum tugas panjang, dan/newsaat berganti topik. - Simpan konteks penting di workspace dan minta bot membacanya kembali.
- Gunakan sub-agen untuk pekerjaan panjang atau paralel agar chat utama tetap lebih kecil.
- Pilih model dengan jendela konteks lebih besar jika ini sering terjadi.
Bagaimana cara mereset OpenClaw sepenuhnya tetapi tetap mempertahankan instalasinya?
Gunakan perintah reset:
openclaw reset
Reset penuh non-interaktif:
openclaw reset --scope full --yes --non-interactive
Lalu jalankan ulang penyiapan:
openclaw onboard --install-daemon
Catatan:
- Onboarding juga menawarkan Reset jika menemukan config yang sudah ada. Lihat Onboarding (CLI).
- Jika Anda menggunakan profil (
--profile/OPENCLAW_PROFILE), reset setiap dir state (defaultnya~/.openclaw-<profile>). - Reset dev:
openclaw gateway --dev --reset(khusus dev; menghapus config dev + kredensial + sesi + workspace).
Saya mendapat error "context too large" - bagaimana cara reset atau compact?
Gunakan salah satu dari ini:
-
Compact (mempertahankan percakapan tetapi merangkum giliran lama):
/compactatau
/compact <instructions>untuk memandu ringkasan. -
Reset (ID sesi baru untuk kunci chat yang sama):
/new /reset
Jika terus terjadi:
- Aktifkan atau sesuaikan pemangkasan sesi (
agents.defaults.contextPruning) untuk memangkas output tool lama. - Gunakan model dengan jendela konteks lebih besar.
Docs: Compaction, Pemangkasan sesi, Manajemen sesi.
Mengapa saya melihat "LLM request rejected: messages.content.tool_use.input field required"?
Ini adalah error validasi provider: model menghasilkan blok tool_use tanpa input
yang diperlukan. Ini biasanya berarti riwayat sesi sudah usang atau rusak (sering setelah thread panjang
atau perubahan tool/skema).
Perbaikan: mulai sesi baru dengan /new (pesan mandiri).
Mengapa saya mendapat pesan heartbeat setiap 30 menit?
Heartbeat berjalan setiap 30m secara default (1h saat menggunakan auth OAuth). Sesuaikan atau nonaktifkan:
{
agents: {
defaults: {
heartbeat: {
every: "2h", // or "0m" to disable
},
},
},
}
Jika HEARTBEAT.md ada tetapi secara efektif kosong (hanya baris kosong dan header markdown
seperti # Heading), OpenClaw melewati proses heartbeat untuk menghemat panggilan API.
Jika file tidak ada, heartbeat tetap berjalan dan model memutuskan apa yang harus dilakukan.
Override per agen menggunakan agents.list[].heartbeat. Docs: Heartbeat.
Apakah saya perlu menambahkan "akun bot" ke grup WhatsApp?
Tidak. OpenClaw berjalan di akun Anda sendiri, jadi jika Anda berada di grup, OpenClaw dapat melihatnya.
Secara default, balasan grup diblokir sampai Anda mengizinkan pengirim (groupPolicy: "allowlist").
Jika Anda hanya ingin Anda yang dapat memicu balasan grup:
{
channels: {
whatsapp: {
groupPolicy: "allowlist",
groupAllowFrom: ["+15551234567"],
},
},
}
Bagaimana cara mendapatkan JID grup WhatsApp?
Opsi 1 (tercepat): ikuti log dan kirim pesan uji di grup:
openclaw logs --follow --json
Cari chatId (atau from) yang berakhir dengan @g.us, seperti:
[email protected].
Opsi 2 (jika sudah dikonfigurasi/di-allowlist): daftar grup dari config:
openclaw directory groups list --channel whatsapp
Mengapa OpenClaw tidak membalas di grup?
Dua penyebab umum:
- Mention gating aktif (default). Anda harus @mention bot (atau cocok dengan
mentionPatterns). - Anda mengonfigurasi
channels.whatsapp.groupstanpa"*"dan grup tersebut tidak ada di allowlist.
Lihat Grup dan Pesan grup.
Apakah grup/thread berbagi konteks dengan DM?
Chat langsung digabungkan ke sesi utama secara default. Grup/channel memiliki kunci sesi sendiri, dan topik Telegram / thread Discord adalah sesi terpisah. Lihat Grup dan Pesan grup.
Berapa banyak workspace dan agen yang dapat saya buat?
Tidak ada batas keras. Puluhan (bahkan ratusan) tidak masalah, tetapi perhatikan:
- Pertumbuhan disk: sesi + transkrip berada di
~/.openclaw/agents/<agentId>/sessions/. - Biaya token: lebih banyak agen berarti lebih banyak penggunaan model secara bersamaan.
- Beban operasional: profil autentikasi, workspace, dan perutean channel per agen.
Kiat:
- Pertahankan satu workspace aktif per agen (
agents.defaults.workspace). - Pangkas sesi lama (hapus JSONL atau entri penyimpanan) jika disk membesar.
- Gunakan
openclaw doctoruntuk menemukan workspace tersisa dan ketidakcocokan profil.
Dapatkah saya menjalankan beberapa bot atau chat pada saat yang sama (Slack), dan bagaimana cara menyiapkannya?
Ya. Gunakan Perutean Multi-Agen untuk menjalankan beberapa agen terisolasi dan merutekan pesan masuk berdasarkan channel/akun/rekan. Slack didukung sebagai channel dan dapat diikat ke agen tertentu.
Akses browser sangat kuat tetapi bukan berarti "dapat melakukan apa pun yang bisa dilakukan manusia" - anti-bot, CAPTCHA, dan MFA masih dapat memblokir otomatisasi. Untuk kontrol browser paling andal, gunakan Chrome MCP lokal pada host, atau gunakan CDP pada mesin yang benar-benar menjalankan browser.
Penyiapan praktik terbaik:
- Host Gateway yang selalu aktif (VPS/Mac mini).
- Satu agen per peran (binding).
- Channel Slack yang diikat ke agen tersebut.
- Browser lokal melalui Chrome MCP atau sebuah node bila diperlukan.
Dokumentasi: Perutean Multi-Agen, Slack, Browser, Node.
Model, failover, dan profil autentikasi
Tanya jawab model — default, pemilihan, alias, pengalihan, failover, profil autentikasi — tersedia di FAQ Model.
Gateway: port, "sudah berjalan", dan mode jarak jauh
Port apa yang digunakan Gateway?
gateway.port mengontrol satu port multipleks untuk WebSocket + HTTP (Control UI, hook, dll.).
Prioritas:
--port > OPENCLAW_GATEWAY_PORT > gateway.port > default 18789
Mengapa openclaw gateway status mengatakan "Runtime: running" tetapi "Connectivity probe: failed"?
Karena "running" adalah tampilan supervisor (launchd/systemd/schtasks). Probe konektivitas adalah CLI yang benar-benar terhubung ke WebSocket gateway.
Gunakan openclaw gateway status dan percayai baris-baris ini:
Probe target:(URL yang benar-benar digunakan probe)Listening:(yang benar-benar terikat pada port)Last gateway error:(penyebab akar umum ketika proses masih hidup tetapi port tidak mendengarkan)
Mengapa openclaw gateway status menampilkan "Config (cli)" dan "Config (service)" yang berbeda?
Anda mengedit satu file konfigurasi sementara service menjalankan file lain (sering kali ketidakcocokan --profile / OPENCLAW_STATE_DIR).
Perbaikan:
openclaw gateway install --force
Jalankan itu dari --profile / lingkungan yang sama dengan yang Anda ingin digunakan oleh service.
Apa arti "another gateway instance is already listening"?
OpenClaw menegakkan lock runtime dengan mengikat listener WebSocket segera saat startup (default ws://127.0.0.1:18789). Jika bind gagal dengan EADDRINUSE, ia melempar GatewayLockError yang menunjukkan instans lain sudah mendengarkan.
Perbaikan: hentikan instans lain, bebaskan port, atau jalankan dengan openclaw gateway --port <port>.
Bagaimana cara menjalankan OpenClaw dalam mode jarak jauh (klien terhubung ke Gateway di tempat lain)?
Atur gateway.mode: "remote" dan arahkan ke URL WebSocket jarak jauh, opsional dengan kredensial jarak jauh rahasia bersama:
{
gateway: {
mode: "remote",
remote: {
url: "ws://gateway.tailnet:18789",
token: "your-token",
password: "your-password",
},
},
}
Catatan:
openclaw gatewayhanya dimulai saatgateway.modeadalahlocal(atau Anda meneruskan flag override).- Aplikasi macOS memantau file konfigurasi dan mengganti mode secara langsung saat nilai-nilai ini berubah.
gateway.remote.token/.passwordhanya kredensial jarak jauh sisi klien; keduanya tidak mengaktifkan autentikasi gateway lokal dengan sendirinya.
Control UI mengatakan "unauthorized" (atau terus menyambung ulang). Apa sekarang?
Jalur autentikasi gateway Anda dan metode autentikasi UI tidak cocok.
Fakta (dari kode):
- Control UI menyimpan token di
sessionStorageuntuk sesi tab browser saat ini dan URL gateway yang dipilih, sehingga refresh pada tab yang sama tetap berfungsi tanpa memulihkan persistensi token localStorage yang berumur panjang. - Pada
AUTH_TOKEN_MISMATCH, klien tepercaya dapat mencoba satu retry terbatas dengan token perangkat yang di-cache saat gateway mengembalikan petunjuk retry (canRetryWithDeviceToken=true,recommendedNextStep=retry_with_device_token). - Retry token yang di-cache itu sekarang menggunakan ulang cakupan yang disetujui dan di-cache bersama token perangkat. Pemanggil
deviceTokeneksplisit /scopeseksplisit tetap mempertahankan set cakupan yang mereka minta alih-alih mewarisi cakupan yang di-cache. - Di luar jalur retry itu, prioritas autentikasi koneksi adalah token/kata sandi bersama eksplisit terlebih dahulu, lalu
deviceTokeneksplisit, lalu token perangkat tersimpan, lalu token bootstrap. - Pemeriksaan cakupan token bootstrap diberi prefiks peran. Allowlist operator bootstrap bawaan hanya memenuhi permintaan operator; node atau peran non-operator lainnya tetap memerlukan cakupan di bawah prefiks perannya sendiri.
Perbaikan:
- Tercepat:
openclaw dashboard(mencetak + menyalin URL dashboard, mencoba membuka; menampilkan petunjuk SSH jika headless). - Jika Anda belum memiliki token:
openclaw doctor --generate-gateway-token. - Jika jarak jauh, buat tunnel terlebih dahulu:
ssh -N -L 18789:127.0.0.1:18789 user@hostlalu bukahttp://127.0.0.1:18789/. - Mode rahasia bersama: atur
gateway.auth.token/OPENCLAW_GATEWAY_TOKENataugateway.auth.password/OPENCLAW_GATEWAY_PASSWORD, lalu tempel rahasia yang cocok di pengaturan Control UI. - Mode Tailscale Serve: pastikan
gateway.auth.allowTailscalediaktifkan dan Anda membuka URL Serve, bukan URL loopback/tailnet mentah yang melewati header identitas Tailscale. - Mode proxy tepercaya: pastikan Anda datang melalui proxy sadar-identitas yang dikonfigurasi, bukan URL gateway mentah. Proxy loopback pada host yang sama juga memerlukan
gateway.auth.trustedProxy.allowLoopback = true. - Jika ketidakcocokan tetap ada setelah satu retry, rotasi/setujui ulang token perangkat yang dipasangkan:
openclaw devices listopenclaw devices rotate --device <id> --role operator
- Jika panggilan rotasi itu mengatakan ditolak, periksa dua hal:
- sesi perangkat yang dipasangkan hanya dapat merotasi perangkat miliknya sendiri kecuali mereka juga memiliki
operator.admin - nilai
--scopeeksplisit tidak boleh melebihi cakupan operator pemanggil saat ini
- sesi perangkat yang dipasangkan hanya dapat merotasi perangkat miliknya sendiri kecuali mereka juga memiliki
- Masih buntu? Jalankan
openclaw status --alldan ikuti Pemecahan Masalah. Lihat Dashboard untuk detail autentikasi.
Saya mengatur gateway.bind ke tailnet tetapi tidak dapat bind dan tidak ada yang mendengarkan
Bind tailnet memilih IP Tailscale dari antarmuka jaringan Anda (100.64.0.0/10). Jika mesin tidak berada di Tailscale (atau antarmukanya down), tidak ada yang bisa di-bind.
Perbaikan:
- Mulai Tailscale pada host itu (agar memiliki alamat 100.x), atau
- Beralih ke
gateway.bind: "loopback"/"lan".
Catatan: tailnet bersifat eksplisit. auto lebih memilih loopback; gunakan gateway.bind: "tailnet" saat Anda menginginkan bind khusus tailnet.
Dapatkah saya menjalankan beberapa Gateway pada host yang sama?
Biasanya tidak - satu Gateway dapat menjalankan beberapa channel pesan dan agen. Gunakan beberapa Gateway hanya saat Anda membutuhkan redundansi (misalnya: bot penyelamat) atau isolasi keras.
Ya, tetapi Anda harus mengisolasi:
OPENCLAW_CONFIG_PATH(konfigurasi per instans)OPENCLAW_STATE_DIR(state per instans)agents.defaults.workspace(isolasi workspace)gateway.port(port unik)
Penyiapan cepat (direkomendasikan):
- Gunakan
openclaw --profile <name> ...per instans (otomatis membuat~/.openclaw-<name>). - Atur
gateway.portunik di setiap konfigurasi profil (atau teruskan--portuntuk menjalankan manual). - Instal service per profil:
openclaw --profile <name> gateway install.
Profil juga menambahkan sufiks pada nama service (ai.openclaw.<profile>; legacy com.openclaw.*, openclaw-gateway-<profile>.service, OpenClaw Gateway (<profile>)).
Panduan lengkap: Beberapa gateway.
Apa arti "invalid handshake" / kode 1008?
Gateway adalah server WebSocket, dan ia mengharapkan pesan pertama berupa frame connect. Jika menerima yang lain, ia menutup koneksi
dengan kode 1008 (pelanggaran kebijakan).
Penyebab umum:
- Anda membuka URL HTTP di browser (
http://...) alih-alih klien WS. - Anda menggunakan port atau path yang salah.
- Proxy atau tunnel menghapus header autentikasi atau mengirim permintaan non-Gateway.
Perbaikan cepat:
- Gunakan URL WS:
ws://<host>:18789(atauwss://...jika HTTPS). - Jangan buka port WS di tab browser biasa.
- Jika autentikasi aktif, sertakan token/kata sandi dalam frame
connect.
Jika Anda menggunakan CLI atau TUI, URL seharusnya terlihat seperti:
openclaw tui --url ws://<host>:18789 --token <token>
Detail protokol: Protokol Gateway.
Logging dan debugging
Di mana log berada?
Log file (terstruktur):
/tmp/openclaw/openclaw-YYYY-MM-DD.log
Anda dapat mengatur path stabil melalui logging.file. Level log file dikontrol oleh logging.level. Verbositas konsol dikontrol oleh --verbose dan logging.consoleLevel.
Tail log tercepat:
openclaw logs --follow
Log service/supervisor (saat gateway berjalan melalui launchd/systemd):
- macOS:
$OPENCLAW_STATE_DIR/logs/gateway.logdangateway.err.log(default:~/.openclaw/logs/...; profil menggunakan~/.openclaw-<profile>/logs/...) - Linux:
journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager - Windows:
schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST
Lihat Pemecahan Masalah untuk selengkapnya.
Bagaimana cara memulai/menghentikan/memulai ulang service Gateway?
Gunakan helper gateway:
openclaw gateway status
openclaw gateway restart
Jika Anda menjalankan gateway secara manual, openclaw gateway --force dapat merebut kembali port. Lihat Gateway.
Saya menutup terminal saya di Windows - bagaimana cara memulai ulang OpenClaw?
Ada dua mode instalasi Windows:
1) WSL2 (direkomendasikan): Gateway berjalan di dalam Linux.
Buka PowerShell, masuk ke WSL, lalu mulai ulang:
wsl
openclaw gateway status
openclaw gateway restart
Jika Anda belum pernah menginstal service, mulai di foreground:
openclaw gateway run
2) Windows native (tidak direkomendasikan): Gateway berjalan langsung di Windows.
Buka PowerShell dan jalankan:
openclaw gateway status
openclaw gateway restart
Jika Anda menjalankannya secara manual (tanpa service), gunakan:
openclaw gateway run
Dokumentasi: Windows (WSL2), Runbook service Gateway.
Gateway aktif tetapi balasan tidak pernah tiba. Apa yang harus saya periksa?
Mulai dengan pemeriksaan kesehatan cepat:
openclaw status
openclaw models status
openclaw channels status
openclaw logs --follow
Penyebab umum:
- Autentikasi model tidak dimuat di host gateway (periksa
models status). - Pemasangan/allowlist kanal memblokir balasan (periksa konfigurasi kanal + log).
- WebChat/Dashboard terbuka tanpa token yang benar.
Jika Anda remote, pastikan koneksi tunnel/Tailscale aktif dan WebSocket Gateway dapat dijangkau.
Dokumen: Kanal, Pemecahan masalah, Akses remote.
"Terputus dari gateway: tidak ada alasan" - sekarang apa?
Ini biasanya berarti UI kehilangan koneksi WebSocket. Periksa:
- Apakah Gateway berjalan?
openclaw gateway status - Apakah Gateway sehat?
openclaw status - Apakah UI memiliki token yang benar?
openclaw dashboard - Jika remote, apakah tautan tunnel/Tailscale aktif?
Lalu ikuti log:
openclaw logs --follow
Dokumen: Dashboard, Akses remote, Pemecahan masalah.
Telegram setMyCommands gagal. Apa yang harus saya periksa?
Mulai dengan log dan status kanal:
openclaw channels status
openclaw channels logs --channel telegram
Lalu cocokkan galatnya:
BOT_COMMANDS_TOO_MUCH: menu Telegram memiliki terlalu banyak entri. OpenClaw sudah memangkas hingga batas Telegram dan mencoba lagi dengan perintah yang lebih sedikit, tetapi beberapa entri menu masih perlu dihapus. Kurangi perintah plugin/skill/kustom, atau nonaktifkanchannels.telegram.commands.nativejika Anda tidak membutuhkan menu tersebut.TypeError: fetch failed,Network request for 'setMyCommands' failed!, atau galat jaringan serupa: jika Anda menggunakan VPS atau berada di balik proxy, pastikan HTTPS keluar diizinkan dan DNS berfungsi untukapi.telegram.org.
Jika Gateway berada di remote, pastikan Anda melihat log pada host Gateway.
Dokumen: Telegram, Pemecahan masalah kanal.
TUI tidak menampilkan output. Apa yang harus saya periksa?
Pertama pastikan Gateway dapat dijangkau dan agen dapat berjalan:
openclaw status
openclaw models status
openclaw logs --follow
Di TUI, gunakan /status untuk melihat status saat ini. Jika Anda mengharapkan balasan di kanal chat,
pastikan pengiriman diaktifkan (/deliver on).
Dokumen: TUI, Perintah slash.
Bagaimana cara menghentikan sepenuhnya lalu memulai Gateway?
Jika Anda menginstal layanan:
openclaw gateway stop
openclaw gateway start
Ini menghentikan/memulai layanan terawasi (launchd di macOS, systemd di Linux). Gunakan ini ketika Gateway berjalan di latar belakang sebagai daemon.
Jika Anda menjalankannya di foreground, hentikan dengan Ctrl-C, lalu:
openclaw gateway run
Dokumen: Runbook layanan Gateway.
ELI5: openclaw gateway restart vs openclaw gateway
openclaw gateway restart: memulai ulang layanan latar belakang (launchd/systemd).openclaw gateway: menjalankan gateway di foreground untuk sesi terminal ini.
Jika Anda menginstal layanan, gunakan perintah gateway. Gunakan openclaw gateway ketika
Anda menginginkan proses sekali jalan di foreground.
Cara tercepat mendapatkan detail lebih banyak saat sesuatu gagal
Mulai Gateway dengan --verbose untuk mendapatkan detail konsol yang lebih banyak. Lalu periksa file log untuk autentikasi kanal, perutean model, dan galat RPC.
Media dan lampiran
Skill saya menghasilkan gambar/PDF, tetapi tidak ada yang terkirim
Lampiran keluar dari agen harus menyertakan baris MEDIA:<path-or-url> (pada baris tersendiri). Lihat Penyiapan asisten OpenClaw dan Pengiriman agen.
Pengiriman CLI:
openclaw message send --target +15555550123 --message "Here you go" --media /path/to/file.png
Periksa juga:
- Kanal target mendukung media keluar dan tidak diblokir oleh allowlist.
- File berada dalam batas ukuran penyedia (gambar diubah ukurannya hingga maksimum 2048px).
tools.fs.workspaceOnly=truemembuat pengiriman jalur lokal terbatas pada workspace, temp/media-store, dan file yang divalidasi sandbox.tools.fs.workspaceOnly=falsememungkinkanMEDIA:mengirim file lokal host yang sudah dapat dibaca agen, tetapi hanya untuk media plus jenis dokumen aman (gambar, audio, video, PDF, dan dokumen Office). Teks biasa dan file yang mirip rahasia tetap diblokir.
Lihat Gambar.
Keamanan dan kontrol akses
Apakah aman mengekspos OpenClaw ke DM masuk?
Perlakukan DM masuk sebagai input yang tidak tepercaya. Default dirancang untuk mengurangi risiko:
- Perilaku default pada kanal yang mendukung DM adalah pemasangan:
- Pengirim yang tidak dikenal menerima kode pemasangan; bot tidak memproses pesan mereka.
- Setujui dengan:
openclaw pairing approve --channel <channel> [--account <id>] <code> - Permintaan tertunda dibatasi hingga 3 per kanal; periksa
openclaw pairing list --channel <channel> [--account <id>]jika kode tidak sampai.
- Membuka DM secara publik memerlukan opt-in eksplisit (
dmPolicy: "open"dan allowlist"*").
Jalankan openclaw doctor untuk memunculkan kebijakan DM yang berisiko.
Apakah prompt injection hanya menjadi kekhawatiran untuk bot publik?
Tidak. Prompt injection terkait dengan konten yang tidak tepercaya, bukan hanya siapa yang dapat mengirim DM ke bot. Jika asisten Anda membaca konten eksternal (pencarian/pengambilan web, halaman browser, email, dokumen, lampiran, log yang ditempel), konten tersebut dapat menyertakan instruksi yang mencoba membajak model. Ini dapat terjadi bahkan jika Anda adalah satu-satunya pengirim.
Risiko terbesar muncul saat alat diaktifkan: model dapat ditipu untuk mengekfiltrasi konteks atau memanggil alat atas nama Anda. Kurangi radius dampaknya dengan:
- menggunakan agen "pembaca" yang read-only atau alatnya dinonaktifkan untuk merangkum konten yang tidak tepercaya
- menonaktifkan
web_search/web_fetch/browseruntuk agen yang alatnya diaktifkan - memperlakukan teks file/dokumen yang didekode sebagai tidak tepercaya juga: OpenResponses
input_filedan ekstraksi lampiran media sama-sama membungkus teks yang diekstrak dalam penanda batas konten eksternal eksplisit, bukan meneruskan teks file mentah - sandboxing dan allowlist alat yang ketat
Detail: Keamanan.
Haruskah bot saya memiliki email, akun GitHub, atau nomor telepon sendiri?
Ya, untuk sebagian besar penyiapan. Mengisolasi bot dengan akun dan nomor telepon terpisah mengurangi radius dampak jika terjadi masalah. Ini juga memudahkan rotasi kredensial atau pencabutan akses tanpa memengaruhi akun pribadi Anda.
Mulailah dari yang kecil. Berikan akses hanya ke alat dan akun yang benar-benar Anda butuhkan, lalu perluas nanti jika diperlukan.
Dokumen: Keamanan, Pemasangan.
Bisakah saya memberinya otonomi atas pesan teks saya dan apakah itu aman?
Kami tidak merekomendasikan otonomi penuh atas pesan pribadi Anda. Pola paling aman adalah:
- Pertahankan DM dalam mode pemasangan atau allowlist ketat.
- Gunakan nomor atau akun terpisah jika Anda ingin bot mengirim pesan atas nama Anda.
- Biarkan bot membuat draf, lalu setujui sebelum mengirim.
Jika Anda ingin bereksperimen, lakukan pada akun khusus dan tetap isolasikan. Lihat Keamanan.
Bisakah saya menggunakan model yang lebih murah untuk tugas asisten pribadi?
Ya, jika agen hanya untuk chat dan inputnya tepercaya. Tingkatan yang lebih kecil lebih rentan terhadap pembajakan instruksi, jadi hindari untuk agen yang alatnya diaktifkan atau saat membaca konten yang tidak tepercaya. Jika Anda harus menggunakan model yang lebih kecil, kunci alat dan jalankan di dalam sandbox. Lihat Keamanan.
Saya menjalankan /start di Telegram tetapi tidak mendapatkan kode pemasangan
Kode pemasangan dikirim hanya saat pengirim yang tidak dikenal mengirim pesan ke bot dan
dmPolicy: "pairing" diaktifkan. /start sendiri tidak menghasilkan kode.
Periksa permintaan tertunda:
openclaw pairing list telegram
Jika Anda menginginkan akses langsung, masukkan id pengirim Anda ke allowlist atau atur dmPolicy: "open"
untuk akun tersebut.
WhatsApp: apakah bot akan mengirim pesan ke kontak saya? Bagaimana cara kerja pemasangan?
Tidak. Kebijakan DM WhatsApp default adalah pemasangan. Pengirim yang tidak dikenal hanya mendapatkan kode pemasangan dan pesan mereka tidak diproses. OpenClaw hanya membalas chat yang diterimanya atau pengiriman eksplisit yang Anda picu.
Setujui pemasangan dengan:
openclaw pairing approve whatsapp <code>
Daftar permintaan tertunda:
openclaw pairing list whatsapp
Prompt nomor telepon wizard: ini digunakan untuk mengatur allowlist/pemilik Anda agar DM Anda sendiri diizinkan. Ini tidak digunakan untuk pengiriman otomatis. Jika Anda menjalankan pada nomor WhatsApp pribadi Anda, gunakan nomor tersebut dan aktifkan channels.whatsapp.selfChatMode.
Perintah chat, membatalkan tugas, dan "tidak mau berhenti"
Bagaimana cara menghentikan pesan sistem internal agar tidak tampil di chat?
Sebagian besar pesan internal atau alat hanya muncul ketika verbose, trace, atau reasoning diaktifkan untuk sesi tersebut.
Perbaiki di chat tempat Anda melihatnya:
/verbose off
/trace off
/reasoning off
Jika masih berisik, periksa pengaturan sesi di Control UI dan atur verbose
ke inherit. Pastikan juga Anda tidak menggunakan profil bot dengan verboseDefault yang diatur
ke on di konfigurasi.
Dokumen: Thinking dan verbose, Keamanan.
Bagaimana cara menghentikan/membatalkan tugas yang sedang berjalan?
Kirim salah satu dari ini sebagai pesan mandiri (tanpa slash):
stop
stop action
stop current action
stop run
stop current run
stop agent
stop the agent
stop openclaw
openclaw stop
stop don't do anything
stop do not do anything
stop doing anything
please stop
stop please
abort
esc
wait
exit
interrupt
Ini adalah pemicu pembatalan (bukan perintah slash).
Untuk proses latar belakang (dari alat exec), Anda dapat meminta agen menjalankan:
process action:kill sessionId:XXX
Ringkasan perintah slash: lihat Perintah slash.
Sebagian besar perintah harus dikirim sebagai pesan mandiri yang dimulai dengan /, tetapi beberapa pintasan (seperti /status) juga berfungsi inline untuk pengirim yang ada di allowlist.
Bagaimana cara mengirim pesan Discord dari Telegram? ("Pesan lintas-konteks ditolak")
OpenClaw memblokir pesan lintas-penyedia secara default. Jika panggilan alat terikat ke Telegram, panggilan itu tidak akan mengirim ke Discord kecuali Anda mengizinkannya secara eksplisit.
Aktifkan pesan lintas-penyedia untuk agen:
{
tools: {
message: {
crossContext: {
allowAcrossProviders: true,
marker: { enabled: true, prefix: "[from {channel}] " },
},
},
},
}
Mulai ulang gateway setelah mengedit konfigurasi.
Mengapa bot terasa seperti "mengabaikan" pesan beruntun?
Mode antrean mengontrol bagaimana pesan baru berinteraksi dengan proses yang sedang berjalan. Gunakan /queue untuk mengubah mode:
steer- antrekan semua pengarahan tertunda untuk batas model berikutnya dalam proses saat iniqueue- pengarahan lama satu per satufollowup- jalankan pesan satu per satucollect- kelompokkan pesan dan balas sekalisteer-backlog- arahkan sekarang, lalu proses backloginterrupt- batalkan proses saat ini dan mulai dari awal
Mode default adalah steer. Anda dapat menambahkan opsi seperti debounce:0.5s cap:25 drop:summarize untuk mode tindak lanjut. Lihat Antrean perintah dan Antrean pengarahan.
Lain-lain
Apa model default untuk Anthropic dengan API key?
Di OpenClaw, kredensial dan pemilihan model terpisah. Mengatur ANTHROPIC_API_KEY (atau menyimpan API key Anthropic di profil autentikasi) mengaktifkan autentikasi, tetapi model default sebenarnya adalah apa pun yang Anda konfigurasi di agents.defaults.model.primary (misalnya, anthropic/claude-sonnet-4-6 atau anthropic/claude-opus-4-6). Jika Anda melihat No credentials found for profile "anthropic:default", itu berarti Gateway tidak dapat menemukan kredensial Anthropic di auth-profiles.json yang diharapkan untuk agen yang sedang berjalan.
Masih mengalami kendala? Tanyakan di Discord atau buka diskusi GitHub.
Terkait
- FAQ penggunaan pertama — instalasi, onboarding, autentikasi, langganan, kegagalan awal
- FAQ model — pemilihan model, failover, profil autentikasi
- Pemecahan masalah — triase berdasarkan gejala