Przejdź do głównej treści

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Narzędzie music_generate pozwala agentowi tworzyć muzykę lub audio przez wspólną funkcję generowania muzyki ze skonfigurowanymi dostawcami — obecnie Google, MiniMax i ComfyUI skonfigurowanym przez workflow. W przypadku uruchomień agenta opartych na sesji OpenClaw uruchamia 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ć gotowe 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 ukończenia zapisze tylko prywatną odpowiedź końcową, OpenClaw awaryjnie używa bezpośredniej wysyłki do kanału z wygenerowanymi mediami. Wybudzenie po ukończeniu jawnie ostrzega agenta, że zwykłe odpowiedzi końcowe są prywatne w tych trasach.
Wbudowane współdzielone narzędzie pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostawca generowania muzyki. Jeśli nie widzisz music_generate w narzędziach swojego agenta, skonfiguruj agents.defaults.musicGenerationModel albo ustaw klucz API dostawcy.

Szybki start

1

Skonfiguruj uwierzytelnianie

Ustaw klucz API dla co najmniej jednego dostawcy — na przykład GEMINI_API_KEY lub MINIMAX_API_KEY.
2

Wybierz model domyślny (opcjonalnie)

{
  agents: {
    defaults: {
      musicGenerationModel: {
        primary: "google/lyria-3-clip-preview",
      },
    },
  },
}
3

Poproś agenta

“Wygeneruj energiczny utwór synthpop o nocnej jeździe przez neonowe miasto.”Agent automatycznie wywołuje music_generate. Nie jest wymagana lista dozwolonych narzędzi.
W bezpośrednich kontekstach synchronicznych bez uruchomienia agenta opartego na sesji wbudowane narzędzie nadal awaryjnie używa generowania inline i zwraca ścieżkę do gotowych mediów w wyniku narzędzia.
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

DostawcaModel domyślnyDane referencyjneObsługiwane kontrolkiUwierzytelnianie
ComfyUIworkflowDo 1 obrazuMuzyka lub audio zdefiniowane przez workflowCOMFY_API_KEY, COMFY_CLOUD_API_KEY
Googlelyria-3-clip-previewDo 10 obrazówlyrics, instrumental, formatGEMINI_API_KEY, GOOGLE_API_KEY
MiniMaxmusic-2.6Braklyrics, instrumental, durationSeconds, format=mp3MINIMAX_API_KEY lub MiniMax OAuth

Macierz funkcji

Jawny kontrakt trybu używany przez music_generate, testy kontraktu i wspólne przemiatanie live:
DostawcagenerateeditLimit edycjiWspólne ścieżki live
ComfyUI1 obrazNie jest częścią wspólnego przemiatania; pokryte przez extensions/comfy/comfy.live.test.ts
Google10 obrazówgenerate, edit
MiniMaxBrakgenerate
Użyj action: "list", aby sprawdzić dostępnych współdzielonych 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

prompt
string
wymagane
Prompt generowania muzyki. Wymagany dla action: "generate".
action
"generate" | "status" | "list"
domyślnie:"generate"
"status" zwraca bieżące zadanie sesji; "list" sprawdza dostawców.
model
string
Nadpisanie dostawcy/modelu (np. google/lyria-3-pro-preview, comfy/workflow).
lyrics
string
Opcjonalny tekst utworu, gdy dostawca obsługuje jawne wejście tekstu utworu.
instrumental
boolean
Zażądaj wyniku wyłącznie instrumentalnego, gdy dostawca to obsługuje.
image
string
Pojedyncza ścieżka lub URL obrazu referencyjnego.
images
string[]
Wiele obrazów referencyjnych (do 10 u obsługujących dostawców).
durationSeconds
number
Docelowy czas trwania w sekundach, gdy dostawca obsługuje wskazówki dotyczące czasu trwania.
format
"mp3" | "wav"
Wskazówka formatu wyjściowego, gdy dostawca ją obsługuje.
filename
string
Wskazówka nazwy pliku wyjściowego.
timeoutMs
number
Opcjonalny limit czasu żądania dostawcy w milisekundach. Gdy zostanie pominięty, OpenClaw używa agents.defaults.musicGenerationModel.timeoutMs, jeśli jest skonfigurowane. Wartości poniżej 10000ms są podnoszone do 10000ms i raportowane w wyniku narzędzia.
Nie wszyscy dostawcy obsługują wszystkie parametry. OpenClaw nadal weryfikuje twarde limity, takie jak liczba wejść, przed przesłaniem. Gdy dostawca obsługuje czas trwania, ale używa krótszego maksimum niż żądana wartość, OpenClaw ogranicza go do najbliższego obsługiwanego czasu trwania. Naprawdę nieobsługiwane opcjonalne wskazówki są ignorowane z ostrzeżeniem, gdy wybrany dostawca lub model nie może ich honorować. Wyniki narzędzia raportują zastosowane ustawienia; details.normalization zapisuje wszelkie mapowania z żądanych na zastosowane.

