---
read_when:
    - Anda ingin memahami tool apa saja yang disediakan OpenClaw
    - Anda perlu mengonfigurasi, mengizinkan, atau menolak tool
    - Anda sedang memutuskan antara tool bawaan, Skills, dan plugin
summary: 'Ikhtisar tool dan plugin OpenClaw: apa yang dapat dilakukan agen dan cara memperluasnya'
title: Tool dan Plugin
x-i18n:
    generated_at: "2026-04-06T03:12:05Z"
    model: gpt-5.4
    provider: openai
    source_hash: b2371239316997b0fe389bfa2ec38404e1d3e177755ad81ff8035ac583d9adeb
    source_path: tools/index.md
    workflow: 15
---

# Tool dan Plugin

Semua yang dilakukan agen selain menghasilkan teks terjadi melalui **tool**.
Tool adalah cara agen membaca file, menjalankan perintah, menjelajahi web, mengirim
pesan, dan berinteraksi dengan perangkat.

## Tool, skill, dan plugin

OpenClaw memiliki tiga lapisan yang bekerja bersama:

<Steps>
  <Step title="Tool adalah yang dipanggil agen">
    Tool adalah fungsi bertipe yang dapat dipanggil agen (misalnya `exec`, `browser`,
    `web_search`, `message`). OpenClaw menyediakan sekumpulan **tool bawaan** dan
    plugin dapat mendaftarkan tool tambahan.

    Agen melihat tool sebagai definisi fungsi terstruktur yang dikirim ke model API.

  </Step>

  <Step title="Skills mengajarkan agen kapan dan bagaimana">
    Skill adalah file markdown (`SKILL.md`) yang disuntikkan ke system prompt.
    Skills memberi agen konteks, batasan, dan panduan langkah demi langkah untuk
    menggunakan tool secara efektif. Skills berada di workspace Anda, di folder bersama,
    atau disertakan di dalam plugin.

    [Referensi Skills](/id/tools/skills) | [Membuat skill](/id/tools/creating-skills)

  </Step>

  <Step title="Plugin mengemas semuanya bersama">
    Plugin adalah paket yang dapat mendaftarkan kombinasi kapabilitas apa pun:
    channel, provider model, tool, skill, speech, realtime transcription,
    realtime voice, media understanding, image generation, video generation,
    web fetch, web search, dan lainnya. Beberapa plugin bersifat **core** (disertakan bersama
    OpenClaw), lainnya bersifat **external** (dipublikasikan di npm oleh komunitas).

    [Instal dan konfigurasikan plugin](/id/tools/plugin) | [Buat milik Anda sendiri](/id/plugins/building-plugins)

  </Step>
</Steps>

## Tool bawaan

Tool berikut disertakan bersama OpenClaw dan tersedia tanpa menginstal plugin apa pun:

| Tool                                       | Fungsinya                                                              | Halaman                                     |
| ------------------------------------------ | ---------------------------------------------------------------------- | ------------------------------------------- |
| `exec` / `process`                         | Menjalankan perintah shell, mengelola proses latar belakang            | [Exec](/id/tools/exec)                         |
| `code_execution`                           | Menjalankan analisis Python remote dalam sandbox                       | [Code Execution](/id/tools/code-execution)     |
| `browser`                                  | Mengontrol browser Chromium (navigasi, klik, screenshot)               | [Browser](/id/tools/browser)                   |
| `web_search` / `x_search` / `web_fetch`    | Menelusuri web, menelusuri posting X, mengambil konten halaman         | [Web](/id/tools/web)                           |
| `read` / `write` / `edit`                  | I/O file di workspace                                                  |                                             |
| `apply_patch`                              | Patch file multi-hunk                                                  | [Apply Patch](/id/tools/apply-patch)           |
| `message`                                  | Mengirim pesan ke semua channel                                        | [Agent Send](/id/tools/agent-send)             |
| `canvas`                                   | Mengendalikan node Canvas (present, eval, snapshot)                    |                                             |
| `nodes`                                    | Menemukan dan menargetkan perangkat yang telah dipasangkan             |                                             |
| `cron` / `gateway`                         | Mengelola job terjadwal; memeriksa, menambal, memulai ulang, atau memperbarui gateway |                                             |
| `image` / `image_generate`                 | Menganalisis atau menghasilkan gambar                                  | [Image Generation](/id/tools/image-generation) |
| `music_generate`                           | Menghasilkan trek musik                                                | [Music Generation](/tools/music-generation) |
| `video_generate`                           | Menghasilkan video                                                     | [Video Generation](/tools/video-generation) |
| `tts`                                      | Konversi text-to-speech sekali jalan                                   | [TTS](/id/tools/tts)                           |
| `sessions_*` / `subagents` / `agents_list` | Manajemen sesi, status, dan orkestrasi sub-agent                       | [Sub-agents](/id/tools/subagents)              |
| `session_status`                           | Readback ringan bergaya `/status` dan override model per sesi          | [Session Tools](/id/concepts/session-tool)     |

