Tools
Generazione musicale
Lo strumento music_generate crea musica o audio tramite la funzionalità condivisa
di generazione musicale, supportata da ComfyUI, fal, Google, MiniMax e
OpenRouter.
Per le esecuzioni dell'agente associate a una sessione, music_generate avvia un'attività in background,
ne monitora l'avanzamento nel registro delle attività, quindi riattiva l'agente quando la traccia è
pronta, in modo che possa informare l'utente e allegare l'audio completato. L'agente di completamento
segue il contratto della sessione per le risposte visibili: risposta finale automatica
quando configurata oppure message(action="send") quando la sessione richiede lo
strumento di messaggistica. Se la sessione del richiedente è inattiva o la sua riattivazione non riesce e
l'audio generato non è ancora presente nella risposta, OpenClaw invia un
fallback diretto idempotente contenente solo l'audio mancante.
Avvio rapido
Con provider condiviso
Configura l'autenticazione
Imposta una chiave API per almeno un provider, ad esempio
GEMINI_API_KEY o MINIMAX_API_KEY.
Scegli un modello predefinito (facoltativo)
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Chiedi all'agente
"Genera una traccia synthpop vivace su un viaggio notturno in auto attraverso una città al neon."
L'agente chiama automaticamente music_generate. Non è necessario
includere lo strumento in un elenco di autorizzazioni.
Senza un'esecuzione dell'agente associata a una sessione (in contesti diretti/locali), lo strumento viene eseguito in linea e restituisce il percorso del contenuto multimediale finale nello stesso risultato dello strumento.
Flusso di lavoro ComfyUI
Configura il flusso di lavoro
Configura plugins.entries.comfy.config.music con un flusso di lavoro
JSON e i nodi di prompt/output.
Autenticazione cloud (facoltativa)
Per Comfy Cloud, imposta COMFY_API_KEY o COMFY_CLOUD_API_KEY.
Chiama lo strumento
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"Esempi di prompt:
Generate a cinematic piano track with soft strings and no vocals.Generate an energetic chiptune loop about launching a rocket at sunrise.Usa action: "list" per esaminare i provider/modelli disponibili e
action: "status" per esaminare l'attività musicale attiva associata alla sessione:
/tool music_generate action=list/tool music_generate action=statusEsempio di generazione diretta:
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=trueProvider supportati
| Provider | Modello predefinito | Input di riferimento | Controlli supportati | Autenticazione |
|---|---|---|---|---|
| ComfyUI | workflow |
Fino a 1 immagine | Musica o audio definiti dal flusso di lavoro | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
| fal | fal-ai/minimax-music/v2.6 |
Nessuno | lyrics, instrumental, durationSeconds, format |
FAL_KEY o FAL_API_KEY |
lyria-3-clip-preview |
Fino a 10 immagini | lyrics, instrumental, format |
GEMINI_API_KEY, GOOGLE_API_KEY |
|
| MiniMax | music-2.6 |
Nessuno | lyrics, instrumental, format (solo mp3) |
MINIMAX_API_KEY o OAuth MiniMax |
| OpenRouter | google/lyria-3-pro-preview |
Fino a 1 immagine | lyrics, instrumental, durationSeconds, format |
OPENROUTER_API_KEY |
MiniMax registra due ID provider che condividono gli stessi modelli: minimax per
l'autenticazione tramite chiave API e minimax-portal per OAuth. I riferimenti ai modelli seguono il percorso di autenticazione
(minimax/music-2.6 rispetto a minimax-portal/music-2.6); consulta
MiniMax.
fal espone anche fal-ai/ace-step/prompt-to-audio (wav, senza testo, senza
opzione per la modalità strumentale) e fal-ai/stable-audio-25/text-to-audio (wav,
solo prompt), oltre al modello predefinito basato su MiniMax. Il modello predefinito di Google
lyria-3-clip-preview produce solo mp3; lyria-3-pro-preview supporta anche
wav. MiniMax espone inoltre music-2.6-free, music-cover e
music-cover-free. OpenRouter espone anche google/lyria-3-clip-preview.
Matrice delle funzionalità
Il contratto esplicito delle modalità usato da music_generate, dai test del contratto e dalla
verifica live condivisa:
| Provider | generate |
edit |
Limite di modifica | Percorsi live condivisi |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 immagine | Non incluso nella verifica condivisa; coperto da extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Nessuno | generate |
| ✓ | ✓ | 10 immagini | generate, edit |
|
| MiniMax | ✓ | — | Nessuno | generate |
| OpenRouter | ✓ | ✓ | 1 immagine | generate, edit |
Parametri dello strumento
promptstringrequiredPrompt per la generazione musicale. Obbligatorio per action: "generate".
action"generate" | "status" | "list"default: generate"status" restituisce l'attività corrente della sessione; "list" esamina i provider.
modelstringSostituzione del provider/modello (ad esempio google/lyria-3-pro-preview,
comfy/workflow).
lyricsstringTesto facoltativo quando il provider supporta l'input esplicito del testo.
instrumentalbooleanRichiede un output esclusivamente strumentale quando il provider lo supporta.
imagestringPercorso o URL di una singola immagine di riferimento.
imagesstring[]Più immagini di riferimento (fino a 10 sui provider che le supportano).
durationSecondsnumberDurata prevista in secondi quando il provider supporta indicazioni sulla durata.
format"mp3" | "wav"Indicazione sul formato di output quando il provider lo supporta.
filenamestringI timeout delle richieste ai provider sono esclusivamente una configurazione dell'operatore. OpenClaw usa
agents.defaults.musicGenerationModel.timeoutMs quando è configurato, aumenta
i valori inferiori a 120000ms fino a 120000ms e, in caso contrario, imposta per le richieste ai provider
un valore predefinito di 300000ms.
Comportamento asincrono
La generazione musicale associata a una sessione viene eseguita come attività in background:
- Attività in background:
music_generatecrea un'attività in background, restituisce immediatamente una risposta di avvio/attività e pubblica successivamente la traccia completata in un messaggio di follow-up dell'agente. - Prevenzione dei duplicati: mentre un'attività è
queuedorunning, le successive chiamate amusic_generatenella stessa sessione restituiscono lo stato dell'attività invece di avviare un'altra generazione. Usaaction: "status"per eseguire un controllo esplicito. Anche una richiesta corrispondente completata di recente viene deduplicata per 2 minuti. - Consultazione dello stato:
openclaw tasks listoopenclaw tasks show <taskId>esamina gli stati in coda, in esecuzione e terminali. - Riattivazione al completamento: OpenClaw inserisce nuovamente un evento interno di completamento nella stessa sessione, affinché il modello possa scrivere autonomamente il follow-up rivolto all'utente.
- Indicazione nel prompt: i successivi turni utente/manuali nella stessa sessione ricevono una breve
indicazione di runtime quando è già in corso un'attività musicale, affinché il modello
non chiami nuovamente
music_generatesenza verificarlo. - Fallback senza sessione: i contesti diretti/locali senza una vera sessione dell'agente vengono eseguiti in linea e restituiscono il risultato audio finale nello stesso turno.
Ciclo di vita dell'attività
L'attività musicale espone gli stessi stati del registro generale delle attività (consulta
Attività in background per la macchina a stati
completa, inclusi timed_out, cancelled e lost). La maggior parte delle esecuzioni musicali
attraversa:
| Stato | Significato |
|---|---|
queued |
Attività creata, in attesa che il provider la accetti. |
running |
Il provider è in elaborazione (in genere da 30 secondi a 3 minuti, a seconda del provider e della durata). |
succeeded |
Traccia pronta; l'agente si riattiva e la pubblica nella conversazione. |
failed |
Errore del provider o timeout; l'agente si riattiva con i dettagli dell'errore. |
Controlla lo stato dalla CLI:
openclaw tasks listopenclaw tasks show <taskId>openclaw tasks cancel <taskId>Configurazione
Selezione del modello
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"], }, }, },}Ordine di selezione dei provider
OpenClaw prova i provider in questo ordine:
- Parametro
modeldella chiamata allo strumento (se l'agente ne specifica uno). musicGenerationModel.primarydalla configurazione.musicGenerationModel.fallbacksnell'ordine indicato.- Rilevamento automatico usando esclusivamente i valori predefiniti dei provider con autenticazione configurata:
- prima il provider predefinito corrente del modello testuale, se offre anche la generazione musicale;
- quindi i restanti provider di generazione musicale registrati, in ordine alfabetico per ID provider.
Se un provider non riesce, viene provato automaticamente il candidato successivo. Se tutti falliscono, l'errore include i dettagli di ciascun tentativo.
Imposta agents.defaults.mediaGenerationAutoProviderFallback: false per usare solo
le voci esplicite model, primary e fallbacks.
Note sui provider
ComfyUI
Basato sui flussi di lavoro e dipendente dal grafo configurato e dalla mappatura dei nodi
per i campi di prompt/output. Il plugin comfy incluso si integra nello
strumento condiviso music_generate tramite il registro dei provider
per la generazione musicale.
fal
Utilizza gli endpoint dei modelli fal tramite il percorso di autenticazione condiviso dei provider. Il
provider incluso usa per impostazione predefinita fal-ai/minimax-music/v2.6 ed espone anche
fal-ai/ace-step/prompt-to-audio e
fal-ai/stable-audio-25/text-to-audio per le richieste di generazione audio da prompt.
I testi e la modalità strumentale sono disponibili solo per il modello MiniMax; gli altri due
modelli accettano solo prompt.
Google (Lyria 3)
Utilizza la generazione in batch di Lyria 3. Il flusso incluso attuale supporta
prompt, testo facoltativo dei brani e immagini di riferimento facoltative. Il
modello predefinito lyria-3-clip-preview produce solo mp3; il
modello lyria-3-pro-preview supporta anche wav.
MiniMax
Utilizza l'endpoint batch music_generation. Supporta prompt, testi facoltativi,
modalità strumentale e output mp3 tramite l'autenticazione con chiave API minimax
oppure OAuth minimax-portal. Espone inoltre i modelli music-2.6-free,
music-cover e music-cover-free.
OpenRouter
Utilizza l'output audio dei completamenti chat di OpenRouter con lo streaming abilitato. Il
provider incluso usa per impostazione predefinita google/lyria-3-pro-preview ed espone anche
openrouter/google/lyria-3-clip-preview.
Scelta del percorso corretto
- Basato su provider condivisi quando desideri la selezione del modello, il failover dei provider e il flusso asincrono integrato per attività e stato.
- Percorso Plugin (ComfyUI) quando hai bisogno di un grafo del flusso di lavoro personalizzato o di un provider che non fa parte della funzionalità musicale condivisa inclusa.
Se stai eseguendo il debug di comportamenti specifici di ComfyUI, consulta ComfyUI. Se stai eseguendo il debug del comportamento dei provider condivisi, inizia da fal, Google (Gemini), MiniMax o OpenRouter.
Modalità delle funzionalità dei provider
Il contratto condiviso per la generazione musicale supporta dichiarazioni esplicite delle modalità:
generateper la generazione basata solo su prompt.editquando la richiesta include una o più immagini di riferimento.
Le nuove implementazioni dei provider dovrebbero preferire blocchi di modalità espliciti:
capabilities: { generate: { maxTracks: 1, supportsLyrics: true, supportsFormat: true, }, edit: { enabled: true, maxTracks: 1, maxInputImages: 1, supportsFormat: true, },}I campi piatti legacy come maxInputImages, supportsLyrics e
supportsFormat non sono sufficienti per dichiarare il supporto alla modifica. I provider
dovrebbero dichiarare esplicitamente generate ed edit, affinché i test live, i test del
contratto e lo strumento condiviso music_generate possano convalidare il supporto delle modalità
in modo deterministico.
Test live
Copertura live facoltativa per i provider condivisi inclusi (fal, Google, MiniMax, OpenRouter):
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.tsWrapper equivalente del repository, che esegue lo stesso file di test:
pnpm test:live:media:musicPer impostazione predefinita, questo file live utilizza le variabili di ambiente dei provider già esportate
prima dei profili di autenticazione memorizzati ed esegue la copertura sia di generate sia di edit
quando il provider abilita la modalità di modifica. Copertura attuale:
google:generatepiùeditfal: sologenerateminimax: sologenerateopenrouter:generatepiùeditcomfy: copertura live Comfy separata, non inclusa nella verifica condivisa dei provider
Copertura live facoltativa per il percorso musicale ComfyUI incluso:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.tsIl file live Comfy copre anche i flussi di lavoro per immagini e video di Comfy quando le relative sezioni sono configurate.
Contenuti correlati
- Attività in background — monitoraggio delle attività per le esecuzioni scollegate di
music_generate - ComfyUI
- Riferimento per la configurazione — configurazione
musicGenerationModel - Google (Gemini)
- MiniMax
- Modelli — configurazione e failover dei modelli
- Panoramica degli strumenti