music_generate создаёт музыку или аудио с помощью общей
возможности генерации музыки на базе ComfyUI, fal, Google, MiniMax и
OpenRouter.
music_generate отображается, только когда доступен хотя бы один провайдер
генерации музыки: явно заданная конфигурация agents.defaults.musicGenerationModel или
провайдер с настроенной аутентификацией (например, с заданным ключом API).music_generate запускается как фоновая
задача, отслеживает ход выполнения в журнале задач, а затем пробуждает агента,
когда трек готов, чтобы тот мог сообщить пользователю и прикрепить готовое аудио.
Агент завершения следует контракту видимого ответа сеанса: автоматически
отправляет итоговый ответ, если это настроено, либо использует
message(action="send"), когда сеанс требует применения инструмента сообщений.
Если сеанс инициатора неактивен или его не удаётся пробудить, а созданное аудио
по-прежнему отсутствует в ответе, OpenClaw идемпотентно отправляет напрямую
только недостающее аудио.
Быстрый старт
- Общий провайдер
- Рабочий процесс ComfyUI
1
Настройте аутентификацию
Задайте ключ API хотя бы для одного провайдера — например,
GEMINI_API_KEY или MINIMAX_API_KEY.2
Выберите модель по умолчанию (необязательно)
3
Обратитесь к агенту
«Создай энергичный синти-поп-трек о ночной поездке по
неоновому городу».Агент автоматически вызывает
music_generate. Добавлять инструмент
в список разрешённых не требуется.action: "list" для просмотра доступных провайдеров и моделей,
а action: "status" — для просмотра активной музыкальной задачи с поддержкой
сеанса:
Поддерживаемые провайдеры
MiniMax регистрирует два идентификатора провайдера с общими моделями:
minimax для аутентификации по ключу API и minimax-portal для OAuth.
Ссылки на модели соответствуют способу аутентификации
(minimax/music-2.6 и minimax-portal/music-2.6 соответственно); см.
MiniMax.
Помимо модели по умолчанию на базе MiniMax, fal также предоставляет
fal-ai/ace-step/prompt-to-audio (wav, без текста песни и без переключателя инструментального
режима) и fal-ai/stable-audio-25/text-to-audio (wav, только запрос). Модель Google по умолчанию
lyria-3-clip-preview выводит только mp3; lyria-3-pro-preview также поддерживает
wav. MiniMax также предоставляет music-2.6-free, music-cover и
music-cover-free. OpenRouter также предоставляет google/lyria-3-clip-preview.
Матрица возможностей
Явный контракт режимов, используемыйmusic_generate, контрактными тестами
и общей проверкой в реальной среде:
Параметры инструмента
string
обязательно
Запрос на генерацию музыки. Обязателен для
action: "generate"."generate" | "status" | "list"
по умолчанию:"generate"
"status" возвращает текущую задачу сеанса; "list" просматривает провайдеров.string
Переопределение провайдера или модели (например,
google/lyria-3-pro-preview,
comfy/workflow).string
Необязательный текст песни, если провайдер поддерживает его явную передачу.
boolean
Запросить только инструментальный результат, если провайдер это поддерживает.
string
Путь или URL одного референсного изображения.
string[]
Несколько референсных изображений (до 10 у поддерживающих провайдеров).
number
Целевая длительность в секундах, если провайдер поддерживает указание длительности.
"mp3" | "wav"
Предпочтительный формат вывода, если провайдер его поддерживает.
string
Предпочтительное имя выходного файла.
Не все провайдеры поддерживают все параметры. OpenClaw всё равно проверяет
строгие ограничения, например количество входных данных, до отправки запроса.
Если провайдер поддерживает длительность, но его максимальное значение меньше
запрошенного, OpenClaw ограничивает значение ближайшей поддерживаемой
длительностью. Действительно неподдерживаемые необязательные указания
игнорируются с предупреждением, если выбранный провайдер или модель не может
их выполнить. Результаты инструмента содержат применённые настройки;
details.normalization фиксирует все сопоставления запрошенных и применённых
значений.agents.defaults.musicGenerationModel.timeoutMs, если он настроен, повышает
значения ниже 120000ms до 120000ms, а в остальных случаях устанавливает
для запросов к провайдеру тайм-аут по умолчанию 300000ms.
Асинхронное поведение
Генерация музыки с поддержкой сеанса выполняется как фоновая задача:- Фоновая задача:
music_generateсоздаёт фоновую задачу, немедленно возвращает ответ о запуске и задаче, а позднее публикует готовый трек в последующем сообщении агента. - Предотвращение дубликатов: пока задача находится в состоянии
queuedилиrunning, последующие вызовыmusic_generateв том же сеансе возвращают состояние задачи вместо запуска новой генерации. Для явной проверки используйтеaction: "status". Недавно завершённый совпадающий запрос также дедуплицируется в течение 2 минут. - Проверка состояния:
openclaw tasks listилиopenclaw tasks show <taskId>показывает состояние в очереди, выполнения и завершения. - Пробуждение после завершения: OpenClaw внедряет внутреннее событие завершения обратно в тот же сеанс, чтобы модель могла самостоятельно написать последующий ответ пользователю.
- Подсказка в запросе: последующие пользовательские или ручные обращения в том же сеансе
получают небольшую подсказку среды выполнения, если музыкальная задача уже
выполняется, чтобы модель не вызывала
music_generateповторно вслепую. - Резервный вариант без сеанса: прямые или локальные контексты без настоящего сеанса агента выполняются синхронно и возвращают итоговое аудио в том же обращении.
Жизненный цикл задачи
Музыкальная задача использует те же состояния, что и общий реестр задач (полную схему состояний, включаяtimed_out, cancelled и
lost, см. в разделе
Фоновые задачи). Большинство музыкальных
задач проходит следующие состояния:
Проверьте состояние через CLI:
Конфигурация
Выбор модели
Порядок выбора провайдера
OpenClaw пробует провайдеров в следующем порядке:- Параметр
modelиз вызова инструмента (если агент его указал). musicGenerationModel.primaryиз конфигурации.musicGenerationModel.fallbacksпо порядку.- Автоматическое обнаружение только по значениям провайдеров по умолчанию с настроенной аутентификацией:
- сначала текущий провайдер текстовой модели по умолчанию, если он также предоставляет генерацию музыки;
- затем остальные зарегистрированные провайдеры генерации музыки в алфавитном порядке по идентификатору провайдера.
agents.defaults.mediaGenerationAutoProviderFallback: false, чтобы использовать только
явные записи model, primary и fallbacks.
Примечания о провайдерах
ComfyUI
ComfyUI
Управляется рабочим процессом и зависит от настроенного графа и сопоставления узлов
с полями промпта и вывода. Встроенный плагин
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 для запросов преобразования промпта в аудио.
Тексты песен и инструментальный режим поддерживаются только моделью MiniMax; две другие
модели работают только с промптами.Google (Lyria 3)
Google (Lyria 3)
Использует пакетную генерацию Lyria 3. Текущий встроенный процесс поддерживает
промпт, необязательный текст песни и необязательные эталонные изображения. Модель
lyria-3-clip-preview, используемая по умолчанию, выводит только mp3; модель
lyria-3-pro-preview также поддерживает wav.MiniMax
MiniMax
Использует пакетную конечную точку
music_generation. Поддерживает промпт, необязательный
текст песни, инструментальный режим и вывод mp3 с аутентификацией либо по API-ключу minimax,
либо через OAuth minimax-portal. Также предоставляет модели music-2.6-free,
music-cover и music-cover-free.OpenRouter
OpenRouter
Использует аудиовывод завершений чата OpenRouter с включённой потоковой передачей. Встроенный
провайдер по умолчанию использует
google/lyria-3-pro-preview, а также предоставляет
openrouter/google/lyria-3-clip-preview.Выбор подходящего пути
- На основе общего провайдера — если вам нужны выбор модели, переключение на резервного провайдера и встроенный асинхронный процесс задач и статусов.
- Путь плагина (ComfyUI) — если вам нужен пользовательский граф рабочего процесса или провайдер, который не входит в общую встроенную возможность генерации музыки.
Режимы возможностей провайдеров
Общий контракт генерации музыки поддерживает явные объявления режимов:generateдля генерации только по промпту.edit, когда запрос содержит одно или несколько эталонных изображений.
maxInputImages, supportsLyrics и
supportsFormat, недостаточно для объявления поддержки редактирования. Провайдеры
должны явно объявлять generate и edit, чтобы тесты в реальной среде, контрактные
тесты и общий инструмент music_generate могли детерминированно проверять
поддержку режимов.
Тесты в реальной среде
Опциональное тестирование в реальной среде для общих встроенных провайдеров (fal, Google, MiniMax, OpenRouter):generate, так и объявленного edit,
когда провайдер включает режим редактирования. Текущее покрытие:
google:generateиeditfal: толькоgenerateminimax: толькоgenerateopenrouter:generateиeditcomfy: отдельное тестирование Comfy в реальной среде, не входящее в общую проверку провайдеров
Связанные материалы
- Фоновые задачи — отслеживание задач для отсоединённых запусков
music_generate - ComfyUI
- Справочник по конфигурации — конфигурация
musicGenerationModel - Google (Gemini)
- MiniMax
- Модели — настройка моделей и переключение на резервную модель
- Обзор инструментов