Rozumienie mediów - przychodzące (2026-01-17)
OpenClaw może podsumowywać przychodzące media (obrazy/audio/wideo), zanim uruchomi się potok odpowiedzi. Automatycznie wykrywa, kiedy dostępne są lokalne narzędzia lub klucze providerów, i może być wyłączone albo dostosowane. Jeśli rozumienie jest wyłączone, modele nadal otrzymują oryginalne pliki/adresy URL jak zwykle. Zachowanie mediów specyficzne dla dostawców jest rejestrowane przez pluginy dostawców, podczas gdy core OpenClaw zarządza współdzieloną konfiguracjątools.media, kolejnością fallbacków i integracją z potokiem odpowiedzi.
Cele
- Opcjonalnie: wstępnie przetwarzać przychodzące media do krótkiego tekstu dla szybszego routingu i lepszego parsowania poleceń.
- Zawsze zachowywać dostarczanie oryginalnych mediów do modelu.
- Obsługiwać API providerów i fallbacki CLI.
- Umożliwiać wiele modeli z uporządkowanym fallbackiem (błąd/rozmiar/timeout).
Zachowanie na wysokim poziomie
- Zbierz przychodzące załączniki (
MediaPaths,MediaUrls,MediaTypes). - Dla każdej włączonej możliwości (obraz/audio/wideo) wybierz załączniki zgodnie z polityką (domyślnie: pierwszy).
- Wybierz pierwszy kwalifikujący się wpis modelu (rozmiar + możliwość + auth).
- Jeśli model zawiedzie lub medium jest zbyt duże, przejdź do następnego wpisu.
- Po sukcesie:
Bodystaje się blokiem[Image],[Audio]lub[Video].- Audio ustawia
{{Transcript}}; parsowanie poleceń używa tekstu podpisu, jeśli istnieje, w przeciwnym razie transkryptu. - Podpisy są zachowywane jako
User text:wewnątrz bloku.
Przegląd konfiguracji
tools.media obsługuje współdzielone modele oraz nadpisania per możliwość:
tools.media.models: współdzielona lista modeli (użyjcapabilitiesdo ograniczania).tools.media.image/tools.media.audio/tools.media.video:- ustawienia domyślne (
prompt,maxChars,maxBytes,timeoutSeconds,language) - nadpisania providerów (
baseUrl,headers,providerOptions) - opcje audio Deepgram przez
tools.media.audio.providerOptions.deepgram - ustawienia echo transkryptu audio (
echoTranscript, domyślniefalse;echoFormat) - opcjonalna lista
modelsper możliwość (preferowana przed współdzielonymi modelami) - polityka
attachments(mode,maxAttachments,prefer) scope(opcjonalne ograniczanie według kanału/chatType/klucza sesji)
- ustawienia domyślne (
tools.media.concurrency: maksymalna liczba równoległych przebiegów dla możliwości (domyślnie 2).
Wpisy modeli
Każdy wpismodels[] może być typu provider albo CLI:
{{MediaDir}}(katalog zawierający plik mediów){{OutputDir}}(katalog roboczy utworzony dla tego przebiegu){{OutputBase}}(bazowa ścieżka pliku roboczego, bez rozszerzenia)
Wartości domyślne i limity
Zalecane wartości domyślne:maxChars: 500 dla obrazów/wideo (krótkie, przyjazne dla poleceń)maxChars: nieustawione dla audio (pełny transkrypt, chyba że ustawisz limit)maxBytes:- obraz: 10MB
- audio: 20MB
- wideo: 50MB
- Jeśli medium przekracza
maxBytes, ten model jest pomijany i próbowany jest następny model. - Pliki audio mniejsze niż 1024 bajty są traktowane jako puste/uszkodzone i pomijane przed transkrypcją provider/CLI.
- Jeśli model zwróci więcej niż
maxChars, wynik jest przycinany. promptdomyślnie ma prostą postać „Describe the .” plus wskazówkęmaxChars(tylko dla obrazów/wideo).- Jeśli aktywny główny model obrazu już natywnie obsługuje vision, OpenClaw
pomija blok podsumowania
[Image]i zamiast tego przekazuje do modelu oryginalny obraz. - Jeśli ustawiono
<capability>.enabled: true, ale nie skonfigurowano modeli, OpenClaw próbuje użyć aktywnego modelu odpowiedzi, jeśli jego provider obsługuje tę możliwość.
Automatyczne wykrywanie rozumienia mediów (domyślne)
Jeślitools.media.<capability>.enabled nie jest ustawione na false i nie
skonfigurowano modeli, OpenClaw wykrywa automatycznie w tej kolejności i zatrzymuje się na pierwszej
działającej opcji:
- Aktywny model odpowiedzi, jeśli jego provider obsługuje tę możliwość.
agents.defaults.imageModelprimary/fallback refs (tylko obraz).- Lokalne CLI (tylko audio; jeśli zainstalowane)
sherpa-onnx-offline(wymagaSHERPA_ONNX_MODEL_DIRz encoder/decoder/joiner/tokens)whisper-cli(whisper-cpp; używaWHISPER_CPP_MODELlub bundlowanego modelu tiny)whisper(Python CLI; pobiera modele automatycznie)
- Gemini CLI (
gemini) używająceread_many_files - Auth providera
- Skonfigurowane wpisy
models.providers.*, które obsługują daną możliwość, są próbowane przed bundlowaną kolejnością fallbacków. - Providery skonfigurowane tylko dla obrazów z modelem obsługującym obraz rejestrują się automatycznie dla rozumienia mediów nawet wtedy, gdy nie są bundlowanym pluginem dostawcy.
- Bundlowana kolejność fallbacków:
- Audio: OpenAI → Groq → Deepgram → Google → Mistral
- Obraz: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- Wideo: Google → Qwen → Moonshot
- Skonfigurowane wpisy
PATH (rozwijamy ~), albo ustaw jawny model CLI z pełną ścieżką polecenia.
Obsługa środowiska proxy (modele providerów)
Gdy włączone jest oparte na providerach rozumienie mediów dla audio i wideo, OpenClaw uwzględnia standardowe zmienne środowiskowe wychodzącego proxy dla wywołań HTTP providerów:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
Możliwości (opcjonalne)
Jeśli ustawiszcapabilities, wpis będzie działał tylko dla tych typów mediów. Dla współdzielonych
list OpenClaw może wnioskować wartości domyślne:
openai,anthropic,minimax: obrazminimax-portal: obrazmoonshot: obraz + wideoopenrouter: obrazgoogle(Gemini API): obraz + audio + wideoqwen: obraz + wideomistral: audiozai: obrazgroq: audiodeepgram: audio- Dowolny katalog
models.providers.<id>.models[]z modelem obsługującym obraz: obraz
capabilities jawnie, aby uniknąć zaskakujących dopasowań.
Jeśli pominiesz capabilities, wpis kwalifikuje się dla listy, w której się znajduje.
Macierz obsługi providerów (integracje OpenClaw)
| Możliwość | Integracja providera | Uwagi |
|---|---|---|
| Obraz | OpenAI, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Pluginy dostawców rejestrują obsługę obrazów; MiniMax i MiniMax OAuth używają MiniMax-VL-01; providery config obsługujące obraz rejestrują się automatycznie. |
| Audio | OpenAI, Groq, Deepgram, Google, Mistral | Transkrypcja providerów (Whisper/Deepgram/Gemini/Voxtral). |
| Wideo | Google, Qwen, Moonshot | Rozumienie wideo providerów przez pluginy dostawców; rozumienie wideo Qwen używa standardowych endpointów DashScope. |
- Rozumienie obrazów
minimaximinimax-portalpochodzi z należącego do pluginu providera mediówMiniMax-VL-01. - Bundlowany katalog tekstowy MiniMax nadal zaczyna się jako wyłącznie tekstowy; jawne
wpisy
models.providers.minimaxmaterializują referencje czatu M2.7 obsługujące obrazy.
Wskazówki dotyczące wyboru modeli
- Preferuj najmocniejszy model najnowszej generacji dostępny dla każdej możliwości mediów, gdy liczy się jakość i bezpieczeństwo.
- Dla agentów z włączonymi narzędziami obsługujących niezaufane dane wejściowe unikaj starszych/słabszych modeli mediów.
- Zachowaj przynajmniej jeden fallback na możliwość dla dostępności (model jakościowy + model szybszy/tańszy).
- Fallbacki CLI (
whisper-cli,whisper,gemini) są przydatne, gdy API providerów są niedostępne. - Uwaga dotycząca
parakeet-mlx: z--output-dirOpenClaw odczytuje<output-dir>/<media-basename>.txt, gdy format wyjściowy totxt(lub nie został określony); formaty inne niżtxtwracają do stdout.
Polityka załączników
attachments per możliwość kontroluje, które załączniki są przetwarzane:
mode:first(domyślnie) luballmaxAttachments: limit liczby przetwarzanych elementów (domyślnie 1)prefer:first,last,path,url
mode: "all", wyniki są oznaczane jako [Image 1/2], [Audio 2/2] itd.
Zachowanie ekstrakcji załączników plikowych:
- Wyekstrahowany tekst pliku jest opakowywany jako niezaufana treść zewnętrzna, zanim zostanie dołączony do promptu mediów.
- Wstrzykiwany blok używa jawnych znaczników granicznych, takich jak
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>, i zawiera linię metadanychSource: External. - Ta ścieżka ekstrakcji załączników celowo pomija długi baner
SECURITY NOTICE:, aby nie rozdymac promptu mediów; znaczniki graniczne i metadane nadal pozostają. - Jeśli plik nie ma tekstu możliwego do wyekstrahowania, OpenClaw wstrzykuje
[No extractable text]. - Jeśli PDF na tej ścieżce wraca do renderowanych obrazów stron, prompt mediów zachowuje
placeholder
[PDF content rendered to images; images not forwarded to model], ponieważ ten krok ekstrakcji załączników przekazuje bloki tekstu, a nie renderowane obrazy PDF.
Przykłady konfiguracji
1) Współdzielona lista modeli + nadpisania
2) Tylko audio + wideo (obraz wyłączony)
3) Opcjonalne rozumienie obrazów
4) Pojedynczy wpis multi-modal (jawne capabilities)
Wynik statusu
Gdy działa rozumienie mediów,/status zawiera krótką linię podsumowania:
Uwagi
- Rozumienie działa w trybie best‑effort. Błędy nie blokują odpowiedzi.
- Załączniki są nadal przekazywane do modeli nawet wtedy, gdy rozumienie jest wyłączone.
- Użyj
scope, aby ograniczyć miejsca działania rozumienia (np. tylko do DM).