Tools
Generowanie muzyki
Narzędzie music_generate pozwala agentowi tworzyć muzykę lub dźwięk za pomocą
wspólnej funkcji generowania muzyki ze skonfigurowanymi dostawcami — obecnie
Google, MiniMax i skonfigurowanym w przepływie pracy ComfyUI.
W przypadku uruchomień agenta opartych na sesji OpenClaw rozpoczyna generowanie muzyki jako zadanie w tle, śledzi je w rejestrze zadań, a następnie ponownie wybudza agenta, gdy utwór jest gotowy, aby agent mógł poinformować użytkownika i dołączyć gotowy plik audio. W czatach grupowych/kanałowych, które używają widocznego dostarczania wyłącznie przez narzędzie wiadomości, agent przekazuje wynik przez narzędzie wiadomości. Jeśli agent kończący zapisze tylko prywatną odpowiedź końcową, OpenClaw używa awaryjnie bezpośredniej wysyłki kanałem z wygenerowanymi multimediami. Wybudzenie po ukończeniu wyraźnie ostrzega agenta, że zwykłe odpowiedzi końcowe są prywatne w tych ścieżkach.
Szybki start
Wspólny z zapleczem dostawcy
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 jeździe przez neonowe miasto.”
Agent automatycznie wywołuje music_generate. Nie jest potrzebna
lista dozwolonych narzędzi.
W bezpośrednich kontekstach synchronicznych bez uruchomienia agenta opartego na sesji wbudowane narzędzie nadal używa awaryjnie generowania w wątku i zwraca końcową ścieżkę multimediów w wyniku narzędzia.
Przepływ pracy ComfyUI
Skonfiguruj przepływ pracy
Skonfiguruj plugins.entries.comfy.config.music z plikiem JSON
przepływu pracy oraz węzłami promptu/wyjścia.
Uwierzytelnianie w chmurze (opcjonalnie)
Dla Comfy Cloud ustaw COMFY_API_KEY albo COMFY_CLOUD_API_KEY.
Wywołaj narzędzie
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"
Przykładowe prompty:
Generate a cinematic piano track with soft strings and no vocals.
Generate an energetic chiptune loop about launching a rocket at sunrise.
Obsługiwani dostawcy
| Dostawca | Model domyślny | Dane referencyjne | Obsługiwane kontrolki | Uwierzytelnianie |
|---|---|---|---|---|
| ComfyUI | workflow |
Do 1 obrazu | Muzyka lub dźwięk zdefiniowane przez przepływ pracy | COMFY_API_KEY, COMFY_CLOUD_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, durationSeconds, format=mp3 |
MINIMAX_API_KEY albo MiniMax OAuth |
Macierz możliwości
Jawny kontrakt trybu używany przez music_generate, testy kontraktowe i
wspólny przebieg testów live:
| Dostawca | generate |
edit |
Limit edycji | Wspólne ścieżki live |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 obraz | Poza wspólnym przebiegiem; pokryte przez extensions/comfy/comfy.live.test.ts |
| ✓ | ✓ | 10 obrazów | generate, edit |
|
| MiniMax | ✓ | — | Brak | generate |
Użyj action: "list", aby sprawdzić dostępnych wspólnych dostawców i modele
w czasie działania:
/tool music_generate action=list
Użyj action: "status", aby sprawdzić aktywne zadanie muzyczne oparte na sesji:
/tool music_generate action=status
Przykład bezpośredniego generowania:
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=true
Parametry narzędzia
promptstringrequiredPrompt generowania muzyki. Wymagany dla action: "generate".
action"generate" | "status" | "list""status" zwraca bieżące zadanie sesji; "list" sprawdza dostawców.
modelstringNadpisanie dostawcy/modelu (np. google/lyria-3-pro-preview,
comfy/workflow).
lyricsstringOpcjonalne teksty utworu, gdy dostawca obsługuje jawne wejście tekstu utworu.
instrumentalbooleanZażądaj wyjścia wyłącznie instrumentalnego, gdy dostawca je obsługuje.
imagestringPojedyncza ścieżka lub URL obrazu referencyjnego.
imagesstring[]Wiele obrazów referencyjnych (do 10 u obsługujących dostawców).
durationSecondsnumberDocelowy czas trwania w sekundach, gdy dostawca obsługuje wskazówki czasu trwania.
format"mp3" | "wav"Wskazówka formatu wyjściowego, gdy dostawca ją obsługuje.
filenamestringtimeoutMsnumberZachowanie asynchroniczne
Generowanie muzyki oparte na sesji działa jako zadanie w tle:
- Zadanie w tle:
music_generatetworzy zadanie w tle, natychmiast zwraca odpowiedź rozpoczęcia/zadania i publikuje ukończony utwór później w kolejnej wiadomości agenta. - Zapobieganie duplikatom: gdy zadanie ma stan
queuedalborunning, późniejsze wywołaniamusic_generatew tej samej sesji zwracają status zadania zamiast rozpoczynać kolejne generowanie. Użyjaction: "status", aby sprawdzić to jawnie. - Wyszukiwanie statusu:
openclaw tasks listalboopenclaw tasks show <taskId>sprawdza status kolejki, działania i stany końcowe. - Wybudzenie po ukończeniu: OpenClaw wstrzykuje wewnętrzne zdarzenie ukończenia z powrotem do tej samej sesji, aby model mógł samodzielnie napisać widoczną dla użytkownika odpowiedź uzupełniającą.
- Wskazówka promptu: późniejsze tury użytkownika/ręczne w tej samej sesji otrzymują małą
wskazówkę czasu działania, gdy zadanie muzyczne jest już w toku, aby model
nie wywoływał ślepo
music_generateponownie. - Awaryjne działanie bez sesji: bezpośrednie/lokalne konteksty bez rzeczywistej sesji agenta działają w wątku i zwracają końcowy wynik audio w tej samej turze.
Cykl życia zadania
| Stan | Znaczenie |
|---|---|
queued |
Zadanie utworzone, czeka na zaakceptowanie przez dostawcę. |
running |
Dostawca przetwarza (zwykle od 30 sekund do 3 minut w zależności od dostawcy i czasu trwania). |
succeeded |
Utwór gotowy; agent wybudza się i publikuje go w rozmowie. |
failed |
Błąd dostawcy albo limit czasu; agent wybudza się ze szczegółami błędu. |
Sprawdź status z CLI:
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
Konfiguracja
Wybór modelu
{
agents: {
defaults: {
musicGenerationModel: {
primary: "google/lyria-3-clip-preview",
fallbacks: ["minimax/music-2.6"],
},
},
},
}
Kolejność wyboru dostawcy
OpenClaw próbuje dostawców w tej kolejności:
- Parametr
modelz wywołania narzędzia (jeśli agent go określi). musicGenerationModel.primaryz konfiguracji.musicGenerationModel.fallbacksw kolejności.- Automatyczne wykrywanie wyłącznie przy użyciu domyślnych dostawców z uwierzytelnianiem:
- najpierw bieżący domyślny dostawca;
- pozostali zarejestrowani dostawcy generowania muzyki w kolejności identyfikatorów dostawców.
Jeśli dostawca zawiedzie, następny kandydat jest wypróbowywany automatycznie. Jeśli wszyscy zawiodą, błąd zawiera szczegóły każdej próby.
Ustaw agents.defaults.mediaGenerationAutoProviderFallback: false, aby używać tylko
jawnych wpisów model, primary i fallbacks.
Uwagi o dostawcach
ComfyUI
Sterowany przepływem pracy i zależny od skonfigurowanego grafu oraz mapowania węzłów
dla pól promptu/wyjścia. Dołączony Plugin comfy podłącza się do
wspólnego narzędzia music_generate przez rejestr dostawców
generowania muzyki.
Google (Lyria 3)
Używa generowania wsadowego Lyria 3. Bieżący dołączony przepływ obsługuje prompt, opcjonalny tekst utworu i opcjonalne obrazy referencyjne.
MiniMax
Używa wsadowego punktu końcowego music_generation. Obsługuje prompt, opcjonalny
tekst utworu, tryb instrumentalny, sterowanie czasem trwania i wyjście mp3 przez
uwierzytelnianie kluczem API minimax albo OAuth minimax-portal.
Wybór właściwej ścieżki
- Wspólny z zapleczem dostawcy, gdy potrzebujesz wyboru modelu, przełączania awaryjnego dostawcy oraz wbudowanego asynchronicznego przepływu zadań/statusu.
- Ścieżka Plugin (ComfyUI), gdy potrzebujesz niestandardowego grafu przepływu pracy albo dostawcy, który nie jest częścią wspólnej dołączonej funkcji muzycznej.
Jeśli debugujesz zachowanie specyficzne dla ComfyUI, zobacz ComfyUI. Jeśli debugujesz wspólne zachowanie dostawców, zacznij od Google (Gemini) albo MiniMax.
Tryby możliwości dostawcy
Wspólny kontrakt generowania muzyki obsługuje jawne deklaracje trybu:
generatedla generowania wyłącznie z promptu.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 reklamowania obsługi edycji. Dostawcy
powinni jawnie deklarować generate i edit, aby testy live, testy kontraktowe
oraz wspólne narzędzie music_generate mogły deterministycznie walidować obsługę trybów.
Testy live
Opcjonalne pokrycie live dla wspólnych dołączonych dostawców:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
Wrapper repozytorium:
pnpm test:live:media music
Ten plik live wczytuje brakujące zmienne środowiskowe dostawców z ~/.profile, domyślnie preferuje
klucze API live/ze środowiska przed zapisanymi profilami uwierzytelniania i uruchamia zarówno
pokrycie generate, jak i zadeklarowane edit, gdy dostawca włącza tryb edycji. Dzisiejsze pokrycie:
google:generateorazeditminimax: tylkogeneratecomfy: osobne pokrycie testami na żywo Comfy, poza wspólnym przeglądem dostawców
Opcjonalne pokrycie testami na żywo dla dołączonej ścieżki muzycznej ComfyUI:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
Plik testów na żywo Comfy obejmuje też przepływy pracy obrazów i wideo Comfy, gdy te sekcje są skonfigurowane.
Powiązane
- Zadania w tle — śledzenie zadań dla odłączonych uruchomień
music_generate - ComfyUI
- Dokumentacja referencyjna konfiguracji — konfiguracja
musicGenerationModel - Google (Gemini)
- MiniMax
- Modele — konfiguracja modeli i przełączanie awaryjne
- Przegląd narzędzi