chore(i18n): refresh id translations
This commit is contained in:
parent
15a39ec63f
commit
c27328833b
File diff suppressed because it is too large
Load Diff
@ -6,10 +6,10 @@ read_when:
|
||||
summary: Konsolidasi memori latar belakang dengan fase light, deep, dan REM serta Dream Diary
|
||||
title: Dreaming (eksperimental)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-06T09:13:18Z"
|
||||
generated_at: "2026-04-08T09:12:40Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 36c4b1e70801d662090dc8ce20608c2f141c23cd7ce53c54e3dcf332c801fd4e
|
||||
source_hash: 0254f3b0949158264e583c12f36f2b1a83d1b44dc4da01a1b272422d38e8655d
|
||||
source_path: concepts/dreaming.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,12 +17,12 @@ x-i18n:
|
||||
# Dreaming (eksperimental)
|
||||
|
||||
Dreaming adalah sistem konsolidasi memori latar belakang di `memory-core`.
|
||||
Sistem ini membantu OpenClaw memindahkan sinyal jangka pendek yang kuat ke memori yang tahan lama sambil
|
||||
Ini membantu OpenClaw memindahkan sinyal jangka pendek yang kuat ke memori yang tahan lama sambil
|
||||
menjaga prosesnya tetap dapat dijelaskan dan ditinjau.
|
||||
|
||||
Dreaming bersifat **opsional** dan dinonaktifkan secara default.
|
||||
Dreaming bersifat **opt-in** dan dinonaktifkan secara default.
|
||||
|
||||
## Apa yang ditulis dreaming
|
||||
## Apa yang ditulis oleh dreaming
|
||||
|
||||
Dreaming menyimpan dua jenis output:
|
||||
|
||||
@ -35,32 +35,31 @@ Promosi jangka panjang tetap hanya menulis ke `MEMORY.md`.
|
||||
|
||||
Dreaming menggunakan tiga fase kooperatif:
|
||||
|
||||
| Fase | Tujuan | Penulisan permanen |
|
||||
| ----- | ----------------------------------------- | ------------------ |
|
||||
| Light | Mengurutkan dan menyiapkan materi jangka pendek terbaru | Tidak |
|
||||
| Deep | Menilai dan mempromosikan kandidat yang tahan lama | Ya (`MEMORY.md`) |
|
||||
| REM | Merefleksikan tema dan gagasan yang berulang | Tidak |
|
||||
| Fase | Tujuan | Penulisan tahan lama |
|
||||
| ----- | ----------------------------------------- | -------------------- |
|
||||
| Light | Mengurutkan dan menyiapkan materi jangka pendek terbaru | Tidak |
|
||||
| Deep | Menilai dan mempromosikan kandidat tahan lama | Ya (`MEMORY.md`) |
|
||||
| REM | Merefleksikan tema dan ide yang berulang | Tidak |
|
||||
|
||||
Fase-fase ini adalah detail implementasi internal, bukan "mode" terpisah
|
||||
yang dikonfigurasi pengguna.
|
||||
Fase-fase ini adalah detail implementasi internal, bukan "mode" terpisah yang dikonfigurasi pengguna.
|
||||
|
||||
### Fase light
|
||||
|
||||
Fase light mengingest sinyal memori harian terbaru dan jejak recall, menghapus duplikasi,
|
||||
dan menyiapkan baris kandidat.
|
||||
|
||||
- Membaca dari status recall jangka pendek dan file memori harian terbaru.
|
||||
- Menulis blok `## Light Sleep` yang dikelola saat penyimpanan menyertakan output inline.
|
||||
- Mencatat sinyal reinforcement untuk pemeringkatan deep berikutnya.
|
||||
- Membaca dari status recall jangka pendek, file memori harian terbaru, dan transkrip sesi yang telah disunting bila tersedia.
|
||||
- Menulis blok `## Light Sleep` yang dikelola ketika penyimpanan menyertakan output inline.
|
||||
- Mencatat sinyal reinforcement untuk pemeringkatan deep nanti.
|
||||
- Tidak pernah menulis ke `MEMORY.md`.
|
||||
|
||||
### Fase deep
|
||||
|
||||
Fase deep menentukan apa yang menjadi memori jangka panjang.
|
||||
|
||||
- Memberi peringkat kandidat menggunakan penilaian berbobot dan ambang batas.
|
||||
- Memberi peringkat kandidat menggunakan penilaian berbobot dan ambang batas gerbang.
|
||||
- Mengharuskan `minScore`, `minRecallCount`, dan `minUniqueQueries` terpenuhi.
|
||||
- Merehidrasi potongan dari file harian aktif sebelum menulis, sehingga potongan yang usang/dihapus dilewati.
|
||||
- Merehidrasi cuplikan dari file harian aktif sebelum menulis, sehingga cuplikan yang usang/dihapus dilewati.
|
||||
- Menambahkan entri yang dipromosikan ke `MEMORY.md`.
|
||||
- Menulis ringkasan `## Deep Sleep` ke `DREAMS.md` dan secara opsional menulis `memory/dreaming/deep/YYYY-MM-DD.md`.
|
||||
|
||||
@ -69,14 +68,21 @@ Fase deep menentukan apa yang menjadi memori jangka panjang.
|
||||
Fase REM mengekstrak pola dan sinyal reflektif.
|
||||
|
||||
- Membangun ringkasan tema dan refleksi dari jejak jangka pendek terbaru.
|
||||
- Menulis blok `## REM Sleep` yang dikelola saat penyimpanan menyertakan output inline.
|
||||
- Menulis blok `## REM Sleep` yang dikelola ketika penyimpanan menyertakan output inline.
|
||||
- Mencatat sinyal reinforcement REM yang digunakan oleh pemeringkatan deep.
|
||||
- Tidak pernah menulis ke `MEMORY.md`.
|
||||
|
||||
## Ingestion transkrip sesi
|
||||
|
||||
Dreaming dapat mengingest transkrip sesi yang telah disunting ke dalam korpus dreaming. Ketika
|
||||
transkrip tersedia, transkrip tersebut dimasukkan ke fase light bersama sinyal
|
||||
memori harian dan jejak recall. Konten pribadi dan sensitif disunting
|
||||
sebelum ingestion.
|
||||
|
||||
## Dream Diary
|
||||
|
||||
Dreaming juga menyimpan **Dream Diary** naratif di `DREAMS.md`.
|
||||
Setelah setiap fase memiliki materi yang cukup, `memory-core` menjalankan giliran subagen latar belakang dengan upaya terbaik
|
||||
Setelah setiap fase memiliki cukup materi, `memory-core` menjalankan giliran subagen latar belakang best-effort
|
||||
(menggunakan model runtime default) dan menambahkan entri diary singkat.
|
||||
|
||||
Diary ini untuk dibaca manusia di UI Dreams, bukan sumber promosi.
|
||||
@ -85,27 +91,26 @@ Diary ini untuk dibaca manusia di UI Dreams, bukan sumber promosi.
|
||||
|
||||
Pemeringkatan deep menggunakan enam sinyal dasar berbobot ditambah reinforcement fase:
|
||||
|
||||
| Sinyal | Bobot | Deskripsi |
|
||||
| Sinyal | Bobot | Deskripsi |
|
||||
| ------------------- | ------ | ------------------------------------------------- |
|
||||
| Frekuensi | 0.24 | Berapa banyak sinyal jangka pendek yang dikumpulkan entri |
|
||||
| Relevansi | 0.30 | Kualitas pengambilan rata-rata untuk entri |
|
||||
| Keragaman kueri | 0.15 | Konteks kueri/hari berbeda yang memunculkannya |
|
||||
| Kebaruan | 0.15 | Skor kesegaran dengan peluruhan waktu |
|
||||
| Konsolidasi | 0.10 | Kekuatan kemunculan berulang lintas hari |
|
||||
| Kekayaan konseptual | 0.06 | Kepadatan tag konsep dari potongan/path |
|
||||
| Relevansi | 0.30 | Rata-rata kualitas pengambilan untuk entri |
|
||||
| Keragaman kueri | 0.15 | Konteks kueri/hari berbeda yang memunculkannya |
|
||||
| Kebaruan | 0.15 | Skor kesegaran yang menurun seiring waktu |
|
||||
| Konsolidasi | 0.10 | Kekuatan kemunculan ulang lintas hari |
|
||||
| Kekayaan konseptual | 0.06 | Kepadatan tag konsep dari cuplikan/path |
|
||||
|
||||
Hit fase light dan REM menambahkan peningkatan kecil dengan peluruhan kebaruan dari
|
||||
Hit fase Light dan REM menambahkan dorongan kecil yang menurun seiring waktu dari
|
||||
`memory/.dreams/phase-signals.json`.
|
||||
|
||||
## Penjadwalan
|
||||
|
||||
Saat diaktifkan, `memory-core` mengelola secara otomatis satu pekerjaan cron untuk satu sapuan dreaming
|
||||
penuh. Setiap sapuan menjalankan fase secara berurutan: light -> REM -> deep.
|
||||
Saat diaktifkan, `memory-core` mengelola secara otomatis satu cron job untuk satu sapuan dreaming penuh. Setiap sapuan menjalankan fase secara berurutan: light -> REM -> deep.
|
||||
|
||||
Perilaku kadens default:
|
||||
|
||||
| Pengaturan | Default |
|
||||
| ------------------- | ----------- |
|
||||
| Pengaturan | Default |
|
||||
| -------------------- | ----------- |
|
||||
| `dreaming.frequency` | `0 3 * * *` |
|
||||
|
||||
## Mulai cepat
|
||||
@ -168,7 +173,7 @@ openclaw memory promote --limit 5
|
||||
openclaw memory status --deep
|
||||
```
|
||||
|
||||
`memory promote` manual menggunakan ambang batas fase deep secara default kecuali ditimpa
|
||||
`memory promote` manual menggunakan ambang fase deep secara default kecuali dioverride
|
||||
dengan flag CLI.
|
||||
|
||||
Jelaskan mengapa kandidat tertentu akan atau tidak akan dipromosikan:
|
||||
@ -178,7 +183,7 @@ openclaw memory promote-explain "router vlan"
|
||||
openclaw memory promote-explain "router vlan" --json
|
||||
```
|
||||
|
||||
Pratinjau refleksi REM, kebenaran kandidat, dan output promosi deep tanpa
|
||||
Pratinjau refleksi REM, candidate truths, dan output promosi deep tanpa
|
||||
menulis apa pun:
|
||||
|
||||
```bash
|
||||
@ -190,30 +195,30 @@ openclaw memory rem-harness --json
|
||||
|
||||
Semua pengaturan berada di bawah `plugins.entries.memory-core.config.dreaming`.
|
||||
|
||||
| Kunci | Default |
|
||||
| Key | Default |
|
||||
| ----------- | ----------- |
|
||||
| `enabled` | `false` |
|
||||
| `frequency` | `0 3 * * *` |
|
||||
|
||||
Kebijakan fase, ambang batas, dan perilaku penyimpanan adalah detail implementasi
|
||||
internal (bukan konfigurasi yang ditujukan untuk pengguna).
|
||||
Kebijakan fase, ambang batas, dan perilaku penyimpanan adalah detail implementasi internal
|
||||
(bukan konfigurasi yang dihadapkan ke pengguna).
|
||||
|
||||
Lihat [Referensi konfigurasi Memory](/id/reference/memory-config#dreaming-experimental)
|
||||
untuk daftar kunci lengkap.
|
||||
Lihat [Referensi konfigurasi memory](/id/reference/memory-config#dreaming-experimental)
|
||||
untuk daftar key lengkap.
|
||||
|
||||
## UI Dreams
|
||||
|
||||
Saat diaktifkan, tab **Dreams** di Gateway menampilkan:
|
||||
|
||||
- status aktif dreaming saat ini
|
||||
- status tingkat fase dan keberadaan sapuan terkelola
|
||||
- status dreaming aktif saat ini
|
||||
- status tingkat fase dan keberadaan managed-sweep
|
||||
- jumlah jangka pendek, jangka panjang, dan yang dipromosikan hari ini
|
||||
- waktu jalan terjadwal berikutnya
|
||||
- waktu proses terjadwal berikutnya
|
||||
- pembaca Dream Diary yang dapat diperluas yang didukung oleh `doctor.memory.dreamDiary`
|
||||
|
||||
## Terkait
|
||||
|
||||
- [Memory](/id/concepts/memory)
|
||||
- [Memory Search](/id/concepts/memory-search)
|
||||
- [Pencarian Memory](/id/concepts/memory-search)
|
||||
- [CLI memory](/cli/memory)
|
||||
- [Referensi konfigurasi Memory](/id/reference/memory-config)
|
||||
- [Referensi konfigurasi memory](/id/reference/memory-config)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -5,41 +5,41 @@ read_when:
|
||||
- Anda sedang memperbarui plugin ke arsitektur plugin modern
|
||||
- Anda memelihara plugin OpenClaw eksternal
|
||||
sidebarTitle: Migrate to SDK
|
||||
summary: Bermigrasi dari lapisan kompatibilitas mundur lama ke plugin SDK modern
|
||||
summary: Migrasikan dari lapisan kompatibilitas mundur lama ke plugin SDK modern
|
||||
title: Migrasi Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:17:27Z"
|
||||
generated_at: "2026-04-08T09:13:47Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 155a8b14bc345319c8516ebdb8a0ccdea2c5f7fa07dad343442996daee21ecad
|
||||
source_hash: d9a2ce7f5553563516a549ca87e776a6a71e8dd8533a773c5ddbecfae43e7b77
|
||||
source_path: plugins/sdk-migration.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Migrasi Plugin SDK
|
||||
|
||||
OpenClaw telah beralih dari lapisan kompatibilitas mundur yang luas ke arsitektur plugin
|
||||
modern dengan import yang terfokus dan terdokumentasi. Jika plugin Anda dibuat sebelum
|
||||
arsitektur baru, panduan ini membantu Anda bermigrasi.
|
||||
OpenClaw telah beralih dari lapisan kompatibilitas mundur yang luas ke arsitektur
|
||||
plugin modern dengan impor yang terfokus dan terdokumentasi. Jika plugin Anda
|
||||
dibangun sebelum arsitektur baru ini, panduan ini membantu Anda bermigrasi.
|
||||
|
||||
## Apa yang berubah
|
||||
|
||||
Sistem plugin lama menyediakan dua permukaan terbuka lebar yang memungkinkan plugin mengimpor
|
||||
apa pun yang mereka butuhkan dari satu entry point:
|
||||
Sistem plugin lama menyediakan dua surface yang sangat terbuka yang memungkinkan
|
||||
plugin mengimpor apa pun yang mereka perlukan dari satu titik masuk:
|
||||
|
||||
- **`openclaw/plugin-sdk/compat`** — satu import yang mengekspor ulang puluhan
|
||||
helper. Ini diperkenalkan untuk menjaga plugin berbasis hook lama tetap berfungsi sementara
|
||||
arsitektur plugin baru sedang dibangun.
|
||||
- **`openclaw/extension-api`** — jembatan yang memberi plugin akses langsung ke
|
||||
helper sisi host seperti embedded agent runner.
|
||||
- **`openclaw/plugin-sdk/compat`** — satu impor yang mengekspor ulang puluhan
|
||||
helper. Ini diperkenalkan untuk menjaga plugin berbasis hook lama tetap
|
||||
berfungsi saat arsitektur plugin baru sedang dibangun.
|
||||
- **`openclaw/extension-api`** — sebuah jembatan yang memberi plugin akses
|
||||
langsung ke helper sisi host seperti embedded agent runner.
|
||||
|
||||
Kedua permukaan kini **deprecated**. Keduanya masih berfungsi saat runtime, tetapi plugin baru
|
||||
tidak boleh menggunakannya, dan plugin yang ada harus bermigrasi sebelum rilis mayor berikutnya
|
||||
menghapusnya.
|
||||
Kedua surface sekarang **deprecated**. Keduanya masih berfungsi saat runtime,
|
||||
tetapi plugin baru tidak boleh menggunakannya, dan plugin yang sudah ada harus
|
||||
bermigrasi sebelum rilis mayor berikutnya menghapusnya.
|
||||
|
||||
<Warning>
|
||||
Lapisan kompatibilitas mundur akan dihapus pada rilis mayor mendatang.
|
||||
Plugin yang masih mengimpor dari permukaan ini akan rusak saat itu terjadi.
|
||||
Plugin yang masih mengimpor dari surface ini akan rusak ketika itu terjadi.
|
||||
</Warning>
|
||||
|
||||
## Mengapa ini berubah
|
||||
@ -47,36 +47,36 @@ menghapusnya.
|
||||
Pendekatan lama menimbulkan masalah:
|
||||
|
||||
- **Startup lambat** — mengimpor satu helper memuat puluhan modul yang tidak terkait
|
||||
- **Dependensi sirkular** — ekspor ulang yang luas memudahkan terciptanya siklus import
|
||||
- **Permukaan API tidak jelas** — tidak ada cara untuk mengetahui ekspor mana yang stabil vs internal
|
||||
- **Dependensi sirkular** — ekspor ulang yang luas memudahkan terbentuknya siklus impor
|
||||
- **Surface API yang tidak jelas** — tidak ada cara untuk mengetahui ekspor mana yang stabil vs internal
|
||||
|
||||
Plugin SDK modern memperbaiki hal ini: setiap path import (`openclaw/plugin-sdk/\<subpath\>`)
|
||||
adalah modul kecil yang berdiri sendiri dengan tujuan yang jelas dan kontrak yang terdokumentasi.
|
||||
Plugin SDK modern memperbaikinya: setiap path impor (`openclaw/plugin-sdk/\<subpath\>`)
|
||||
adalah modul kecil yang mandiri dengan tujuan yang jelas dan kontrak yang terdokumentasi.
|
||||
|
||||
Seam kenyamanan provider lama untuk channel bawaan juga telah dihapus. Import
|
||||
Seam kenyamanan provider lama untuk channel bawaan juga sudah dihapus. Impor
|
||||
seperti `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
|
||||
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`,
|
||||
seam helper berlabel channel, dan
|
||||
`openclaw/plugin-sdk/telegram-core` adalah shortcut mono-repo privat, bukan
|
||||
`openclaw/plugin-sdk/telegram-core` adalah pintasan mono-repo privat, bukan
|
||||
kontrak plugin yang stabil. Gunakan subpath SDK generik yang sempit sebagai gantinya. Di dalam
|
||||
workspace plugin bawaan, simpan helper milik provider dalam
|
||||
`api.ts` atau `runtime-api.ts` milik plugin itu sendiri.
|
||||
workspace plugin bawaan, simpan helper milik provider di `api.ts` atau `runtime-api.ts`
|
||||
milik plugin tersebut.
|
||||
|
||||
Contoh provider bawaan saat ini:
|
||||
|
||||
- Anthropic menyimpan helper stream khusus Claude di seam `api.ts` /
|
||||
`contract-api.ts` miliknya sendiri
|
||||
- OpenAI menyimpan builder provider, helper model default, dan builder provider realtime
|
||||
di `api.ts` miliknya sendiri
|
||||
- OpenAI menyimpan builder provider, helper model default, dan builder provider
|
||||
realtime di `api.ts` miliknya sendiri
|
||||
- OpenRouter menyimpan builder provider dan helper onboarding/config di
|
||||
`api.ts` miliknya sendiri
|
||||
|
||||
## Cara bermigrasi
|
||||
|
||||
<Steps>
|
||||
<Step title="Migrasikan handler native approval ke fakta kapabilitas">
|
||||
Plugin channel yang mendukung approval kini mengekspos perilaku approval native melalui
|
||||
`approvalCapability.nativeRuntime` serta registry konteks runtime bersama.
|
||||
<Step title="Migrasikan handler native approval ke fakta capability">
|
||||
Plugin channel yang mendukung approval sekarang mengekspos perilaku approval native melalui
|
||||
`approvalCapability.nativeRuntime` ditambah registry runtime-context bersama.
|
||||
|
||||
Perubahan utama:
|
||||
|
||||
@ -86,44 +86,45 @@ Contoh provider bawaan saat ini:
|
||||
`plugin.approvals` ke `approvalCapability`
|
||||
- `ChannelPlugin.approvals` telah dihapus dari kontrak publik
|
||||
plugin channel; pindahkan field delivery/native/render ke `approvalCapability`
|
||||
- `plugin.auth` tetap ada hanya untuk alur login/logout channel; hook auth
|
||||
- `plugin.auth` tetap dipakai hanya untuk alur login/logout channel; hook auth
|
||||
approval di sana tidak lagi dibaca oleh core
|
||||
- Daftarkan objek runtime milik channel seperti klien, token, atau aplikasi Bolt
|
||||
melalui `openclaw/plugin-sdk/channel-runtime-context`
|
||||
- Daftarkan objek runtime milik channel seperti client, token, atau aplikasi
|
||||
Bolt melalui `openclaw/plugin-sdk/channel-runtime-context`
|
||||
- Jangan kirim pemberitahuan reroute milik plugin dari handler approval native;
|
||||
core kini memiliki notifikasi diarahkan-ke-tempat-lain dari hasil pengiriman yang sebenarnya
|
||||
core sekarang menangani pemberitahuan dialihkan-ke-tempat-lain dari hasil pengiriman yang sebenarnya
|
||||
- Saat meneruskan `channelRuntime` ke `createChannelManager(...)`, sediakan
|
||||
permukaan `createPluginRuntime().channel` yang nyata. Stub parsial akan ditolak.
|
||||
surface `createPluginRuntime().channel` yang nyata. Stub parsial akan ditolak.
|
||||
|
||||
Lihat `/plugins/sdk-channel-plugins` untuk tata letak kapabilitas approval saat ini.
|
||||
Lihat `/plugins/sdk-channel-plugins` untuk tata letak capability
|
||||
approval saat ini.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Audit perilaku fallback wrapper Windows">
|
||||
Jika plugin Anda menggunakan `openclaw/plugin-sdk/windows-spawn`, wrapper Windows
|
||||
`.cmd`/`.bat` yang tidak ter-resolve kini gagal tertutup kecuali Anda secara eksplisit meneruskan
|
||||
Jika plugin Anda menggunakan `openclaw/plugin-sdk/windows-spawn`, wrapper
|
||||
Windows `.cmd`/`.bat` yang tidak terpecahkan sekarang gagal tertutup kecuali Anda secara eksplisit meneruskan
|
||||
`allowShellFallback: true`.
|
||||
|
||||
```typescript
|
||||
// Sebelumnya
|
||||
// Sebelum
|
||||
const program = applyWindowsSpawnProgramPolicy({ candidate });
|
||||
|
||||
// Sesudahnya
|
||||
// Sesudah
|
||||
const program = applyWindowsSpawnProgramPolicy({
|
||||
candidate,
|
||||
// Setel ini hanya untuk pemanggil kompatibilitas tepercaya yang memang
|
||||
// Hanya setel ini untuk pemanggil kompatibilitas tepercaya yang secara sengaja
|
||||
// menerima fallback yang dimediasi shell.
|
||||
allowShellFallback: true,
|
||||
});
|
||||
```
|
||||
|
||||
Jika pemanggil Anda tidak sengaja bergantung pada fallback shell, jangan setel
|
||||
Jika pemanggil Anda tidak secara sengaja bergantung pada shell fallback, jangan setel
|
||||
`allowShellFallback` dan tangani error yang dilempar sebagai gantinya.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Temukan import yang deprecated">
|
||||
Cari dalam plugin Anda import dari salah satu permukaan deprecated:
|
||||
<Step title="Temukan impor deprecated">
|
||||
Cari plugin Anda untuk impor dari salah satu surface deprecated:
|
||||
|
||||
```bash
|
||||
grep -r "plugin-sdk/compat" my-plugin/
|
||||
@ -132,18 +133,18 @@ Contoh provider bawaan saat ini:
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Ganti dengan import yang terfokus">
|
||||
Setiap ekspor dari permukaan lama dipetakan ke path import modern tertentu:
|
||||
<Step title="Ganti dengan impor yang terfokus">
|
||||
Setiap ekspor dari surface lama dipetakan ke path impor modern tertentu:
|
||||
|
||||
```typescript
|
||||
// Sebelumnya (lapisan kompatibilitas mundur yang deprecated)
|
||||
// Sebelum (lapisan kompatibilitas mundur deprecated)
|
||||
import {
|
||||
createChannelReplyPipeline,
|
||||
createPluginRuntimeStore,
|
||||
resolveControlCommandGate,
|
||||
} from "openclaw/plugin-sdk/compat";
|
||||
|
||||
// Sesudahnya (import modern yang terfokus)
|
||||
// Sesudah (impor modern yang terfokus)
|
||||
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
|
||||
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
|
||||
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
|
||||
@ -153,17 +154,17 @@ Contoh provider bawaan saat ini:
|
||||
secara langsung:
|
||||
|
||||
```typescript
|
||||
// Sebelumnya (jembatan extension-api yang deprecated)
|
||||
// Sebelum (jembatan extension-api deprecated)
|
||||
import { runEmbeddedPiAgent } from "openclaw/extension-api";
|
||||
const result = await runEmbeddedPiAgent({ sessionId, prompt });
|
||||
|
||||
// Sesudahnya (runtime yang diinjeksi)
|
||||
// Sesudah (runtime yang diinjeksi)
|
||||
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
|
||||
```
|
||||
|
||||
Pola yang sama berlaku untuk helper jembatan lama lainnya:
|
||||
|
||||
| Import lama | Padanan modern |
|
||||
| Impor lama | Padanan modern |
|
||||
| --- | --- |
|
||||
| `resolveAgentDir` | `api.runtime.agent.resolveAgentDir` |
|
||||
| `resolveAgentWorkspaceDir` | `api.runtime.agent.resolveAgentWorkspaceDir` |
|
||||
@ -171,7 +172,7 @@ Contoh provider bawaan saat ini:
|
||||
| `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
|
||||
| `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
|
||||
| `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
|
||||
| helper penyimpanan sesi | `api.runtime.agent.session.*` |
|
||||
| helper session store | `api.runtime.agent.session.*` |
|
||||
|
||||
</Step>
|
||||
|
||||
@ -183,167 +184,169 @@ Contoh provider bawaan saat ini:
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Referensi path import
|
||||
## Referensi path impor
|
||||
|
||||
<Accordion title="Tabel path import umum">
|
||||
| Path import | Tujuan | Ekspor utama |
|
||||
<Accordion title="Tabel path impor umum">
|
||||
| Path impor | Tujuan | Ekspor utama |
|
||||
| --- | --- | --- |
|
||||
| `plugin-sdk/plugin-entry` | Helper entri plugin kanonis | `definePluginEntry` |
|
||||
| `plugin-sdk/core` | Ekspor ulang umbrella lama untuk definisi/builder entri channel | `defineChannelPluginEntry`, `createChatChannelPlugin` |
|
||||
| `plugin-sdk/config-schema` | Ekspor skema konfigurasi root | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | Helper entri provider tunggal | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/core` | Ekspor ulang payung lama untuk definisi/builder entri channel | `defineChannelPluginEntry`, `createChatChannelPlugin` |
|
||||
| `plugin-sdk/config-schema` | Ekspor skema config root | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | Helper entri single-provider | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/channel-core` | Definisi dan builder entri channel yang terfokus | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
|
||||
| `plugin-sdk/setup` | Helper wizard setup bersama | Prompt allowlist, builder status setup |
|
||||
| `plugin-sdk/setup-runtime` | Helper runtime saat setup | Adaptor patch setup yang aman untuk import, helper catatan lookup, `promptResolvedAllowFrom`, `splitSetupEntries`, proxy setup terdelegasi |
|
||||
| `plugin-sdk/setup-adapter-runtime` | Helper adaptor setup | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-runtime` | Helper runtime saat setup | Adapter patch setup yang aman untuk impor, helper catatan lookup, `promptResolvedAllowFrom`, `splitSetupEntries`, proxy setup terdelegasi |
|
||||
| `plugin-sdk/setup-adapter-runtime` | Helper adapter setup | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-tools` | Helper tooling setup | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
|
||||
| `plugin-sdk/account-core` | Helper multi-akun | Helper daftar akun/konfigurasi/action-gate |
|
||||
| `plugin-sdk/account-core` | Helper multi-account | Helper daftar/config/action-gate akun |
|
||||
| `plugin-sdk/account-id` | Helper account-id | `DEFAULT_ACCOUNT_ID`, normalisasi account-id |
|
||||
| `plugin-sdk/account-resolution` | Helper lookup akun | Helper lookup akun + fallback default |
|
||||
| `plugin-sdk/account-helpers` | Helper akun sempit | Helper daftar akun/aksi akun |
|
||||
| `plugin-sdk/channel-setup` | Adaptor wizard setup | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/account-helpers` | Helper akun yang sempit | Helper daftar akun/action akun |
|
||||
| `plugin-sdk/channel-setup` | Adapter wizard setup | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/channel-pairing` | Primitive pairing DM | `createChannelPairingController` |
|
||||
| `plugin-sdk/channel-reply-pipeline` | Wiring prefiks balasan + typing | `createChannelReplyPipeline` |
|
||||
| `plugin-sdk/channel-config-helpers` | Factory adaptor konfigurasi | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Builder skema konfigurasi | Tipe skema konfigurasi channel |
|
||||
| `plugin-sdk/telegram-command-config` | Helper konfigurasi perintah Telegram | Normalisasi nama perintah, pemangkasan deskripsi, validasi duplikat/konflik |
|
||||
| `plugin-sdk/channel-reply-pipeline` | Wiring prefiks balasan + pengetikan | `createChannelReplyPipeline` |
|
||||
| `plugin-sdk/channel-config-helpers` | Factory adapter config | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Builder skema config | Tipe skema config channel |
|
||||
| `plugin-sdk/telegram-command-config` | Helper config perintah Telegram | Normalisasi nama perintah, pemangkasan deskripsi, validasi duplikasi/konflik |
|
||||
| `plugin-sdk/channel-policy` | Resolusi kebijakan grup/DM | `resolveChannelGroupRequireMention` |
|
||||
| `plugin-sdk/channel-lifecycle` | Pelacakan status akun | `createAccountStatusSink` |
|
||||
| `plugin-sdk/inbound-envelope` | Helper inbound envelope | Route bersama + helper builder envelope |
|
||||
| `plugin-sdk/inbound-envelope` | Helper envelope inbound | Helper route bersama + builder envelope |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Helper balasan inbound | Helper record-and-dispatch bersama |
|
||||
| `plugin-sdk/messaging-targets` | Parsing target pesan | Helper parsing/pencocokan target |
|
||||
| `plugin-sdk/outbound-media` | Helper media outbound | Pemuatan media outbound bersama |
|
||||
| `plugin-sdk/outbound-runtime` | Helper runtime outbound | Helper identitas outbound/delegasi pengiriman |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Helper binding thread | Siklus hidup thread-binding dan helper adaptor |
|
||||
| `plugin-sdk/agent-media-payload` | Helper payload media lama | Builder payload media agen untuk tata letak field lama |
|
||||
| `plugin-sdk/outbound-runtime` | Helper runtime outbound | Helper identitas/delegasi pengiriman outbound |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Helper thread-binding | Lifecycle thread-binding dan helper adapter |
|
||||
| `plugin-sdk/agent-media-payload` | Helper payload media lama | Builder payload media agent untuk tata letak field lama |
|
||||
| `plugin-sdk/channel-runtime` | Shim kompatibilitas deprecated | Hanya utilitas runtime channel lama |
|
||||
| `plugin-sdk/channel-send-result` | Tipe hasil pengiriman | Tipe hasil balasan |
|
||||
| `plugin-sdk/channel-send-result` | Tipe hasil kirim | Tipe hasil balasan |
|
||||
| `plugin-sdk/runtime-store` | Penyimpanan plugin persisten | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/runtime` | Helper runtime yang luas | Helper runtime/logging/backup/instalasi plugin |
|
||||
| `plugin-sdk/runtime-env` | Helper env runtime sempit | Logger/runtime env, timeout, retry, dan helper backoff |
|
||||
| `plugin-sdk/plugin-runtime` | Helper runtime plugin bersama | Helper plugin command/hook/http/interaktif |
|
||||
| `plugin-sdk/runtime-env` | Helper env runtime yang sempit | Helper logger/runtime env, timeout, retry, dan backoff |
|
||||
| `plugin-sdk/plugin-runtime` | Helper runtime plugin bersama | Helper perintah/hook/http/interaktif plugin |
|
||||
| `plugin-sdk/hook-runtime` | Helper pipeline hook | Helper pipeline webhook/internal hook bersama |
|
||||
| `plugin-sdk/lazy-runtime` | Helper runtime lazy | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | Helper proses | Helper exec bersama |
|
||||
| `plugin-sdk/cli-runtime` | Helper runtime CLI | Pemformatan perintah, wait, helper versi |
|
||||
| `plugin-sdk/gateway-runtime` | Helper gateway | Klien gateway dan helper patch status channel |
|
||||
| `plugin-sdk/config-runtime` | Helper konfigurasi | Helper muat/tulis konfigurasi |
|
||||
| `plugin-sdk/telegram-command-config` | Helper perintah Telegram | Helper validasi perintah Telegram yang stabil sebagai fallback saat permukaan kontrak Telegram bawaan tidak tersedia |
|
||||
| `plugin-sdk/approval-runtime` | Helper prompt approval | Payload approval exec/plugin, helper kapabilitas/profil approval, helper routing/runtime approval native |
|
||||
| `plugin-sdk/approval-auth-runtime` | Helper auth approval | Resolusi approver, auth aksi obrolan yang sama |
|
||||
| `plugin-sdk/approval-client-runtime` | Helper klien approval | Helper profil/filter approval exec native |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Helper pengiriman approval | Adaptor pengiriman/kapabilitas approval native |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Helper gateway approval | Helper resolusi gateway approval bersama |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Helper adaptor approval | Helper pemuatan adaptor approval native yang ringan untuk hot channel entrypoint |
|
||||
| `plugin-sdk/approval-handler-runtime` | Helper handler approval | Helper runtime handler approval yang lebih luas; pilih seam adaptor/gateway yang lebih sempit jika sudah cukup |
|
||||
| `plugin-sdk/gateway-runtime` | Helper gateway | Helper client gateway dan patch status channel |
|
||||
| `plugin-sdk/config-runtime` | Helper config | Helper load/write config |
|
||||
| `plugin-sdk/telegram-command-config` | Helper perintah Telegram | Helper validasi perintah Telegram yang stabil-fallback ketika surface kontrak Telegram bawaan tidak tersedia |
|
||||
| `plugin-sdk/approval-runtime` | Helper prompt approval | Payload approval exec/plugin, helper capability/profile approval, helper routing/runtime approval native |
|
||||
| `plugin-sdk/approval-auth-runtime` | Helper auth approval | Resolusi approver, auth aksi same-chat |
|
||||
| `plugin-sdk/approval-client-runtime` | Helper client approval | Helper profile/filter approval exec native |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Helper pengiriman approval | Adapter capability/pengiriman approval native |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Helper gateway approval | Helper resolusi-gateway approval bersama |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Helper adapter approval | Helper pemuatan adapter approval native yang ringan untuk entrypoint channel yang panas |
|
||||
| `plugin-sdk/approval-handler-runtime` | Helper handler approval | Helper runtime handler approval yang lebih luas; prioritaskan seam adapter/gateway yang lebih sempit bila itu sudah cukup |
|
||||
| `plugin-sdk/approval-native-runtime` | Helper target approval | Helper binding target/akun approval native |
|
||||
| `plugin-sdk/approval-reply-runtime` | Helper balasan approval | Helper payload balasan approval exec/plugin |
|
||||
| `plugin-sdk/channel-runtime-context` | Helper konteks runtime channel | Helper register/get/watch konteks runtime channel generik |
|
||||
| `plugin-sdk/channel-runtime-context` | Helper runtime-context channel | Helper register/get/watch runtime-context channel generik |
|
||||
| `plugin-sdk/security-runtime` | Helper keamanan | Helper trust, gating DM, konten eksternal, dan pengumpulan secret bersama |
|
||||
| `plugin-sdk/ssrf-policy` | Helper kebijakan SSRF | Helper allowlist host dan kebijakan jaringan privat |
|
||||
| `plugin-sdk/ssrf-runtime` | Helper runtime SSRF | Pinned-dispatcher, fetch terlindungi, helper kebijakan SSRF |
|
||||
| `plugin-sdk/ssrf-runtime` | Helper runtime SSRF | Helper pinned-dispatcher, guarded fetch, kebijakan SSRF |
|
||||
| `plugin-sdk/collection-runtime` | Helper cache terbatas | `pruneMapToMaxSize` |
|
||||
| `plugin-sdk/diagnostic-runtime` | Helper gating diagnostik | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
|
||||
| `plugin-sdk/error-runtime` | Helper pemformatan error | `formatUncaughtError`, `isApprovalNotFoundError`, helper graph error |
|
||||
| `plugin-sdk/fetch-runtime` | Helper fetch/proxy terbungkus | `resolveFetch`, helper proxy |
|
||||
| `plugin-sdk/error-runtime` | Helper pemformatan error | `formatUncaughtError`, `isApprovalNotFoundError`, helper grafik error |
|
||||
| `plugin-sdk/fetch-runtime` | Helper wrapped fetch/proxy | `resolveFetch`, helper proxy |
|
||||
| `plugin-sdk/host-runtime` | Helper normalisasi host | `normalizeHostname`, `normalizeScpRemoteHost` |
|
||||
| `plugin-sdk/retry-runtime` | Helper retry | `RetryConfig`, `retryAsync`, runner kebijakan |
|
||||
| `plugin-sdk/allow-from` | Pemformatan allowlist | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/allowlist-resolution` | Pemetaan input allowlist | `mapAllowlistResolutionInputs` |
|
||||
| `plugin-sdk/command-auth` | Helper gating perintah dan permukaan perintah | `resolveControlCommandGate`, helper otorisasi pengirim, helper registry perintah |
|
||||
| `plugin-sdk/command-auth` | Gating perintah dan helper surface perintah | `resolveControlCommandGate`, helper otorisasi pengirim, helper registry perintah |
|
||||
| `plugin-sdk/secret-input` | Parsing input secret | Helper input secret |
|
||||
| `plugin-sdk/webhook-ingress` | Helper permintaan webhook | Utilitas target webhook |
|
||||
| `plugin-sdk/webhook-request-guards` | Helper guard body webhook | Helper baca/batas body permintaan |
|
||||
| `plugin-sdk/reply-runtime` | Runtime balasan bersama | Inbound dispatch, heartbeat, perencana balasan, chunking |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Helper dispatch balasan sempit | Helper finalisasi + dispatch provider |
|
||||
| `plugin-sdk/webhook-ingress` | Helper request webhook | Utilitas target webhook |
|
||||
| `plugin-sdk/webhook-request-guards` | Helper guard body webhook | Helper baca/batas body request |
|
||||
| `plugin-sdk/reply-runtime` | Runtime balasan bersama | Dispatch inbound, heartbeat, planner balasan, chunking |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Helper dispatch balasan yang sempit | Helper finalisasi + dispatch provider |
|
||||
| `plugin-sdk/reply-history` | Helper riwayat balasan | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-reference` | Perencanaan referensi balasan | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | Helper chunk balasan | Helper chunking teks/markdown |
|
||||
| `plugin-sdk/session-store-runtime` | Helper penyimpanan sesi | Helper path store + updated-at |
|
||||
| `plugin-sdk/state-paths` | Helper path status | Helper status dan direktori OAuth |
|
||||
| `plugin-sdk/reply-chunking` | Helper potongan balasan | Helper chunking teks/markdown |
|
||||
| `plugin-sdk/session-store-runtime` | Helper session store | Helper path store + updated-at |
|
||||
| `plugin-sdk/state-paths` | Helper path state | Helper direktori state dan OAuth |
|
||||
| `plugin-sdk/routing` | Helper routing/session-key | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, helper normalisasi session-key |
|
||||
| `plugin-sdk/status-helpers` | Helper status channel | Builder ringkasan/snapshot status channel/akun, default status runtime, helper metadata isu |
|
||||
| `plugin-sdk/status-helpers` | Helper status channel | Builder ringkasan status channel/akun, default runtime-state, helper metadata issue |
|
||||
| `plugin-sdk/target-resolver-runtime` | Helper target resolver | Helper target resolver bersama |
|
||||
| `plugin-sdk/string-normalization-runtime` | Helper normalisasi string | Helper normalisasi slug/string |
|
||||
| `plugin-sdk/request-url` | Helper URL permintaan | Mengekstrak URL string dari input mirip-request |
|
||||
| `plugin-sdk/run-command` | Helper perintah berjangka waktu | Runner perintah berjangka waktu dengan stdout/stderr yang dinormalisasi |
|
||||
| `plugin-sdk/request-url` | Helper URL request | Mengekstrak URL string dari input mirip request |
|
||||
| `plugin-sdk/run-command` | Helper perintah bertempo | Runner perintah bertempo dengan stdout/stderr ternormalisasi |
|
||||
| `plugin-sdk/param-readers` | Pembaca parameter | Pembaca parameter tool/CLI umum |
|
||||
| `plugin-sdk/tool-send` | Ekstraksi pengiriman tool | Mengekstrak field target pengiriman kanonis dari argumen tool |
|
||||
| `plugin-sdk/temp-path` | Helper path sementara | Helper path unduhan sementara bersama |
|
||||
| `plugin-sdk/logging-core` | Helper logging | Logger subsistem dan helper redaksi |
|
||||
| `plugin-sdk/markdown-table-runtime` | Helper tabel Markdown | Helper mode tabel Markdown |
|
||||
| `plugin-sdk/tool-payload` | Ekstraksi payload tool | Mengekstrak payload ternormalisasi dari objek hasil tool |
|
||||
| `plugin-sdk/tool-send` | Ekstraksi pengiriman tool | Mengekstrak field target kirim kanonis dari argumen tool |
|
||||
| `plugin-sdk/temp-path` | Helper path temp | Helper path unduhan sementara bersama |
|
||||
| `plugin-sdk/logging-core` | Helper logging | Helper logger subsistem dan redaksi |
|
||||
| `plugin-sdk/markdown-table-runtime` | Helper tabel markdown | Helper mode tabel markdown |
|
||||
| `plugin-sdk/reply-payload` | Tipe balasan pesan | Tipe payload balasan |
|
||||
| `plugin-sdk/provider-setup` | Helper setup provider lokal/self-hosted yang dikurasi | Helper penemuan/konfigurasi provider self-hosted |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Helper setup provider self-hosted yang kompatibel dengan OpenAI dan terfokus | Helper penemuan/konfigurasi provider self-hosted yang sama |
|
||||
| `plugin-sdk/provider-setup` | Helper setup provider lokal/self-hosted yang terkurasi | Helper penemuan/config provider self-hosted |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Helper setup provider self-hosted kompatibel OpenAI yang terfokus | Helper penemuan/config provider self-hosted yang sama |
|
||||
| `plugin-sdk/provider-auth-runtime` | Helper auth runtime provider | Helper resolusi API key runtime |
|
||||
| `plugin-sdk/provider-auth-api-key` | Helper setup API key provider | Helper onboarding/penulisan profil API key |
|
||||
| `plugin-sdk/provider-auth-result` | Helper hasil auth provider | Builder hasil auth OAuth standar |
|
||||
| `plugin-sdk/provider-auth-api-key` | Helper setup API key provider | Helper onboarding/profile-write API key |
|
||||
| `plugin-sdk/provider-auth-result` | Helper hasil auth provider | Builder standar hasil auth OAuth |
|
||||
| `plugin-sdk/provider-auth-login` | Helper login interaktif provider | Helper login interaktif bersama |
|
||||
| `plugin-sdk/provider-env-vars` | Helper env-var provider | Helper lookup env-var auth provider |
|
||||
| `plugin-sdk/provider-env-vars` | Helper env var provider | Helper lookup env var auth provider |
|
||||
| `plugin-sdk/provider-model-shared` | Helper model/replay provider bersama | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, builder kebijakan replay bersama, helper endpoint provider, dan helper normalisasi model-id |
|
||||
| `plugin-sdk/provider-catalog-shared` | Helper katalog provider bersama | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-onboard` | Patch onboarding provider | Helper konfigurasi onboarding |
|
||||
| `plugin-sdk/provider-onboard` | Patch onboarding provider | Helper config onboarding |
|
||||
| `plugin-sdk/provider-http` | Helper HTTP provider | Helper kemampuan HTTP/endpoint provider generik |
|
||||
| `plugin-sdk/provider-web-fetch` | Helper web-fetch provider | Helper registrasi/cache provider web-fetch |
|
||||
| `plugin-sdk/provider-web-search-contract` | Helper kontrak web-search provider | Helper kontrak konfigurasi/kredensial web-search yang sempit seperti `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, dan setter/getter kredensial dengan cakupan tertentu |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Helper config web-search provider | Helper config/kredensial web-search yang sempit untuk provider yang tidak memerlukan wiring enable plugin |
|
||||
| `plugin-sdk/provider-web-search-contract` | Helper kontrak web-search provider | Helper kontrak config/kredensial web-search yang sempit seperti `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, dan setter/getter kredensial terlingkup |
|
||||
| `plugin-sdk/provider-web-search` | Helper web-search provider | Helper registrasi/cache/runtime provider web-search |
|
||||
| `plugin-sdk/provider-tools` | Helper kompatibilitas tool/skema provider | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, pembersihan skema Gemini + diagnostik, dan helper kompatibilitas xAI seperti `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | Helper penggunaan provider | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage`, dan helper penggunaan provider lainnya |
|
||||
| `plugin-sdk/provider-stream` | Helper wrapper stream provider | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, tipe wrapper stream, dan helper wrapper bersama Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/keyed-async-queue` | Antrean async berurutan | `KeyedAsyncQueue` |
|
||||
| `plugin-sdk/media-runtime` | Helper media bersama | Helper fetch/transform/store media serta builder payload media |
|
||||
| `plugin-sdk/media-generation-runtime` | Helper media-generation bersama | Helper failover bersama, pemilihan kandidat, dan pesan model hilang untuk pembuatan gambar/video/musik |
|
||||
| `plugin-sdk/media-understanding` | Helper media-understanding | Tipe provider media understanding serta ekspor helper gambar/audio yang menghadap provider |
|
||||
| `plugin-sdk/text-runtime` | Helper teks bersama | Penghapusan teks yang terlihat oleh asisten, helper render/chunking/tabel markdown, helper redaksi, helper tag direktif, utilitas teks aman, serta helper teks/logging terkait |
|
||||
| `plugin-sdk/provider-stream` | Helper pembungkus stream provider | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, tipe pembungkus stream, dan helper pembungkus bersama Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/keyed-async-queue` | Queue async terurut | `KeyedAsyncQueue` |
|
||||
| `plugin-sdk/media-runtime` | Helper media bersama | Helper fetch/transform/store media plus builder payload media |
|
||||
| `plugin-sdk/media-generation-runtime` | Helper pembuatan media bersama | Helper failover bersama, pemilihan kandidat, dan pesan model hilang untuk pembuatan gambar/video/musik |
|
||||
| `plugin-sdk/media-understanding` | Helper pemahaman media | Tipe provider pemahaman media plus ekspor helper gambar/audio untuk provider |
|
||||
| `plugin-sdk/text-runtime` | Helper teks bersama | Penghapusan teks yang terlihat oleh asisten, helper render/chunking/table markdown, helper redaksi, helper tag direktif, utilitas safe-text, dan helper teks/logging terkait |
|
||||
| `plugin-sdk/text-chunking` | Helper chunking teks | Helper chunking teks outbound |
|
||||
| `plugin-sdk/speech` | Helper speech | Tipe provider speech serta helper direktif, registry, dan validasi yang menghadap provider |
|
||||
| `plugin-sdk/speech-core` | Core speech bersama | Tipe provider speech, registry, direktif, normalisasi |
|
||||
| `plugin-sdk/speech` | Helper speech | Tipe provider speech plus ekspor helper direktif, registry, dan validasi untuk provider |
|
||||
| `plugin-sdk/speech-core` | Inti speech bersama | Tipe provider speech, registry, direktif, normalisasi |
|
||||
| `plugin-sdk/realtime-transcription` | Helper transkripsi realtime | Tipe provider dan helper registry |
|
||||
| `plugin-sdk/realtime-voice` | Helper suara realtime | Tipe provider dan helper registry |
|
||||
| `plugin-sdk/image-generation-core` | Core image-generation bersama | Tipe image-generation, failover, auth, dan helper registry |
|
||||
| `plugin-sdk/music-generation` | Helper music-generation | Tipe provider/permintaan/hasil music-generation |
|
||||
| `plugin-sdk/music-generation-core` | Core music-generation bersama | Tipe music-generation, helper failover, lookup provider, dan parsing model-ref |
|
||||
| `plugin-sdk/video-generation` | Helper video-generation | Tipe provider/permintaan/hasil video-generation |
|
||||
| `plugin-sdk/video-generation-core` | Core video-generation bersama | Tipe video-generation, helper failover, lookup provider, dan parsing model-ref |
|
||||
| `plugin-sdk/image-generation-core` | Inti image-generation bersama | Tipe image-generation, failover, auth, dan helper registry |
|
||||
| `plugin-sdk/music-generation` | Helper music-generation | Tipe provider/request/result music-generation |
|
||||
| `plugin-sdk/music-generation-core` | Inti music-generation bersama | Tipe music-generation, helper failover, lookup provider, dan parsing model-ref |
|
||||
| `plugin-sdk/video-generation` | Helper video-generation | Tipe provider/request/result video-generation |
|
||||
| `plugin-sdk/video-generation-core` | Inti video-generation bersama | Tipe video-generation, helper failover, lookup provider, dan parsing model-ref |
|
||||
| `plugin-sdk/interactive-runtime` | Helper balasan interaktif | Normalisasi/reduksi payload balasan interaktif |
|
||||
| `plugin-sdk/channel-config-primitives` | Primitive konfigurasi channel | Primitive config-schema channel yang sempit |
|
||||
| `plugin-sdk/channel-config-writes` | Helper penulisan konfigurasi channel | Helper otorisasi penulisan konfigurasi channel |
|
||||
| `plugin-sdk/channel-config-primitives` | Primitive config channel | Primitive channel config-schema yang sempit |
|
||||
| `plugin-sdk/channel-config-writes` | Helper penulisan config channel | Helper otorisasi penulisan config channel |
|
||||
| `plugin-sdk/channel-plugin-common` | Prelude channel bersama | Ekspor prelude plugin channel bersama |
|
||||
| `plugin-sdk/channel-status` | Helper status channel | Helper snapshot/ringkasan status channel bersama |
|
||||
| `plugin-sdk/allowlist-config-edit` | Helper konfigurasi allowlist | Helper edit/baca konfigurasi allowlist |
|
||||
| `plugin-sdk/allowlist-config-edit` | Helper config allowlist | Helper edit/baca config allowlist |
|
||||
| `plugin-sdk/group-access` | Helper akses grup | Helper keputusan akses grup bersama |
|
||||
| `plugin-sdk/direct-dm` | Helper direct-DM | Helper auth/guard direct-DM bersama |
|
||||
| `plugin-sdk/extension-shared` | Helper extension bersama | Primitive channel/status pasif dan ambient proxy helper |
|
||||
| `plugin-sdk/webhook-targets` | Helper target webhook | Registry target webhook dan helper instalasi route |
|
||||
| `plugin-sdk/direct-dm` | Helper DM langsung | Helper auth/guard DM langsung bersama |
|
||||
| `plugin-sdk/extension-shared` | Helper extension bersama | Primitive helper passive-channel/status dan ambient proxy |
|
||||
| `plugin-sdk/webhook-targets` | Helper target webhook | Registry target webhook dan helper pemasangan route |
|
||||
| `plugin-sdk/webhook-path` | Helper path webhook | Helper normalisasi path webhook |
|
||||
| `plugin-sdk/web-media` | Helper media web bersama | Helper pemuatan media remote/lokal |
|
||||
| `plugin-sdk/web-media` | Helper media web bersama | Helper pemuatan media jarak jauh/lokal |
|
||||
| `plugin-sdk/zod` | Ekspor ulang Zod | `zod` yang diekspor ulang untuk konsumen plugin SDK |
|
||||
| `plugin-sdk/memory-core` | Helper memory-core bawaan | Permukaan helper memory manager/config/file/CLI |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Fasad runtime engine memori | Fasad runtime indeks/pencarian memori |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | Engine fondasi host memori | Ekspor engine fondasi host memori |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Engine embedding host memori | Ekspor engine embedding host memori |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Engine QMD host memori | Ekspor engine QMD host memori |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Engine penyimpanan host memori | Ekspor engine penyimpanan host memori |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Helper multimodal host memori | Helper multimodal host memori |
|
||||
| `plugin-sdk/memory-core-host-query` | Helper kueri host memori | Helper kueri host memori |
|
||||
| `plugin-sdk/memory-core-host-secret` | Helper secret host memori | Helper secret host memori |
|
||||
| `plugin-sdk/memory-core-host-events` | Helper jurnal event host memori | Helper jurnal event host memori |
|
||||
| `plugin-sdk/memory-core-host-status` | Helper status host memori | Helper status host memori |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Runtime CLI host memori | Helper runtime CLI host memori |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Runtime core host memori | Helper runtime core host memori |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Helper file/runtime host memori | Helper file/runtime host memori |
|
||||
| `plugin-sdk/memory-host-core` | Alias runtime core host memori | Alias netral-vendor untuk helper runtime core host memori |
|
||||
| `plugin-sdk/memory-host-events` | Alias jurnal event host memori | Alias netral-vendor untuk helper jurnal event host memori |
|
||||
| `plugin-sdk/memory-host-files` | Alias file/runtime host memori | Alias netral-vendor untuk helper file/runtime host memori |
|
||||
| `plugin-sdk/memory-host-markdown` | Helper markdown terkelola | Helper managed-markdown bersama untuk plugin yang berdekatan dengan memori |
|
||||
| `plugin-sdk/memory-host-search` | Fasad pencarian memori aktif | Fasad runtime lazy active-memory search-manager |
|
||||
| `plugin-sdk/memory-host-status` | Alias status host memori | Alias netral-vendor untuk helper status host memori |
|
||||
| `plugin-sdk/memory-lancedb` | Helper memory-lancedb bawaan | Permukaan helper memory-lancedb |
|
||||
| `plugin-sdk/testing` | Utilitas pengujian | Helper dan mock pengujian |
|
||||
| `plugin-sdk/memory-core` | Helper memory-core bawaan | Surface helper manajer/config/file/CLI memory |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Fasad runtime engine memory | Fasad runtime index/search memory |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | Engine foundation host memory | Ekspor engine foundation host memory |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Engine embedding host memory | Ekspor engine embedding host memory |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Engine QMD host memory | Ekspor engine QMD host memory |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Engine penyimpanan host memory | Ekspor engine penyimpanan host memory |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Helper multimodal host memory | Helper multimodal host memory |
|
||||
| `plugin-sdk/memory-core-host-query` | Helper query host memory | Helper query host memory |
|
||||
| `plugin-sdk/memory-core-host-secret` | Helper secret host memory | Helper secret host memory |
|
||||
| `plugin-sdk/memory-core-host-events` | Helper jurnal event host memory | Helper jurnal event host memory |
|
||||
| `plugin-sdk/memory-core-host-status` | Helper status host memory | Helper status host memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Runtime CLI host memory | Helper runtime CLI host memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Runtime inti host memory | Helper runtime inti host memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Helper file/runtime host memory | Helper file/runtime host memory |
|
||||
| `plugin-sdk/memory-host-core` | Alias runtime inti host memory | Alias netral-vendor untuk helper runtime inti host memory |
|
||||
| `plugin-sdk/memory-host-events` | Alias jurnal event host memory | Alias netral-vendor untuk helper jurnal event host memory |
|
||||
| `plugin-sdk/memory-host-files` | Alias file/runtime host memory | Alias netral-vendor untuk helper file/runtime host memory |
|
||||
| `plugin-sdk/memory-host-markdown` | Helper markdown terkelola | Helper managed-markdown bersama untuk plugin yang berdekatan dengan memory |
|
||||
| `plugin-sdk/memory-host-search` | Fasad pencarian memory aktif | Fasad runtime search-manager active-memory lazy |
|
||||
| `plugin-sdk/memory-host-status` | Alias status host memory | Alias netral-vendor untuk helper status host memory |
|
||||
| `plugin-sdk/memory-lancedb` | Helper memory-lancedb bawaan | Surface helper memory-lancedb |
|
||||
| `plugin-sdk/testing` | Utilitas pengujian | Helper pengujian dan mock |
|
||||
</Accordion>
|
||||
|
||||
Tabel ini sengaja merupakan subset migrasi umum, bukan permukaan SDK penuh.
|
||||
Daftar lengkap 200+ entrypoint ada di
|
||||
Tabel ini sengaja merupakan subset migrasi umum, bukan seluruh
|
||||
surface SDK. Daftar lengkap 200+ entrypoint ada di
|
||||
`scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
|
||||
Daftar itu masih mencakup beberapa seam helper bundled-plugin seperti
|
||||
@ -359,7 +362,7 @@ Aturan yang sama berlaku untuk keluarga helper bawaan lainnya seperti:
|
||||
- Matrix: `plugin-sdk/matrix*`
|
||||
- LINE: `plugin-sdk/line*`
|
||||
- IRC: `plugin-sdk/irc*`
|
||||
- permukaan helper/plugin bawaan seperti `plugin-sdk/googlechat`,
|
||||
- surface helper/plugin bawaan seperti `plugin-sdk/googlechat`,
|
||||
`plugin-sdk/zalouser`, `plugin-sdk/bluebubbles*`,
|
||||
`plugin-sdk/mattermost*`, `plugin-sdk/msteams`,
|
||||
`plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`,
|
||||
@ -369,38 +372,38 @@ Aturan yang sama berlaku untuk keluarga helper bawaan lainnya seperti:
|
||||
`plugin-sdk/thread-ownership`, dan `plugin-sdk/voice-call`
|
||||
|
||||
`plugin-sdk/github-copilot-token` saat ini mengekspos
|
||||
permukaan helper token yang sempit `DEFAULT_COPILOT_API_BASE_URL`,
|
||||
surface helper token yang sempit `DEFAULT_COPILOT_API_BASE_URL`,
|
||||
`deriveCopilotApiBaseUrlFromToken`, dan `resolveCopilotApiToken`.
|
||||
|
||||
Gunakan import yang paling sempit yang sesuai dengan pekerjaan tersebut. Jika Anda tidak dapat menemukan ekspor,
|
||||
periksa sumber di `src/plugin-sdk/` atau tanyakan di Discord.
|
||||
Gunakan impor tersempit yang sesuai dengan pekerjaan Anda. Jika Anda tidak dapat menemukan ekspor,
|
||||
periksa source di `src/plugin-sdk/` atau tanyakan di Discord.
|
||||
|
||||
## Linimasa penghapusan
|
||||
|
||||
| Kapan | Apa yang terjadi |
|
||||
| ---------------------- | ----------------------------------------------------------------------- |
|
||||
| **Sekarang** | Permukaan deprecated memunculkan peringatan runtime |
|
||||
| **Rilis mayor berikutnya** | Permukaan deprecated akan dihapus; plugin yang masih menggunakannya akan gagal |
|
||||
| Kapan | Apa yang terjadi |
|
||||
| ---------------------- | --------------------------------------------------------------------- |
|
||||
| **Sekarang** | Surface deprecated mengeluarkan peringatan runtime |
|
||||
| **Rilis mayor berikutnya** | Surface deprecated akan dihapus; plugin yang masih menggunakannya akan gagal |
|
||||
|
||||
Semua plugin core sudah dimigrasikan. Plugin eksternal harus bermigrasi
|
||||
Semua plugin core sudah dimigrasikan. Plugin eksternal sebaiknya bermigrasi
|
||||
sebelum rilis mayor berikutnya.
|
||||
|
||||
## Menyembunyikan peringatan untuk sementara
|
||||
## Menyembunyikan peringatan sementara
|
||||
|
||||
Setel variabel environment ini saat Anda sedang mengerjakan migrasi:
|
||||
Setel variabel environment ini saat Anda sedang melakukan migrasi:
|
||||
|
||||
```bash
|
||||
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
|
||||
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
|
||||
```
|
||||
|
||||
Ini adalah jalur keluar sementara, bukan solusi permanen.
|
||||
Ini adalah celah keluar sementara, bukan solusi permanen.
|
||||
|
||||
## Terkait
|
||||
|
||||
- [Memulai](/id/plugins/building-plugins) — bangun plugin pertama Anda
|
||||
- [Ikhtisar SDK](/id/plugins/sdk-overview) — referensi import subpath lengkap
|
||||
- [Plugin Channel](/id/plugins/sdk-channel-plugins) — membangun plugin channel
|
||||
- [Plugin Provider](/id/plugins/sdk-provider-plugins) — membangun plugin provider
|
||||
- [Internal Plugin](/id/plugins/architecture) — pendalaman arsitektur
|
||||
- [Manifest Plugin](/id/plugins/manifest) — referensi skema manifest
|
||||
- [Getting Started](/id/plugins/building-plugins) — bangun plugin pertama Anda
|
||||
- [SDK Overview](/id/plugins/sdk-overview) — referensi lengkap impor subpath
|
||||
- [Channel Plugins](/id/plugins/sdk-channel-plugins) — membangun plugin channel
|
||||
- [Provider Plugins](/id/plugins/sdk-provider-plugins) — membangun plugin provider
|
||||
- [Plugin Internals](/id/plugins/architecture) — pendalaman arsitektur
|
||||
- [Plugin Manifest](/id/plugins/manifest) — referensi skema manifest
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
---
|
||||
read_when:
|
||||
- Anda perlu mengetahui subpath SDK mana yang harus diimpor
|
||||
- Anda menginginkan referensi untuk semua metode registrasi di OpenClawPluginApi
|
||||
- Anda perlu mengetahui subpath SDK mana yang harus diimpor dari
|
||||
- Anda menginginkan referensi untuk semua metode pendaftaran pada OpenClawPluginApi
|
||||
- Anda sedang mencari ekspor SDK tertentu
|
||||
sidebarTitle: SDK Overview
|
||||
summary: Peta import, referensi API registrasi, dan arsitektur SDK
|
||||
title: Ringkasan Plugin SDK
|
||||
summary: Peta impor, referensi API pendaftaran, dan arsitektur SDK
|
||||
title: Ikhtisar Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:17:43Z"
|
||||
generated_at: "2026-04-08T09:13:46Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: c5a41bd82d165dfbb7fbd6e4528cf322e9133a51efe55fa8518a7a0a626d9d30
|
||||
source_hash: 6e7b420eb0f3faa8916357d52df949f6c9a46f1c843a1e6a0c0b8bb26db6cbff
|
||||
source_path: plugins/sdk-overview.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Ringkasan Plugin SDK
|
||||
# Ikhtisar Plugin SDK
|
||||
|
||||
Plugin SDK adalah kontrak bertipe antara plugin dan core. Halaman ini adalah
|
||||
referensi untuk **apa yang harus diimpor** dan **apa yang dapat Anda daftarkan**.
|
||||
|
||||
<Tip>
|
||||
**Mencari panduan cara melakukannya?**
|
||||
- Plugin pertama? Mulai dari [Getting Started](/id/plugins/building-plugins)
|
||||
- Plugin pertama? Mulai dengan [Getting Started](/id/plugins/building-plugins)
|
||||
- Plugin channel? Lihat [Channel Plugins](/id/plugins/sdk-channel-plugins)
|
||||
- Plugin provider? Lihat [Provider Plugins](/id/plugins/sdk-provider-plugins)
|
||||
</Tip>
|
||||
@ -36,8 +36,8 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
||||
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
```
|
||||
|
||||
Setiap subpath adalah modul kecil yang mandiri. Ini menjaga startup tetap cepat dan
|
||||
mencegah masalah circular dependency. Untuk helper entri/build khusus channel,
|
||||
Setiap subpath adalah modul kecil yang berdiri sendiri. Ini menjaga startup tetap cepat dan
|
||||
mencegah masalah dependensi melingkar. Untuk helper entry/build khusus channel,
|
||||
utamakan `openclaw/plugin-sdk/channel-core`; gunakan `openclaw/plugin-sdk/core` untuk
|
||||
permukaan payung yang lebih luas dan helper bersama seperti
|
||||
`buildChannelConfigSchema`.
|
||||
@ -47,33 +47,33 @@ Jangan tambahkan atau bergantung pada seam kemudahan bernama provider seperti
|
||||
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, atau
|
||||
seam helper bermerek channel. Plugin bawaan harus menyusun subpath
|
||||
SDK generik di dalam barrel `api.ts` atau `runtime-api.ts` mereka sendiri, dan core
|
||||
harus menggunakan barrel lokal plugin tersebut atau menambahkan kontrak SDK generik yang sempit
|
||||
ketika kebutuhannya benar-benar lintas channel.
|
||||
harus menggunakan barrel lokal plugin tersebut atau menambahkan kontrak SDK generik
|
||||
yang sempit saat kebutuhannya benar-benar lintas channel.
|
||||
|
||||
Peta ekspor yang dihasilkan masih berisi sejumlah kecil seam helper
|
||||
plugin bawaan seperti `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
|
||||
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup`, dan `plugin-sdk/matrix*`. Subpath tersebut
|
||||
ada hanya untuk pemeliharaan dan kompatibilitas plugin bawaan; subpath itu
|
||||
sengaja dihilangkan dari tabel umum di bawah ini dan bukan jalur impor yang
|
||||
Peta ekspor yang dihasilkan masih memuat sejumlah kecil seam helper plugin bawaan
|
||||
seperti `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
|
||||
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup`, dan `plugin-sdk/matrix*`. Subpath
|
||||
tersebut hanya ada untuk pemeliharaan dan kompatibilitas plugin bawaan; subpath itu
|
||||
sengaja tidak dimasukkan dari tabel umum di bawah dan bukan jalur impor yang
|
||||
direkomendasikan untuk plugin pihak ketiga yang baru.
|
||||
|
||||
## Referensi subpath
|
||||
|
||||
Subpath yang paling umum digunakan, dikelompokkan berdasarkan tujuan. Daftar lengkap
|
||||
lebih dari 200 subpath yang dihasilkan ada di `scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
Subpath yang paling umum digunakan, dikelompokkan berdasarkan tujuan. Daftar lengkap yang dihasilkan
|
||||
berisi lebih dari 200 subpath ada di `scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
|
||||
Subpath helper plugin bawaan yang dicadangkan masih muncul di daftar hasil generate tersebut.
|
||||
Perlakukan itu sebagai detail implementasi/permukaan kompatibilitas kecuali halaman dokumen
|
||||
Subpath helper plugin bawaan yang dicadangkan masih muncul dalam daftar yang dihasilkan itu.
|
||||
Perlakukan itu sebagai permukaan detail implementasi/kompatibilitas kecuali suatu halaman dokumentasi
|
||||
secara eksplisit mempromosikannya sebagai publik.
|
||||
|
||||
### Entri plugin
|
||||
|
||||
| Subpath | Ekspor utama |
|
||||
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| Subpath | Ekspor utama |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Subpath channel">
|
||||
@ -81,29 +81,29 @@ secara eksplisit mempromosikannya sebagai publik.
|
||||
| --- | --- |
|
||||
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
|
||||
| `plugin-sdk/config-schema` | Ekspor skema Zod root `openclaw.json` (`OpenClawSchema`) |
|
||||
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, ditambah `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/setup` | Helper wizard setup bersama, prompt allowlist, pembuat status setup |
|
||||
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, serta `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/setup` | Helper wizard setup bersama, prompt allowlist, builder status setup |
|
||||
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
|
||||
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
|
||||
| `plugin-sdk/account-core` | Helper config multi-akun/action-gate, helper fallback akun default |
|
||||
| `plugin-sdk/account-core` | Helper multi-akun config/action-gate, helper fallback akun default |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helper normalisasi account-id |
|
||||
| `plugin-sdk/account-resolution` | Pencarian akun + helper fallback default |
|
||||
| `plugin-sdk/account-helpers` | Helper sempit untuk daftar akun/aksi akun |
|
||||
| `plugin-sdk/account-resolution` | Helper pencarian akun + fallback default |
|
||||
| `plugin-sdk/account-helpers` | Helper sempit untuk daftar akun/tindakan akun |
|
||||
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
|
||||
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
|
||||
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Tipe skema config channel |
|
||||
| `plugin-sdk/telegram-command-config` | Helper normalisasi/validasi custom-command Telegram dengan fallback kontrak bawaan |
|
||||
| `plugin-sdk/telegram-command-config` | Helper normalisasi/validasi custom command Telegram dengan fallback kontrak bawaan |
|
||||
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
|
||||
| `plugin-sdk/inbound-envelope` | Helper bersama untuk route inbound + pembuat envelope |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Helper bersama untuk pencatatan dan dispatch inbound |
|
||||
| `plugin-sdk/inbound-envelope` | Helper rute inbound + builder envelope bersama |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Helper record-and-dispatch inbound bersama |
|
||||
| `plugin-sdk/messaging-targets` | Helper parsing/pencocokan target |
|
||||
| `plugin-sdk/outbound-media` | Helper bersama pemuatan media outbound |
|
||||
| `plugin-sdk/outbound-runtime` | Helper identitas outbound/send delegate |
|
||||
| `plugin-sdk/outbound-media` | Helper pemuatan media outbound bersama |
|
||||
| `plugin-sdk/outbound-runtime` | Helper identitas outbound/delegasi pengiriman |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Siklus hidup thread-binding dan helper adapter |
|
||||
| `plugin-sdk/agent-media-payload` | Pembuat payload media agen lama |
|
||||
| `plugin-sdk/agent-media-payload` | Builder payload media agent lama |
|
||||
| `plugin-sdk/conversation-runtime` | Helper binding percakapan/thread, pairing, dan configured-binding |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Helper snapshot config runtime |
|
||||
| `plugin-sdk/runtime-group-policy` | Helper resolusi group-policy runtime |
|
||||
@ -115,35 +115,36 @@ secara eksplisit mempromosikannya sebagai publik.
|
||||
| `plugin-sdk/group-access` | Helper keputusan akses grup bersama |
|
||||
| `plugin-sdk/direct-dm` | Helper auth/guard direct-DM bersama |
|
||||
| `plugin-sdk/interactive-runtime` | Helper normalisasi/reduksi payload balasan interaktif |
|
||||
| `plugin-sdk/channel-inbound` | Helper debounce inbound, pencocokan mention, helper mention-policy, dan helper envelope |
|
||||
| `plugin-sdk/channel-inbound` | Debounce inbound, pencocokan mention, helper kebijakan mention, dan helper envelope |
|
||||
| `plugin-sdk/channel-send-result` | Tipe hasil balasan |
|
||||
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
|
||||
| `plugin-sdk/channel-targets` | Helper parsing/pencocokan target |
|
||||
| `plugin-sdk/channel-contract` | Tipe kontrak channel |
|
||||
| `plugin-sdk/channel-feedback` | Wiring feedback/reaksi |
|
||||
| `plugin-sdk/channel-secret-runtime` | Helper kontrak rahasia yang sempit seperti `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, dan tipe target rahasia |
|
||||
| `plugin-sdk/channel-secret-runtime` | Helper kontrak secret yang sempit seperti `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, dan tipe target secret |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Subpath provider">
|
||||
| Subpath | Ekspor utama |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/provider-setup` | Helper setup provider lokal/self-hosted yang dikurasi |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Helper setup provider self-hosted yang kompatibel dengan OpenAI dan terfokus |
|
||||
| `plugin-sdk/provider-setup` | Helper setup provider lokal/self-hosted yang terkurasi |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Helper setup provider self-hosted kompatibel OpenAI yang terfokus |
|
||||
| `plugin-sdk/cli-backend` | Default backend CLI + konstanta watchdog |
|
||||
| `plugin-sdk/provider-auth-runtime` | Helper resolusi API key runtime untuk plugin provider |
|
||||
| `plugin-sdk/provider-auth-api-key` | Helper onboarding/penulisan profil API key seperti `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-auth-result` | Pembuat hasil auth OAuth standar |
|
||||
| `plugin-sdk/provider-auth-result` | Builder hasil auth OAuth standar |
|
||||
| `plugin-sdk/provider-auth-login` | Helper login interaktif bersama untuk plugin provider |
|
||||
| `plugin-sdk/provider-env-vars` | Helper pencarian env var auth provider |
|
||||
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, pembuat replay-policy bersama, helper endpoint provider, dan helper normalisasi model-id seperti `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, builder kebijakan replay bersama, helper endpoint provider, dan helper normalisasi model-id seperti `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-http` | Helper generic kemampuan HTTP/endpoint provider |
|
||||
| `plugin-sdk/provider-http` | Helper kapabilitas HTTP/endpoint provider generik |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | Helper kontrak config/seleksi web-fetch yang sempit seperti `enablePluginInConfig` dan `WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | Helper registrasi/cache provider web-fetch |
|
||||
| `plugin-sdk/provider-web-search-contract` | Helper kontrak config/kredensial web-search yang sempit seperti `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, dan setter/getter kredensial terlingkup |
|
||||
| `plugin-sdk/provider-web-search` | Helper registrasi/cache/runtime provider web-search |
|
||||
| `plugin-sdk/provider-web-fetch` | Helper pendaftaran/cache provider web-fetch |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Helper config/kredensial web-search yang sempit untuk provider yang tidak memerlukan wiring enable plugin |
|
||||
| `plugin-sdk/provider-web-search-contract` | Helper kontrak config/kredensial web-search yang sempit seperti `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, dan setter/getter kredensial berpencakupan |
|
||||
| `plugin-sdk/provider-web-search` | Helper pendaftaran/cache/runtime provider web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, pembersihan skema Gemini + diagnostik, dan helper kompatibilitas xAI seperti `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` dan yang serupa |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, tipe wrapper stream, dan helper wrapper bersama Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
@ -154,110 +155,111 @@ secara eksplisit mempromosikannya sebagai publik.
|
||||
<Accordion title="Subpath auth dan keamanan">
|
||||
| Subpath | Ekspor utama |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helper registry command, helper otorisasi pengirim |
|
||||
| `plugin-sdk/approval-auth-runtime` | Helper resolusi approver dan action-auth dalam chat yang sama |
|
||||
| `plugin-sdk/approval-client-runtime` | Helper profil/filter persetujuan exec native |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Adapter kemampuan/pengiriman persetujuan native |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Helper bersama resolusi gateway persetujuan |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Helper pemuatan adapter persetujuan native yang ringan untuk entrypoint channel panas |
|
||||
| `plugin-sdk/approval-handler-runtime` | Helper runtime approval handler yang lebih luas; utamakan seam adapter/gateway yang lebih sempit jika sudah cukup |
|
||||
| `plugin-sdk/approval-native-runtime` | Helper target persetujuan native + account-binding |
|
||||
| `plugin-sdk/approval-reply-runtime` | Helper payload balasan persetujuan exec/plugin |
|
||||
| `plugin-sdk/command-auth-native` | Helper auth command native + session-target native |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helper registri command, helper otorisasi pengirim |
|
||||
| `plugin-sdk/approval-auth-runtime` | Helper resolusi approver dan auth tindakan obrolan yang sama |
|
||||
| `plugin-sdk/approval-client-runtime` | Helper profil/filter approval exec native |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Adapter kapabilitas/pengiriman approval native |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Helper resolusi gateway approval bersama |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Helper pemuatan adapter approval native ringan untuk entrypoint channel yang sering dipanggil |
|
||||
| `plugin-sdk/approval-handler-runtime` | Helper runtime handler approval yang lebih luas; utamakan seam adapter/gateway yang lebih sempit bila itu sudah cukup |
|
||||
| `plugin-sdk/approval-native-runtime` | Helper target approval native + binding akun |
|
||||
| `plugin-sdk/approval-reply-runtime` | Helper payload balasan approval exec/plugin |
|
||||
| `plugin-sdk/command-auth-native` | Auth command native + helper target sesi native |
|
||||
| `plugin-sdk/command-detection` | Helper deteksi command bersama |
|
||||
| `plugin-sdk/command-surface` | Normalisasi isi command dan helper permukaan command |
|
||||
| `plugin-sdk/command-surface` | Helper normalisasi badan command dan permukaan command |
|
||||
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/channel-secret-runtime` | Helper pengumpulan kontrak rahasia yang sempit untuk permukaan rahasia channel/plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Helper sempit `coerceSecretRef` dan pengetikan SecretRef untuk parsing kontrak/config rahasia |
|
||||
| `plugin-sdk/security-runtime` | Helper bersama untuk trust, gating DM, konten eksternal, dan pengumpulan rahasia |
|
||||
| `plugin-sdk/channel-secret-runtime` | Helper koleksi kontrak secret yang sempit untuk permukaan secret channel/plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Helper `coerceSecretRef` yang sempit dan helper tipe SecretRef untuk parsing kontrak secret/config |
|
||||
| `plugin-sdk/security-runtime` | Helper trust, gating DM, konten eksternal, dan pengumpulan secret bersama |
|
||||
| `plugin-sdk/ssrf-policy` | Helper allowlist host dan kebijakan SSRF jaringan privat |
|
||||
| `plugin-sdk/ssrf-runtime` | Helper pinned-dispatcher, fetch dengan penjagaan SSRF, dan kebijakan SSRF |
|
||||
| `plugin-sdk/secret-input` | Helper parsing input rahasia |
|
||||
| `plugin-sdk/ssrf-runtime` | Helper pinned-dispatcher, fetch yang dijaga SSRF, dan kebijakan SSRF |
|
||||
| `plugin-sdk/secret-input` | Helper parsing input secret |
|
||||
| `plugin-sdk/webhook-ingress` | Helper request/target webhook |
|
||||
| `plugin-sdk/webhook-request-guards` | Helper ukuran isi request/timeout |
|
||||
| `plugin-sdk/webhook-request-guards` | Helper ukuran body/timeout request |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Subpath runtime dan penyimpanan">
|
||||
| Subpath | Ekspor utama |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/runtime` | Helper runtime/logging/backup/instalasi plugin yang luas |
|
||||
| `plugin-sdk/runtime-env` | Helper sempit untuk env runtime, logger, timeout, retry, dan backoff |
|
||||
| `plugin-sdk/channel-runtime-context` | Helper registrasi dan pencarian runtime-context channel generik |
|
||||
| `plugin-sdk/runtime` | Helper runtime/logging/backup/instal plugin yang luas |
|
||||
| `plugin-sdk/runtime-env` | Helper env runtime, logger, timeout, retry, dan backoff yang sempit |
|
||||
| `plugin-sdk/channel-runtime-context` | Helper generik untuk pendaftaran dan pencarian konteks runtime channel |
|
||||
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/plugin-runtime` | Helper bersama untuk command/hook/http/interaktif plugin |
|
||||
| `plugin-sdk/hook-runtime` | Helper pipeline webhook/internal hook bersama |
|
||||
| `plugin-sdk/plugin-runtime` | Helper command/hook/http/interaktif plugin bersama |
|
||||
| `plugin-sdk/hook-runtime` | Helper pipeline hook webhook/internal bersama |
|
||||
| `plugin-sdk/lazy-runtime` | Helper impor/binding runtime lazy seperti `createLazyRuntimeModule`, `createLazyRuntimeMethod`, dan `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | Helper process exec |
|
||||
| `plugin-sdk/cli-runtime` | Helper formatting CLI, wait, dan versi |
|
||||
| `plugin-sdk/process-runtime` | Helper eksekusi proses |
|
||||
| `plugin-sdk/cli-runtime` | Helper format, tunggu, dan versi CLI |
|
||||
| `plugin-sdk/gateway-runtime` | Helper client gateway dan patch status channel |
|
||||
| `plugin-sdk/config-runtime` | Helper pemuatan/penulisan config |
|
||||
| `plugin-sdk/telegram-command-config` | Normalisasi nama/deskripsi command Telegram dan pemeriksaan duplikasi/konflik, bahkan ketika permukaan kontrak Telegram bawaan tidak tersedia |
|
||||
| `plugin-sdk/approval-runtime` | Helper persetujuan exec/plugin, pembuat approval-capability, helper auth/profile, helper routing/runtime native |
|
||||
| `plugin-sdk/telegram-command-config` | Normalisasi nama/deskripsi command Telegram dan pemeriksaan duplikat/konflik, bahkan saat permukaan kontrak Telegram bawaan tidak tersedia |
|
||||
| `plugin-sdk/approval-runtime` | Helper approval exec/plugin, builder kapabilitas approval, helper auth/profil, helper routing/runtime native |
|
||||
| `plugin-sdk/reply-runtime` | Helper runtime inbound/balasan bersama, chunking, dispatch, heartbeat, perencana balasan |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Helper sempit untuk dispatch/finalisasi balasan |
|
||||
| `plugin-sdk/reply-history` | Helper bersama reply-history jendela pendek seperti `buildHistoryContext`, `recordPendingHistoryEntry`, dan `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Helper dispatch/finalisasi balasan yang sempit |
|
||||
| `plugin-sdk/reply-history` | Helper riwayat balasan jendela pendek bersama seperti `buildHistoryContext`, `recordPendingHistoryEntry`, dan `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | Helper sempit chunking teks/markdown |
|
||||
| `plugin-sdk/session-store-runtime` | Helper path session store + updated-at |
|
||||
| `plugin-sdk/reply-chunking` | Helper chunking teks/markdown yang sempit |
|
||||
| `plugin-sdk/session-store-runtime` | Helper path penyimpanan sesi + updated-at |
|
||||
| `plugin-sdk/state-paths` | Helper path direktori state/OAuth |
|
||||
| `plugin-sdk/routing` | Helper binding route/kunci sesi/akun seperti `resolveAgentRoute`, `buildAgentSessionKey`, dan `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Helper bersama ringkasan status channel/akun, default status runtime, dan helper metadata masalah |
|
||||
| `plugin-sdk/target-resolver-runtime` | Helper target resolver bersama |
|
||||
| `plugin-sdk/routing` | Helper rute/kunci sesi/binding akun seperti `resolveAgentRoute`, `buildAgentSessionKey`, dan `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Helper ringkasan status channel/akun bersama, default state runtime, dan helper metadata isu |
|
||||
| `plugin-sdk/target-resolver-runtime` | Helper resolver target bersama |
|
||||
| `plugin-sdk/string-normalization-runtime` | Helper normalisasi slug/string |
|
||||
| `plugin-sdk/request-url` | Ekstrak URL string dari input yang mirip fetch/request |
|
||||
| `plugin-sdk/request-url` | Ekstrak URL string dari input mirip fetch/request |
|
||||
| `plugin-sdk/run-command` | Runner command bertimer dengan hasil stdout/stderr yang dinormalisasi |
|
||||
| `plugin-sdk/param-readers` | Pembaca param tool/CLI umum |
|
||||
| `plugin-sdk/param-readers` | Pembaca param umum untuk tool/CLI |
|
||||
| `plugin-sdk/tool-payload` | Ekstrak payload yang dinormalisasi dari objek hasil tool |
|
||||
| `plugin-sdk/tool-send` | Ekstrak field target pengiriman kanonis dari argumen tool |
|
||||
| `plugin-sdk/temp-path` | Helper bersama untuk path unduhan sementara |
|
||||
| `plugin-sdk/temp-path` | Helper path unduhan sementara bersama |
|
||||
| `plugin-sdk/logging-core` | Helper logger subsistem dan redaksi |
|
||||
| `plugin-sdk/markdown-table-runtime` | Helper mode tabel Markdown |
|
||||
| `plugin-sdk/json-store` | Helper kecil baca/tulis state JSON |
|
||||
| `plugin-sdk/json-store` | Helper baca/tulis state JSON kecil |
|
||||
| `plugin-sdk/file-lock` | Helper file-lock re-entrant |
|
||||
| `plugin-sdk/persistent-dedupe` | Helper cache dedupe berbasis disk |
|
||||
| `plugin-sdk/acp-runtime` | Helper ACP runtime/sesi dan reply-dispatch |
|
||||
| `plugin-sdk/agent-config-primitives` | Primitive sempit skema config runtime agen |
|
||||
| `plugin-sdk/agent-config-primitives` | Primitive sempit skema config runtime agent |
|
||||
| `plugin-sdk/boolean-param` | Pembaca param boolean longgar |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Helper resolusi pencocokan nama berbahaya |
|
||||
| `plugin-sdk/device-bootstrap` | Helper bootstrap perangkat dan token pairing |
|
||||
| `plugin-sdk/extension-shared` | Primitive helper bersama untuk passive-channel, status, dan ambient proxy |
|
||||
| `plugin-sdk/models-provider-runtime` | Helper balasan command/provider `/models` |
|
||||
| `plugin-sdk/skill-commands-runtime` | Helper daftar skill command |
|
||||
| `plugin-sdk/native-command-registry` | Helper registrasi/build/serialisasi command native |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Helper deteksi endpoint Z.A.I |
|
||||
| `plugin-sdk/infra-runtime` | Helper system event/heartbeat |
|
||||
| `plugin-sdk/native-command-registry` | Helper registry/build/serialize command native |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Helper deteksi endpoint Z.AI |
|
||||
| `plugin-sdk/infra-runtime` | Helper event sistem/heartbeat |
|
||||
| `plugin-sdk/collection-runtime` | Helper cache kecil yang dibatasi |
|
||||
| `plugin-sdk/diagnostic-runtime` | Helper flag dan event diagnostik |
|
||||
| `plugin-sdk/error-runtime` | Graph error, formatting, helper klasifikasi error bersama, `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | Helper fetch terbungkus, proxy, dan pinned lookup |
|
||||
| `plugin-sdk/error-runtime` | Helper graf error, formatting, klasifikasi error bersama, `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | Helper fetch terbungkus, proxy, dan pencarian pinned |
|
||||
| `plugin-sdk/host-runtime` | Helper normalisasi hostname dan host SCP |
|
||||
| `plugin-sdk/retry-runtime` | Helper config retry dan runner retry |
|
||||
| `plugin-sdk/agent-runtime` | Helper direktori/identitas/workspace agen |
|
||||
| `plugin-sdk/agent-runtime` | Helper direktori/identitas/workspace agent |
|
||||
| `plugin-sdk/directory-runtime` | Query/dedup direktori berbasis config |
|
||||
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Subpath capability dan pengujian">
|
||||
<Accordion title="Subpath kapabilitas dan pengujian">
|
||||
| Subpath | Ekspor utama |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/media-runtime` | Helper bersama fetch/transform/store media plus pembuat payload media |
|
||||
| `plugin-sdk/media-generation-runtime` | Helper bersama failover pembuatan media, pemilihan kandidat, dan pesan model yang hilang |
|
||||
| `plugin-sdk/media-understanding` | Tipe provider pemahaman media plus ekspor helper gambar/audio untuk provider |
|
||||
| `plugin-sdk/text-runtime` | Helper bersama teks/markdown/logging seperti penghapusan teks yang terlihat oleh asisten, helper render/chunking/table markdown, helper redaksi, helper directive-tag, dan utilitas safe-text |
|
||||
| `plugin-sdk/media-runtime` | Helper fetch/transform/store media bersama plus builder payload media |
|
||||
| `plugin-sdk/media-generation-runtime` | Helper failover media-generation bersama, pemilihan kandidat, dan pesan model yang hilang |
|
||||
| `plugin-sdk/media-understanding` | Tipe provider media understanding plus ekspor helper gambar/audio yang menghadap provider |
|
||||
| `plugin-sdk/text-runtime` | Helper teks/markdown/logging bersama seperti penghapusan teks yang terlihat oleh asisten, helper render/chunking/tabel markdown, helper redaksi, helper tag arahan, dan utilitas safe-text |
|
||||
| `plugin-sdk/text-chunking` | Helper chunking teks outbound |
|
||||
| `plugin-sdk/speech` | Tipe provider ucapan plus helper directive, registry, dan validasi untuk provider |
|
||||
| `plugin-sdk/speech-core` | Tipe provider ucapan bersama, registry, directive, dan helper normalisasi |
|
||||
| `plugin-sdk/realtime-transcription` | Tipe provider transkripsi realtime dan helper registry |
|
||||
| `plugin-sdk/realtime-voice` | Tipe provider suara realtime dan helper registry |
|
||||
| `plugin-sdk/image-generation` | Tipe provider pembuatan gambar |
|
||||
| `plugin-sdk/image-generation-core` | Tipe pembuatan gambar bersama, failover, auth, dan helper registry |
|
||||
| `plugin-sdk/music-generation` | Tipe provider/request/result pembuatan musik |
|
||||
| `plugin-sdk/music-generation-core` | Tipe pembuatan musik bersama, helper failover, pencarian provider, dan parsing model-ref |
|
||||
| `plugin-sdk/video-generation` | Tipe provider/request/result pembuatan video |
|
||||
| `plugin-sdk/video-generation-core` | Tipe pembuatan video bersama, helper failover, pencarian provider, dan parsing model-ref |
|
||||
| `plugin-sdk/webhook-targets` | Helper registry target webhook dan instalasi route |
|
||||
| `plugin-sdk/speech` | Tipe provider speech plus ekspor helper arahan, registri, dan validasi yang menghadap provider |
|
||||
| `plugin-sdk/speech-core` | Tipe provider speech bersama, registri, arahan, dan helper normalisasi |
|
||||
| `plugin-sdk/realtime-transcription` | Tipe provider realtime transcription dan helper registri |
|
||||
| `plugin-sdk/realtime-voice` | Tipe provider realtime voice dan helper registri |
|
||||
| `plugin-sdk/image-generation` | Tipe provider image generation |
|
||||
| `plugin-sdk/image-generation-core` | Tipe image-generation bersama, failover, auth, dan helper registri |
|
||||
| `plugin-sdk/music-generation` | Tipe provider/request/result music generation |
|
||||
| `plugin-sdk/music-generation-core` | Tipe music-generation bersama, helper failover, pencarian provider, dan parsing model-ref |
|
||||
| `plugin-sdk/video-generation` | Tipe provider/request/result video generation |
|
||||
| `plugin-sdk/video-generation-core` | Tipe video-generation bersama, helper failover, pencarian provider, dan parsing model-ref |
|
||||
| `plugin-sdk/webhook-targets` | Registry target webhook dan helper pemasangan rute |
|
||||
| `plugin-sdk/webhook-path` | Helper normalisasi path webhook |
|
||||
| `plugin-sdk/web-media` | Helper bersama pemuatan media remote/lokal |
|
||||
| `plugin-sdk/zod` | `zod` yang diekspor ulang untuk konsumen Plugin SDK |
|
||||
| `plugin-sdk/web-media` | Helper pemuatan media remote/lokal bersama |
|
||||
| `plugin-sdk/zod` | `zod` yang diekspor ulang untuk konsumen plugin SDK |
|
||||
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
|
||||
</Accordion>
|
||||
|
||||
@ -272,13 +274,13 @@ secara eksplisit mempromosikannya sebagai publik.
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Ekspor engine penyimpanan host memori |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Helper multimodal host memori |
|
||||
| `plugin-sdk/memory-core-host-query` | Helper query host memori |
|
||||
| `plugin-sdk/memory-core-host-secret` | Helper rahasia host memori |
|
||||
| `plugin-sdk/memory-core-host-secret` | Helper secret host memori |
|
||||
| `plugin-sdk/memory-core-host-events` | Helper jurnal event host memori |
|
||||
| `plugin-sdk/memory-core-host-status` | Helper status host memori |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Helper runtime CLI host memori |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Helper runtime core host memori |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Helper file/runtime host memori |
|
||||
| `plugin-sdk/memory-host-core` | Alias netral-vendor untuk helper runtime core host memori |
|
||||
| `plugin-sdk/memory-host-core` | Alias netral-vendor untuk helper runtime inti host memori |
|
||||
| `plugin-sdk/memory-host-events` | Alias netral-vendor untuk helper jurnal event host memori |
|
||||
| `plugin-sdk/memory-host-files` | Alias netral-vendor untuk helper file/runtime host memori |
|
||||
| `plugin-sdk/memory-host-markdown` | Helper managed-markdown bersama untuk plugin yang berdekatan dengan memori |
|
||||
@ -288,72 +290,73 @@ secara eksplisit mempromosikannya sebagai publik.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Subpath helper bawaan yang dicadangkan">
|
||||
| Family | Subpath saat ini | Tujuan penggunaan |
|
||||
| Family | Subpath saat ini | Penggunaan yang dimaksudkan |
|
||||
| --- | --- | --- |
|
||||
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Helper dukungan plugin browser bawaan (`browser-support` tetap menjadi compatibility barrel) |
|
||||
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Helper dukungan plugin browser bawaan (`browser-support` tetap menjadi barrel kompatibilitas) |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Permukaan helper/runtime Matrix bawaan |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Permukaan helper/runtime LINE bawaan |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Permukaan helper IRC bawaan |
|
||||
| Helper khusus channel | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Seam kompatibilitas/helper channel bawaan |
|
||||
| Helper auth/plugin khusus | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Seam helper fitur/plugin bawaan; `plugin-sdk/github-copilot-token` saat ini mengekspor `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken`, dan `resolveCopilotApiToken` |
|
||||
| Helper khusus auth/plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Seam helper fitur/plugin bawaan; `plugin-sdk/github-copilot-token` saat ini mengekspor `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken`, dan `resolveCopilotApiToken` |
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## API registrasi
|
||||
## API pendaftaran
|
||||
|
||||
Callback `register(api)` menerima objek `OpenClawPluginApi` dengan metode berikut:
|
||||
Callback `register(api)` menerima objek `OpenClawPluginApi` dengan metode-metode
|
||||
berikut:
|
||||
|
||||
### Registrasi capability
|
||||
### Pendaftaran kapabilitas
|
||||
|
||||
| Metode | Yang didaftarkan |
|
||||
| Method | Apa yang didaftarkan |
|
||||
| ------------------------------------------------ | -------------------------------- |
|
||||
| `api.registerProvider(...)` | Inferensi teks (LLM) |
|
||||
| `api.registerCliBackend(...)` | Backend inferensi CLI lokal |
|
||||
| `api.registerChannel(...)` | Channel pesan |
|
||||
| `api.registerSpeechProvider(...)` | Sintesis text-to-speech / STT |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | Transkripsi realtime streaming |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | Sesi suara realtime duplex |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | Analisis gambar/audio/video |
|
||||
| `api.registerChannel(...)` | Channel pesan |
|
||||
| `api.registerSpeechProvider(...)` | Sintesis teks-ke-suara / STT |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | Transkripsi realtime streaming |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | Sesi suara realtime dupleks |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | Analisis gambar/audio/video |
|
||||
| `api.registerImageGenerationProvider(...)` | Pembuatan gambar |
|
||||
| `api.registerMusicGenerationProvider(...)` | Pembuatan musik |
|
||||
| `api.registerVideoGenerationProvider(...)` | Pembuatan video |
|
||||
| `api.registerWebFetchProvider(...)` | Provider fetch / scrape web |
|
||||
| `api.registerWebSearchProvider(...)` | Pencarian web |
|
||||
| `api.registerMusicGenerationProvider(...)` | Pembuatan musik |
|
||||
| `api.registerVideoGenerationProvider(...)` | Pembuatan video |
|
||||
| `api.registerWebFetchProvider(...)` | Provider web fetch / scrape |
|
||||
| `api.registerWebSearchProvider(...)` | Pencarian web |
|
||||
|
||||
### Tools dan command
|
||||
|
||||
| Metode | Yang didaftarkan |
|
||||
| ------------------------------- | ---------------------------------------------- |
|
||||
| `api.registerTool(tool, opts?)` | Tool agen (wajib atau `{ optional: true }`) |
|
||||
| `api.registerCommand(def)` | Command kustom (melewati LLM) |
|
||||
| Method | Apa yang didaftarkan |
|
||||
| ------------------------------- | --------------------------------------------- |
|
||||
| `api.registerTool(tool, opts?)` | Tool agent (wajib atau `{ optional: true }`) |
|
||||
| `api.registerCommand(def)` | Command kustom (melewati LLM) |
|
||||
|
||||
### Infrastruktur
|
||||
|
||||
| Metode | Yang didaftarkan |
|
||||
| Method | Apa yang didaftarkan |
|
||||
| ---------------------------------------------- | --------------------------------------- |
|
||||
| `api.registerHook(events, handler, opts?)` | Event hook |
|
||||
| `api.registerHook(events, handler, opts?)` | Hook event |
|
||||
| `api.registerHttpRoute(params)` | Endpoint HTTP gateway |
|
||||
| `api.registerGatewayMethod(name, handler)` | Metode RPC gateway |
|
||||
| `api.registerCli(registrar, opts?)` | Subcommand CLI |
|
||||
| `api.registerService(service)` | Layanan background |
|
||||
| `api.registerInteractiveHandler(registration)` | Interactive handler |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | Bagian prompt tambahan yang berdekatan dengan memori |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | Korpus pencarian/baca memori tambahan |
|
||||
| `api.registerService(service)` | Layanan latar belakang |
|
||||
| `api.registerInteractiveHandler(registration)` | Handler interaktif |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | Bagian prompt aditif yang berdekatan dengan memori |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | Korpus pencarian/baca memori aditif |
|
||||
|
||||
Namespace admin core yang dicadangkan (`config.*`, `exec.approvals.*`, `wizard.*`,
|
||||
`update.*`) selalu tetap `operator.admin`, bahkan jika plugin mencoba menetapkan
|
||||
scope metode gateway yang lebih sempit. Utamakan prefiks khusus plugin untuk
|
||||
metode milik plugin.
|
||||
`update.*`) selalu tetap `operator.admin`, meskipun plugin mencoba menetapkan
|
||||
cakupan metode gateway yang lebih sempit. Utamakan prefiks khusus plugin untuk
|
||||
metode yang dimiliki plugin.
|
||||
|
||||
### Metadata registrasi CLI
|
||||
### Metadata pendaftaran CLI
|
||||
|
||||
`api.registerCli(registrar, opts?)` menerima dua jenis metadata tingkat atas:
|
||||
|
||||
- `commands`: root command eksplisit yang dimiliki registrar
|
||||
- `descriptors`: descriptor command saat parse yang digunakan untuk bantuan CLI root,
|
||||
routing, dan registrasi CLI plugin lazy
|
||||
- `descriptors`: deskriptor command saat parse yang digunakan untuk bantuan CLI root,
|
||||
routing, dan pendaftaran CLI plugin lazy
|
||||
|
||||
Jika Anda ingin command plugin tetap lazy-loaded di jalur CLI root normal,
|
||||
Jika Anda ingin command plugin tetap dimuat secara lazy di jalur CLI root normal,
|
||||
sediakan `descriptors` yang mencakup setiap root command tingkat atas yang diekspos oleh
|
||||
registrar tersebut.
|
||||
|
||||
@ -367,7 +370,7 @@ api.registerCli(
|
||||
descriptors: [
|
||||
{
|
||||
name: "matrix",
|
||||
description: "Manage Matrix accounts, verification, devices, and profile state",
|
||||
description: "Kelola akun Matrix, verifikasi, perangkat, dan status profil",
|
||||
hasSubcommands: true,
|
||||
},
|
||||
],
|
||||
@ -375,84 +378,83 @@ api.registerCli(
|
||||
);
|
||||
```
|
||||
|
||||
Gunakan `commands` saja hanya ketika Anda tidak memerlukan registrasi CLI root lazy.
|
||||
Jalur kompatibilitas eager itu tetap didukung, tetapi jalur tersebut tidak memasang
|
||||
placeholder berbasis descriptor untuk lazy loading saat parse time.
|
||||
Gunakan `commands` saja hanya ketika Anda tidak memerlukan pendaftaran CLI root secara lazy.
|
||||
Jalur kompatibilitas eager tersebut tetap didukung, tetapi tidak memasang
|
||||
placeholder berbasis descriptor untuk pemuatan lazy saat parse-time.
|
||||
|
||||
### Registrasi backend CLI
|
||||
### Pendaftaran backend CLI
|
||||
|
||||
`api.registerCliBackend(...)` memungkinkan plugin memiliki config default untuk
|
||||
backend CLI AI lokal seperti `codex-cli`.
|
||||
`api.registerCliBackend(...)` memungkinkan plugin memiliki config default untuk backend
|
||||
CLI AI lokal seperti `codex-cli`.
|
||||
|
||||
- `id` backend menjadi prefiks provider dalam model ref seperti `codex-cli/gpt-5`.
|
||||
- `config` backend menggunakan bentuk yang sama seperti `agents.defaults.cliBackends.<id>`.
|
||||
- Config pengguna tetap menang. OpenClaw menggabungkan `agents.defaults.cliBackends.<id>` di atas
|
||||
default plugin sebelum menjalankan CLI.
|
||||
- Gunakan `normalizeConfig` ketika backend membutuhkan penulisan ulang kompatibilitas setelah penggabungan
|
||||
(misalnya menormalkan bentuk flag lama).
|
||||
- Config pengguna tetap menang. OpenClaw menggabungkan `agents.defaults.cliBackends.<id>` di atas default
|
||||
plugin sebelum menjalankan CLI.
|
||||
- Gunakan `normalizeConfig` saat backend memerlukan penulisan ulang kompatibilitas setelah penggabungan
|
||||
(misalnya menormalisasi bentuk flag lama).
|
||||
|
||||
### Slot eksklusif
|
||||
|
||||
| Metode | Yang didaftarkan |
|
||||
| ------------------------------------------ | ------------------------------------- |
|
||||
| `api.registerContextEngine(id, factory)` | Context engine (satu aktif pada satu waktu) |
|
||||
| `api.registerMemoryCapability(capability)` | Capability memori terpadu |
|
||||
| `api.registerMemoryPromptSection(builder)` | Pembuat bagian prompt memori |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | Resolver rencana flush memori |
|
||||
| `api.registerMemoryRuntime(runtime)` | Adapter runtime memori |
|
||||
| Method | Apa yang didaftarkan |
|
||||
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `api.registerContextEngine(id, factory)` | Engine konteks (satu aktif pada satu waktu). Callback `assemble()` menerima `availableTools` dan `citationsMode` sehingga engine dapat menyesuaikan penambahan prompt. |
|
||||
| `api.registerMemoryCapability(capability)` | Kapabilitas memori terpadu |
|
||||
| `api.registerMemoryPromptSection(builder)` | Builder bagian prompt memori |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | Resolver rencana flush memori |
|
||||
| `api.registerMemoryRuntime(runtime)` | Adapter runtime memori |
|
||||
|
||||
### Adapter embedding memori
|
||||
|
||||
| Metode | Yang didaftarkan |
|
||||
| ---------------------------------------------- | -------------------------------------------------- |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter embedding memori untuk plugin aktif |
|
||||
| Method | Apa yang didaftarkan |
|
||||
| ---------------------------------------------- | ---------------------------------------------- |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter embedding memori untuk plugin aktif |
|
||||
|
||||
- `registerMemoryCapability` adalah API plugin memori eksklusif yang diutamakan.
|
||||
- `registerMemoryCapability` juga dapat mengekspos `publicArtifacts.listArtifacts(...)`
|
||||
sehingga plugin pendamping dapat menggunakan artefak memori yang diekspor melalui
|
||||
`openclaw/plugin-sdk/memory-host-core` alih-alih menjangkau layout privat
|
||||
`openclaw/plugin-sdk/memory-host-core` alih-alih menjangkau tata letak privat
|
||||
plugin memori tertentu.
|
||||
- `registerMemoryPromptSection`, `registerMemoryFlushPlan`, dan
|
||||
`registerMemoryRuntime` adalah API plugin memori eksklusif yang kompatibel dengan versi lama.
|
||||
- `registerMemoryEmbeddingProvider` memungkinkan plugin memori aktif mendaftarkan satu
|
||||
atau lebih id adapter embedding (misalnya `openai`, `gemini`, atau id khusus
|
||||
yang didefinisikan plugin).
|
||||
atau lebih id adapter embedding (misalnya `openai`, `gemini`, atau id yang ditentukan plugin secara kustom).
|
||||
- Config pengguna seperti `agents.defaults.memorySearch.provider` dan
|
||||
`agents.defaults.memorySearch.fallback` diresolusikan terhadap id adapter terdaftar tersebut.
|
||||
`agents.defaults.memorySearch.fallback` diselesaikan terhadap id adapter yang terdaftar tersebut.
|
||||
|
||||
### Event dan siklus hidup
|
||||
|
||||
| Metode | Fungsinya |
|
||||
| -------------------------------------------- | ---------------------------- |
|
||||
| `api.on(hookName, handler, opts?)` | Lifecycle hook bertipe |
|
||||
| `api.onConversationBindingResolved(handler)` | Callback binding percakapan |
|
||||
| Method | Fungsinya |
|
||||
| -------------------------------------------- | ----------------------------- |
|
||||
| `api.on(hookName, handler, opts?)` | Hook siklus hidup bertipe |
|
||||
| `api.onConversationBindingResolved(handler)` | Callback binding percakapan |
|
||||
|
||||
### Semantik keputusan hook
|
||||
|
||||
- `before_tool_call`: mengembalikan `{ block: true }` bersifat terminal. Setelah ada handler yang menetapkannya, handler prioritas lebih rendah dilewati.
|
||||
- `before_tool_call`: mengembalikan `{ block: true }` bersifat terminal. Setelah handler mana pun menetapkannya, handler dengan prioritas lebih rendah dilewati.
|
||||
- `before_tool_call`: mengembalikan `{ block: false }` diperlakukan sebagai tidak ada keputusan (sama seperti menghilangkan `block`), bukan sebagai override.
|
||||
- `before_install`: mengembalikan `{ block: true }` bersifat terminal. Setelah ada handler yang menetapkannya, handler prioritas lebih rendah dilewati.
|
||||
- `before_install`: mengembalikan `{ block: true }` bersifat terminal. Setelah handler mana pun menetapkannya, handler dengan prioritas lebih rendah dilewati.
|
||||
- `before_install`: mengembalikan `{ block: false }` diperlakukan sebagai tidak ada keputusan (sama seperti menghilangkan `block`), bukan sebagai override.
|
||||
- `reply_dispatch`: mengembalikan `{ handled: true, ... }` bersifat terminal. Setelah ada handler yang mengklaim dispatch, handler prioritas lebih rendah dan jalur dispatch model default dilewati.
|
||||
- `message_sending`: mengembalikan `{ cancel: true }` bersifat terminal. Setelah ada handler yang menetapkannya, handler prioritas lebih rendah dilewati.
|
||||
- `reply_dispatch`: mengembalikan `{ handled: true, ... }` bersifat terminal. Setelah handler mana pun mengklaim dispatch, handler dengan prioritas lebih rendah dan jalur dispatch model default dilewati.
|
||||
- `message_sending`: mengembalikan `{ cancel: true }` bersifat terminal. Setelah handler mana pun menetapkannya, handler dengan prioritas lebih rendah dilewati.
|
||||
- `message_sending`: mengembalikan `{ cancel: false }` diperlakukan sebagai tidak ada keputusan (sama seperti menghilangkan `cancel`), bukan sebagai override.
|
||||
|
||||
### Field objek API
|
||||
|
||||
| Field | Tipe | Deskripsi |
|
||||
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| `api.id` | `string` | Id plugin |
|
||||
| `api.name` | `string` | Nama tampilan |
|
||||
| `api.version` | `string?` | Versi plugin (opsional) |
|
||||
| `api.description` | `string?` | Deskripsi plugin (opsional) |
|
||||
| Field | Type | Deskripsi |
|
||||
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `api.id` | `string` | Id plugin |
|
||||
| `api.name` | `string` | Nama tampilan |
|
||||
| `api.version` | `string?` | Versi plugin (opsional) |
|
||||
| `api.description` | `string?` | Deskripsi plugin (opsional) |
|
||||
| `api.source` | `string` | Path sumber plugin |
|
||||
| `api.rootDir` | `string?` | Direktori root plugin (opsional) |
|
||||
| `api.config` | `OpenClawConfig` | Snapshot config saat ini (snapshot runtime in-memory aktif jika tersedia) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | Config khusus plugin dari `plugins.entries.<id>.config` |
|
||||
| `api.runtime` | `PluginRuntime` | [Helper runtime](/id/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | Logger terlingkup (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.registrationMode` | `PluginRegistrationMode` | Mode pemuatan saat ini; `"setup-runtime"` adalah jendela startup/setup ringan sebelum full-entry |
|
||||
| `api.resolvePath(input)` | `(string) => string` | Menyelesaikan path relatif terhadap root plugin |
|
||||
| `api.config` | `OpenClawConfig` | Snapshot config saat ini (snapshot runtime dalam memori yang aktif bila tersedia) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | Config khusus plugin dari `plugins.entries.<id>.config` |
|
||||
| `api.runtime` | `PluginRuntime` | [Helper runtime](/id/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | Logger berpencakupan (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.registrationMode` | `PluginRegistrationMode` | Mode pemuatan saat ini; `"setup-runtime"` adalah jendela startup/setup ringan sebelum entri penuh |
|
||||
| `api.resolvePath(input)` | `(string) => string` | Menyelesaikan path relatif terhadap root plugin |
|
||||
|
||||
## Konvensi modul internal
|
||||
|
||||
@ -462,26 +464,26 @@ Di dalam plugin Anda, gunakan file barrel lokal untuk impor internal:
|
||||
my-plugin/
|
||||
api.ts # Ekspor publik untuk konsumen eksternal
|
||||
runtime-api.ts # Ekspor runtime khusus internal
|
||||
index.ts # Titik masuk plugin
|
||||
setup-entry.ts # Entri ringan khusus setup (opsional)
|
||||
index.ts # Entry point plugin
|
||||
setup-entry.ts # Entri setup ringan saja (opsional)
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Jangan pernah mengimpor plugin Anda sendiri melalui `openclaw/plugin-sdk/<your-plugin>`
|
||||
dari kode production. Arahkan impor internal melalui `./api.ts` atau
|
||||
`./runtime-api.ts`. Jalur SDK adalah kontrak eksternal saja.
|
||||
`./runtime-api.ts`. Path SDK hanya merupakan kontrak eksternal.
|
||||
</Warning>
|
||||
|
||||
Permukaan publik plugin bawaan yang dimuat melalui facade (`api.ts`, `runtime-api.ts`,
|
||||
Permukaan publik plugin bawaan yang dimuat melalui fasad (`api.ts`, `runtime-api.ts`,
|
||||
`index.ts`, `setup-entry.ts`, dan file entri publik serupa) kini mengutamakan
|
||||
snapshot config runtime aktif ketika OpenClaw sudah berjalan. Jika belum ada
|
||||
snapshot runtime, permukaan tersebut akan kembali ke file config yang telah diresolusikan di disk.
|
||||
snapshot config runtime aktif saat OpenClaw sudah berjalan. Jika snapshot runtime
|
||||
belum ada, permukaan tersebut akan fallback ke file config di disk yang telah diselesaikan.
|
||||
|
||||
Plugin provider juga dapat mengekspos barrel kontrak lokal plugin yang sempit ketika
|
||||
helper memang bersifat khusus provider dan belum layak dimasukkan ke subpath SDK generik.
|
||||
Plugin provider juga dapat mengekspos barrel kontrak lokal plugin yang sempit ketika suatu
|
||||
helper memang khusus provider dan belum cocok ditempatkan dalam subpath SDK generik.
|
||||
Contoh bawaan saat ini: provider Anthropic menyimpan helper stream Claude
|
||||
di seam publik `api.ts` / `contract-api.ts` miliknya sendiri alih-alih
|
||||
mendorong logika header beta Anthropic dan `service_tier` ke kontrak
|
||||
mempromosikan logika header beta Anthropic dan `service_tier` ke dalam kontrak
|
||||
`plugin-sdk/*` generik.
|
||||
|
||||
Contoh bawaan lain saat ini:
|
||||
@ -493,16 +495,16 @@ Contoh bawaan lain saat ini:
|
||||
|
||||
<Warning>
|
||||
Kode production extension juga harus menghindari impor `openclaw/plugin-sdk/<other-plugin>`.
|
||||
Jika sebuah helper benar-benar bersifat bersama, pindahkan ke subpath SDK netral
|
||||
seperti `openclaw/plugin-sdk/speech`, `.../provider-model-shared`, atau permukaan
|
||||
berorientasi capability lainnya alih-alih menggabungkan dua plugin secara erat.
|
||||
Jika suatu helper benar-benar dibagikan, promosikan helper tersebut ke subpath SDK netral
|
||||
seperti `openclaw/plugin-sdk/speech`, `.../provider-model-shared`, atau
|
||||
permukaan berorientasi kapabilitas lainnya alih-alih memasangkan dua plugin secara langsung.
|
||||
</Warning>
|
||||
|
||||
## Terkait
|
||||
|
||||
- [Entry Points](/id/plugins/sdk-entrypoints) — opsi `definePluginEntry` dan `defineChannelPluginEntry`
|
||||
- [Runtime Helpers](/id/plugins/sdk-runtime) — referensi lengkap namespace `api.runtime`
|
||||
- [Setup and Config](/id/plugins/sdk-setup) — packaging, manifest, skema config
|
||||
- [Runtime Helpers](/id/plugins/sdk-runtime) — referensi namespace `api.runtime` lengkap
|
||||
- [Setup and Config](/id/plugins/sdk-setup) — packaging, manifes, skema config
|
||||
- [Testing](/id/plugins/sdk-testing) — utilitas pengujian dan aturan lint
|
||||
- [SDK Migration](/id/plugins/sdk-migration) — migrasi dari permukaan yang sudah deprecated
|
||||
- [Plugin Internals](/id/plugins/architecture) — arsitektur mendalam dan model capability
|
||||
- [SDK Migration](/id/plugins/sdk-migration) — migrasi dari permukaan yang sudah usang
|
||||
- [Plugin Internals](/id/plugins/architecture) — arsitektur mendalam dan model kapabilitas
|
||||
|
||||
@ -1,38 +1,38 @@
|
||||
---
|
||||
read_when:
|
||||
- Anda ingin menggunakan model Google Gemini dengan OpenClaw
|
||||
- Anda memerlukan alur auth API key atau OAuth
|
||||
summary: Penyiapan Google Gemini (API key + OAuth, pembuatan gambar, pemahaman media, pencarian web)
|
||||
- Anda memerlukan alur autentikasi kunci API atau OAuth
|
||||
summary: Penyiapan Google Gemini (kunci API + OAuth, pembuatan gambar, pemahaman media, pencarian web)
|
||||
title: Google (Gemini)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:16:30Z"
|
||||
generated_at: "2026-04-08T09:12:43Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e9e558f5ce35c853e0240350be9a1890460c5f7f7fd30b05813a656497dee516
|
||||
source_hash: fad2ff68987301bd86145fa6e10de8c7b38d5bd5dbcd13db9c883f7f5b9a4e01
|
||||
source_path: providers/google.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Google (Gemini)
|
||||
|
||||
Plugin Google menyediakan akses ke model Gemini melalui Google AI Studio, serta
|
||||
plugin Google menyediakan akses ke model Gemini melalui Google AI Studio, serta
|
||||
pembuatan gambar, pemahaman media (gambar/audio/video), dan pencarian web melalui
|
||||
Gemini Grounding.
|
||||
|
||||
- Provider: `google`
|
||||
- Auth: `GEMINI_API_KEY` atau `GOOGLE_API_KEY`
|
||||
- Penyedia: `google`
|
||||
- Autentikasi: `GEMINI_API_KEY` atau `GOOGLE_API_KEY`
|
||||
- API: Google Gemini API
|
||||
- Provider alternatif: `google-gemini-cli` (OAuth)
|
||||
- Penyedia alternatif: `google-gemini-cli` (OAuth)
|
||||
|
||||
## Mulai cepat
|
||||
|
||||
1. Setel API key:
|
||||
1. Atur kunci API:
|
||||
|
||||
```bash
|
||||
openclaw onboard --auth-choice gemini-api-key
|
||||
```
|
||||
|
||||
2. Setel model default:
|
||||
2. Atur model default:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -55,8 +55,8 @@ openclaw onboard --non-interactive \
|
||||
|
||||
## OAuth (Gemini CLI)
|
||||
|
||||
Provider alternatif `google-gemini-cli` menggunakan PKCE OAuth alih-alih API
|
||||
key. Ini adalah integrasi tidak resmi; beberapa pengguna melaporkan adanya
|
||||
Penyedia alternatif `google-gemini-cli` menggunakan PKCE OAuth alih-alih kunci API.
|
||||
Ini adalah integrasi tidak resmi; beberapa pengguna melaporkan adanya
|
||||
pembatasan akun. Gunakan dengan risiko Anda sendiri.
|
||||
|
||||
- Model default: `google-gemini-cli/gemini-3-flash-preview`
|
||||
@ -70,53 +70,56 @@ pembatasan akun. Gunakan dengan risiko Anda sendiri.
|
||||
openclaw models auth login --provider google-gemini-cli --set-default
|
||||
```
|
||||
|
||||
Environment variables:
|
||||
Variabel lingkungan:
|
||||
|
||||
- `OPENCLAW_GEMINI_OAUTH_CLIENT_ID`
|
||||
- `OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET`
|
||||
|
||||
(Atau varian `GEMINI_CLI_*`.)
|
||||
|
||||
Jika permintaan OAuth Gemini CLI gagal setelah login, setel
|
||||
Jika permintaan OAuth Gemini CLI gagal setelah login, atur
|
||||
`GOOGLE_CLOUD_PROJECT` atau `GOOGLE_CLOUD_PROJECT_ID` pada host gateway lalu
|
||||
coba lagi.
|
||||
|
||||
Jika login gagal sebelum alur browser dimulai, pastikan perintah `gemini` lokal
|
||||
sudah terinstal dan ada di `PATH`. OpenClaw mendukung instalasi Homebrew maupun
|
||||
instalasi npm global, termasuk tata letak umum Windows/npm.
|
||||
sudah terinstal dan tersedia di `PATH`. OpenClaw mendukung instalasi Homebrew
|
||||
dan instalasi npm global, termasuk tata letak umum Windows/npm.
|
||||
|
||||
Catatan penggunaan JSON Gemini CLI:
|
||||
|
||||
- Teks balasan berasal dari field JSON CLI `response`.
|
||||
- Teks balasan berasal dari kolom JSON `response` milik CLI.
|
||||
- Penggunaan akan fallback ke `stats` saat CLI membiarkan `usage` kosong.
|
||||
- `stats.cached` dinormalisasi menjadi OpenClaw `cacheRead`.
|
||||
- Jika `stats.input` tidak ada, OpenClaw menurunkan token input dari
|
||||
`stats.input_tokens - stats.cached`.
|
||||
|
||||
## Kapabilitas
|
||||
## Kemampuan
|
||||
|
||||
| Kapabilitas | Didukung |
|
||||
| --------------------- | ----------------- |
|
||||
| Chat completions | Ya |
|
||||
| Pembuatan gambar | Ya |
|
||||
| Pembuatan musik | Ya |
|
||||
| Pemahaman gambar | Ya |
|
||||
| Transkripsi audio | Ya |
|
||||
| Pemahaman video | Ya |
|
||||
| Pencarian web (Grounding) | Ya |
|
||||
| Thinking/reasoning | Ya (Gemini 3.1+) |
|
||||
| Kemampuan | Didukung |
|
||||
| ---------------------- | ----------------- |
|
||||
| Penyelesaian chat | Ya |
|
||||
| Pembuatan gambar | Ya |
|
||||
| Pembuatan musik | Ya |
|
||||
| Pemahaman gambar | Ya |
|
||||
| Transkripsi audio | Ya |
|
||||
| Pemahaman video | Ya |
|
||||
| Pencarian web (Grounding) | Ya |
|
||||
| Thinking/reasoning | Ya (Gemini 3.1+) |
|
||||
| Model Gemma 4 | Ya |
|
||||
|
||||
Model Gemma 4 (misalnya `gemma-4-26b-a4b-it`) mendukung mode thinking. OpenClaw menulis ulang `thinkingBudget` menjadi `thinkingLevel` Google yang didukung untuk Gemma 4. Menyetel thinking ke `off` akan mempertahankan thinking tetap dinonaktifkan alih-alih memetakannya ke `MINIMAL`.
|
||||
|
||||
## Penggunaan ulang cache Gemini langsung
|
||||
|
||||
Untuk eksekusi API Gemini langsung (`api: "google-generative-ai"`), OpenClaw kini
|
||||
meneruskan handle `cachedContent` yang dikonfigurasi ke permintaan Gemini.
|
||||
|
||||
- Konfigurasikan params per-model atau global dengan salah satu
|
||||
- Konfigurasikan parameter per model atau global dengan
|
||||
`cachedContent` atau `cached_content` lama
|
||||
- Jika keduanya ada, `cachedContent` yang dipakai
|
||||
- Jika keduanya ada, `cachedContent` yang diprioritaskan
|
||||
- Contoh nilai: `cachedContents/prebuilt-context`
|
||||
- Penggunaan cache-hit Gemini dinormalisasi menjadi OpenClaw `cacheRead` dari
|
||||
upstream `cachedContentTokenCount`
|
||||
`cachedContentTokenCount` upstream
|
||||
|
||||
Contoh:
|
||||
|
||||
@ -138,7 +141,7 @@ Contoh:
|
||||
|
||||
## Pembuatan gambar
|
||||
|
||||
Provider pembuatan gambar `google` yang dibundel default-nya adalah
|
||||
Penyedia pembuatan gambar `google` bawaan default ke
|
||||
`google/gemini-3.1-flash-image-preview`.
|
||||
|
||||
- Juga mendukung `google/gemini-3-pro-image-preview`
|
||||
@ -146,11 +149,11 @@ Provider pembuatan gambar `google` yang dibundel default-nya adalah
|
||||
- Mode edit: diaktifkan, hingga 5 gambar input
|
||||
- Kontrol geometri: `size`, `aspectRatio`, dan `resolution`
|
||||
|
||||
Provider `google-gemini-cli` yang hanya OAuth adalah permukaan inferensi teks
|
||||
yang terpisah. Pembuatan gambar, pemahaman media, dan Gemini Grounding tetap berada pada
|
||||
ID provider `google`.
|
||||
Penyedia `google-gemini-cli` yang hanya mendukung OAuth adalah surface inferensi
|
||||
teks yang terpisah. Pembuatan gambar, pemahaman media, dan Gemini Grounding tetap
|
||||
berada pada id penyedia `google`.
|
||||
|
||||
Untuk menggunakan Google sebagai provider gambar default:
|
||||
Untuk menggunakan Google sebagai penyedia gambar default:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -165,19 +168,19 @@ Untuk menggunakan Google sebagai provider gambar default:
|
||||
```
|
||||
|
||||
Lihat [Image Generation](/id/tools/image-generation) untuk parameter tool bersama,
|
||||
pemilihan provider, dan perilaku failover.
|
||||
pemilihan penyedia, dan perilaku failover.
|
||||
|
||||
## Pembuatan video
|
||||
|
||||
Plugin `google` yang dibundel juga mendaftarkan pembuatan video melalui tool bersama
|
||||
plugin `google` bawaan juga mendaftarkan pembuatan video melalui tool bersama
|
||||
`video_generate`.
|
||||
|
||||
- Model video default: `google/veo-3.1-fast-generate-preview`
|
||||
- Mode: text-to-video, image-to-video, dan alur referensi video tunggal
|
||||
- Mode: text-to-video, image-to-video, dan alur referensi satu video
|
||||
- Mendukung `aspectRatio`, `resolution`, dan `audio`
|
||||
- Clamp durasi saat ini: **4 hingga 8 detik**
|
||||
- Batas durasi saat ini: **4 hingga 8 detik**
|
||||
|
||||
Untuk menggunakan Google sebagai provider video default:
|
||||
Untuk menggunakan Google sebagai penyedia video default:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -192,21 +195,21 @@ Untuk menggunakan Google sebagai provider video default:
|
||||
```
|
||||
|
||||
Lihat [Video Generation](/id/tools/video-generation) untuk parameter tool bersama,
|
||||
pemilihan provider, dan perilaku failover.
|
||||
pemilihan penyedia, dan perilaku failover.
|
||||
|
||||
## Pembuatan musik
|
||||
|
||||
Plugin `google` yang dibundel juga mendaftarkan pembuatan musik melalui tool bersama
|
||||
plugin `google` bawaan juga mendaftarkan pembuatan musik melalui tool bersama
|
||||
`music_generate`.
|
||||
|
||||
- Model musik default: `google/lyria-3-clip-preview`
|
||||
- Juga mendukung `google/lyria-3-pro-preview`
|
||||
- Kontrol prompt: `lyrics` dan `instrumental`
|
||||
- Format output: `mp3` secara default, serta `wav` pada `google/lyria-3-pro-preview`
|
||||
- Format keluaran: `mp3` secara default, serta `wav` pada `google/lyria-3-pro-preview`
|
||||
- Input referensi: hingga 10 gambar
|
||||
- Eksekusi berbasis sesi dipisahkan melalui alur task/status bersama, termasuk `action: "status"`
|
||||
- Eksekusi berbasis sesi dilepas melalui alur tugas/status bersama, termasuk `action: "status"`
|
||||
|
||||
Untuk menggunakan Google sebagai provider musik default:
|
||||
Untuk menggunakan Google sebagai penyedia musik default:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -221,9 +224,9 @@ Untuk menggunakan Google sebagai provider musik default:
|
||||
```
|
||||
|
||||
Lihat [Music Generation](/id/tools/music-generation) untuk parameter tool bersama,
|
||||
pemilihan provider, dan perilaku failover.
|
||||
pemilihan penyedia, dan perilaku failover.
|
||||
|
||||
## Catatan environment
|
||||
## Catatan lingkungan
|
||||
|
||||
Jika Gateway berjalan sebagai daemon (launchd/systemd), pastikan `GEMINI_API_KEY`
|
||||
tersedia untuk proses tersebut (misalnya, di `~/.openclaw/.env` atau melalui
|
||||
|
||||
@ -5,20 +5,20 @@ read_when:
|
||||
summary: Jalankan OpenClaw dengan Ollama (model cloud dan lokal)
|
||||
title: Ollama
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:17:29Z"
|
||||
generated_at: "2026-04-08T09:12:54Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 222ec68f7d4bb29cc7796559ddef1d5059f5159e7a51e2baa3a271ddb3abb716
|
||||
source_hash: d3295a7c879d3636a2ffdec05aea6e670e54a990ef52bd9b0cae253bc24aa3f7
|
||||
source_path: providers/ollama.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Ollama
|
||||
|
||||
Ollama adalah runtime LLM lokal yang memudahkan menjalankan model open-source di mesin Anda. OpenClaw terintegrasi dengan API native Ollama (`/api/chat`), mendukung streaming dan pemanggilan tool, serta dapat menemukan model Ollama lokal secara otomatis saat Anda memilih ikut serta dengan `OLLAMA_API_KEY` (atau profil auth) dan tidak mendefinisikan entri `models.providers.ollama` secara eksplisit.
|
||||
Ollama adalah runtime LLM lokal yang memudahkan Anda menjalankan model open-source di mesin Anda. OpenClaw terintegrasi dengan API native Ollama (`/api/chat`), mendukung streaming dan pemanggilan tool, serta dapat menemukan model Ollama lokal secara otomatis saat Anda ikut serta dengan `OLLAMA_API_KEY` (atau profil autentikasi) dan tidak mendefinisikan entri `models.providers.ollama` secara eksplisit.
|
||||
|
||||
<Warning>
|
||||
**Pengguna Ollama jarak jauh**: Jangan gunakan URL kompatibel OpenAI `/v1` (`http://host:11434/v1`) dengan OpenClaw. Ini merusak pemanggilan tool dan model dapat menghasilkan JSON tool mentah sebagai teks biasa. Gunakan URL API native Ollama sebagai gantinya: `baseUrl: "http://host:11434"` (tanpa `/v1`).
|
||||
**Pengguna Ollama jarak jauh**: Jangan gunakan URL kompatibel OpenAI `/v1` (`http://host:11434/v1`) dengan OpenClaw. Ini merusak pemanggilan tool dan model dapat mengeluarkan JSON tool mentah sebagai teks biasa. Gunakan URL API native Ollama sebagai gantinya: `baseUrl: "http://host:11434"` (tanpa `/v1`).
|
||||
</Warning>
|
||||
|
||||
## Mulai cepat
|
||||
@ -33,11 +33,11 @@ openclaw onboard
|
||||
|
||||
Pilih **Ollama** dari daftar provider. Onboarding akan:
|
||||
|
||||
1. Menanyakan base URL Ollama tempat instance Anda dapat diakses (default `http://127.0.0.1:11434`).
|
||||
1. Menanyakan URL dasar Ollama tempat instance Anda dapat dijangkau (default `http://127.0.0.1:11434`).
|
||||
2. Memungkinkan Anda memilih **Cloud + Local** (model cloud dan model lokal) atau **Local** (hanya model lokal).
|
||||
3. Membuka alur login di browser jika Anda memilih **Cloud + Local** dan belum masuk ke ollama.com.
|
||||
3. Membuka alur masuk browser jika Anda memilih **Cloud + Local** dan belum masuk ke ollama.com.
|
||||
4. Menemukan model yang tersedia dan menyarankan default.
|
||||
5. Menarik model yang dipilih secara otomatis jika model tersebut belum tersedia secara lokal.
|
||||
5. Melakukan auto-pull pada model yang dipilih jika model tersebut belum tersedia secara lokal.
|
||||
|
||||
Mode non-interaktif juga didukung:
|
||||
|
||||
@ -47,7 +47,7 @@ openclaw onboard --non-interactive \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
Secara opsional tentukan base URL atau model kustom:
|
||||
Secara opsional tentukan URL dasar atau model kustom:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -61,7 +61,7 @@ openclaw onboard --non-interactive \
|
||||
|
||||
1. Instal Ollama: [https://ollama.com/download](https://ollama.com/download)
|
||||
|
||||
2. Tarik model lokal jika Anda menginginkan inferensi lokal:
|
||||
2. Pull model lokal jika Anda ingin inferensi lokal:
|
||||
|
||||
```bash
|
||||
ollama pull gemma4
|
||||
@ -71,7 +71,7 @@ ollama pull gpt-oss:20b
|
||||
ollama pull llama3.3
|
||||
```
|
||||
|
||||
3. Jika Anda juga ingin model cloud, masuklah:
|
||||
3. Jika Anda juga menginginkan model cloud, masuklah:
|
||||
|
||||
```bash
|
||||
ollama signin
|
||||
@ -92,10 +92,10 @@ OpenClaw saat ini menyarankan:
|
||||
- default lokal: `gemma4`
|
||||
- default cloud: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`
|
||||
|
||||
5. Jika Anda lebih memilih penyiapan manual, aktifkan Ollama untuk OpenClaw secara langsung (nilai apa pun berfungsi; Ollama tidak memerlukan key nyata):
|
||||
5. Jika Anda lebih memilih penyiapan manual, aktifkan Ollama untuk OpenClaw secara langsung (nilai apa pun dapat digunakan; Ollama tidak memerlukan kunci asli):
|
||||
|
||||
```bash
|
||||
# Set environment variable
|
||||
# Tetapkan variabel lingkungan
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
# Atau konfigurasi di file config Anda
|
||||
@ -123,12 +123,13 @@ openclaw models set ollama/gemma4
|
||||
|
||||
## Penemuan model (provider implisit)
|
||||
|
||||
Saat Anda menetapkan `OLLAMA_API_KEY` (atau profil auth) dan **tidak** mendefinisikan `models.providers.ollama`, OpenClaw menemukan model dari instance Ollama lokal di `http://127.0.0.1:11434`:
|
||||
Saat Anda menetapkan `OLLAMA_API_KEY` (atau profil autentikasi) dan **tidak** mendefinisikan `models.providers.ollama`, OpenClaw menemukan model dari instance Ollama lokal di `http://127.0.0.1:11434`:
|
||||
|
||||
- Mengueri `/api/tags`
|
||||
- Menggunakan lookup `/api/show` dengan upaya terbaik untuk membaca `contextWindow` bila tersedia
|
||||
- Menggunakan lookup `/api/show` best-effort untuk membaca `contextWindow` dan mendeteksi kapabilitas (termasuk vision) jika tersedia
|
||||
- Model dengan kapabilitas `vision` yang dilaporkan oleh `/api/show` ditandai sebagai mampu-gambar (`input: ["text", "image"]`), sehingga OpenClaw secara otomatis menyisipkan gambar ke prompt untuk model tersebut
|
||||
- Menandai `reasoning` dengan heuristik nama model (`r1`, `reasoning`, `think`)
|
||||
- Menetapkan `maxTokens` ke batas maksimum token Ollama default yang digunakan oleh OpenClaw
|
||||
- Menetapkan `maxTokens` ke batas max-token default Ollama yang digunakan oleh OpenClaw
|
||||
- Menetapkan semua biaya ke `0`
|
||||
|
||||
Ini menghindari entri model manual sambil menjaga katalog tetap selaras dengan instance Ollama lokal.
|
||||
@ -140,7 +141,7 @@ ollama list
|
||||
openclaw models list
|
||||
```
|
||||
|
||||
Untuk menambahkan model baru, cukup tarik model dengan Ollama:
|
||||
Untuk menambahkan model baru, cukup pull model tersebut dengan Ollama:
|
||||
|
||||
```bash
|
||||
ollama pull mistral
|
||||
@ -154,7 +155,7 @@ Jika Anda menetapkan `models.providers.ollama` secara eksplisit, penemuan otomat
|
||||
|
||||
### Penyiapan dasar (penemuan implisit)
|
||||
|
||||
Cara paling sederhana untuk mengaktifkan Ollama adalah melalui environment variable:
|
||||
Cara paling sederhana untuk mengaktifkan Ollama adalah melalui variabel lingkungan:
|
||||
|
||||
```bash
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
@ -162,10 +163,10 @@ export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
### Penyiapan eksplisit (model manual)
|
||||
|
||||
Gunakan config eksplisit saat:
|
||||
Gunakan config eksplisit ketika:
|
||||
|
||||
- Ollama berjalan di host/port lain.
|
||||
- Anda ingin memaksa context window atau daftar model tertentu.
|
||||
- Anda ingin memaksa window konteks atau daftar model tertentu.
|
||||
- Anda ingin definisi model sepenuhnya manual.
|
||||
|
||||
```json5
|
||||
@ -193,9 +194,9 @@ Gunakan config eksplisit saat:
|
||||
}
|
||||
```
|
||||
|
||||
Jika `OLLAMA_API_KEY` ditetapkan, Anda dapat menghilangkan `apiKey` dalam entri provider dan OpenClaw akan mengisinya untuk pemeriksaan ketersediaan.
|
||||
Jika `OLLAMA_API_KEY` ditetapkan, Anda dapat menghilangkan `apiKey` di entri provider dan OpenClaw akan mengisinya untuk pemeriksaan ketersediaan.
|
||||
|
||||
### Base URL kustom (config eksplisit)
|
||||
### URL dasar kustom (config eksplisit)
|
||||
|
||||
Jika Ollama berjalan di host atau port yang berbeda (config eksplisit menonaktifkan penemuan otomatis, jadi definisikan model secara manual):
|
||||
|
||||
@ -205,8 +206,8 @@ Jika Ollama berjalan di host atau port yang berbeda (config eksplisit menonaktif
|
||||
providers: {
|
||||
ollama: {
|
||||
apiKey: "ollama-local",
|
||||
baseUrl: "http://ollama-host:11434", // No /v1 - use native Ollama API URL
|
||||
api: "ollama", // Set explicitly to guarantee native tool-calling behavior
|
||||
baseUrl: "http://ollama-host:11434", // Tanpa /v1 - gunakan URL API native Ollama
|
||||
api: "ollama", // Tetapkan secara eksplisit untuk menjamin perilaku pemanggilan tool native
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -214,7 +215,7 @@ Jika Ollama berjalan di host atau port yang berbeda (config eksplisit menonaktif
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Jangan tambahkan `/v1` ke URL. Path `/v1` menggunakan mode kompatibel OpenAI, di mana pemanggilan tool tidak andal. Gunakan URL dasar Ollama tanpa sufiks path.
|
||||
Jangan tambahkan `/v1` ke URL. Jalur `/v1` menggunakan mode kompatibel OpenAI, di mana pemanggilan tool tidak andal. Gunakan URL dasar Ollama tanpa sufiks path.
|
||||
</Warning>
|
||||
|
||||
### Pemilihan model
|
||||
@ -236,23 +237,23 @@ Setelah dikonfigurasi, semua model Ollama Anda tersedia:
|
||||
|
||||
## Model cloud
|
||||
|
||||
Model cloud memungkinkan Anda menjalankan model yang di-host di cloud (misalnya `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) berdampingan dengan model lokal Anda.
|
||||
Model cloud memungkinkan Anda menjalankan model yang di-host di cloud (misalnya `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) bersama model lokal Anda.
|
||||
|
||||
Untuk menggunakan model cloud, pilih mode **Cloud + Local** saat setup. Wizard memeriksa apakah Anda sudah masuk dan membuka alur login di browser bila diperlukan. Jika autentikasi tidak dapat diverifikasi, wizard fallback ke default model lokal.
|
||||
Untuk menggunakan model cloud, pilih mode **Cloud + Local** selama penyiapan. Wizard memeriksa apakah Anda sudah masuk dan membuka alur masuk browser bila diperlukan. Jika autentikasi tidak dapat diverifikasi, wizard akan kembali ke default model lokal.
|
||||
|
||||
Anda juga dapat langsung masuk di [ollama.com/signin](https://ollama.com/signin).
|
||||
Anda juga dapat masuk langsung di [ollama.com/signin](https://ollama.com/signin).
|
||||
|
||||
## Ollama Web Search
|
||||
|
||||
OpenClaw juga mendukung **Ollama Web Search** sebagai provider
|
||||
`web_search` terbundel.
|
||||
OpenClaw juga mendukung **Ollama Web Search** sebagai provider `web_search`
|
||||
bawaan.
|
||||
|
||||
- Ini menggunakan host Ollama yang Anda konfigurasi (`models.providers.ollama.baseUrl` jika
|
||||
ditetapkan, jika tidak `http://127.0.0.1:11434`).
|
||||
- Ini menggunakan host Ollama yang Anda konfigurasi (`models.providers.ollama.baseUrl` saat
|
||||
ditetapkan, atau `http://127.0.0.1:11434` jika tidak).
|
||||
- Ini tidak memerlukan key.
|
||||
- Ini memerlukan Ollama berjalan dan sudah masuk dengan `ollama signin`.
|
||||
- Ini mengharuskan Ollama berjalan dan sudah masuk dengan `ollama signin`.
|
||||
|
||||
Pilih **Ollama Web Search** saat `openclaw onboard` atau
|
||||
Pilih **Ollama Web Search** selama `openclaw onboard` atau
|
||||
`openclaw configure --section web`, atau tetapkan:
|
||||
|
||||
```json5
|
||||
@ -267,27 +268,27 @@ Pilih **Ollama Web Search** saat `openclaw onboard` atau
|
||||
}
|
||||
```
|
||||
|
||||
Untuk detail penyiapan lengkap dan perilakunya, lihat [Ollama Web Search](/id/tools/ollama-search).
|
||||
Untuk detail penyiapan dan perilaku lengkap, lihat [Ollama Web Search](/id/tools/ollama-search).
|
||||
|
||||
## Lanjutan
|
||||
|
||||
### Model reasoning
|
||||
|
||||
OpenClaw memperlakukan model dengan nama seperti `deepseek-r1`, `reasoning`, atau `think` sebagai mampu reasoning secara default:
|
||||
OpenClaw memperlakukan model dengan nama seperti `deepseek-r1`, `reasoning`, atau `think` sebagai mampu-reasoning secara default:
|
||||
|
||||
```bash
|
||||
ollama pull deepseek-r1:32b
|
||||
```
|
||||
|
||||
### Biaya model
|
||||
### Biaya Model
|
||||
|
||||
Ollama gratis dan berjalan secara lokal, jadi semua biaya model ditetapkan ke $0.
|
||||
|
||||
### Konfigurasi streaming
|
||||
### Konfigurasi Streaming
|
||||
|
||||
Integrasi Ollama OpenClaw menggunakan **API native Ollama** (`/api/chat`) secara default, yang sepenuhnya mendukung streaming dan pemanggilan tool secara bersamaan. Tidak diperlukan konfigurasi khusus.
|
||||
|
||||
#### Mode Lama Kompatibel OpenAI
|
||||
#### Mode Kompatibel OpenAI Lama
|
||||
|
||||
<Warning>
|
||||
**Pemanggilan tool tidak andal dalam mode kompatibel OpenAI.** Gunakan mode ini hanya jika Anda memerlukan format OpenAI untuk proxy dan tidak bergantung pada perilaku pemanggilan tool native.
|
||||
@ -311,9 +312,9 @@ Jika Anda perlu menggunakan endpoint kompatibel OpenAI sebagai gantinya (misalny
|
||||
}
|
||||
```
|
||||
|
||||
Mode ini mungkin tidak mendukung streaming + pemanggilan tool secara bersamaan. Anda mungkin perlu menonaktifkan streaming dengan `params: { streaming: false }` dalam config model.
|
||||
Mode ini mungkin tidak mendukung streaming + pemanggilan tool secara bersamaan. Anda mungkin perlu menonaktifkan streaming dengan `params: { streaming: false }` di config model.
|
||||
|
||||
Saat `api: "openai-completions"` digunakan dengan Ollama, OpenClaw secara default menyuntikkan `options.num_ctx` agar Ollama tidak diam-diam fallback ke context window 4096. Jika proxy/upstream Anda menolak field `options` yang tidak dikenal, nonaktifkan perilaku ini:
|
||||
Saat `api: "openai-completions"` digunakan dengan Ollama, OpenClaw menyisipkan `options.num_ctx` secara default agar Ollama tidak diam-diam kembali ke window konteks 4096. Jika proxy/upstream Anda menolak field `options` yang tidak dikenal, nonaktifkan perilaku ini:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -331,15 +332,15 @@ Saat `api: "openai-completions"` digunakan dengan Ollama, OpenClaw secara defaul
|
||||
}
|
||||
```
|
||||
|
||||
### Context window
|
||||
### Window konteks
|
||||
|
||||
Untuk model yang ditemukan secara otomatis, OpenClaw menggunakan context window yang dilaporkan oleh Ollama bila tersedia, jika tidak maka fallback ke context window Ollama default yang digunakan oleh OpenClaw. Anda dapat mengganti `contextWindow` dan `maxTokens` dalam config provider eksplisit.
|
||||
Untuk model yang ditemukan otomatis, OpenClaw menggunakan window konteks yang dilaporkan oleh Ollama jika tersedia, jika tidak maka akan kembali ke window konteks default Ollama yang digunakan oleh OpenClaw. Anda dapat mengganti `contextWindow` dan `maxTokens` di config provider eksplisit.
|
||||
|
||||
## Pemecahan masalah
|
||||
|
||||
### Ollama tidak terdeteksi
|
||||
|
||||
Pastikan Ollama berjalan dan Anda menetapkan `OLLAMA_API_KEY` (atau profil auth), dan Anda **tidak** mendefinisikan entri `models.providers.ollama` secara eksplisit:
|
||||
Pastikan Ollama sedang berjalan dan Anda telah menetapkan `OLLAMA_API_KEY` (atau profil autentikasi), serta Anda **tidak** mendefinisikan entri `models.providers.ollama` secara eksplisit:
|
||||
|
||||
```bash
|
||||
ollama serve
|
||||
@ -353,9 +354,9 @@ curl http://localhost:11434/api/tags
|
||||
|
||||
### Tidak ada model yang tersedia
|
||||
|
||||
Jika model Anda tidak tercantum, lakukan salah satu dari berikut ini:
|
||||
Jika model Anda tidak terdaftar, lakukan salah satu dari berikut:
|
||||
|
||||
- Tarik model secara lokal, atau
|
||||
- Pull model secara lokal, atau
|
||||
- Definisikan model secara eksplisit di `models.providers.ollama`.
|
||||
|
||||
Untuk menambahkan model:
|
||||
@ -369,18 +370,18 @@ ollama pull llama3.3 # Atau model lain
|
||||
|
||||
### Koneksi ditolak
|
||||
|
||||
Periksa bahwa Ollama berjalan di port yang benar:
|
||||
Periksa bahwa Ollama berjalan pada port yang benar:
|
||||
|
||||
```bash
|
||||
# Check if Ollama is running
|
||||
# Periksa apakah Ollama sedang berjalan
|
||||
ps aux | grep ollama
|
||||
|
||||
# Or restart Ollama
|
||||
# Atau mulai ulang Ollama
|
||||
ollama serve
|
||||
```
|
||||
|
||||
## Lihat juga
|
||||
|
||||
- [Model Providers](/id/concepts/model-providers) - Ikhtisar semua provider
|
||||
- [Model Selection](/id/concepts/models) - Cara memilih model
|
||||
- [Configuration](/id/gateway/configuration) - Referensi config lengkap
|
||||
- [Provider Model](/id/concepts/model-providers) - Ikhtisar semua provider
|
||||
- [Pemilihan Model](/id/concepts/models) - Cara memilih model
|
||||
- [Konfigurasi](/id/gateway/configuration) - Referensi config lengkap
|
||||
|
||||
Loading…
Reference in New Issue
Block a user