Zachowanie asynchroniczne

Generowanie muzyki oparte na sesji działa jako zadanie w tle:
  • Zadanie w tle: music_generate tworzy zadanie w tle, od razu zwraca odpowiedź uruchomione/zadanie i później publikuje gotowy utwór w kolejnej wiadomości agenta.
  • Zapobieganie duplikatom: gdy zadanie ma stan queued lub running, późniejsze wywołania music_generate w tej samej sesji zwracają status zadania zamiast uruchamiać kolejne generowanie. Użyj action: "status", aby sprawdzić to jawnie.
  • Wyszukiwanie statusu: openclaw tasks list lub openclaw tasks show <taskId> sprawdza statusy w kolejce, uruchomione i końcowe.
  • Wybudzenie po ukończeniu: OpenClaw wstrzykuje wewnętrzne zdarzenie ukończenia z powrotem do tej samej sesji, aby model mógł sam napisać dalszą wiadomość widoczną dla użytkownika.
  • Wskazówka promptu: późniejsze tury użytkownika/ręczne w tej samej sesji dostają małą wskazówkę runtime, gdy zadanie muzyczne jest już w toku, aby model nie wywoływał bezrefleksyjnie music_generate ponownie.
  • Awaryjnie bez sesji: bezpośrednie/lokalne konteksty bez rzeczywistej sesji agenta działają inline i zwracają końcowy wynik audio w tej samej turze.

Cykl życia zadania

StanZnaczenie
queuedZadanie utworzone, czeka na przyjęcie przez dostawcę.
runningDostawca przetwarza (zwykle od 30 sekund do 3 minut, zależnie od dostawcy i czasu trwania).
succeededUtwór gotowy; agent wybudza się i publikuje go w rozmowie.
failedBłąd dostawcy lub 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 dostawców

OpenClaw próbuje dostawców w tej kolejności:
  1. Parametr model z wywołania narzędzia (jeśli agent go określi).
  2. musicGenerationModel.primary z konfiguracji.
  3. musicGenerationModel.fallbacks w kolejności.
  4. Automatyczne wykrywanie używające tylko domyślnych dostawców opartych na uwierzytelnianiu:
    • najpierw bieżący dostawca domyślny;
    • pozostali zarejestrowani dostawcy generowania muzyki w kolejności identyfikatorów dostawców.
Jeśli dostawca zawiedzie, automatycznie próbowany jest następny kandydat. Jeśli wszystkie zawiodą, błąd zawiera szczegóły z każdej próby. Ustaw agents.defaults.mediaGenerationAutoProviderFallback: false, aby używać tylko jawnych wpisów model, primary i fallbacks.

Uwagi o dostawcach

Oparte na workflow i zależne od skonfigurowanego grafu oraz mapowania węzłów dla pól promptu/wyjścia. Dołączony plugin comfy podłącza się do współdzielonego narzędzia music_generate przez rejestr dostawców generowania muzyki.
Używa wsadowego generowania Lyria 3. Bieżący dołączony przepływ obsługuje prompt, opcjonalny tekst utworu i opcjonalne obrazy referencyjne.
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

  • Oparta na współdzielonym dostawcy, gdy chcesz wyboru modelu, przełączania awaryjnego dostawców oraz wbudowanego asynchronicznego przepływu zadań/statusu.
  • Ścieżka pluginu (ComfyUI), gdy potrzebujesz niestandardowego grafu workflow lub dostawcy, który nie jest częścią współdzielonej dołączonej funkcji muzyki.
Jeśli debugujesz zachowanie specyficzne dla ComfyUI, zobacz ComfyUI. Jeśli debugujesz zachowanie współdzielonego dostawcy, zacznij od Google (Gemini) lub MiniMax.

Tryby funkcji dostawcy

Wspólny kontrakt generowania muzyki obsługuje jawne deklaracje trybów:
  • generate dla generowania wyłącznie z promptu.
  • edit, gdy żądanie zawiera jeden lub więcej obrazów referencyjnych.
Nowe implementacje dostawców powinny preferować jawne bloki trybu:
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 deklarować generate i edit jawnie, aby testy live, testy kontraktu i współdzielone narzędzie music_generate mogły deterministycznie weryfikować obsługę trybu.

Testy live

Opcjonalne pokrycie live dla współdzielonych 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 testów na żywo ładuje brakujące zmienne środowiskowe dostawców z ~/.profile, domyślnie preferuje klucze API z live/env przed zapisanymi profilami uwierzytelniania i uruchamia zarówno pokrycie generate, jak i zadeklarowane pokrycie edit, gdy dostawca włącza tryb edycji. Dzisiejszy zakres pokrycia:
  • google: generate oraz edit
  • minimax: tylko generate
  • comfy: oddzielne pokrycie Comfy na żywo, nie współdzielony przegląd dostawców
Opcjonalne pokrycie 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 Comfy na żywo obejmuje również przepływy pracy obrazów i wideo comfy, gdy te sekcje są skonfigurowane.

Powiązane