Overview
Alat dan Plugin
Semua yang dilakukan agen selain menghasilkan teks terjadi melalui alat. Alat adalah cara agen membaca file, menjalankan perintah, menjelajahi web, mengirim pesan, dan berinteraksi dengan perangkat.
Alat, Skills, dan Plugin
OpenClaw memiliki tiga lapisan yang bekerja bersama:
Alat adalah yang dipanggil agen
Alat adalah fungsi bertipe yang dapat dipanggil agen (mis. exec, browser,
web_search, message). OpenClaw menyertakan sekumpulan alat bawaan dan
Plugin dapat mendaftarkan alat tambahan.
Agen melihat alat sebagai definisi fungsi terstruktur yang dikirim ke API model.
Skills mengajarkan agen kapan dan bagaimana
Skills adalah file markdown (SKILL.md) yang disuntikkan ke prompt sistem.
Skills memberi agen konteks, batasan, dan panduan langkah demi langkah untuk
menggunakan alat secara efektif. Skills berada di workspace Anda, di folder bersama,
atau disertakan di dalam Plugin.
Plugin mengemas semuanya bersama
Plugin adalah paket yang dapat mendaftarkan kombinasi kemampuan apa pun: kanal, penyedia model, alat, Skills, ucapan, transkripsi realtime, suara realtime, pemahaman media, pembuatan gambar, pembuatan video, pengambilan web, pencarian web, dan lainnya. Sebagian Plugin bersifat inti (disertakan bersama OpenClaw), sedangkan yang lain bersifat eksternal (dipublikasikan di npm oleh komunitas).
Alat bawaan
Alat ini disertakan bersama OpenClaw dan tersedia tanpa menginstal Plugin apa pun:
| Alat | Fungsinya | Halaman |
|---|---|---|
exec / process |
Menjalankan perintah shell, mengelola proses latar belakang | Exec, Persetujuan Exec |
code_execution |
Menjalankan analisis Python jarak jauh dalam sandbox | Eksekusi Kode |
browser |
Mengontrol browser Chromium (navigasi, klik, tangkapan layar) | Browser |
web_search / x_search / web_fetch |
Mencari di web, mencari postingan X, mengambil konten halaman | Web, Pengambilan Web |
read / write / edit |
I/O file di workspace | |
apply_patch |
Patch file multi-hunk | Terapkan Patch |
message |
Mengirim pesan di semua kanal | Kirim Agen |
canvas |
Menggerakkan Canvas node (presentasi, eval, snapshot) | |
nodes |
Menemukan dan menargetkan perangkat yang dipasangkan | |
cron / gateway |
Mengelola pekerjaan terjadwal; memeriksa, menambal, memulai ulang, atau memperbarui gateway | |
image / image_generate |
Menganalisis atau menghasilkan gambar | Pembuatan Gambar |
music_generate |
Menghasilkan trek musik | Pembuatan Musik |
video_generate |
Menghasilkan video | Pembuatan Video |
tts |
Konversi teks-ke-ucapan satu kali | TTS |
sessions_* / subagents / agents_list |
Manajemen sesi, status, dan orkestrasi sub-agen | Sub-agen |
session_status |
Pembacaan balik ringan bergaya /status dan override model sesi |
Alat Sesi |
Untuk pekerjaan gambar, gunakan image untuk analisis dan image_generate untuk pembuatan atau pengeditan. Jika Anda menargetkan openai/*, google/*, fal/*, atau penyedia gambar non-default lainnya, konfigurasi auth/kunci API penyedia tersebut terlebih dahulu.
Untuk pekerjaan musik, gunakan music_generate. Jika Anda menargetkan google/*, minimax/*, atau penyedia musik non-default lainnya, konfigurasi auth/kunci API penyedia tersebut terlebih dahulu.
Untuk pekerjaan video, gunakan video_generate. Jika Anda menargetkan qwen/* atau penyedia video non-default lainnya, konfigurasi auth/kunci API penyedia tersebut terlebih dahulu.
Untuk pembuatan audio berbasis workflow, gunakan music_generate saat Plugin seperti
ComfyUI mendaftarkannya. Ini terpisah dari tts, yang merupakan teks-ke-ucapan.
session_status adalah alat status/pembacaan balik ringan dalam grup sesi.
Alat ini menjawab pertanyaan bergaya /status tentang sesi saat ini dan dapat
secara opsional menetapkan override model per sesi; model=default menghapus
override tersebut. Seperti /status, alat ini dapat mengisi balik penghitung token/cache yang jarang dan
label model runtime aktif dari entri penggunaan transkrip terbaru.
gateway adalah alat runtime khusus pemilik untuk operasi gateway:
config.schema.lookupuntuk satu subtree konfigurasi berbatas path sebelum pengeditanconfig.getuntuk snapshot konfigurasi saat ini + hashconfig.patchuntuk pembaruan konfigurasi parsial dengan mulai ulangconfig.applyhanya untuk penggantian konfigurasi penuhupdate.rununtuk pembaruan mandiri eksplisit + mulai ulang
Untuk perubahan parsial, pilih config.schema.lookup lalu config.patch. Gunakan
config.apply hanya saat Anda sengaja mengganti seluruh konfigurasi.
Untuk dokumentasi konfigurasi yang lebih luas, baca Konfigurasi dan
Referensi konfigurasi.
Alat ini juga menolak mengubah tools.exec.ask atau tools.exec.security;
alias lama tools.bash.* dinormalisasi ke path exec terlindungi yang sama.
Alat yang disediakan Plugin
Plugin dapat mendaftarkan alat tambahan. Beberapa contoh:
- Diff — penampil dan perender diff
- Tugas LLM — langkah LLM khusus JSON untuk output terstruktur
- Lobster — runtime workflow bertipe dengan persetujuan yang dapat dilanjutkan
- Pembuatan Musik — alat
music_generatebersama dengan penyedia berbasis workflow - OpenProse — orkestrasi workflow yang mengutamakan markdown
- Tokenjuice — memadatkan hasil alat
execdanbashyang berisik
Alat Plugin tetap dibuat dengan api.registerTool(...) dan dideklarasikan dalam
daftar contracts.tools pada manifes Plugin. OpenClaw menangkap deskriptor
alat yang tervalidasi selama discovery dan menyimpannya dalam cache berdasarkan sumber dan kontrak Plugin, sehingga
perencanaan alat berikutnya dapat melewati pemuatan runtime Plugin. Eksekusi alat tetap memuat
Plugin pemilik dan memanggil implementasi terdaftar yang aktif.
Konfigurasi alat
Daftar allow dan deny
Kontrol alat mana yang dapat dipanggil agen melalui tools.allow / tools.deny di
konfigurasi. Deny selalu menang atas allow.
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
OpenClaw gagal secara tertutup saat allowlist eksplisit tidak menghasilkan alat yang dapat dipanggil.
Misalnya, tools.allow: ["query_db"] hanya berfungsi jika Plugin yang dimuat benar-benar
mendaftarkan query_db. Jika tidak ada alat bawaan, Plugin, atau MCP bundle yang cocok dengan
allowlist, eksekusi berhenti sebelum pemanggilan model alih-alih berlanjut sebagai
eksekusi hanya-teks yang dapat mengarang hasil alat.
Profil alat
tools.profile menetapkan allowlist dasar sebelum allow/deny diterapkan.
Override per agen: agents.list[].tools.profile.
| Profil | Yang disertakan |
|---|---|
full |
Semua alat inti dan Plugin opsional; baseline tanpa batas untuk akses perintah/kontrol yang lebih luas |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal |
Hanya session_status |
coding menyertakan alat web ringan (web_search, web_fetch, x_search)
tetapi bukan alat kontrol browser penuh. Otomasi browser dapat menggerakkan
sesi nyata dan profil yang sudah login, jadi tambahkan secara eksplisit dengan
tools.alsoAllow: ["browser"] atau per agen
agents.list[].tools.alsoAllow: ["browser"].
Profil coding dan messaging juga mengizinkan alat MCP bundle yang dikonfigurasi
di bawah kunci Plugin bundle-mcp. Tambahkan tools.deny: ["bundle-mcp"] saat Anda
ingin profil mempertahankan bawaan normalnya tetapi menyembunyikan semua alat MCP yang dikonfigurasi.
Profil minimal tidak menyertakan alat MCP bundle.
Contoh (permukaan alat terluas secara default):
{
tools: {
profile: "full",
},
}
Grup alat
Gunakan singkatan group:* dalam daftar allow/deny:
| Grup | Alat |
|---|---|
group:runtime |
exec, process, code_execution (bash diterima sebagai alias untuk exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Semua alat bawaan OpenClaw (tidak mencakup alat Plugin) |
sessions_history mengembalikan tampilan ingatan ulang yang berbatas dan difilter demi keamanan. Ini menghapus
tag pemikiran, scaffolding <relevant-memories>, payload XML pemanggilan alat teks biasa
(termasuk <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls>, dan blok pemanggilan alat yang terpotong),
scaffolding pemanggilan alat yang diturunkan tingkatnya, token kontrol model ASCII/lebar penuh
yang bocor, dan XML pemanggilan alat MiniMax yang tidak valid dari teks asisten, lalu menerapkan
redaksi/pemotongan dan kemungkinan placeholder baris yang terlalu besar alih-alih bertindak
sebagai dump transkrip mentah.
Batasan khusus penyedia
Gunakan tools.byProvider untuk membatasi alat bagi penyedia tertentu tanpa
mengubah default global:
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}