tools.media, kolejność mechanizmów rezerwowych oraz integrację z potokiem odpowiedzi.
Jak to działa
1
Zbieranie załączników
Zbierz przychodzące załączniki (
MediaPaths, MediaUrls, MediaTypes).2
Wybór dla każdej możliwości
Dla każdej włączonej możliwości (obraz/dźwięk/wideo) wybierz załączniki zgodnie z zasadami
attachments (domyślnie: tylko pierwszy załącznik).3
Wybór modelu
Wybierz pierwszy odpowiedni wpis modelu (dostępny rozmiar, możliwość i uwierzytelnianie).
4
Użycie mechanizmu rezerwowego w razie niepowodzenia
Jeśli model zwróci błąd, przekroczy limit czasu lub multimedia przekroczą
maxBytes, wypróbuj następny wpis.5
Zastosowanie po powodzeniu
Body staje się blokiem [Image], [Audio] lub [Video]. Dźwięk ustawia również {{Transcript}}; analizowanie poleceń używa tekstu podpisu, jeśli jest dostępny, a w przeciwnym razie transkrypcji. Podpisy są zachowywane w bloku jako User text:.Konfiguracja
tools.media zawiera współdzieloną listę modeli oraz ustawienia zastępujące dla poszczególnych możliwości:
image/audio/video):
Opcje specyficzne dla Deepgram należy umieszczać w
providerOptions.deepgram (pole najwyższego poziomu deepgram: { detectLanguage, punctuate, smartFormat } jest przestarzałe, ale nadal odczytywane).
Wpisy modeli
Każdy wpismodels[] jest wpisem dostawcy (domyślnie) albo wpisem CLI:
- Wpis dostawcy
- Wpis CLI
Dane uwierzytelniające dostawcy
Mechanizm rozumienia multimediów dostawcy korzysta z tego samego sposobu ustalania uwierzytelniania co zwykłe wywołania modeli: profile uwierzytelniania, zmienne środowiskowe, a następniemodels.providers.<providerId>.apiKey. Wpisy tools.media.*.models[] nie przyjmują pola apiKey bezpośrednio we wpisie.
Reguły i zachowanie
- Multimedia przekraczające
maxBytespowodują pominięcie danego modelu i wypróbowanie następnego. - Pliki dźwiękowe mniejsze niż 1024 bajty są uznawane za puste lub uszkodzone i pomijane przed transkrypcją; agent otrzymuje zamiast tego deterministyczny tekst zastępczy transkrypcji.
- Jeśli aktywny podstawowy model obrazu już natywnie obsługuje widzenie, OpenClaw pomija blok podsumowania
[Image]i przekazuje oryginalny obraz bezpośrednio do modelu. MiniMax stanowi wyjątek:minimax,minimax-cn,minimax-portaliminimax-portal-cnzawsze kierują rozumienie obrazu przez należącego do Pluginu dostawcę multimediówMiniMax-VL-01, nawet jeśli starsze metadane czatu MiniMax M2.x deklarują obsługę obrazów wejściowych (za natywnie obsługujące widzenie uznawane są tylkoMiniMax-M3i nowsze). - Jeśli podstawowy model Gateway/WebChat obsługuje tylko tekst, załączniki graficzne są zachowywane jako przeniesione odwołania
media://inbound/*, aby narzędzia obrazów/PDF lub skonfigurowany model obrazu nadal mogły je sprawdzić, zamiast utracić załącznik. - Jawne polecenie
openclaw infer image describe --file <path> --model <provider/model>(alias:openclaw capability image describe) uruchamia bezpośrednio dostawcę/model obsługujący obrazy, w tym odwołania Ollama, takie jakollama/qwen2.5vl:7b, gdy odpowiedni model obsługujący obrazy jest skonfigurowany wmodels.providers.ollama.models[]. - Jeśli
<capability>.enablednie ma wartościfalse, ale nie skonfigurowano żadnych modeli, OpenClaw próbuje użyć aktywnego modelu odpowiedzi, jeśli jego dostawca obsługuje daną możliwość.
Automatyczne wykrywanie (domyślne)
Gdytools.media.<capability>.enabled nie ma wartości false i nie skonfigurowano żadnych modeli, OpenClaw wypróbowuje kolejno poniższe opcje i zatrzymuje się na pierwszej działającej:
1
Skonfigurowany model obrazu (tylko obraz)
Podstawowe i rezerwowe odwołania
agents.defaults.imageModel, chyba że aktywny model odpowiedzi już natywnie obsługuje widzenie. Preferowane są odwołania provider/model; odwołania bez dostawcy są uzupełniane na podstawie skonfigurowanych wpisów modeli dostawców obsługujących obrazy tylko wtedy, gdy dopasowanie jest jednoznaczne.2
Aktywny model odpowiedzi
Aktywny model odpowiedzi, jeśli jego dostawca obsługuje daną możliwość.
3
Uwierzytelnianie dostawcy (tylko dźwięk, przed lokalnymi CLI)
Skonfigurowane wpisy
models.providers.* obsługujące dźwięk są wypróbowywane przed lokalnymi CLI. Kolejność priorytetów dostawców w pakiecie (remisy rozstrzyga alfabetyczna kolejność identyfikatora dostawcy): Groq/OpenAI → xAI → Deepgram → OpenRouter → Google/SenseAudio → Deepinfra/ElevenLabs → Mistral.4
Lokalne CLI (tylko dźwięk)
Gotowe lokalne pliki wykonywalne tworzą uporządkowaną listę mechanizmów rezerwowych:
whisper-clijako pierwszy tylko wtedy, gdy wcześniejsze wywołanie modelu w bieżącym procesie wykryło Metal lub CUDA- domyślny dla CPU
sherpa-onnx-offline(wymagaSHERPA_ONNX_MODEL_DIRz plikamitokens.txt/encoder.onnx/decoder.onnx/joiner.onnx) whisper-cli, gdy obsługa akceleracji wynika jedynie z możliwości kompilacji lub nie została wykrytaparakeet-mlxna Apple Silicon (obsługa MLX, użycie urządzenia niewykryte)whisper(CLI w Pythonie; domyślnie używa modeluturbo, pobieranego automatycznie)
5
Uwierzytelnianie dostawcy (obraz/wideo)
Skonfigurowane wpisy
models.providers.* obsługujące daną możliwość są wypróbowywane przed kolejnością mechanizmów rezerwowych w pakiecie. Dostawcy skonfigurowani tylko dla obrazów, którzy mają model obsługujący obrazy, automatycznie rejestrują się na potrzeby rozumienia multimediów, nawet jeśli nie są Pluginem dostawcy w pakiecie.Kolejność priorytetów dostawców w pakiecie (remisy rozstrzyga alfabetyczna kolejność identyfikatora dostawcy):- Obraz: Anthropic/OpenAI → Google → MiniMax → Deepinfra → MiniMax Portal → Z.AI
- Wideo: Google → Qwen → Moonshot
6
CLI Antigravity (tylko obraz/wideo)
Pierwszy zainstalowany plik wykonywalny
agy lub antigravity (można zastąpić za pomocą OPENCLAW_ANTIGRAVITY_CLI), uruchamiany w piaskownicy ograniczonej do katalogu multimediów.Wykrywanie plików wykonywalnych w systemach macOS/Linux/Windows odbywa się na zasadzie najlepszych starań; upewnij się, że CLI znajduje się w
PATH (~ jest rozwijane), albo ustaw jawny wpis modelu CLI z pełną ścieżką polecenia.Obsługa serwera proxy (wywołania dostawcy dla dźwięku/wideo)
Oparte na dostawcy rozumienie dźwięku i wideo respektuje standardowe zmienne środowiskowe wychodzącego serwera proxy, w tym reguły pomijaniaNO_PROXY/no_proxy: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, https_proxy, http_proxy, all_proxy. Zmienne pisane małymi literami mają pierwszeństwo przed zmiennymi pisanymi wielkimi literami. Jeśli żadna nie jest ustawiona, mechanizm rozumienia multimediów korzysta z bezpośredniego połączenia wychodzącego; jeśli wartość serwera proxy jest nieprawidłowa, OpenClaw rejestruje ostrzeżenie i przechodzi na pobieranie bezpośrednie. Rozumienie obrazu nie korzysta z tej ścieżki serwera proxy.
Możliwości
Ustawcapabilities we wpisie models[], aby ograniczyć go do określonych typów multimediów. W przypadku list współdzielonych OpenClaw ustala wartości domyślne dla poszczególnych dostawców w pakiecie:
W przypadku wpisów CLI ustaw
capabilities jawnie, aby uniknąć nieoczekiwanych dopasowań; jeśli to pole zostanie pominięte, wpis kwalifikuje się do każdej listy możliwości, na której występuje.
Macierz obsługi dostawców
Uwaga dotycząca MiniMax: rozumienie obrazów przez
minimax, minimax-cn, minimax-portal i minimax-portal-cn zawsze zapewnia należący do Pluginu dostawca multimediów MiniMax-VL-01, nawet jeśli starsze metadane czatu MiniMax M2.x deklarują obsługę obrazów wejściowych.Wskazówki dotyczące wyboru modelu
- Gdy jakość i bezpieczeństwo mają znaczenie, dla każdej możliwości multimedialnej wybieraj najsilniejszy model bieżącej generacji.
- W przypadku agentów z dostępem do narzędzi, które przetwarzają niezaufane dane wejściowe, unikaj starszych lub słabszych modeli multimedialnych.
- Zachowaj co najmniej jeden model rezerwowy dla każdej możliwości, aby zapewnić dostępność (model wysokiej jakości + szybszy/tańszy model).
- Rezerwowe narzędzia CLI (
whisper-cli,whisper,gemini) pomagają, gdy API dostawców są niedostępne. - Znane tryby zapisu do pliku są rozstrzygające: pusty lub brakujący wywnioskowany plik transkrypcji oznacza brak transkrypcji zamiast użycia wyjścia postępu CLI jako rozwiązania rezerwowego.
parakeet-mlx: użyj--output-format txt(luball) wraz z--output-diroraz domyślnym szablonem wyjściowym{filename}. Obsługiwane są również zmienne środowiskowe projektu nadrzędnegoPARAKEET_OUTPUT_FORMATiPARAKEET_OUTPUT_TEMPLATE. OpenClaw odczytuje<output-dir>/<media-basename>.txt; domyślny formatsrt, inne formaty oraz niestandardowe szablony wyjściowe nadal korzystają ze standardowego wyjścia.
Zasady dotyczące załączników
Poleattachments dla poszczególnych możliwości określa, które załączniki są przetwarzane:
"first" | "all"
domyślnie:"first"
Przetwarzaj tylko pierwszy wybrany załącznik albo wszystkie.
number
domyślnie:"1"
Ogranicz liczbę przetwarzanych załączników.
"first" | "last" | "path" | "url"
Preferencja wyboru spośród kandydujących załączników.
mode: "all", wyniki są oznaczane jako [Obraz 1/2], [Dźwięk 2/2] itd.
Wyodrębnianie zawartości załączonych plików
- Tekst wyodrębniony z pliku jest opakowywany jako niezaufana zawartość zewnętrzna przed dołączeniem do promptu multimedialnego. Stosowane są znaczniki graniczne, takie jak
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>, oraz wiersz metadanychSource: External. - Ta ścieżka celowo pomija długi baner
SECURITY NOTICE:, aby prompt multimedialny pozostał krótki; znaczniki graniczne i metadane nadal mają zastosowanie. - Plik bez tekstu możliwego do wyodrębnienia otrzymuje oznaczenie
[Brak tekstu możliwego do wyodrębnienia]. - Jeśli dla pliku PDF zostanie użyte rezerwowe renderowanie stron jako obrazów, OpenClaw przekazuje te obrazy modelom odpowiedzi obsługującym analizę obrazu i zachowuje symbol zastępczy
[Zawartość PDF wyrenderowana jako obrazy]w bloku pliku.
Przykłady konfiguracji
- Audio + video only
- Image only
- Multi-modal single entry
Dane wyjściowe stanu
Gdy działa rozumienie multimediów,/status zawiera wiersz podsumowania dla każdej możliwości:
openclaw capability audio providers. Wiersze lokalne pokazują zwycięskie lokalne rozwiązanie rezerwowe oddzielnie od globalnego wyboru dostawcy, gotowości oraz osobnych pól obsługiwanego, żądanego i zaobserwowanego zaplecza. Ten sam wybór lokalny jest dostępny jako informacyjny wynik diagnostyczny:
Uwagi
- Rozumienie działa na zasadzie dołożenia wszelkich starań. Błędy nie blokują odpowiedzi.
- Załączniki są nadal przekazywane modelom, nawet gdy rozumienie jest wyłączone.
- Użyj
scope, aby ograniczyć miejsca, w których działa rozumienie (na przykład tylko do wiadomości prywatnych).