Ir al contenido

Generación de música

La herramienta music_generate permite al agente crear música o audio a través de la capacidad compartida de generación de música con proveedores configurados — ComfyUI, fal, Google, MiniMax y OpenRouter hoy en día.

Para ejecuciones de agente con respaldo de sesión, OpenClaw inicia la generación de música como una tarea en segundo plano, la rastrea en el libro mayor de tareas y luego despierta al agente nuevamente cuando la pista está lista para que el agente pueda informar al usuario y adjuntar el audio terminado. El agente de finalización sigue el modo de respuesta visible normal de la sesión: entrega automática de la respuesta final cuando se configura, o message(action="send") cuando la sesión requiere la herramienta de mensaje. Si la sesión solicitante está inactiva o su despertar activo falla, y falta algún audio generado de la respuesta de finalización, OpenClaw envía una reserva directa idempotente con solo el audio faltante.

  1. Configure auth

    Establezca una clave de API para al menos un proveedor; por ejemplo GEMINI_API_KEY o MINIMAX_API_KEY.

  2. Pick a default model (optional)

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

    “Genera una pista de synthpop animada sobre un viaje nocturno por una ciudad de neón.”

    El agente llama a music_generate automáticamente. No es necesario permitir la herramienta en una lista.

Para contextos sincrónicos directos sin una ejecución de agente con respaldo de sesión, la herramienta integrada aún recurre a la generación en línea y devuelve la ruta de medios final en el resultado de la herramienta.

Ejemplos de prompts:

Generate a cinematic piano track with soft strings and no vocals.
Generate an energetic chiptune loop about launching a rocket at sunrise.
ProveedorModelo predeterminadoEntradas de referenciaControles compatiblesAutenticación
ComfyUIworkflowHasta 1 imagenMúsica o audio definido por el flujo de trabajoCOMFY_API_KEY, COMFY_CLOUD_API_KEY
falfal-ai/minimax-music/v2.6Ningunolyrics, instrumental, durationSeconds, formatFAL_KEY o FAL_API_KEY
Googlelyria-3-clip-previewHasta 10 imágeneslyrics, instrumental, formatGEMINI_API_KEY, GOOGLE_API_KEY
MiniMaxmusic-2.6Ningunolyrics, instrumental, format=mp3MINIMAX_API_KEY o MiniMax OAuth
OpenRoutergoogle/lyria-3-pro-previewHasta 1 imagenlyrics, instrumental, durationSeconds, formatOPENROUTER_API_KEY

El contrato de modo explícito utilizado por music_generate, pruebas de contrato y el barrido en vivo compartido:

ProveedorgenerateeditLímite de ediciónCarriles compartidos en vivo
ComfyUI1 imagenNo está en el barrido compartido; cubierto por extensions/comfy/comfy.live.test.ts
falNingunogenerate
Google10 imágenesgenerate, edit
MiniMaxNingunogenerate
OpenRouter1 imagengenerate, edit

Use action: "list" para inspeccionar los proveedores y modelos compartidos disponibles en tiempo de ejecución:

/tool music_generate action=list

Use action: "status" para inspeccionar la tarea de música activa respaldada por sesión:

/tool music_generate action=status

Ejemplo de generación directa:

/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=true

Indicación de generación de música. Requerido para action: "generate".

"status" devuelve la tarea de la sesión actual; "list" inspecciona los proveedores.

Invalidación de proveedor/modelo (ej. google/lyria-3-pro-preview, comfy/workflow).

Letra opcional cuando el proveedor admite la entrada explícita de letras.

Solicitar salida solo instrumental cuando el proveedor lo admite.

Ruta o URL de una sola imagen de referencia.

Múltiples imágenes de referencia (hasta 10 en proveedores compatibles).

Duración objetivo en segundos cuando el proveedor admite sugerencias de duración.

Sugerencia de formato de salida cuando el proveedor lo admite.

Sugerencia de nombre de archivo de salida.

Los tiempos de espera de las solicitudes del proveedor son solo configuración del operador. OpenClaw usa agents.defaults.musicGenerationModel.timeoutMs cuando está configurado, eleva los valores inferiores a 120000ms a 120000ms y, de lo contrario, establece las solicitudes del proveedor por defecto en 300000ms.

