Tools
Generowanie muzyki
Narzędzie music_generate tworzy muzykę lub dźwięk za pośrednictwem współdzielonej
funkcji generowania muzyki, obsługiwanej przez ComfyUI, fal, Google, MiniMax i
OpenRouter.
W przypadku uruchomień agenta opartych na sesji music_generate rozpoczyna
zadanie w tle, śledzi postęp w rejestrze zadań, a następnie wybudza agenta, gdy
utwór jest gotowy, aby mógł powiadomić użytkownika i dołączyć gotowy plik
dźwiękowy. Agent kończący zadanie przestrzega kontraktu widocznej odpowiedzi
sesji: automatycznej odpowiedzi końcowej, jeśli jest skonfigurowana, albo
message(action="send"), gdy sesja wymaga narzędzia do wysyłania wiadomości.
Jeśli sesja inicjatora jest nieaktywna lub jej wybudzenie się nie powiedzie,
a wygenerowanego dźwięku nadal brakuje w odpowiedzi, OpenClaw wysyła
idempotentną bezpośrednią wiadomość awaryjną zawierającą wyłącznie brakujący
dźwięk.
Szybki start
Współdzielony, obsługiwany przez dostawcę
Skonfiguruj uwierzytelnianie
Ustaw klucz API dla co najmniej jednego dostawcy — na przykład
GEMINI_API_KEY lub MINIMAX_API_KEY.
Wybierz model domyślny (opcjonalnie)
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Poproś agenta
„Wygeneruj energiczny utwór synthpop o nocnej przejażdżce przez neonowe miasto.”
Agent automatycznie wywoła music_generate. Nie trzeba dodawać
narzędzia do listy dozwolonych.
Bez uruchomienia agenta opartego na sesji (w kontekstach bezpośrednich/lokalnych) narzędzie działa synchronicznie i zwraca ścieżkę do gotowego pliku multimedialnego w tym samym wyniku narzędzia.
Przepływ pracy ComfyUI
Skonfiguruj przepływ pracy
Skonfiguruj plugins.entries.comfy.config.music, podając plik JSON
przepływu pracy oraz węzły monitu i wyjścia.
Uwierzytelnianie w chmurze (opcjonalnie)
W przypadku Comfy Cloud ustaw COMFY_API_KEY lub
COMFY_CLOUD_API_KEY.
Wywołaj narzędzie
/tool music_generate prompt="Ciepła ambientowa pętla syntezatorowa z delikatną fakturą taśmy"Przykładowe monity:
Wygeneruj filmowy utwór fortepianowy z delikatnymi smyczkami i bez wokalu.Wygeneruj energiczną pętlę chiptune o wystrzeleniu rakiety o wschodzie słońca.Użyj action: "list", aby sprawdzić dostępnych dostawców i modele, oraz
action: "status", aby sprawdzić aktywne zadanie muzyczne oparte na sesji:
/tool music_generate action=list/tool music_generate action=statusPrzykład generowania bezpośredniego:
/tool music_generate prompt="Marzycielski lo-fi hip-hop z fakturą winylu i łagodnym deszczem" instrumental=trueObsługiwani dostawcy
| Dostawca | Model domyślny | Dane referencyjne | Obsługiwane parametry sterujące | Uwierzytelnianie |
|---|---|---|---|---|
| ComfyUI | workflow |
Do 1 obrazu | Muzyka lub dźwięk zdefiniowane przez przepływ pracy | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
| fal | fal-ai/minimax-music/v2.6 |
Brak | lyrics, instrumental, durationSeconds, format |
FAL_KEY lub FAL_API_KEY |
lyria-3-clip-preview |
Do 10 obrazów | lyrics, instrumental, format |
GEMINI_API_KEY, GOOGLE_API_KEY |
|
| MiniMax | music-2.6 |
Brak | lyrics, instrumental, format (tylko mp3) |
MINIMAX_API_KEY lub OAuth MiniMax |
| OpenRouter | google/lyria-3-pro-preview |
Do 1 obrazu | lyrics, instrumental, durationSeconds, format |
OPENROUTER_API_KEY |
MiniMax rejestruje dwa identyfikatory dostawcy współdzielące te same modele:
minimax dla uwierzytelniania kluczem API oraz minimax-portal dla OAuth.
Odwołania do modeli odpowiadają ścieżce uwierzytelniania
(minimax/music-2.6 w porównaniu z minimax-portal/music-2.6); zobacz
MiniMax.
Oprócz domyślnego modelu opartego na MiniMax fal udostępnia także
fal-ai/ace-step/prompt-to-audio (wav, bez tekstu utworu i bez przełącznika
trybu instrumentalnego) oraz fal-ai/stable-audio-25/text-to-audio (wav,
tylko monit). Domyślny model Google lyria-3-clip-preview generuje wyłącznie
mp3; lyria-3-pro-preview obsługuje również wav. MiniMax udostępnia także
music-2.6-free, music-cover i music-cover-free. OpenRouter udostępnia
również google/lyria-3-clip-preview.
Macierz możliwości
Jawny kontrakt trybów używany przez music_generate, testy kontraktowe i
współdzielony przebieg testów na żywo:
| Dostawca | generate |
edit |
Limit edycji | Współdzielone ścieżki testów na żywo |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 obraz | Poza współdzielonym przebiegiem; objęty extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Brak | generate |
| ✓ | ✓ | 10 obrazów | generate, edit |
|
| MiniMax | ✓ | — | Brak | generate |
| OpenRouter | ✓ | ✓ | 1 obraz | generate, edit |
Parametry narzędzia
promptstringrequiredMonit generowania muzyki. Wymagany dla action: "generate".
action"generate" | "status" | "list"default: generate"status" zwraca bieżące zadanie sesji; "list" wyświetla dostawców.
modelstringNadpisanie dostawcy/modelu (np. google/lyria-3-pro-preview,
comfy/workflow).
lyricsstringOpcjonalny tekst utworu, gdy dostawca obsługuje jawne przekazywanie tekstu.
instrumentalbooleanŻądanie wyjścia wyłącznie instrumentalnego, gdy dostawca je obsługuje.
imagestringŚcieżka lub adres URL pojedynczego obrazu referencyjnego.
imagesstring[]Wiele obrazów referencyjnych (do 10 u obsługujących je dostawców).
durationSecondsnumberDocelowy czas trwania w sekundach, gdy dostawca obsługuje wskazówki dotyczące czasu trwania.
format"mp3" | "wav"Wskazówka dotycząca formatu wyjściowego, gdy dostawca go obsługuje.
filenamestringLimity czasu żądań do dostawcy są wyłącznie konfiguracją operatora. OpenClaw
używa agents.defaults.musicGenerationModel.timeoutMs, gdy ta wartość jest
skonfigurowana, podnosi wartości poniżej 120000ms do 120000ms, a w pozostałych
przypadkach domyślnie ustawia limit żądań do dostawcy na 300000ms.
Działanie asynchroniczne
Generowanie muzyki oparte na sesji działa jako zadanie w tle:
- Zadanie w tle:
music_generatetworzy zadanie w tle, natychmiast zwraca odpowiedź o rozpoczęciu wraz z informacjami o zadaniu, a później publikuje gotowy utwór w kolejnej wiadomości agenta. - Zapobieganie duplikatom: gdy zadanie ma stan
queuedlubrunning, kolejne wywołaniamusic_generatew tej samej sesji zwracają stan zadania zamiast rozpoczynać następne generowanie. Użyjaction: "status", aby sprawdzić go jawnie. Niedawno ukończone pasujące żądanie jest również deduplikowane przez 2 minuty. - Sprawdzanie stanu:
openclaw tasks listlubopenclaw tasks show <taskId>pozwala sprawdzić stan oczekujący, aktywny i końcowy. - Wybudzenie po zakończeniu: OpenClaw wprowadza wewnętrzne zdarzenie zakończenia z powrotem do tej samej sesji, aby model mógł samodzielnie napisać dalszą odpowiedź przeznaczoną dla użytkownika.
- Wskazówka w monicie: kolejne tury użytkownika lub ręczne w tej samej
sesji otrzymują krótką wskazówkę środowiska wykonawczego, gdy zadanie
muzyczne jest już w toku, dzięki czemu model nie wywołuje ponownie
music_generatebez sprawdzenia. - Tryb awaryjny bez sesji: konteksty bezpośrednie/lokalne bez rzeczywistej sesji agenta działają synchronicznie i zwracają końcowy wynik dźwiękowy w tej samej turze.
Cykl życia zadania
Zadanie muzyczne udostępnia te same stany co ogólny rejestr zadań (pełny
automat stanów, w tym timed_out, cancelled i lost, opisano w sekcji
Zadania w tle). Większość zadań
muzycznych przechodzi przez następujące stany:
| Stan | Znaczenie |
|---|---|
queued |
Zadanie utworzono i oczekuje ono na przyjęcie przez dostawcę. |
running |
Dostawca przetwarza zadanie (zwykle od 30 sekund do 3 minut, zależnie od dostawcy i czasu trwania). |
succeeded |
Utwór jest gotowy; agent zostaje wybudzony i publikuje go w rozmowie. |
failed |
Błąd dostawcy lub przekroczenie limitu czasu; agent zostaje wybudzony ze szczegółami błędu. |
Sprawdź stan z poziomu CLI:
openclaw tasks listopenclaw tasks show <taskId>openclaw tasks cancel <taskId>Konfiguracja
Wybór modelu
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"], }, }, },}Kolejność wyboru dostawcy
OpenClaw próbuje dostawców w następującej kolejności:
- Parametr
modelz wywołania narzędzia (jeśli agent go określi). musicGenerationModel.primaryz konfiguracji.- Wpisy
musicGenerationModel.fallbacksw podanej kolejności. - Automatyczne wykrywanie wyłącznie na podstawie domyślnych dostawców
z uwierzytelnianiem:
- najpierw bieżący domyślny dostawca modelu tekstowego, jeśli oferuje również generowanie muzyki;
- pozostali zarejestrowani dostawcy generowania muzyki, alfabetycznie według identyfikatora dostawcy.
Jeśli dostawca zawiedzie, automatycznie podejmowana jest próba użycia następnego kandydata. Jeśli wszystkie próby się nie powiodą, błąd zawiera szczegóły każdej z nich.
Ustaw agents.defaults.mediaGenerationAutoProviderFallback: false, aby
używać wyłącznie jawnych wpisów model, primary i fallbacks.
Uwagi dotyczące dostawców
ComfyUI
Sterowany przepływem pracy i zależny od skonfigurowanego grafu oraz mapowania węzłów
dla pól polecenia i danych wyjściowych. Dołączony plugin comfy integruje się ze
współdzielonym narzędziem music_generate za pośrednictwem rejestru dostawców
generowania muzyki.
fal
Używa punktów końcowych modeli fal za pośrednictwem współdzielonej ścieżki uwierzytelniania dostawcy. Dołączony
dostawca domyślnie używa fal-ai/minimax-music/v2.6, a także udostępnia
fal-ai/ace-step/prompt-to-audio oraz
fal-ai/stable-audio-25/text-to-audio na potrzeby żądań generowania dźwięku z polecenia.
Tekst utworu i tryb instrumentalny są dostępne wyłącznie dla modelu MiniMax; pozostałe dwa
modele obsługują tylko polecenia.
Google (Lyria 3)
Używa wsadowego generowania Lyria 3. Obecnie dołączony przepływ obsługuje
polecenie, opcjonalny tekst utworu oraz opcjonalne obrazy referencyjne. Domyślny
model lyria-3-clip-preview generuje wyłącznie pliki mp3; model
lyria-3-pro-preview obsługuje również format wav.
MiniMax
Używa wsadowego punktu końcowego music_generation. Obsługuje polecenie, opcjonalny
tekst utworu, tryb instrumentalny i dane wyjściowe mp3 przy użyciu uwierzytelniania kluczem API
minimax albo OAuth minimax-portal. Udostępnia również modele music-2.6-free,
music-cover i music-cover-free.
OpenRouter
Używa danych wyjściowych audio uzupełnień czatu OpenRouter z włączonym strumieniowaniem. Dołączony
dostawca domyślnie używa google/lyria-3-pro-preview, a także udostępnia
openrouter/google/lyria-3-clip-preview.
Wybór właściwej ścieżki
- Współdzielona ścieżka oparta na dostawcy, gdy potrzebujesz wyboru modelu, przełączania awaryjnego między dostawcami i wbudowanego asynchronicznego przepływu zadań i statusów.
- Ścieżka pluginu (ComfyUI), gdy potrzebujesz niestandardowego grafu przepływu pracy lub dostawcy, który nie jest częścią współdzielonej, dołączonej funkcji muzycznej.
Jeśli debugujesz zachowanie specyficzne dla ComfyUI, zobacz ComfyUI. Jeśli debugujesz zachowanie współdzielonego dostawcy, zacznij od fal, Google (Gemini), MiniMax lub OpenRouter.
Tryby możliwości dostawcy
Współdzielony kontrakt generowania muzyki obsługuje jawne deklaracje trybów:
generatedo generowania wyłącznie na podstawie polecenia.edit, gdy żądanie zawiera co najmniej jeden obraz referencyjny.
Nowe implementacje dostawców powinny preferować jawne bloki trybów:
capabilities: { generate: { maxTracks: 1, supportsLyrics: true, supportsFormat: true, }, edit: { enabled: true, maxTracks: 1, maxInputImages: 1, supportsFormat: true, },}Starsze płaskie pola, takie jak maxInputImages, supportsLyrics i
supportsFormat, nie wystarczają do zadeklarowania obsługi edycji. Dostawcy
powinni jawnie deklarować generate i edit, aby testy na żywo, testy
kontraktowe oraz współdzielone narzędzie music_generate mogły deterministycznie
weryfikować obsługę trybów.
Testy na żywo
Opcjonalne testy na żywo współdzielonych, dołączonych dostawców (fal, Google, MiniMax, OpenRouter):
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.tsRównoważne repozytoryjne polecenie opakowujące, które uruchamia ten sam plik testowy:
pnpm test:live:media:musicTen plik testów na żywo domyślnie używa już wyeksportowanych zmiennych środowiskowych dostawcy
przed zapisanymi profilami uwierzytelniania i uruchamia testy zarówno dla generate, jak i
zadeklarowanego edit, gdy dostawca włącza tryb edycji. Obecny zakres:
google:generateorazeditfal: tylkogenerateminimax: tylkogenerateopenrouter:generateorazeditcomfy: oddzielne testy Comfy na żywo, poza współdzielonym zestawem testów dostawców
Opcjonalne testy na żywo dołączonej ścieżki muzycznej ComfyUI:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.tsPlik testów Comfy na żywo obejmuje również przepływy pracy obrazów i filmów Comfy, gdy odpowiednie sekcje są skonfigurowane.
Powiązane
- Zadania w tle — śledzenie zadań dla odłączonych uruchomień
music_generate - ComfyUI
- Dokumentacja konfiguracji — konfiguracja
musicGenerationModel - Google (Gemini)
- MiniMax
- Modele — konfiguracja modeli i przełączanie awaryjne
- Przegląd narzędzi