CLI commands
Agen
openclaw agent
Jalankan giliran agen melalui Gateway (gunakan --local untuk tertanam).
Gunakan --agent <id> untuk menargetkan agen terkonfigurasi secara langsung.
Berikan setidaknya satu pemilih sesi:
--to <dest>--session-key <key>--session-id <id>--agent <id>
Terkait:
- Alat kirim agen: Kirim agen
Opsi
-m, --message <text>: isi pesan--message-file <path>: baca isi pesan dari file UTF-8-t, --to <dest>: penerima yang digunakan untuk menurunkan kunci sesi--session-key <key>: kunci sesi eksplisit yang digunakan untuk perutean--session-id <id>: id sesi eksplisit--agent <id>: id agen; mengesampingkan ikatan perutean--model <id>: pengesampingan model untuk proses ini (provider/modelatau id model)--thinking <level>: tingkat berpikir agen (off,minimal,low,medium,high, ditambah tingkat khusus yang didukung penyedia sepertixhigh,adaptive, ataumax)--verbose <on|off>: simpan tingkat verbose untuk sesi--channel <channel>: kanal pengiriman; hilangkan untuk menggunakan kanal sesi utama--reply-to <target>: pengesampingan target pengiriman--reply-channel <channel>: pengesampingan kanal pengiriman--reply-account <id>: pengesampingan akun pengiriman--local: jalankan agen tertanam secara langsung (setelah pramuat registri Plugin)--deliver: kirim balasan kembali ke kanal/target yang dipilih--timeout <seconds>: kesampingkan batas waktu agen (default 600 atau nilai konfigurasi)--json: keluarkan JSON
Contoh
openclaw agent --to +15555550123 --message "status update" --deliveropenclaw agent --agent ops --message "Summarize logs"openclaw agent --agent ops --message-file ./task.mdopenclaw agent --agent ops --model openai/gpt-5.4 --message "Summarize logs"openclaw agent --session-key agent:ops:incident-42 --message "Summarize status"openclaw agent --agent ops --session-key incident-42 --message "Summarize status"openclaw agent --session-id 1234 --message "Summarize inbox" --thinking mediumopenclaw agent --to +15555550123 --message "Trace logs" --verbose on --jsonopenclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"openclaw agent --agent ops --message "Run locally" --localCatatan
- Berikan tepat salah satu dari
--messageatau--message-file.--message-filemempertahankan konten file multi-baris setelah menghapus BOM UTF-8 opsional, dan menolak file yang bukan UTF-8 valid. - Mode Gateway kembali ke agen tertanam ketika permintaan Gateway gagal. Gunakan
--localuntuk memaksa eksekusi tertanam sejak awal. --localtetap memuat registri Plugin terlebih dahulu, sehingga penyedia, alat, dan kanal yang disediakan Plugin tetap tersedia selama proses tertanam.--localdan proses fallback tertanam diperlakukan sebagai proses sekali jalan. Resource loopback MCP bawaan dan sesi stdio Claude hangat yang dibuka untuk proses lokal itu dihentikan setelah balasan, sehingga pemanggilan berskrip tidak membiarkan proses anak lokal tetap hidup.- Proses yang didukung Gateway meninggalkan resource loopback MCP milik Gateway di bawah proses Gateway yang berjalan; klien lama mungkin masih mengirim tanda pembersihan historis, tetapi Gateway menerimanya sebagai no-op kompatibilitas.
--channel,--reply-channel, dan--reply-accountmemengaruhi pengiriman balasan, bukan perutean sesi.--session-keymemilih kunci sesi eksplisit. Kunci berprefiks agen harus menggunakanagent:<agent-id>:<session-key>, dan--agentharus cocok dengan id agen milik kunci ketika keduanya diberikan. Kunci non-sentinel polos dicakupkan ke--agentketika disediakan, atau ke agen default terkonfigurasi jika tidak; misalnya,--agent ops --session-key incident-42dirutekan keagent:ops:incident-42. Literalglobaldanunknowntetap tidak dicakupkan hanya ketika tidak ada--agentyang disediakan; dalam kasus itu, fallback tertanam dan kepemilikan penyimpanan menggunakan agen default terkonfigurasi.--jsonmenjaga stdout khusus untuk respons JSON. Diagnostik Gateway, Plugin, dan fallback tertanam dirutekan ke stderr sehingga skrip dapat mengurai stdout secara langsung.- JSON fallback tertanam menyertakan
meta.transport: "embedded"danmeta.fallbackFrom: "gateway"sehingga skrip dapat membedakan proses fallback dari proses Gateway. - Jika Gateway menerima proses agen tetapi CLI kehabisan waktu saat menunggu balasan akhir, fallback tertanam menggunakan id sesi/proses eksplisit
gateway-fallback-*yang baru dan melaporkanmeta.fallbackReason: "gateway_timeout"ditambah bidang sesi fallback. Ini menghindari perebutan kunci transkrip milik Gateway atau penggantian diam-diam sesi percakapan terute asli. - Untuk proses yang didukung Gateway,
SIGTERMdanSIGINTmenginterupsi permintaan CLI yang sedang menunggu. Jika Gateway sudah menerima proses, CLI juga mengirimchat.abortuntuk id proses yang diterima itu sebelum keluar. Proses--locallokal dan proses fallback tertanam menerima sinyal abort yang sama, tetapi tidak mengirimchat.abort. Jika duplikat--run-idmencapai Gateway saat proses agen asli masih aktif, respons duplikat melaporkanstatus: "in_flight"dan CLI non-JSON mencetak diagnostik stderr alih-alih balasan kosong. Untuk pembungkus cron/systemd eksternal, pertahankan penahan hard-kill luar sepertitimeout -k 60 600 openclaw agent ...agar supervisor tetap dapat menuai proses jika penghentian tidak dapat selesai. - Ketika perintah ini memicu regenerasi
models.json, kredensial penyedia yang dikelola SecretRef disimpan sebagai penanda non-rahasia (misalnya nama variabel env,secretref-env:ENV_VAR_NAME, atausecretref-managed), bukan plaintext rahasia yang terselesaikan. - Penulisan penanda bersifat otoritatif sumber: OpenClaw menyimpan penanda dari snapshot konfigurasi sumber aktif, bukan dari nilai rahasia runtime yang terselesaikan.
Status pengiriman JSON
Ketika --json --deliver digunakan, respons JSON CLI dapat menyertakan deliveryStatus tingkat atas sehingga skrip dapat membedakan pengiriman yang terkirim, ditekan, sebagian, dan gagal:
{ "payloads": [{ "text": "Report ready", "mediaUrl": null }], "meta": { "durationMs": 1200 }, "deliveryStatus": { "requested": true, "attempted": true, "status": "sent", "succeeded": true, "resultCount": 1 }}deliveryStatus.status adalah salah satu dari sent, suppressed, partial_failed, atau failed. suppressed berarti pengiriman sengaja tidak dikirim, misalnya hook pengiriman pesan membatalkannya atau tidak ada hasil yang terlihat; ini tetap merupakan hasil terminal tanpa coba ulang. partial_failed berarti setidaknya satu payload dikirim sebelum payload berikutnya gagal. failed berarti tidak ada pengiriman tahan lama yang selesai atau preflight pengiriman gagal.
Respons CLI yang didukung Gateway juga mempertahankan bentuk hasil mentah Gateway, tempat objek yang sama tersedia di result.deliveryStatus.
Bidang umum:
requested: selalutrueketika objek ada.attempted:truesetelah jalur pengiriman tahan lama berjalan;falseuntuk kegagalan preflight atau tidak ada payload yang terlihat.succeeded:true,false, atau"partial";"partial"berpasangan denganstatus: "partial_failed".reason: alasan snake-case huruf kecil dari pengiriman tahan lama atau validasi preflight. Alasan yang diketahui mencakupcancelled_by_message_sending_hook,no_visible_payload,no_visible_result,channel_resolved_to_internal,unknown_channel,invalid_delivery_target, danno_delivery_target; pengiriman tahan lama yang gagal juga dapat melaporkan tahap yang gagal. Perlakukan nilai tidak dikenal sebagai opaque karena himpunannya dapat bertambah.resultCount: jumlah hasil pengiriman kanal jika tersedia.sentBeforeError:trueketika kegagalan sebagian mengirim setidaknya satu payload sebelum kesalahan.error: booleantrueuntuk pengiriman yang gagal atau sebagian gagal.errorMessage: disertakan hanya ketika pesan kesalahan pengiriman yang mendasari tertangkap. Kegagalan preflight membawaerrordanreasontetapi tanpaerrorMessage.payloadOutcomes: hasil opsional per-payload denganindex,status,reason,resultCount,error,stage,sentBeforeError, atau metadata hook jika tersedia.