La generación de música con respaldo de sesión se ejecuta como una tarea en segundo plano:

  • Tarea en segundo plano: music_generate crea una tarea en segundo plano, devuelve una respuesta de tarea iniciada inmediatamente y publica la pista finalizada más adelante en un mensaje de seguimiento del agente.
  • Prevención de duplicados: mientras una tarea está queued o running, las posteriores llamadas a music_generate en la misma sesión devuelven el estado de la tarea en lugar de iniciar otra generación. Use action: "status" para verificar explícitamente.
  • Consulta de estado: openclaw tasks list o `openclaw tasks show

` inspeccionan el estado en cola, en ejecución y terminal.

  • Activación de finalización: OpenClaw inyecta un evento de finalización interno de nuevo en la misma sesión para que el modelo pueda escribir él mismo el seguimiento orientado al usuario.
  • Sugerencia de prompt: los turnos posteriores de usuario/manual en la misma sesión reciben una pequeña sugerencia en tiempo de ejecución cuando una tarea de música ya está en curso, para que el modelo no llame ciegamente a music_generate de nuevo.
  • Alternativa sin sesión: los contextos directos locales sin una sesión de agente real se ejecutan en línea y devuelven el resultado de audio final en el mismo turno.
EstadoSignificado
queuedTarea creada, esperando a que el proveedor la acepte.
runningEl proveedor está procesando (típicamente de 30 segundos a 3 minutos dependiendo del proveedor y la duración).
succeededPista lista; el agente se activa y la publica en la conversación.
failedError o tiempo de espera del proveedor; el agente se despierta con detalles del error.

Verificar el estado desde la CLI:

Ventana de terminal
openclaw tasks list
openclaw tasks show

openclaw tasks cancel

## Configuración
### Selección del modelo
```json5
{
agents: {
defaults: {
musicGenerationModel: {
primary: "google/lyria-3-clip-preview",
fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"],
},
},
},
}

OpenClaw prueba los proveedores en este orden:

  1. parámetro model de la llamada a la herramienta (si el agente especifica uno).
  2. musicGenerationModel.primary de la configuración.
  3. musicGenerationModel.fallbacks en orden.
  4. Detección automática utilizando solo los valores predeterminados del proveedor respaldados por autenticación:
    • primero el proveedor predeterminado actual;
    • proveedores de generación de música registrados restantes en orden de ID de proveedor.

Si un proveedor falla, se prueba automáticamente el siguiente candidato. Si todos fallan, el error incluye detalles de cada intento.

Establezca agents.defaults.mediaGenerationAutoProviderFallback: false para usar solo entradas explícitas de model, primary y fallbacks.

ComfyUI

Basado en flujos de trabajo y depende del gráfico configurado más la asignación de nodos para los campos de prompt/salida. El plugin incluido comfy se conecta a la herramienta compartida music_generate a través del registro de proveedores de generación de música.

fal

Utiliza los endpoints de modelos de fal a través de la ruta de autenticación compartida del proveedor. El proveedor incluido tiene como valor predeterminado 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 prompt-a-audio.

Google (Lyria 3)

Utiliza la generación por lotes de Lyria 3. El flujo incluido actual admite prompt, texto de letra opcional e imágenes de referencia opcionales.

MiniMax

Utiliza el endpoint por lotes music_generation. Admite el prompt, letras opcionales, modo instrumental y salida mp3 a través de minimax autenticación con API-key o minimax-portal OAuth.

OpenRouter

Utiliza la salida de audio de finalizaciones de chat de OpenRouter con streaming habilitado. El proveedor incluido por defecto es google/lyria-3-pro-preview y también expone openrouter/google/lyria-3-clip-preview.

  • Con proveedor compartido cuando desees selección de modelo, conmutación por error del proveedor y el flujo de tarea/estado asíncrono integrado.
  • Ruta de complemento (ComfyUI) cuando necesites un gráfico de flujo de trabajo personalizado o un proveedor que no sea parte de la capacidad de música compartida incluida.

Si estás depurando un comportamiento específico de ComfyUI, consulta ComfyUI. Si estás depurando el comportamiento compartido del proveedor, comienza con fal, Google (Gemini), MiniMax u OpenRouter.

El contrato de generación de música compartida admite declaraciones de modo explícitas:

  • generate para la generación solo con prompt.
  • edit cuando 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 son suficientes para anunciar soporte de edición. Los proveedores deben declarar generate y edit explícitamente para que las pruebas en vivo, pruebas de contrato y la herramienta compartida music_generate puedan validar el soporte de modo determinista.

Cobertura en vivo opcional para los proveedores compartidos incluidos:

Ventana de terminal
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts

Contenedor del repositorio:

Ventana de terminal
pnpm test:live:media music

Este archivo en vivo utiliza variables de entorno de proveedor ya exportadas antes que los perfiles de autenticación almacenados por defecto, y ejecuta tanto generate como la cobertura declarada edit cuando el proveedor habilita el modo de edición. Cobertura actual:

  • google: generate más edit
  • fal: solo generate
  • minimax: solo generate
  • openrouter: generate más edit
  • comfy: cobertura en vivo separada de Comfy, no el barrido compartido de proveedores

Cobertura en vivo opcional para la ruta de música de ComfyUI incluida:

Ventana de terminal
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts

El archivo en vivo de Comfy también cubre los flujos de trabajo de imagen y video de Comfy cuando esas secciones están configuradas.