music_generate позволяет агенту создавать музыку или аудио через
общую возможность генерации музыки с настроенными провайдерами — сейчас это
ComfyUI, fal, Google, MiniMax и OpenRouter.
Для запусков агента с поддержкой сессии OpenClaw запускает генерацию музыки как
фоновую задачу, отслеживает ее в журнале задач, а затем снова пробуждает агента,
когда трек готов, чтобы агент мог сообщить пользователю и прикрепить
готовое аудио. Агент завершения следует обычному режиму видимых ответов сессии:
автоматическая доставка финального ответа, если она настроена, или message(action="send"),
если сессия требует инструмент сообщений. Если сессия запрашивающего
неактивна или ее активное пробуждение завершается неудачно, а часть сгенерированного
аудио все еще отсутствует в ответе завершения, OpenClaw отправляет идемпотентный
прямой резервный ответ только с недостающим аудио.
Встроенный общий инструмент появляется только тогда, когда доступен хотя бы один
провайдер генерации музыки. Если вы не видите
music_generate среди инструментов
вашего агента, настройте agents.defaults.musicGenerationModel или добавьте
API-ключ провайдера.Быстрый старт
- На основе общего провайдера
- Рабочий процесс ComfyUI
Настройте аутентификацию
Задайте API-ключ хотя бы для одного провайдера — например
GEMINI_API_KEY или MINIMAX_API_KEY.Поддерживаемые провайдеры
| Провайдер | Модель по умолчанию | Эталонные входные данные | Поддерживаемые элементы управления | Аутентификация |
|---|---|---|---|---|
| ComfyUI | workflow | До 1 изображения | Музыка или аудио, определенные рабочим процессом | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
| fal | fal-ai/minimax-music/v2.6 | Нет | lyrics, instrumental, durationSeconds, format | FAL_KEY или FAL_API_KEY |
lyria-3-clip-preview | До 10 изображений | lyrics, instrumental, format | GEMINI_API_KEY, GOOGLE_API_KEY | |
| MiniMax | music-2.6 | Нет | lyrics, instrumental, format=mp3 | MINIMAX_API_KEY или MiniMax OAuth |
| OpenRouter | google/lyria-3-pro-preview | До 1 изображения | lyrics, instrumental, durationSeconds, format | OPENROUTER_API_KEY |
Матрица возможностей
Явный контракт режимов, используемыйmusic_generate, контрактными тестами и
общим live sweep:
| Провайдер | generate | edit | Ограничение редактирования | Общие live-линии |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 изображение | Не входит в общий sweep; покрывается extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Нет | generate |
| ✓ | ✓ | 10 изображений | generate, edit | |
| MiniMax | ✓ | — | Нет | generate |
| OpenRouter | ✓ | ✓ | 1 изображение | generate, edit |
action: "list", чтобы во время выполнения просмотреть доступных
общих провайдеров и модели:
action: "status", чтобы просмотреть активную задачу генерации
музыки с поддержкой сессии:
Параметры инструмента
Запрос для генерации музыки. Требуется для
action: "generate"."status" возвращает текущую задачу сессии; "list" проверяет провайдеров.Переопределение провайдера/модели (например,
google/lyria-3-pro-preview,
comfy/workflow).Необязательный текст песни, когда провайдер поддерживает явный ввод текста.
Запрашивает вывод только инструментальной версии, когда провайдер это поддерживает.
Путь или URL одного эталонного изображения.
Несколько эталонных изображений (до 10 у поддерживающих провайдеров).
Целевая длительность в секундах, когда провайдер поддерживает подсказки длительности.
Подсказка формата вывода, когда провайдер это поддерживает.
Подсказка имени выходного файла.
Не все провайдеры поддерживают все параметры. OpenClaw все равно проверяет
жесткие ограничения, такие как количество входных данных, перед отправкой.
Когда провайдер поддерживает длительность, но использует более короткий максимум,
чем запрошенное значение, OpenClaw ограничивает ее ближайшей поддерживаемой
длительностью. Действительно неподдерживаемые необязательные подсказки
игнорируются с предупреждением, когда выбранный провайдер или модель не может
их выполнить. Результаты инструмента сообщают примененные настройки;
details.normalization фиксирует любое сопоставление запрошенного с примененным.agents.defaults.musicGenerationModel.timeoutMs, когда он
настроен, повышает значения ниже 120000ms до 120000ms, а в остальных случаях
по умолчанию задает для запросов к провайдеру 300000ms.
Асинхронное поведение
Генерация музыки с поддержкой сессии выполняется как фоновая задача:- Фоновая задача:
music_generateсоздает фоновую задачу, сразу возвращает ответ о запуске/задаче и позже публикует готовый трек в последующем сообщении агента. - Предотвращение дубликатов: пока задача находится в состоянии
queuedилиrunning, последующие вызовыmusic_generateв той же сессии возвращают статус задачи вместо запуска другой генерации. Используйтеaction: "status"для явной проверки. - Просмотр статуса:
openclaw tasks listилиopenclaw tasks show <taskId>проверяет статусы в очереди, выполнения и терминальные статусы. - Пробуждение при завершении: OpenClaw внедряет внутреннее событие завершения обратно в ту же сессию, чтобы модель могла сама написать пользовательское последующее сообщение.
- Подсказка запроса: последующие пользовательские/ручные ходы в той же сессии
получают небольшую runtime-подсказку, когда музыкальная задача уже выполняется,
чтобы модель не вызывала
music_generateповторно вслепую. - Резерв без сессии: прямые/локальные контексты без реальной сессии агента выполняются встроенно и возвращают итоговый результат аудио в том же ходе.
Жизненный цикл задачи
| Состояние | Значение |
|---|---|
queued | Задача создана и ожидает, пока провайдер ее примет. |
running | Провайдер обрабатывает запрос (обычно от 30 секунд до 3 минут в зависимости от провайдера и длительности). |
succeeded | Трек готов; агент пробуждается и публикует его в беседе. |
failed | Ошибка провайдера или тайм-аут; агент пробуждается с подробностями ошибки. |
Конфигурация
Выбор модели
Порядок выбора провайдера
OpenClaw пробует провайдеров в следующем порядке:- Параметр
modelиз вызова инструмента (если агент его указывает). musicGenerationModel.primaryиз конфигурации.musicGenerationModel.fallbacksпо порядку.- Автообнаружение только с использованием значений провайдеров по умолчанию,
подкрепленных аутентификацией:
- текущий провайдер по умолчанию первым;
- остальные зарегистрированные провайдеры генерации музыки в порядке id провайдера.
agents.defaults.mediaGenerationAutoProviderFallback: false, чтобы
использовать только явные записи model, primary и fallbacks.
Примечания о провайдерах
ComfyUI
ComfyUI
Управляется рабочим процессом и зависит от настроенного графа, а также
сопоставления узлов для полей prompt/output. Встроенный Plugin
comfy
подключается к общему инструменту music_generate через реестр провайдеров
генерации музыки.fal
fal
Использует конечные точки моделей fal через общий путь аутентификации
провайдера. Встроенный провайдер по умолчанию использует
fal-ai/minimax-music/v2.6, а также предоставляет
fal-ai/ace-step/prompt-to-audio и
fal-ai/stable-audio-25/text-to-audio для запросов prompt-to-audio.Google (Lyria 3)
Google (Lyria 3)
Использует пакетную генерацию Lyria 3. Текущий встроенный поток поддерживает
запрос, необязательный текст песни и необязательные эталонные изображения.
MiniMax
MiniMax
Использует пакетную конечную точку
music_generation. Поддерживает запрос,
необязательный текст песни, инструментальный режим и вывод mp3 через
аутентификацию по API-ключу minimax или OAuth minimax-portal.OpenRouter
OpenRouter
Использует аудиовывод chat completions OpenRouter с включенной потоковой
передачей. Встроенный провайдер по умолчанию использует
google/lyria-3-pro-preview, а также предоставляет
openrouter/google/lyria-3-clip-preview.Выбор правильного пути
- На основе общего провайдера, когда вам нужен выбор модели, переключение при сбое провайдера и встроенный асинхронный поток задач/статусов.
- Путь Plugin (ComfyUI), когда вам нужен пользовательский граф рабочего процесса или провайдер, который не является частью общей встроенной возможности генерации музыки.
Режимы возможностей провайдера
Общий контракт генерации музыки поддерживает явные объявления режимов:generateдля генерации только по промпту.edit, когда запрос включает одно или несколько референсных изображений.
maxInputImages, supportsLyrics и
supportsFormat, недостаточно, чтобы заявить поддержку редактирования.
Провайдерам следует явно объявлять generate и edit, чтобы тесты с реальными
сервисами, контрактные тесты и общий инструмент music_generate могли
детерминированно проверять поддержку режимов.
Тесты с реальными сервисами
Покрытие тестами с реальными сервисами для общих встроенных провайдеров включается явно:generate, так и для объявленного
edit, когда провайдер включает режим редактирования. Текущее покрытие:
google:generateплюсeditfal: толькоgenerateminimax: толькоgenerateopenrouter:generateплюсeditcomfy: отдельное покрытие тестами Comfy с реальными сервисами, не общий обход провайдеров
Связанные материалы
- Фоновые задачи — отслеживание задач для отсоединенных запусков
music_generate - ComfyUI
- Справочник конфигурации — конфигурация
musicGenerationModel - Google (Gemini)
- MiniMax
- Модели — конфигурация моделей и отработка отказа
- Обзор инструментов