Untuk pekerjaan gambar, gunakan `image` untuk analisis dan `image_generate` untuk pembuatan atau pengeditan. Jika Anda menargetkan `openai/*`, `google/*`, `fal/*`, atau provider gambar non-default lainnya, konfigurasikan auth/API key provider tersebut terlebih dahulu.

Untuk pekerjaan musik, gunakan `music_generate`. Jika Anda menargetkan `google/*`, `minimax/*`, atau provider musik non-default lainnya, konfigurasikan auth/API key provider tersebut terlebih dahulu.

Untuk pekerjaan video, gunakan `video_generate`. Jika Anda menargetkan `qwen/*` atau provider video non-default lainnya, konfigurasikan auth/API key provider tersebut terlebih dahulu.

Untuk audio generation yang digerakkan workflow, gunakan `music_generate` ketika plugin seperti
ComfyUI mendaftarkannya. Ini terpisah dari `tts`, yang merupakan text-to-speech.

`session_status` adalah tool status/readback ringan dalam grup sessions.
Tool 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`, tool ini dapat mengisi kembali penghitung token/cache yang jarang
dan label model runtime aktif dari entri penggunaan transkrip terbaru.

`gateway` adalah tool runtime khusus owner untuk operasi gateway:

- `config.schema.lookup` untuk satu subtree config yang dibatasi path sebelum pengeditan
- `config.get` untuk snapshot config saat ini + hash
- `config.patch` untuk pembaruan config parsial dengan restart
- `config.apply` hanya untuk penggantian config penuh
- `update.run` untuk self-update + restart yang eksplisit

Untuk perubahan parsial, utamakan `config.schema.lookup` lalu `config.patch`. Gunakan
`config.apply` hanya ketika Anda memang ingin mengganti seluruh config.
Tool ini juga menolak mengubah `tools.exec.ask` atau `tools.exec.security`;
alias lama `tools.bash.*` dinormalisasi ke path exec terlindungi yang sama.

### Tool yang disediakan plugin

Plugin dapat mendaftarkan tool tambahan. Beberapa contohnya:

- [Lobster](/id/tools/lobster) — runtime workflow bertipe dengan persetujuan yang dapat dilanjutkan
- [LLM Task](/id/tools/llm-task) — langkah LLM khusus JSON untuk output terstruktur
- [Music Generation](/tools/music-generation) — tool bersama `music_generate` dengan provider berbasis workflow
- [Diffs](/id/tools/diffs) — penampil dan renderer diff
- [OpenProse](/id/prose) — orkestrasi workflow yang mengutamakan markdown

## Konfigurasi tool

### Daftar allow dan deny

Kontrol tool mana yang dapat dipanggil agen melalui `tools.allow` / `tools.deny` di
config. Deny selalu menang atas allow.

```json5
{
  tools: {
    allow: ["group:fs", "browser", "web_search"],
    deny: ["exec"],
  },
}
```

### Profil tool

`tools.profile` menetapkan allowlist dasar sebelum `allow`/`deny` diterapkan.
Override per agen: `agents.list[].tools.profile`.

| Profile     | Yang dicakup                                                                                                                                     |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `full`      | Tidak ada pembatasan (sama seperti tidak diatur)                                                                                                 |
| `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`                                                                                                                           |

### Grup tool

Gunakan singkatan `group:*` dalam daftar allow/deny:

| Grup               | Tool                                                                                                      |
| ------------------ | --------------------------------------------------------------------------------------------------------- |
| `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` | cron, gateway                                                                                             |
| `group:messaging`  | message                                                                                                   |
| `group:nodes`      | nodes                                                                                                     |
| `group:agents`     | agents_list                                                                                               |
| `group:media`      | image, image_generate, music_generate, video_generate, tts                                                |
| `group:openclaw`   | Semua tool OpenClaw bawaan (tidak termasuk tool plugin)                                                   |

`sessions_history` mengembalikan tampilan recall yang dibatasi dan difilter demi keamanan. Tool ini menghapus
tag thinking, scaffolding `<relevant-memories>`, payload XML tool-call teks polos
(termasuk `<tool_call>...</tool_call>`,
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
`<function_calls>...</function_calls>`, dan blok tool-call yang terpotong),
scaffolding tool-call yang diturunkan, token kontrol model ASCII/full-width yang bocor,
dan XML tool-call MiniMax yang tidak valid dari teks assistant, lalu menerapkan
redaksi/pemotongan dan kemungkinan placeholder baris yang terlalu besar alih-alih bertindak
sebagai dump transkrip mentah.

### Pembatasan khusus provider

Gunakan `tools.byProvider` untuk membatasi tool bagi provider tertentu tanpa
mengubah default global:

```json5
{
  tools: {
    profile: "coding",
    byProvider: {
      "google-antigravity": { profile: "minimal" },
    },
  },
}
```
