Skip to main content
OpenClaw może podsumowywać przychodzące multimedia (obrazy/dźwięk/wideo) przed uruchomieniem potoku odpowiedzi, dzięki czemu analizowanie poleceń i trasowanie działają na krótkim tekście zamiast na nieprzetworzonych bajtach. Mechanizm rozumienia automatycznie wykrywa lokalne narzędzia lub klucze dostawców; można też skonfigurować konkretne modele. Oryginalne multimedia są zawsze jak zwykle przekazywane do modelu; gdy mechanizm rozumienia zawiedzie lub jest wyłączony, przepływ odpowiedzi jest kontynuowany bez zmian. Pluginy dostawców rejestrują metadane możliwości (który dostawca obsługuje dany typ multimediów, model domyślny i priorytet). Rdzeń OpenClaw odpowiada za współdzieloną konfigurację 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:
Klucze 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 wpis models[] jest wpisem dostawcy (domyślnie) albo wpisem 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ępnie models.providers.<providerId>.apiKey. Wpisy tools.media.*.models[] nie przyjmują pola apiKey bezpośrednio we wpisie.
Informacje o profilach, zmiennych środowiskowych i niestandardowych bazowych adresach URL zawiera sekcja Narzędzia i niestandardowi dostawcy.

Reguły i zachowanie

  • Multimedia przekraczające maxBytes powodują 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-portal i minimax-portal-cn zawsze kierują rozumienie obrazu przez należącego do Pluginu dostawcę multimediów MiniMax-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ą tylko MiniMax-M3 i 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 jak ollama/qwen2.5vl:7b, gdy odpowiedni model obsługujący obrazy jest skonfigurowany w models.providers.ollama.models[].
  • Jeśli <capability>.enabled nie ma wartości false, 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)

Gdy tools.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-cli jako 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 (wymaga SHERPA_ONNX_MODEL_DIR z plikami tokens.txt/encoder.onnx/decoder.onnx/joiner.onnx)
  • whisper-cli, gdy obsługa akceleracji wynika jedynie z możliwości kompilacji lub nie została wykryta
  • parakeet-mlx na Apple Silicon (obsługa MLX, użycie urządzenia niewykryte)
  • whisper (CLI w Pythonie; domyślnie używa modelu turbo, pobieranego automatycznie)
Sprawdzanie możliwości zaplecza jest buforowane i nie powoduje ładowania modelu. Możliwości kompilacji, żądane flagi zaplecza i zaplecze wykryte podczas rzeczywistego wywołania pozostają rozdzielone. Automatycznie wykryty whisper.cpp pozostawia włączone dzienniki uruchamiania modelu, aby można było zarejestrować wiersz wybranego zaplecza pochodzący z projektu nadrzędnego. Jawne wpisy CLI zachowują skonfigurowaną kolejność, flagi zaplecza i flagi wyjściowe.
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.
Aby wyłączyć automatyczne wykrywanie dla danej możliwości:
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 pomijania NO_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

Ustaw capabilities 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 (lub all) wraz z --output-dir oraz domyślnym szablonem wyjściowym {filename}. Obsługiwane są również zmienne środowiskowe projektu nadrzędnego PARAKEET_OUTPUT_FORMAT i PARAKEET_OUTPUT_TEMPLATE. OpenClaw odczytuje <output-dir>/<media-basename>.txt; domyślny format srt, inne formaty oraz niestandardowe szablony wyjściowe nadal korzystają ze standardowego wyjścia.

Zasady dotyczące załączników

Pole attachments 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.
Gdy ustawiono 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 metadanych Source: 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

Dane wyjściowe stanu

Gdy działa rozumienie multimediów, /status zawiera wiersz podsumowania dla każdej możliwości:
Aby wstępnie sprawdzić dostępne zasoby, uruchom 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).

Powiązane