Tools
Generación de música
La herramienta music_generate crea música o audio mediante la capacidad
compartida de generación de música, respaldada por ComfyUI, fal, Google,
MiniMax y OpenRouter.
Para las ejecuciones de agentes respaldadas por sesión, music_generate se
inicia como una tarea en segundo plano, registra el progreso en el libro de
tareas y, cuando la pista está lista, reactiva al agente para que pueda
informar al usuario y adjuntar el audio terminado. El agente de finalización
sigue el contrato de respuesta visible de la sesión: una respuesta final
automática cuando está configurada o message(action="send") cuando la
sesión requiere la herramienta de mensajes. Si la sesión solicitante está
inactiva o falla su reactivación y el audio generado aún no aparece en la
respuesta, OpenClaw envía un respaldo directo e idempotente que contiene
únicamente el audio faltante.
Inicio rápido
Respaldado por un proveedor compartido
Configurar la autenticación
Establezca una clave de API para al menos un proveedor; por ejemplo,
GEMINI_API_KEY o MINIMAX_API_KEY.
Elegir un modelo predeterminado (opcional)
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Pedir al agente
«Genera una pista de synthpop animada sobre un viaje nocturno en automóvil por una ciudad de neón».
El agente llama a music_generate automáticamente. No es necesario
incluir la herramienta en una lista de permitidas.
Sin una ejecución de agente respaldada por sesión (en contextos directos o locales), la herramienta se ejecuta en línea y devuelve la ruta final del archivo multimedia en el mismo resultado de la herramienta.
Flujo de trabajo de ComfyUI
Configurar el flujo de trabajo
Configure plugins.entries.comfy.config.music con un flujo de trabajo
en formato JSON y nodos de instrucción y salida.
Autenticación en la nube (opcional)
Para Comfy Cloud, establezca COMFY_API_KEY o
COMFY_CLOUD_API_KEY.
Llamar a la herramienta
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"Ejemplos de instrucciones:
Generate a cinematic piano track with soft strings and no vocals.Generate an energetic chiptune loop about launching a rocket at sunrise.Use action: "list" para consultar los proveedores y modelos disponibles, y
action: "status" para consultar la tarea musical activa respaldada por
sesión:
/tool music_generate action=list/tool music_generate action=statusEjemplo de generación directa:
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=trueProveedores compatibles
| Proveedor | Modelo predeterminado | Entradas de referencia | Controles compatibles | Autenticación |
|---|---|---|---|---|
| ComfyUI | workflow |
Hasta 1 imagen | Música o audio definidos por el flujo de trabajo | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
| fal | fal-ai/minimax-music/v2.6 |
Ninguna | lyrics, instrumental, durationSeconds, format |
FAL_KEY o FAL_API_KEY |
lyria-3-clip-preview |
Hasta 10 imágenes | lyrics, instrumental, format |
GEMINI_API_KEY, GOOGLE_API_KEY |
|
| MiniMax | music-2.6 |
Ninguna | lyrics, instrumental, format (solo mp3) |
MINIMAX_API_KEY o OAuth de MiniMax |
| OpenRouter | google/lyria-3-pro-preview |
Hasta 1 imagen | lyrics, instrumental, durationSeconds, format |
OPENROUTER_API_KEY |
MiniMax registra dos identificadores de proveedor que comparten los mismos
modelos: minimax para la autenticación mediante clave de API y
minimax-portal para OAuth. Las referencias de modelos siguen la ruta de
autenticación (minimax/music-2.6 frente a
minimax-portal/music-2.6); consulte
MiniMax.
fal también ofrece fal-ai/ace-step/prompt-to-audio (wav, sin letra ni
opción de activar o desactivar el modo instrumental) y
fal-ai/stable-audio-25/text-to-audio (wav, solo instrucción), además de su
modelo predeterminado respaldado por MiniMax. El modelo predeterminado de
Google, lyria-3-clip-preview, solo genera archivos mp3;
lyria-3-pro-preview también admite wav. MiniMax también ofrece
music-2.6-free, music-cover y music-cover-free. OpenRouter también
ofrece google/lyria-3-clip-preview.
Matriz de capacidades
El contrato de modos explícito que utilizan music_generate, las pruebas de
contrato y el barrido compartido en vivo:
| Proveedor | generate |
edit |
Límite de edición | Canales compartidos en vivo |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 imagen | No está en el barrido compartido; cubierto por extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Ninguno | generate |
| ✓ | ✓ | 10 imágenes | generate, edit |
|
| MiniMax | ✓ | — | Ninguno | generate |
| OpenRouter | ✓ | ✓ | 1 imagen | generate, edit |
Parámetros de la herramienta
promptstringrequiredInstrucción para generar música. Es obligatoria para action: "generate".
action"generate" | "status" | "list"default: generate"status" devuelve la tarea actual de la sesión; "list" consulta los proveedores.
modelstringSustitución del proveedor o modelo (por ejemplo,
google/lyria-3-pro-preview, comfy/workflow).
lyricsstringLetra opcional cuando el proveedor admite una entrada explícita de letra.
instrumentalbooleanSolicita una salida exclusivamente instrumental cuando el proveedor lo admite.
imagestringRuta o URL de una única imagen de referencia.
imagesstring[]Varias imágenes de referencia (hasta 10 en los proveedores compatibles).
durationSecondsnumberDuración objetivo en segundos cuando el proveedor admite indicaciones de duración.
format"mp3" | "wav"Indicación del formato de salida cuando el proveedor lo admite.
filenamestringLos tiempos de espera de las solicitudes a proveedores son exclusivamente
una configuración del operador. OpenClaw utiliza
agents.defaults.musicGenerationModel.timeoutMs cuando está configurado,
eleva los valores inferiores a 120000ms hasta 120000ms y, en caso contrario,
establece de forma predeterminada un tiempo de espera de 300000ms para las
solicitudes a proveedores.
Comportamiento asíncrono
La generación de música respaldada por sesión se ejecuta como una tarea en segundo plano:
- Tarea en segundo plano:
music_generatecrea una tarea en segundo plano, devuelve inmediatamente una respuesta de inicio o de tarea y publica posteriormente la pista terminada en un mensaje de seguimiento del agente. - Prevención de duplicados: mientras una tarea está en estado
queuedorunning, las llamadas posteriores amusic_generateen la misma sesión devuelven el estado de la tarea en lugar de iniciar otra generación. Useaction: "status"para comprobarlo explícitamente. También se elimina la duplicación de una solicitud coincidente completada recientemente durante 2 minutos. - Consulta de estado:
openclaw tasks listuopenclaw tasks show <taskId>consulta los estados en cola, en ejecución y terminales. - Reactivación al finalizar: OpenClaw inyecta un evento interno de finalización en la misma sesión para que el propio modelo pueda redactar el seguimiento dirigido al usuario.
- Indicación en la instrucción: los turnos posteriores del usuario o
manuales en la misma sesión reciben una breve indicación en tiempo de
ejecución cuando ya hay una tarea musical en curso, para evitar que el
modelo vuelva a llamar a
music_generatesin comprobarlo. - Respaldo sin sesión: los contextos directos o locales sin una sesión real de agente se ejecutan en línea y devuelven el resultado final de audio en el mismo turno.
Ciclo de vida de la tarea
La tarea musical presenta los mismos estados que el registro general de
tareas (consulte Tareas en segundo plano
para ver la máquina de estados completa, incluidos timed_out, cancelled
y lost). La mayoría de las ejecuciones musicales pasan por:
| Estado | Significado |
|---|---|
queued |
Tarea creada, a la espera de que el proveedor la acepte. |
running |
El proveedor la está procesando (normalmente entre 30 segundos y 3 minutos, según el proveedor y la duración). |
succeeded |
La pista está lista; el agente se reactiva y la publica en la conversación. |
failed |
Error o tiempo de espera agotado del proveedor; el agente se reactiva con los detalles del error. |
Compruebe el estado desde la CLI:
openclaw tasks listopenclaw tasks show <taskId>openclaw tasks cancel <taskId>Configuración
Selección del modelo
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"], }, }, },}Orden de selección de proveedores
OpenClaw prueba los proveedores en este orden:
- El parámetro
modelde la llamada a la herramienta (si el agente especifica uno). musicGenerationModel.primaryde la configuración.- Los valores de
musicGenerationModel.fallbacks, en orden. - Detección automática utilizando únicamente los valores predeterminados de
proveedores respaldados por autenticación:
- primero, el proveedor predeterminado actual del modelo de texto, si también ofrece generación de música;
- después, los demás proveedores de generación de música registrados, ordenados alfabéticamente por identificador de proveedor.
Si un proveedor falla, se prueba automáticamente el siguiente candidato. Si todos fallan, el error incluye los detalles de cada intento.
Establezca agents.defaults.mediaGenerationAutoProviderFallback: false para
usar únicamente las entradas explícitas model, primary y fallbacks.
Notas sobre los proveedores
ComfyUI
Se basa en flujos de trabajo y depende del grafo configurado y de la asignación de nodos
para los campos de indicaciones y salida. El Plugin comfy incluido se integra con la
herramienta compartida music_generate mediante el registro de proveedores
de generación de música.
fal
Usa los endpoints de modelos de fal mediante la ruta compartida de autenticación de proveedores. El
proveedor incluido utiliza de forma predeterminada fal-ai/minimax-music/v2.6 y también expone
fal-ai/ace-step/prompt-to-audio y
fal-ai/stable-audio-25/text-to-audio para solicitudes de conversión de indicaciones en audio.
Las letras y el modo instrumental solo están disponibles para el modelo MiniMax; los otros dos
modelos solo admiten indicaciones.
Google (Lyria 3)
Usa la generación por lotes de Lyria 3. El flujo incluido actualmente admite
indicaciones, texto opcional para las letras e imágenes de referencia opcionales. El
modelo predeterminado lyria-3-clip-preview solo genera mp3; el
modelo lyria-3-pro-preview también admite wav.
MiniMax
Usa el endpoint por lotes music_generation. Admite indicaciones, letras
opcionales, modo instrumental y salida mp3 mediante autenticación con clave de API
minimax u OAuth de minimax-portal. También expone los modelos music-2.6-free,
music-cover y music-cover-free.
OpenRouter
Usa la salida de audio de las finalizaciones de chat de OpenRouter con la transmisión habilitada. El
proveedor incluido utiliza de forma predeterminada google/lyria-3-pro-preview y también expone
openrouter/google/lyria-3-clip-preview.
Elegir la ruta adecuada
- Respaldada por proveedores compartidos cuando se necesita selección de modelos, conmutación por error entre proveedores y el flujo integrado de tareas asíncronas y estados.
- Ruta de Plugin (ComfyUI) cuando se necesita un grafo de flujo de trabajo personalizado o un proveedor que no forma parte de la capacidad musical compartida incluida.
Si está depurando un comportamiento específico de ComfyUI, consulte ComfyUI. Si está depurando el comportamiento de proveedores compartidos, comience por fal, Google (Gemini), MiniMax u OpenRouter.
Modos de capacidad de los proveedores
El contrato compartido de generación de música admite declaraciones explícitas de modos:
generatepara la generación solo a partir de indicaciones.editcuando la solicitud incluye una o más imágenes de referencia.
Las nuevas implementaciones de proveedores deben preferir bloques de modo explícitos:
capabilities: { generate: { maxTracks: 1, supportsLyrics: true, supportsFormat: true, }, edit: { enabled: true, maxTracks: 1, maxInputImages: 1, supportsFormat: true, },}Los campos planos heredados como maxInputImages, supportsLyrics y
supportsFormat no bastan para anunciar la compatibilidad con la edición. Los proveedores
deben declarar generate y edit explícitamente para que las pruebas en vivo, las pruebas
de contrato y la herramienta compartida music_generate puedan validar la compatibilidad con los modos
de forma determinista.
Pruebas en vivo
Cobertura en vivo opcional para los proveedores compartidos incluidos (fal, Google, MiniMax, OpenRouter):
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.tsComando equivalente del repositorio, que ejecuta el mismo archivo de pruebas:
pnpm test:live:media:musicDe forma predeterminada, este archivo de pruebas en vivo usa las variables de entorno de proveedores ya exportadas
antes que los perfiles de autenticación almacenados, y ejecuta tanto la cobertura de generate como la
declarada para edit cuando el proveedor habilita el modo de edición. Cobertura actual:
google:generatemáseditfal: sologenerateminimax: sologenerateopenrouter:generatemáseditcomfy: cobertura en vivo independiente de Comfy, no incluida en el recorrido de proveedores compartidos
Cobertura en vivo opcional para la ruta de música de ComfyUI incluida:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.tsEl archivo de pruebas en vivo de Comfy también cubre los flujos de trabajo de imágenes y vídeos de comfy cuando esas secciones están configuradas.
Temas relacionados
- Tareas en segundo plano — seguimiento de tareas para ejecuciones desacopladas de
music_generate - ComfyUI
- Referencia de configuración — configuración de
musicGenerationModel - Google (Gemini)
- MiniMax
- Modelos — configuración y conmutación por error de modelos
- Descripción general de las herramientas