tools.media, urutan fallback, dan integrasi pipeline balasan.
Tujuan
- Opsional: pracerna media masuk menjadi teks singkat untuk perutean lebih cepat + parsing perintah yang lebih baik.
- Pertahankan pengiriman media asli ke model (selalu).
- Mendukung API penyedia dan fallback CLI.
- Mengizinkan beberapa model dengan fallback berurutan (error/ukuran/timeout).
Perilaku tingkat tinggi
Select per-capability
Untuk setiap kapabilitas yang diaktifkan (gambar/audio/video), pilih lampiran sesuai kebijakan (default: pertama).
Ikhtisar konfigurasi
tools.media mendukung model bersama plus override per kapabilitas:
Top-level keys
Top-level keys
tools.media.models: daftar model bersama (gunakancapabilitiesuntuk membatasi).tools.media.image/tools.media.audio/tools.media.video:- default (
prompt,maxChars,maxBytes,timeoutSeconds,language) - override penyedia (
baseUrl,headers,providerOptions) - opsi audio Deepgram melalui
tools.media.audio.providerOptions.deepgram - kontrol gema transkrip audio (
echoTranscript, defaultfalse;echoFormat) - daftar
modelsper kapabilitas opsional (diprioritaskan sebelum model bersama) - kebijakan
attachments(mode,maxAttachments,prefer) scope(pembatasan opsional berdasarkan channel/chatType/kunci sesi)
- default (
tools.media.concurrency: jumlah maksimum kapabilitas yang berjalan bersamaan (default 2).
Entri model
Setiap entrimodels[] dapat berupa penyedia atau CLI:
- Provider entry
- CLI entry
Kredensial penyedia (apiKey)
Pemahaman media penyedia menggunakan resolusi auth penyedia yang sama seperti panggilan
model normal: profil auth, variabel lingkungan, lalu
models.providers.<providerId>.apiKey.
Entri tools.media.*.models[] tidak menerima field apiKey inline. Nilai
provider dalam entri model media, seperti openai atau moonshot, harus
memiliki kredensial yang tersedia melalui salah satu sumber auth penyedia standar.
Contoh minimal:
Default dan batas
Default yang direkomendasikan:maxChars: 500 untuk gambar/video (singkat, ramah perintah)maxChars: tidak disetel untuk audio (transkrip penuh kecuali Anda menetapkan batas)maxBytes:- gambar: 10MB
- audio: 20MB
- video: 50MB
Rules
Rules
- Jika media melebihi
maxBytes, model tersebut dilewati dan model berikutnya dicoba. - File audio yang lebih kecil dari 1024 byte diperlakukan sebagai kosong/rusak dan dilewati sebelum transkripsi penyedia/CLI; konteks balasan masuk menerima transkrip placeholder deterministik agar agen tahu catatan tersebut terlalu kecil.
- Jika model mengembalikan lebih dari
maxChars, output dipangkas. promptdefault ke “Describe the .” sederhana plus panduanmaxChars(hanya gambar/video).- Jika model gambar utama aktif sudah mendukung vision secara native, OpenClaw melewati blok ringkasan
[Image]dan meneruskan gambar asli ke model. - Jika model utama Gateway/WebChat hanya teks, lampiran gambar dipertahankan sebagai referensi
media://inbound/*yang di-offload sehingga alat gambar/PDF atau model gambar yang dikonfigurasi tetap dapat memeriksanya alih-alih kehilangan lampiran. - Permintaan eksplisit
openclaw infer image describe --model <provider/model>berbeda: permintaan tersebut menjalankan penyedia/model yang mampu menangani gambar secara langsung, termasuk referensi Ollama sepertiollama/qwen2.5vl:7b. - Jika
<capability>.enabled: truetetapi tidak ada model yang dikonfigurasi, OpenClaw mencoba model balasan aktif ketika penyedianya mendukung kapabilitas tersebut.
Deteksi otomatis pemahaman media (default)
Jikatools.media.<capability>.enabled tidak disetel ke false dan Anda belum mengonfigurasi model, OpenClaw mendeteksi otomatis dalam urutan ini dan berhenti pada opsi pertama yang berfungsi:
agents.defaults.imageModel
Referensi primer/fallback
agents.defaults.imageModel (hanya gambar).
Utamakan referensi provider/model. Referensi polos dikualifikasi dari entri model penyedia yang dikonfigurasi dan mampu menangani gambar hanya ketika kecocokannya unik.Local CLIs (audio only)
CLI lokal (jika terinstal):
sherpa-onnx-offline(memerlukanSHERPA_ONNX_MODEL_DIRdengan encoder/decoder/joiner/tokens)whisper-cli(whisper-cpp; menggunakanWHISPER_CPP_MODELatau model tiny bawaan)whisper(CLI Python; mengunduh model secara otomatis)
Provider auth
- Entri
models.providers.*yang dikonfigurasi dan mendukung kapabilitas dicoba sebelum urutan fallback bawaan. - Penyedia konfigurasi khusus gambar dengan model yang mampu menangani gambar mendaftar otomatis untuk pemahaman media meskipun bukan Plugin vendor bawaan.
- Pemahaman gambar Ollama tersedia saat dipilih secara eksplisit, misalnya melalui
agents.defaults.imageModelatauopenclaw infer image describe --model ollama/<vision-model>.
- Audio: OpenAI → Groq → xAI → Deepgram → OpenRouter → Google → SenseAudio → ElevenLabs → Mistral
- Gambar: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- Video: Google → Qwen → Moonshot
Deteksi biner bersifat best-effort di macOS/Linux/Windows; pastikan CLI ada di
PATH (kami memperluas ~), atau setel model CLI eksplisit dengan path perintah lengkap.Dukungan lingkungan proxy (model penyedia)
Ketika pemahaman media audio dan video berbasis penyedia diaktifkan, OpenClaw menghormati variabel lingkungan proxy keluar standar untuk panggilan HTTP penyedia:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
Kapabilitas (opsional)
Jika Anda menetapkancapabilities, entri hanya berjalan untuk tipe media tersebut. Untuk daftar bersama, OpenClaw dapat menyimpulkan default:
openai,anthropic,minimax: gambarminimax-portal: gambarmoonshot: gambar + videoopenrouter: gambar + audiogoogle(API Gemini): gambar + audio + videoqwen: gambar + videomistral: audiozai: gambargroq: audioxai: audiodeepgram: audio- Katalog
models.providers.<id>.models[]apa pun dengan model yang mampu menangani gambar: gambar
capabilities secara eksplisit untuk menghindari kecocokan yang mengejutkan. Jika Anda menghilangkan capabilities, entri memenuhi syarat untuk daftar tempat entri tersebut muncul.
Matriks dukungan penyedia (integrasi OpenClaw)
| Kapabilitas | Integrasi penyedia | Catatan |
|---|---|---|
| Gambar | OpenAI, OpenAI Codex OAuth, Codex app-server, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, penyedia konfigurasi | Plugin vendor mendaftarkan dukungan gambar; openai/* dapat menggunakan perutean kunci API atau Codex OAuth; codex/* menggunakan giliran Codex app-server terbatas; MiniMax dan MiniMax OAuth sama-sama menggunakan MiniMax-VL-01; penyedia konfigurasi yang mampu menangani gambar mendaftar otomatis. |
| Audio | OpenAI, Groq, xAI, Deepgram, OpenRouter, Google, SenseAudio, ElevenLabs, Mistral | Transkripsi penyedia (Whisper/Groq/xAI/Deepgram/OpenRouter STT/Gemini/SenseAudio/Scribe/Voxtral). |
| Video | Google, Qwen, Moonshot | Pemahaman video penyedia melalui Plugin vendor; pemahaman video Qwen menggunakan endpoint Standard DashScope. |
Catatan MiniMax
- Pemahaman gambar
minimax,minimax-cn,minimax-portal, danminimax-portal-cnberasal dari penyedia mediaMiniMax-VL-01milik plugin. - Perutean gambar otomatis tetap menggunakan
MiniMax-VL-01meskipun metadata chat MiniMax M2.x lama mengklaim input gambar.
Panduan pemilihan model
- Utamakan model generasi terbaru terkuat yang tersedia untuk setiap kemampuan media saat kualitas dan keamanan penting.
- Untuk agen berkemampuan alat yang menangani input tidak tepercaya, hindari model media yang lebih lama/lemah.
- Pertahankan setidaknya satu fallback per kemampuan untuk ketersediaan (model berkualitas + model yang lebih cepat/lebih murah).
- Fallback CLI (
whisper-cli,whisper,gemini) berguna saat API penyedia tidak tersedia. - Catatan
parakeet-mlx: dengan--output-dir, OpenClaw membaca<output-dir>/<media-basename>.txtsaat format output adalahtxt(atau tidak ditentukan); format non-txtfallback ke stdout.
Kebijakan lampiran
attachments per kemampuan mengontrol lampiran mana yang diproses:
Apakah memproses lampiran pertama yang dipilih atau semuanya.
Batasi jumlah yang diproses.
Preferensi pemilihan di antara kandidat lampiran.
mode: "all", output diberi label [Image 1/2], [Audio 2/2], dan seterusnya.
Perilaku ekstraksi lampiran file
Perilaku ekstraksi lampiran file
- Teks file yang diekstrak dibungkus sebagai konten eksternal tidak tepercaya sebelum ditambahkan ke prompt media.
- Blok yang disisipkan menggunakan penanda batas eksplisit seperti
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>dan menyertakan baris metadataSource: External. - Jalur ekstraksi lampiran ini sengaja menghilangkan banner
SECURITY NOTICE:yang panjang untuk menghindari pembesaran prompt media; penanda batas dan metadata tetap ada. - Jika file tidak memiliki teks yang dapat diekstrak, OpenClaw menyisipkan
[No extractable text]. - Jika PDF fallback ke gambar halaman yang dirender di jalur ini, OpenClaw meneruskan gambar halaman tersebut ke model balasan berkemampuan vision dan mempertahankan placeholder
[PDF content rendered to images]di blok file.
Contoh config
- Model bersama + override
- Hanya audio + video
- Hanya gambar
- Satu entri multimodal
Output status
Saat pemahaman media berjalan,/status menyertakan baris ringkasan singkat:
Catatan
- Pemahaman bersifat upaya terbaik. Error tidak memblokir balasan.
- Lampiran tetap diteruskan ke model meskipun pemahaman dinonaktifkan.
- Gunakan
scopeuntuk membatasi tempat pemahaman berjalan (misalnya hanya DM).