Tools
Génération musicale
L’outil music_generate crée de la musique ou de l’audio grâce à la
fonctionnalité partagée de génération musicale, reposant sur ComfyUI, fal,
Google, MiniMax et OpenRouter.
Pour les exécutions d’agent adossées à une session, music_generate démarre
sous forme de tâche en arrière-plan, suit sa progression dans le registre des
tâches, puis réveille l’agent lorsque la piste est prête afin qu’il puisse en
informer l’utilisateur et joindre l’audio final. L’agent d’achèvement respecte
le contrat de réponse visible de la session : réponse finale automatique
lorsqu’elle est configurée, ou message(action="send") lorsque la session
requiert l’outil de messagerie. Si la session du demandeur est inactive ou si
son réveil échoue et que l’audio généré manque toujours dans la réponse,
OpenClaw envoie directement un message de secours idempotent contenant
uniquement l’audio manquant.
Démarrage rapide
Avec fournisseur partagé
Configurer l’authentification
Définissez une clé API pour au moins un fournisseur, par exemple
GEMINI_API_KEY ou MINIMAX_API_KEY.
Choisir un modèle par défaut (facultatif)
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Demander à l’agent
« Générez une piste synthpop entraînante sur un trajet nocturne dans une ville illuminée de néons. »
L’agent appelle automatiquement music_generate. Il n’est pas
nécessaire d’ajouter l’outil à une liste d’autorisation.
Sans exécution d’agent adossée à une session (dans les contextes directs/locaux), l’outil s’exécute directement et renvoie le chemin final du média dans le même résultat d’outil.
Workflow ComfyUI
Configurer le workflow
Configurez plugins.entries.comfy.config.music avec un workflow
JSON ainsi que les nœuds de requête et de sortie.
Authentification cloud (facultatif)
Pour Comfy Cloud, définissez COMFY_API_KEY ou
COMFY_CLOUD_API_KEY.
Appeler l’outil
/tool music_generate prompt="Boucle de synthé ambiante chaleureuse avec une douce texture de bande"Exemples de requêtes :
Générez une piste cinématographique au piano avec des cordes douces et sans voix.Générez une boucle chiptune énergique sur le lancement d’une fusée au lever du soleil.Utilisez action: "list" pour consulter les fournisseurs et modèles
disponibles, et action: "status" pour consulter la tâche musicale active
adossée à la session :
/tool music_generate action=list/tool music_generate action=statusExemple de génération directe :
/tool music_generate prompt="Hip-hop lo-fi onirique avec une texture vinyle et une pluie légère" instrumental=trueFournisseurs pris en charge
| Fournisseur | Modèle par défaut | Entrées de référence | Paramètres pris en charge | Authentification |
|---|---|---|---|---|
| ComfyUI | workflow |
Jusqu’à 1 image | Musique ou audio défini par le workflow | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
| fal | fal-ai/minimax-music/v2.6 |
Aucune | lyrics, instrumental, durationSeconds, format |
FAL_KEY ou FAL_API_KEY |
lyria-3-clip-preview |
Jusqu’à 10 images | lyrics, instrumental, format |
GEMINI_API_KEY, GOOGLE_API_KEY |
|
| MiniMax | music-2.6 |
Aucune | lyrics, instrumental, format (mp3 uniquement) |
MINIMAX_API_KEY ou OAuth MiniMax |
| OpenRouter | google/lyria-3-pro-preview |
Jusqu’à 1 image | lyrics, instrumental, durationSeconds, format |
OPENROUTER_API_KEY |
MiniMax enregistre deux identifiants de fournisseur partageant les mêmes
modèles : minimax pour l’authentification par clé API et minimax-portal
pour OAuth. Les références de modèle suivent le mode d’authentification
(minimax/music-2.6 ou minimax-portal/music-2.6) ; consultez
MiniMax.
fal propose également fal-ai/ace-step/prompt-to-audio (wav, sans paroles,
sans option de sortie instrumentale) et
fal-ai/stable-audio-25/text-to-audio (wav, requête uniquement), en plus de
son modèle par défaut reposant sur MiniMax. Le modèle par défaut de Google,
lyria-3-clip-preview, produit uniquement du mp3 ;
lyria-3-pro-preview prend aussi en charge le wav. MiniMax propose également
music-2.6-free, music-cover et music-cover-free. OpenRouter propose
également google/lyria-3-clip-preview.
Matrice des fonctionnalités
Le contrat explicite des modes utilisé par music_generate, les tests de
contrat et la campagne de tests en conditions réelles partagée :
| Fournisseur | generate |
edit |
Limite de modification | Parcours partagés en conditions réelles |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 image | Absent de la campagne partagée ; couvert par extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Aucune | generate |
| ✓ | ✓ | 10 images | generate, edit |
|
| MiniMax | ✓ | — | Aucune | generate |
| OpenRouter | ✓ | ✓ | 1 image | generate, edit |
Paramètres de l’outil
promptstringrequiredRequête de génération musicale. Requise pour action: "generate".
action"generate" | "status" | "list"default: generate"status" renvoie la tâche actuelle de la session ; "list" consulte les
fournisseurs.
modelstringRemplacement du fournisseur/modèle (par exemple
google/lyria-3-pro-preview, comfy/workflow).
lyricsstringParoles facultatives lorsque le fournisseur accepte une entrée explicite de paroles.
instrumentalbooleanDemande une sortie uniquement instrumentale lorsque le fournisseur la prend en charge.
imagestringChemin ou URL d’une seule image de référence.
imagesstring[]Plusieurs images de référence (jusqu’à 10 pour les fournisseurs qui les prennent en charge).
durationSecondsnumberDurée cible en secondes lorsque le fournisseur prend en charge les indications de durée.
format"mp3" | "wav"Indication du format de sortie lorsque le fournisseur la prend en charge.
filenamestringLes délais d’expiration des requêtes aux fournisseurs relèvent uniquement de
la configuration de l’opérateur. OpenClaw utilise
agents.defaults.musicGenerationModel.timeoutMs lorsqu’il est configuré,
porte les valeurs inférieures à 120000ms à 120000ms et, dans le cas
contraire, applique par défaut un délai de 300000ms aux requêtes des
fournisseurs.
Comportement asynchrone
La génération musicale adossée à une session s’exécute sous forme de tâche en arrière-plan :
- Tâche en arrière-plan :
music_generatecrée une tâche en arrière-plan, renvoie immédiatement une réponse indiquant le démarrage et la tâche, puis publie ultérieurement la piste terminée dans un message de suivi de l’agent. - Prévention des doublons : tant qu’une tâche est
queuedourunning, les appels ultérieurs àmusic_generatedans la même session renvoient l’état de la tâche au lieu de démarrer une autre génération. Utilisezaction: "status"pour effectuer une vérification explicite. Une requête correspondante récemment terminée est également dédupliquée pendant 2 minutes. - Consultation de l’état :
openclaw tasks listouopenclaw tasks show <taskId>permet de consulter les états en attente, en cours et terminaux. - Réveil à l’achèvement : OpenClaw réinjecte un événement interne d’achèvement dans la même session afin que le modèle puisse rédiger lui-même le message de suivi destiné à l’utilisateur.
- Indication dans la requête : les interactions utilisateur/manuelles
ultérieures de la même session reçoivent une petite indication d’exécution
lorsqu’une tâche musicale est déjà en cours, afin que le modèle ne rappelle
pas aveuglément
music_generate. - Solution de secours sans session : les contextes directs/locaux sans véritable session d’agent s’exécutent directement et renvoient le résultat audio final dans la même interaction.
Cycle de vie des tâches
La tâche musicale présente les mêmes états que le registre général des tâches
(consultez Tâches en arrière-plan pour le
diagramme d’états complet, notamment timed_out, cancelled et lost). La
plupart des exécutions musicales passent par les états suivants :
| État | Signification |
|---|---|
queued |
Tâche créée, en attente de son acceptation par le fournisseur. |
running |
Traitement en cours par le fournisseur (généralement de 30 secondes à 3 minutes selon le fournisseur et la durée). |
succeeded |
Piste prête ; l’agent se réveille et la publie dans la conversation. |
failed |
Erreur du fournisseur ou expiration du délai ; l’agent se réveille avec les détails de l’erreur. |
Consultez l’état depuis la CLI :
openclaw tasks listopenclaw tasks show <taskId>openclaw tasks cancel <taskId>Configuration
Sélection du modèle
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"], }, }, },}Ordre de sélection des fournisseurs
OpenClaw essaie les fournisseurs dans l’ordre suivant :
- Paramètre
modelde l’appel de l’outil (si l’agent en précise un). musicGenerationModel.primaryprovenant de la configuration.musicGenerationModel.fallbacksdans l’ordre indiqué.- Détection automatique utilisant uniquement les valeurs par défaut des
fournisseurs disposant d’une authentification :
- d’abord, le fournisseur actuel du modèle de texte par défaut, s’il propose également la génération musicale ;
- puis les autres fournisseurs de génération musicale enregistrés, par ordre alphabétique de leur identifiant.
Si un fournisseur échoue, le candidat suivant est essayé automatiquement. Si tous échouent, l’erreur contient les détails de chaque tentative.
Définissez agents.defaults.mediaGenerationAutoProviderFallback: false pour
utiliser uniquement les entrées explicites model, primary et fallbacks.
Notes sur les fournisseurs
ComfyUI
Piloté par des workflows et dépendant du graphe configuré ainsi que du mappage des nœuds
pour les champs d’invite et de sortie. Le plugin comfy inclus s’intègre à l’outil
partagé music_generate par l’intermédiaire du registre des fournisseurs
de génération musicale.
fal
Utilise les points de terminaison des modèles fal via le mécanisme partagé d’authentification des fournisseurs. Le
fournisseur inclus utilise par défaut fal-ai/minimax-music/v2.6 et expose également
fal-ai/ace-step/prompt-to-audio et
fal-ai/stable-audio-25/text-to-audio pour les requêtes de génération audio à partir d’une invite.
Les paroles et le mode instrumental sont réservés au modèle MiniMax ; les deux autres
modèles acceptent uniquement une invite.
Google (Lyria 3)
Utilise la génération par lots de Lyria 3. Le flux inclus actuel prend en charge
une invite, un texte de paroles facultatif et des images de référence facultatives. Le
modèle lyria-3-clip-preview par défaut produit uniquement des fichiers mp3 ; le
modèle lyria-3-pro-preview prend également en charge le format wav.
MiniMax
Utilise le point de terminaison par lots music_generation. Prend en charge une invite, des
paroles facultatives, le mode instrumental et une sortie mp3 via l’authentification par clé
d’API minimax ou OAuth minimax-portal. Expose également les modèles music-2.6-free,
music-cover et music-cover-free.
OpenRouter
Utilise la sortie audio des complétions de conversation OpenRouter avec la diffusion en continu activée. Le
fournisseur inclus utilise par défaut google/lyria-3-pro-preview et expose également
openrouter/google/lyria-3-clip-preview.
Choisir la bonne approche
- Avec un fournisseur partagé lorsque vous souhaitez sélectionner un modèle, bénéficier du basculement entre fournisseurs et utiliser le flux asynchrone intégré de tâches et d’état.
- Via un Plugin (ComfyUI) lorsque vous avez besoin d’un graphe de workflow personnalisé ou d’un fournisseur qui ne fait pas partie de la fonctionnalité musicale partagée incluse.
Si vous déboguez un comportement propre à ComfyUI, consultez ComfyUI. Si vous déboguez le comportement d’un fournisseur partagé, commencez par fal, Google (Gemini), MiniMax ou OpenRouter.
Modes de fonctionnalité des fournisseurs
Le contrat partagé de génération musicale prend en charge des déclarations de mode explicites :
generatepour la génération à partir d’une invite uniquement.editlorsque la requête comprend une ou plusieurs images de référence.
Les nouvelles implémentations de fournisseurs doivent privilégier des blocs de mode explicites :
capabilities: { generate: { maxTracks: 1, supportsLyrics: true, supportsFormat: true, }, edit: { enabled: true, maxTracks: 1, maxInputImages: 1, supportsFormat: true, },}Les anciens champs à plat tels que maxInputImages, supportsLyrics et
supportsFormat ne suffisent pas à annoncer la prise en charge de l’édition. Les fournisseurs
doivent déclarer explicitement generate et edit afin que les tests en conditions réelles, les tests de
contrat et l’outil partagé music_generate puissent valider la prise en charge des modes
de manière déterministe.
Tests en conditions réelles
Couverture facultative en conditions réelles pour les fournisseurs partagés inclus (fal, Google, MiniMax, OpenRouter) :
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.tsCommande équivalente du dépôt, qui exécute le même fichier de test :
pnpm test:live:media:musicPar défaut, ce fichier de test en conditions réelles utilise les variables d’environnement des fournisseurs déjà exportées avant les profils
d’authentification stockés, et couvre à la fois generate et edit déclaré lorsque
le fournisseur active le mode d’édition. Couverture actuelle :
google:generateeteditfal:generateuniquementminimax:generateuniquementopenrouter:generateeteditcomfy: couverture Comfy en conditions réelles distincte, hors de la campagne partagée des fournisseurs
Couverture facultative en conditions réelles pour le parcours musical ComfyUI inclus :
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.tsLe fichier de test Comfy en conditions réelles couvre également les workflows d’image et de vidéo de Comfy lorsque ces sections sont configurées.
Pages connexes
- Tâches en arrière-plan — suivi des tâches pour les exécutions détachées de
music_generate - ComfyUI
- Référence de configuration — configuration de
musicGenerationModel - Google (Gemini)
- MiniMax
- Modèles — configuration des modèles et basculement
- Présentation des outils