tools.media, urutan fallback, dan integrasi alur pemrosesan balasan.
Cara kerjanya
1
Kumpulkan lampiran
Kumpulkan lampiran masuk (
MediaPaths, MediaUrls, MediaTypes).2
Pilih per kapabilitas
Untuk setiap kapabilitas yang diaktifkan (gambar/audio/video), pilih lampiran berdasarkan kebijakan
attachments (bawaan: hanya lampiran pertama).3
Pilih model
Pilih entri model pertama yang memenuhi syarat (ukuran + kapabilitas + autentikasi tersedia).
4
Gunakan fallback saat gagal
Jika model mengalami kesalahan, kehabisan waktu, atau media melebihi
maxBytes, coba entri berikutnya.5
Terapkan saat berhasil
Body menjadi blok [Image], [Audio], atau [Video]. Audio juga menetapkan {{Transcript}}; penguraian perintah menggunakan teks keterangan jika tersedia, atau transkrip jika tidak. Keterangan dipertahankan sebagai User text: di dalam blok.Konfigurasi
tools.media berisi daftar model bersama beserta penggantian per kapabilitas:
image/audio/video):
Opsi khusus Deepgram ditempatkan di bawah
providerOptions.deepgram (kolom tingkat atas deepgram: { detectLanguage, punctuate, smartFormat } telah usang, tetapi masih dibaca).
Entri model
Setiap entrimodels[] merupakan entri penyedia (bawaan) atau entri CLI:
- Entri penyedia
- Entri CLI
Kredensial penyedia
Pemahaman media oleh penyedia menggunakan resolusi autentikasi yang sama seperti panggilan model biasa: profil autentikasi, variabel lingkungan, kemudianmodels.providers.<providerId>.apiKey. Entri tools.media.*.models[] tidak menerima kolom apiKey sebaris.
Aturan dan perilaku
- Media yang melebihi
maxBytesmelewati model tersebut dan mencoba model berikutnya. - Berkas audio di bawah 1024 byte dianggap kosong/rusak dan dilewati sebelum transkripsi; agen menerima transkrip placeholder deterministik sebagai gantinya.
- Jika model gambar utama yang aktif sudah mendukung penglihatan secara native, OpenClaw melewati blok ringkasan
[Image]dan meneruskan gambar asli langsung ke model. MiniMax merupakan pengecualian:minimax,minimax-cn,minimax-portal, danminimax-portal-cnselalu merutekan pemahaman gambar melalui penyedia mediaMiniMax-VL-01milik plugin, meskipun metadata obrolan MiniMax M2.x lama mengklaim dukungan masukan gambar (hanyaMiniMax-M3dan versi lebih baru yang dianggap mampu menangani penglihatan secara native). - Jika model utama Gateway/WebChat hanya mendukung teks, lampiran gambar dipertahankan sebagai referensi
media://inbound/*yang dialihkan penyimpanannya agar alat gambar/PDF atau model gambar yang dikonfigurasi tetap dapat memeriksanya, alih-alih kehilangan lampiran tersebut. - Perintah eksplisit
openclaw infer image describe --file <path> --model <provider/model>(alias:openclaw capability image describe) menjalankan penyedia/model berkemampuan gambar tersebut secara langsung, termasuk referensi Ollama sepertiollama/qwen2.5vl:7bketika model berkemampuan gambar yang cocok dikonfigurasi di bawahmodels.providers.ollama.models[]. - Jika
<capability>.enabledbukanfalse, tetapi tidak ada model yang dikonfigurasi, OpenClaw mencoba model balasan aktif ketika penyedianya mendukung kapabilitas tersebut.
Deteksi otomatis (bawaan)
Ketikatools.media.<capability>.enabled bukan false dan tidak ada model yang dikonfigurasi, OpenClaw mencoba opsi berikut secara berurutan dan berhenti pada opsi pertama yang berfungsi:
1
Model gambar yang dikonfigurasi (khusus gambar)
Referensi utama/fallback
agents.defaults.imageModel, kecuali model balasan aktif sudah mendukung penglihatan secara native. Utamakan referensi provider/model; referensi tanpa penyedia hanya dilengkapi dari entri model penyedia berkemampuan gambar yang dikonfigurasi ketika kecocokannya unik.2
Model balasan aktif
Model balasan aktif, ketika penyedianya mendukung kapabilitas tersebut.
3
Autentikasi penyedia (khusus audio, sebelum CLI lokal)
Entri
models.providers.* yang dikonfigurasi dan mendukung audio dicoba sebelum CLI lokal. Urutan prioritas penyedia bawaan (jika sama, diurutkan menurut abjad berdasarkan ID penyedia): Groq/OpenAI โ xAI โ Deepgram โ OpenRouter โ Google/SenseAudio โ Deepinfra/ElevenLabs โ Mistral.4
CLI lokal (khusus audio)
Biner lokal yang siap digunakan menjadi daftar fallback berurutan:
whisper-cliditempatkan pertama hanya setelah pemanggilan model sebelumnya dalam proses saat ini mendeteksi Metal atau CUDAsherpa-onnx-offlinedengan CPU sebagai bawaan (memerlukanSHERPA_ONNX_MODEL_DIRdengantokens.txt/encoder.onnx/decoder.onnx/joiner.onnx)whisper-cliketika akselerasi hanya didukung oleh hasil build atau belum terdeteksiparakeet-mlxpada Apple Silicon (mendukung MLX, penggunaan perangkat belum terdeteksi)whisper(CLI Python; secara bawaan menggunakan modelturbo, diunduh secara otomatis)
5
Autentikasi penyedia (gambar/video)
Entri
models.providers.* yang dikonfigurasi dan mendukung kapabilitas tersebut dicoba sebelum urutan fallback bawaan. Penyedia konfigurasi khusus gambar dengan model berkemampuan gambar didaftarkan secara otomatis untuk pemahaman media meskipun bukan Plugin vendor bawaan.Urutan prioritas penyedia bawaan (jika sama, diurutkan menurut abjad berdasarkan ID penyedia):- Gambar: Anthropic/OpenAI โ Google โ MiniMax โ Deepinfra โ MiniMax Portal โ Z.AI
- Video: Google โ Qwen โ Moonshot
6
CLI Antigravity (khusus gambar/video)
Biner
agy atau antigravity pertama yang terpasang (ganti dengan OPENCLAW_ANTIGRAVITY_CLI), dijalankan dalam sandbox yang dibatasi pada direktori media.Deteksi biner bersifat upaya terbaik di macOS/Linux/Windows; pastikan CLI tersedia di
PATH (~ diperluas), atau tetapkan entri model CLI eksplisit dengan jalur perintah lengkap.Dukungan proksi (panggilan penyedia audio/video)
Pemahaman audio dan video berbasis penyedia mematuhi variabel lingkungan proksi keluar standar, termasuk aturan pengecualianNO_PROXY/no_proxy: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, https_proxy, http_proxy, all_proxy. Variabel huruf kecil lebih diprioritaskan daripada huruf besar. Jika tidak ada yang ditetapkan, pemahaman media menggunakan akses keluar langsung; jika nilai proksi tidak valid, OpenClaw mencatat peringatan dan beralih ke pengambilan langsung. Pemahaman gambar tidak melalui jalur proksi ini.
Kapabilitas
Tetapkancapabilities pada entri models[] untuk membatasinya ke jenis media tertentu. Untuk daftar bersama, OpenClaw menyimpulkan nilai bawaan per penyedia bawaan:
Untuk entri CLI, tetapkan
capabilities secara eksplisit guna menghindari pencocokan yang tidak terduga; jika dihilangkan, entri tersebut memenuhi syarat untuk setiap daftar kemampuan tempat entri itu muncul.
Matriks dukungan penyedia
Catatan MiniMax: pemahaman gambar
minimax, minimax-cn, minimax-portal, dan minimax-portal-cn selalu berasal dari penyedia media MiniMax-VL-01 yang dimiliki Plugin, meskipun metadata obrolan MiniMax M2.x lama menyatakan dukungan masukan gambar.Panduan pemilihan model
- Utamakan model generasi terkini yang paling andal untuk setiap kemampuan media jika kualitas dan keamanan penting.
- Untuk agen yang mendukung alat dan menangani masukan tidak tepercaya, hindari model media yang lebih lama atau lebih lemah.
- Pertahankan setidaknya satu cadangan untuk setiap kemampuan demi ketersediaan (model berkualitas + model yang lebih cepat/murah).
- Cadangan CLI (
whisper-cli,whisper,gemini) membantu ketika API penyedia tidak tersedia. - Mode keluaran berkas yang diketahui bersifat otoritatif: berkas transkrip hasil inferensi yang kosong atau tidak ada tidak menghasilkan transkrip, alih-alih beralih ke keluaran kemajuan CLI.
parakeet-mlx: gunakan--output-format txt(atauall) bersama--output-dirdan templat keluaran bawaan{filename}. Variabel lingkungan huluPARAKEET_OUTPUT_FORMATdanPARAKEET_OUTPUT_TEMPLATEjuga dipatuhi. OpenClaw membaca<output-dir>/<media-basename>.txt; format bawaansrt, format lainnya, dan templat keluaran khusus tetap menggunakan stdout.
Kebijakan lampiran
attachments per kemampuan mengontrol lampiran mana yang diproses:
"first" | "all"
default:"first"
Proses hanya lampiran pertama yang dipilih, atau semuanya.
number
default:"1"
Batasi jumlah yang diproses.
"first" | "last" | "path" | "url"
Preferensi pemilihan di antara lampiran kandidat.
mode: "all", keluaran diberi label [Gambar 1/2], [Audio 2/2], dan seterusnya.
Ekstraksi lampiran berkas
- Teks berkas yang diekstrak dibungkus sebagai konten eksternal tidak tepercaya sebelum ditambahkan ke prompt media, menggunakan penanda batas seperti
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>beserta baris metadataSource: External. - Jalur ini sengaja menghilangkan banner panjang
SECURITY NOTICE:agar prompt media tetap ringkas; penanda batas dan metadata tetap diterapkan. - Berkas tanpa teks yang dapat diekstrak mendapatkan
[Tidak ada teks yang dapat diekstrak]. - Jika PDF beralih ke gambar halaman yang dirender, OpenClaw meneruskan gambar tersebut ke model balasan berkemampuan penglihatan dan mempertahankan placeholder
[Konten PDF dirender menjadi gambar]dalam blok berkas.
Contoh konfigurasi
- Model bersama + penggantian
- Hanya audio + video
- Hanya gambar
- Satu entri multimodal
Keluaran status
Ketika pemahaman media berjalan,/status menyertakan baris ringkasan per kemampuan:
openclaw capability audio providers. Baris lokal menampilkan pilihan cadangan lokal secara terpisah dari pemilihan penyedia global, kesiapan, serta bidang backend mampu/diminta/teramati yang terpisah. Pemilihan lokal yang sama tersedia sebagai temuan informatif doctor:
Catatan
- Pemahaman dilakukan dengan upaya terbaik. Kesalahan tidak menghalangi balasan.
- Lampiran tetap diteruskan ke model meskipun pemahaman dinonaktifkan.
- Gunakan
scopeuntuk membatasi tempat pemahaman berjalan (misalnya, hanya DM).