Tools
Geração de música
A ferramenta music_generate cria música ou áudio por meio do recurso compartilhado
de geração de música, com suporte de ComfyUI, fal, Google, MiniMax e
OpenRouter.
Em execuções de agente com sessão, music_generate inicia como uma tarefa em segundo plano,
acompanha o progresso no registro de tarefas e então reativa o agente quando a faixa está
pronta, para que ele possa avisar o usuário e anexar o áudio concluído. O agente de conclusão
segue o contrato de resposta visível da sessão: resposta final automática quando configurada
ou message(action="send") quando a sessão exige a ferramenta de mensagens. Se a sessão
solicitante estiver inativa ou sua reativação falhar, e o áudio gerado ainda estiver ausente
da resposta, o OpenClaw envia um fallback direto e idempotente apenas com o áudio ausente.
Início rápido
Compartilhado com suporte de provedor
Configurar a autenticação
Defina uma chave de API para pelo menos um provedor — por exemplo,
GEMINI_API_KEY ou MINIMAX_API_KEY.
Escolher um modelo padrão (opcional)
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Pedir ao agente
"Gere uma faixa synthpop animada sobre uma viagem noturna de carro por uma cidade de neon."
O agente chama music_generate automaticamente. Não é necessário
incluí-la em uma lista de ferramentas permitidas.
Sem uma execução de agente com sessão (em contextos diretos/locais), a ferramenta é executada em linha e retorna o caminho final da mídia no mesmo resultado da ferramenta.
Fluxo de trabalho do ComfyUI
Configurar o fluxo de trabalho
Configure plugins.entries.comfy.config.music com um fluxo de trabalho
em JSON e nós de prompt/saída.
Autenticação na nuvem (opcional)
Para o Comfy Cloud, defina COMFY_API_KEY ou COMFY_CLOUD_API_KEY.
Chamar a ferramenta
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"Exemplos de prompts:
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 inspecionar os provedores/modelos disponíveis e
action: "status" para inspecionar a tarefa de música ativa com sessão:
/tool music_generate action=list/tool music_generate action=statusExemplo de geração direta:
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=trueProvedores compatíveis
| Provedor | Modelo padrão | Entradas de referência | Controles compatíveis | Autenticação |
|---|---|---|---|---|
| ComfyUI | workflow |
Até 1 imagem | Música ou áudio definido pelo fluxo de trabalho | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
| fal | fal-ai/minimax-music/v2.6 |
Nenhuma | lyrics, instrumental, durationSeconds, format |
FAL_KEY ou FAL_API_KEY |
lyria-3-clip-preview |
Até 10 imagens | lyrics, instrumental, format |
GEMINI_API_KEY, GOOGLE_API_KEY |
|
| MiniMax | music-2.6 |
Nenhuma | lyrics, instrumental, format (somente mp3) |
MINIMAX_API_KEY ou OAuth do MiniMax |
| OpenRouter | google/lyria-3-pro-preview |
Até 1 imagem | lyrics, instrumental, durationSeconds, format |
OPENROUTER_API_KEY |
O MiniMax registra dois IDs de provedor que compartilham os mesmos modelos: minimax para
autenticação por chave de API e minimax-portal para OAuth. As referências de modelo seguem
o caminho de autenticação (minimax/music-2.6 em comparação com minimax-portal/music-2.6);
consulte MiniMax.
O fal também disponibiliza fal-ai/ace-step/prompt-to-audio (wav, sem letras, sem
alternância de modo instrumental) e fal-ai/stable-audio-25/text-to-audio (wav,
somente prompt), além de seu modelo padrão com suporte do MiniMax. O modelo padrão
lyria-3-clip-preview do Google gera somente mp3; lyria-3-pro-preview também oferece
suporte a wav. O MiniMax também disponibiliza music-2.6-free, music-cover e
music-cover-free. O OpenRouter também disponibiliza google/lyria-3-clip-preview.
Matriz de recursos
O contrato explícito de modos usado por music_generate, pelos testes de contrato e pela
verificação compartilhada em ambiente real:
| Provedor | generate |
edit |
Limite de edição | Trilhas compartilhadas em ambiente real |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 imagem | Não incluído na verificação compartilhada; coberto por extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Nenhum | generate |
| ✓ | ✓ | 10 imagens | generate, edit |
|
| MiniMax | ✓ | — | Nenhum | generate |
| OpenRouter | ✓ | ✓ | 1 imagem | generate, edit |
Parâmetros da ferramenta
promptstringrequiredPrompt para geração de música. Obrigatório para action: "generate".
action"generate" | "status" | "list"default: generate"status" retorna a tarefa atual da sessão; "list" inspeciona os provedores.
modelstringSubstituição de provedor/modelo (por exemplo, google/lyria-3-pro-preview,
comfy/workflow).
lyricsstringLetras opcionais quando o provedor oferece suporte à entrada explícita de letras.
instrumentalbooleanSolicita uma saída somente instrumental quando o provedor oferece suporte.
imagestringCaminho ou URL de uma única imagem de referência.
imagesstring[]Várias imagens de referência (até 10 nos provedores compatíveis).
durationSecondsnumberDuração desejada em segundos quando o provedor oferece suporte a sugestões de duração.
format"mp3" | "wav"Sugestão de formato de saída quando o provedor oferece suporte.
filenamestringOs tempos limite das solicitações aos provedores são apenas uma configuração do operador.
O OpenClaw usa agents.defaults.musicGenerationModel.timeoutMs quando configurado, eleva
valores abaixo de 120000ms para 120000ms e, caso contrário, usa por padrão 300000ms para
as solicitações aos provedores.
Comportamento assíncrono
A geração de música com sessão é executada como uma tarefa em segundo plano:
- Tarefa em segundo plano:
music_generatecria uma tarefa em segundo plano, retorna imediatamente uma resposta de início/tarefa e publica a faixa concluída depois, em uma mensagem de acompanhamento do agente. - Prevenção de duplicatas: enquanto uma tarefa estiver
queuedourunning, chamadas posteriores demusic_generatena mesma sessão retornam o status da tarefa em vez de iniciar outra geração. Useaction: "status"para verificar explicitamente. Uma solicitação correspondente concluída recentemente também é deduplicada por 2 minutos. - Consulta de status:
openclaw tasks listouopenclaw tasks show <taskId>inspeciona os status na fila, em execução e terminais. - Reativação após a conclusão: o OpenClaw injeta um evento interno de conclusão de volta na mesma sessão para que o próprio modelo possa escrever a mensagem de acompanhamento voltada ao usuário.
- Dica no prompt: interações posteriores do usuário/manuais na mesma sessão recebem uma
pequena dica em tempo de execução quando uma tarefa de música já está em andamento, para
que o modelo não chame
music_generatenovamente sem necessidade. - Fallback sem sessão: contextos diretos/locais sem uma sessão real de agente são executados em linha e retornam o resultado final do áudio na mesma interação.
Ciclo de vida da tarefa
A tarefa de música apresenta os mesmos estados do registro geral de tarefas (consulte
Tarefas em segundo plano para ver a máquina de estados
completa, incluindo timed_out, cancelled e lost). A maioria das execuções de música
passa por:
| Estado | Significado |
|---|---|
queued |
Tarefa criada, aguardando o provedor aceitá-la. |
running |
O provedor está processando (normalmente de 30 segundos a 3 minutos, dependendo do provedor e da duração). |
succeeded |
Faixa pronta; o agente é reativado e a publica na conversa. |
failed |
Erro ou tempo limite do provedor; o agente é reativado com os detalhes do erro. |
Verifique o status pela CLI:
openclaw tasks listopenclaw tasks show <taskId>openclaw tasks cancel <taskId>Configuração
Seleção de modelo
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"], }, }, },}Ordem de seleção de provedores
O OpenClaw tenta os provedores nesta ordem:
- Parâmetro
modelda chamada da ferramenta (se o agente especificar um). musicGenerationModel.primaryda configuração.musicGenerationModel.fallbacksna ordem definida.- Detecção automática usando somente os padrões de provedores com autenticação:
- primeiro, o provedor padrão atual do modelo de texto, se ele também oferecer geração de música;
- depois, os demais provedores de geração de música registrados, em ordem alfabética por ID de provedor.
Se um provedor falhar, o próximo candidato será tentado automaticamente. Se todos falharem, o erro incluirá os detalhes de cada tentativa.
Defina agents.defaults.mediaGenerationAutoProviderFallback: false para usar somente
as entradas explícitas de model, primary e fallbacks.
Observações sobre os provedores
ComfyUI
Orientado por fluxos de trabalho e depende do grafo configurado, além do mapeamento de nós
para os campos de prompt/saída. O plugin comfy incluído se integra à
ferramenta compartilhada music_generate por meio do registro de provedores
de geração de música.
fal
Usa os endpoints de modelos da fal pelo caminho compartilhado de autenticação do provedor. O
provedor incluído usa fal-ai/minimax-music/v2.6 por padrão e também disponibiliza
fal-ai/ace-step/prompt-to-audio e
fal-ai/stable-audio-25/text-to-audio para solicitações de conversão de prompt em áudio.
Letras e o modo instrumental são exclusivos do modelo MiniMax; os outros dois
modelos aceitam somente prompts.
Google (Lyria 3)
Usa a geração em lote do Lyria 3. O fluxo incluído atual oferece suporte a
prompt, texto de letras opcional e imagens de referência opcionais. O
modelo padrão lyria-3-clip-preview gera somente mp3; o
modelo lyria-3-pro-preview também oferece suporte a wav.
MiniMax
Usa o endpoint em lote music_generation. Oferece suporte a prompt, letras
opcionais, modo instrumental e saída mp3 por meio da autenticação por chave de API
minimax ou do OAuth minimax-portal. Também disponibiliza os modelos
music-2.6-free, music-cover e music-cover-free.
OpenRouter
Usa a saída de áudio das conclusões de chat do OpenRouter com transmissão habilitada. O
provedor incluído usa google/lyria-3-pro-preview por padrão e também disponibiliza
openrouter/google/lyria-3-clip-preview.
Como escolher o caminho certo
- Baseado em provedor compartilhado quando você quer seleção de modelo, failover de provedor e o fluxo assíncrono integrado de tarefa/status.
- Caminho de Plugin (ComfyUI) quando você precisa de um grafo de fluxo de trabalho personalizado ou de um provedor que não faça parte do recurso compartilhado e incluído de música.
Se estiver depurando um comportamento específico do ComfyUI, consulte ComfyUI. Se estiver depurando o comportamento do provedor compartilhado, comece por fal, Google (Gemini), MiniMax ou OpenRouter.
Modos de recurso do provedor
O contrato compartilhado de geração de música oferece suporte a declarações explícitas de modo:
generatepara geração somente por prompt.editquando a solicitação inclui uma ou mais imagens de referência.
Novas implementações de provedores devem preferir blocos de modo explícitos:
capabilities: { generate: { maxTracks: 1, supportsLyrics: true, supportsFormat: true, }, edit: { enabled: true, maxTracks: 1, maxInputImages: 1, supportsFormat: true, },}Campos simples legados, como maxInputImages, supportsLyrics e
supportsFormat, não são suficientes para indicar suporte à edição. Os provedores
devem declarar generate e edit explicitamente para que testes em ambiente real, testes de
contrato e a ferramenta compartilhada music_generate possam validar o suporte aos modos
de forma determinística.
Testes em ambiente real
Cobertura opcional em ambiente real para os provedores compartilhados incluídos (fal, Google, MiniMax, OpenRouter):
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.tsWrapper equivalente do repositório, que executa o mesmo arquivo de teste:
pnpm test:live:media:musicPor padrão, este arquivo de testes em ambiente real usa variáveis de ambiente de provedores já exportadas
antes dos perfis de autenticação armazenados e executa a cobertura de generate e de edit
declarada quando o provedor habilita o modo de edição. Cobertura atual:
google:generateeeditfal: somentegenerateminimax: somentegenerateopenrouter:generateeeditcomfy: cobertura separada do Comfy em ambiente real, fora da bateria compartilhada de provedores
Cobertura opcional em ambiente real para o caminho de música incluído do ComfyUI:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.tsO arquivo de testes do Comfy em ambiente real também abrange fluxos de trabalho de imagem e vídeo do Comfy quando essas seções estão configuradas.
Relacionados
- Tarefas em segundo plano — acompanhamento de tarefas para execuções desacopladas de
music_generate - ComfyUI
- Referência de configuração — configuração
musicGenerationModel - Google (Gemini)
- MiniMax
- Modelos — configuração e failover de modelos
- Visão geral das ferramentas