Gateway
Panduan operasional Gateway
Gunakan halaman ini untuk startup hari pertama dan operasi hari kedua layanan Gateway.
Diagnostik berbasis gejala dengan rangkaian perintah yang persis dan pola log.
Panduan penyiapan berorientasi tugas + referensi konfigurasi lengkap.
Kontrak SecretRef, perilaku snapshot runtime, dan operasi migrasi/muat ulang.
Aturan target/path secrets apply yang persis dan perilaku profil auth khusus ref.
Startup lokal 5 menit
Mulai Gateway
openclaw gateway --port 18789
# debug/trace mirrored to stdio
openclaw gateway --port 18789 --verbose
# force-kill listener on selected port, then start
openclaw gateway --force
Verifikasi kesehatan layanan
openclaw gateway status
openclaw status
openclaw logs --follow
Baseline sehat: Runtime: running, Connectivity probe: ok, dan Capability: ... yang sesuai dengan ekspektasi Anda. Gunakan openclaw gateway status --require-rpc saat Anda membutuhkan bukti RPC cakupan baca, bukan hanya keterjangkauan.
Validasi kesiapan kanal
openclaw channels status --probe
Dengan gateway yang dapat dijangkau, perintah ini menjalankan probe kanal live per akun dan audit opsional. Jika gateway tidak dapat dijangkau, CLI beralih ke ringkasan kanal khusus konfigurasi, bukan output probe live.
Model runtime
- Satu proses selalu aktif untuk routing, control plane, dan koneksi kanal.
- Satu port multiplexed untuk:
- Kontrol/RPC WebSocket
- API HTTP, kompatibel OpenAI (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Control UI dan hook
- Mode bind default:
loopback. - Auth diwajibkan secara default. Penyiapan shared-secret menggunakan
gateway.auth.token/gateway.auth.password(atauOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), dan penyiapan reverse-proxy non-loopback dapat menggunakangateway.auth.mode: "trusted-proxy".
Endpoint kompatibel OpenAI
Permukaan kompatibilitas OpenClaw yang paling berdampak kini adalah:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Mengapa set ini penting:
- Sebagian besar integrasi Open WebUI, LobeChat, dan LibreChat memeriksa
/v1/modelsterlebih dahulu. - Banyak pipeline RAG dan memori mengharapkan
/v1/embeddings. - Klien agent-native makin sering memilih
/v1/responses.
Catatan perencanaan:
/v1/modelsmengutamakan agen: endpoint ini mengembalikanopenclaw,openclaw/default, danopenclaw/<agentId>.openclaw/defaultadalah alias stabil yang selalu dipetakan ke agen default yang dikonfigurasi.- Gunakan
x-openclaw-modelsaat Anda menginginkan override backend provider/model; jika tidak, model normal dan penyiapan embedding milik agen yang dipilih tetap memegang kendali.
Semua ini berjalan pada port Gateway utama dan menggunakan batas auth operator tepercaya yang sama seperti API HTTP Gateway lainnya.
Prioritas port dan bind
| Pengaturan | Urutan resolusi |
|---|---|
| Port Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Mode bind | CLI/override → gateway.bind → loopback |
Layanan gateway terinstal mencatat --port yang diselesaikan dalam metadata supervisor. Setelah mengubah gateway.port, jalankan openclaw doctor --fix atau openclaw gateway install --force agar launchd/systemd/schtasks memulai proses pada port baru.
Startup Gateway menggunakan port dan bind efektif yang sama saat menanam origin Control UI lokal
untuk bind non-loopback. Misalnya, --bind lan --port 3000
menanam http://localhost:3000 dan http://127.0.0.1:3000 sebelum validasi
runtime berjalan. Tambahkan origin browser jarak jauh apa pun, seperti URL proksi HTTPS, ke
gateway.controlUi.allowedOrigins secara eksplisit.
Mode hot reload
gateway.reload.mode |
Perilaku |
|---|---|
off |
Tidak ada muat ulang konfigurasi |
hot |
Terapkan hanya perubahan yang aman untuk hot reload |
restart |
Mulai ulang pada perubahan yang memerlukan muat ulang |
hybrid (default) |
Terapkan hot saat aman, mulai ulang saat diperlukan |
Set perintah operator
openclaw gateway status
openclaw gateway status --deep # adds a system-level service scan
openclaw gateway status --json
openclaw gateway install
openclaw gateway restart
openclaw gateway stop
openclaw secrets reload
openclaw logs --follow
openclaw doctor
gateway status --deep digunakan untuk penemuan layanan tambahan (LaunchDaemons/systemd system
units/schtasks), bukan probe kesehatan RPC yang lebih mendalam.
Beberapa gateway (host yang sama)
Sebagian besar instalasi sebaiknya menjalankan satu gateway per mesin. Satu gateway dapat menghosting beberapa agen dan kanal.
Anda hanya memerlukan beberapa gateway saat secara sengaja menginginkan isolasi atau bot penyelamat.
Pemeriksaan yang berguna:
openclaw gateway status --deep
openclaw gateway probe
Yang dapat diharapkan:
gateway status --deepdapat melaporkanOther gateway-like services detected (best effort)dan mencetak petunjuk pembersihan saat instalasi launchd/systemd/schtasks lama masih ada.gateway probedapat memperingatkan tentangmultiple reachable gatewayssaat lebih dari satu target menjawab.- Jika itu disengaja, isolasikan port, konfigurasi/status, dan root workspace per gateway.
Checklist per instans:
gateway.portunikOPENCLAW_CONFIG_PATHunikOPENCLAW_STATE_DIRunikagents.defaults.workspaceunik
Contoh:
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001
OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
Penyiapan terperinci: /gateway/multiple-gateways.
Akses jarak jauh
Disarankan: Tailscale/VPN. Fallback: tunnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@host
Lalu hubungkan klien secara lokal ke ws://127.0.0.1:18789.
Lihat: Gateway Jarak Jauh, Autentikasi, Tailscale.
Supervisi dan siklus hidup layanan
Gunakan eksekusi tersupervisi untuk keandalan seperti produksi.
macOS (launchd)
openclaw gateway install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Gunakan openclaw gateway restart untuk mulai ulang. Jangan merangkai openclaw gateway stop dan openclaw gateway start; di macOS, gateway stop secara sengaja menonaktifkan LaunchAgent sebelum menghentikannya.
Label LaunchAgent adalah ai.openclaw.gateway (default) atau ai.openclaw.<profile> (profil bernama). openclaw doctor mengaudit dan memperbaiki drift konfigurasi layanan.
Linux (systemd user)
openclaw gateway install
systemctl --user enable --now openclaw-gateway[-<profile>].service
openclaw gateway status
Untuk persistensi setelah logout, aktifkan lingering:
sudo loginctl enable-linger <user>
Contoh user-unit manual saat Anda membutuhkan path instalasi kustom:
[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/openclaw gateway --port 18789
Restart=always
RestartSec=5
TimeoutStopSec=30
TimeoutStartSec=30
SuccessExitStatus=0 143
KillMode=control-group
[Install]
WantedBy=default.target
Windows (native)
openclaw gateway install
openclaw gateway status --json
openclaw gateway restart
openclaw gateway stop
Startup terkelola Windows native menggunakan Scheduled Task bernama OpenClaw Gateway
(atau OpenClaw Gateway (<profile>) untuk profil bernama). Jika pembuatan Scheduled Task
ditolak, OpenClaw beralih ke launcher folder Startup per pengguna
yang menunjuk ke gateway.cmd di dalam direktori status.
Linux (system service)
Gunakan unit system untuk host multi-pengguna/selalu aktif.
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway[-<profile>].service
Gunakan badan layanan yang sama seperti unit pengguna, tetapi instal di bawah
/etc/systemd/system/openclaw-gateway[-<profile>].service dan sesuaikan
ExecStart= jika biner openclaw Anda berada di tempat lain.
Jangan juga membiarkan openclaw doctor --fix menginstal layanan gateway level pengguna untuk profil/port yang sama. Doctor menolak instalasi otomatis itu saat menemukan layanan gateway OpenClaw level sistem; gunakan OPENCLAW_SERVICE_REPAIR_POLICY=external saat unit system memiliki siklus hidup tersebut.
Jalur cepat profil dev
openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev status
Default mencakup status/konfigurasi terisolasi dan port gateway dasar 19001.
Referensi cepat protokol (tampilan operator)
- Frame klien pertama harus
connect. - Gateway mengembalikan snapshot
hello-ok(presence,health,stateVersion,uptimeMs, batas/kebijakan). hello-ok.features.methods/eventsadalah daftar penemuan konservatif, bukan dump yang dihasilkan dari setiap route helper yang dapat dipanggil.- Request:
req(method, params)→res(ok/payload|error). - Event umum mencakup
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, event siklus hidup pairing/approval, danshutdown.
Run agen terdiri dari dua tahap:
- Ack diterima langsung (
status:"accepted") - Respons penyelesaian final (
status:"ok"|"error"), dengan eventagentyang di-stream di antaranya.
Lihat dokumentasi protokol lengkap: Protokol Gateway.
Pemeriksaan operasional
Liveness
- Buka WS dan kirim
connect. - Harapkan respons
hello-okdengan snapshot.
Readiness
openclaw gateway status
openclaw channels status --probe
openclaw health
Pemulihan gap
Event tidak diputar ulang. Saat ada gap urutan, segarkan status (health, system-presence) sebelum melanjutkan.
Tanda kegagalan umum
| Tanda | Kemungkinan masalah |
|---|---|
refusing to bind gateway ... without auth |
Bind non-loopback tanpa jalur auth gateway yang valid |
another gateway instance is already listening / EADDRINUSE |
Konflik port |
Gateway start blocked: set gateway.mode=local |
Konfigurasi diatur ke mode jarak jauh, atau stamp mode lokal hilang dari konfigurasi yang rusak |
unauthorized during connect |
Auth tidak cocok antara klien dan gateway |
Untuk rangkaian diagnosis lengkap, gunakan Pemecahan Masalah Gateway.
Jaminan keselamatan
- Klien protokol Gateway gagal cepat saat Gateway tidak tersedia (tidak ada mekanisme pengalihan saluran langsung implisit).
- Frame pertama yang tidak valid/bukan koneksi ditolak dan ditutup.
- Penonaktifan tertib memancarkan peristiwa
shutdownsebelum soket ditutup.
Terkait: