Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Saluran & perutean
OpenClaw merutekan balasan kembali ke saluran asal sebuah pesan. Model tidak memilih saluran; perutean bersifat deterministik dan dikendalikan oleh konfigurasi host.Istilah kunci
- Saluran:
telegram,whatsapp,discord,irc,googlechat,slack,signal,imessage,line, plus saluran Plugin.webchatadalah saluran UI WebChat internal dan bukan saluran keluar yang dapat dikonfigurasi. - AccountId: instance akun per saluran (jika didukung).
- Akun default saluran opsional:
channels.<channel>.defaultAccountmemilih akun mana yang digunakan saat jalur keluar tidak menentukanaccountId.- Dalam penyiapan multi-akun, tetapkan default eksplisit (
defaultAccountatauaccounts.default) saat dua akun atau lebih dikonfigurasi. Tanpanya, perutean fallback dapat memilih ID akun ternormalisasi pertama.
- Dalam penyiapan multi-akun, tetapkan default eksplisit (
- AgentId: workspace terisolasi + penyimpanan sesi (“otak”).
- SessionKey: kunci bucket yang digunakan untuk menyimpan konteks dan mengontrol konkurensi.
Prefiks target keluar
Target keluar eksplisit dapat menyertakan prefiks penyedia, sepertitelegram:123 atau tg:123. Core memperlakukan prefiks tersebut sebagai petunjuk pemilihan saluran hanya ketika saluran yang dipilih adalah last atau belum terselesaikan, dan hanya ketika Plugin yang dimuat mengiklankan prefiks tersebut. Jika pemanggil sudah memilih saluran eksplisit, prefiks penyedia harus cocok dengan saluran tersebut; kombinasi lintas saluran seperti pengiriman WhatsApp ke telegram:123 gagal sebelum normalisasi target khusus Plugin.
Prefiks jenis target dan layanan seperti channel:<id>, user:<id>, room:<id>, thread:<id>, imessage:<handle>, dan sms:<number> tetap berada di dalam tata bahasa saluran yang dipilih. Prefiks tersebut tidak memilih penyedia dengan sendirinya.
Bentuk kunci sesi (contoh)
Pesan langsung diciutkan ke sesi utama agen secara default:agent:<agentId>:<mainKey>(default:agent:main:main)
- Grup:
agent:<agentId>:<channel>:group:<id> - Saluran/ruangan:
agent:<agentId>:<channel>:channel:<id>
- Thread Slack/Discord menambahkan
:thread:<threadId>ke kunci dasar. - Topik forum Telegram menyematkan
:topic:<topicId>dalam kunci grup.
agent:main:telegram:group:-1001234567890:topic:42agent:main:discord:channel:123456:thread:987654
Penyematan rute DM utama
Ketikasession.dmScope adalah main, pesan langsung dapat berbagi satu sesi utama.
Untuk mencegah lastRoute sesi ditimpa oleh DM non-pemilik,
OpenClaw menyimpulkan pemilik tersemat dari allowFrom ketika semua ini benar:
allowFrommemiliki tepat satu entri non-wildcard.- Entri tersebut dapat dinormalisasi menjadi ID pengirim konkret untuk saluran tersebut.
- Pengirim DM masuk tidak cocok dengan pemilik tersemat tersebut.
lastRoute sesi utama.
Pencatatan masuk terlindungi
Plugin saluran dapat menandai catatan sesi masuk sebagaicreateIfMissing: false
ketika jalur terlindungi tidak boleh membuat sesi OpenClaw baru. Dalam mode tersebut,
OpenClaw dapat memperbarui metadata dan lastRoute untuk sesi yang ada, tetapi
tidak membuat entri sesi hanya-rute hanya karena sebuah pesan diamati.
Aturan perutean (cara agen dipilih)
Perutean memilih satu agen untuk setiap pesan masuk:- Kecocokan peer persis (
bindingsdenganpeer.kind+peer.id). - Kecocokan peer induk (pewarisan thread).
- Kecocokan guild + peran (Discord) melalui
guildId+roles. - Kecocokan guild (Discord) melalui
guildId. - Kecocokan tim (Slack) melalui
teamId. - Kecocokan akun (
accountIdpada saluran). - Kecocokan saluran (akun apa pun pada saluran tersebut,
accountId: "*"). - Agen default (
agents.list[].default, jika tidak ada entri daftar pertama, fallback kemain).
peer, guildId, teamId, roles), semua bidang yang disediakan harus cocok agar binding tersebut diterapkan.
Agen yang cocok menentukan workspace dan penyimpanan sesi mana yang digunakan.
Grup broadcast (menjalankan beberapa agen)
Grup broadcast memungkinkan Anda menjalankan beberapa agen untuk peer yang sama ketika OpenClaw biasanya akan membalas (misalnya: di grup WhatsApp, setelah gating penyebutan/aktivasi). Konfigurasi:Ringkasan konfigurasi
agents.list: definisi agen bernama (workspace, model, dll.).bindings: memetakan saluran/akun/peer masuk ke agen.
Penyimpanan sesi
Penyimpanan sesi berada di bawah direktori state (default~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.json- Transkrip JSONL berada berdampingan dengan penyimpanan
session.store dan templating {agentId}.
Penemuan sesi Gateway dan ACP juga memindai penyimpanan agen berbasis disk di bawah root
default agents/ dan di bawah root session.store hasil template. Penyimpanan yang ditemukan
harus tetap berada di dalam root agen yang diselesaikan tersebut dan menggunakan file
sessions.json reguler. Symlink dan jalur di luar root diabaikan.
Perilaku WebChat
WebChat terhubung ke agen yang dipilih dan secara default menggunakan sesi utama agen tersebut. Karena itu, WebChat memungkinkan Anda melihat konteks lintas saluran untuk agen tersebut di satu tempat.Konteks balasan
Balasan masuk menyertakan:ReplyToId,ReplyToBody, danReplyToSenderjika tersedia.- Konteks yang dikutip ditambahkan ke
Bodysebagai blok[Replying to ...].