Tools
Генерація музики
Інструмент music_generate дає агенту змогу створювати музику або аудіо через
спільну можливість генерації музики з налаштованими провайдерами — ComfyUI,
fal, Google, MiniMax і OpenRouter наразі.
Для запусків агента з підтримкою сесії OpenClaw запускає генерацію музики як
фонове завдання, відстежує його в реєстрі завдань, а потім знову будить агента,
коли трек готовий, щоб агент міг повідомити користувача й прикріпити
готове аудіо. Агент завершення дотримується звичайного для сесії режиму
видимої відповіді: автоматична доставка фінальної відповіді, коли це
налаштовано, або message(action="send"), коли сесія вимагає інструмент
повідомлень. Якщо сесія запитувача неактивна або її активне пробудження
зазнає невдачі, а частина згенерованого аудіо все ще відсутня у відповіді
завершення, OpenClaw надсилає ідемпотентний прямий резервний варіант лише
з відсутнім аудіо.
Швидкий старт
Shared provider-backed
Configure auth
Задайте API-ключ принаймні для одного провайдера, наприклад
GEMINI_API_KEY або MINIMAX_API_KEY.
Pick a default model (optional)
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Ask the agent
"Згенеруй бадьорий синтпоп-трек про нічну поїздку крізь неонове місто."
Агент автоматично викликає music_generate. Додавати інструмент
до списку дозволених не потрібно.
Для прямих синхронних контекстів без запуску агента з підтримкою сесії вбудований інструмент усе одно повертається до вбудованої генерації та повертає фінальний шлях до медіа в результаті інструмента.
ComfyUI workflow
Configure the workflow
Налаштуйте plugins.entries.comfy.config.music за допомогою workflow
JSON і вузлів prompt/output.
Cloud auth (optional)
Для Comfy Cloud задайте COMFY_API_KEY або COMFY_CLOUD_API_KEY.
Call the tool
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"Приклади prompt:
Generate a cinematic piano track with soft strings and no vocals.Generate an energetic chiptune loop about launching a rocket at sunrise.Підтримувані провайдери
| Провайдер | Модель за замовчуванням | Вхідні референси | Підтримувані елементи керування | Автентифікація |
|---|---|---|---|---|
| ComfyUI | workflow |
До 1 зображення | Музика або аудіо, визначені workflow | 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-перевірка:
| Провайдер | generate |
edit |
Ліміт редагування | Спільні live-доріжки |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 зображення | Не входить до спільної перевірки; покрито extensions/comfy/comfy.live.test.ts |
| fal | ✓ | — | Немає | generate |
| ✓ | ✓ | 10 зображень | generate, edit |
|
| MiniMax | ✓ | — | Немає | generate |
| OpenRouter | ✓ | ✓ | 1 зображення | generate, edit |
Використовуйте action: "list", щоб під час виконання переглянути доступні
спільні провайдери та моделі:
/tool music_generate action=listВикористовуйте action: "status", щоб переглянути активне завдання генерації
музики з підтримкою сесії:
/tool music_generate action=statusПриклад прямої генерації:
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=trueПараметри інструмента
promptstringrequiredPrompt для генерації музики. Обов’язковий для action: "generate".
action"generate" | "status" | "list"default: generate"status" повертає поточне завдання сесії; "list" перевіряє провайдерів.
modelstringПеревизначення провайдера/моделі (наприклад, google/lyria-3-pro-preview,
comfy/workflow).
lyricsstringНеобов’язковий текст пісні, коли провайдер підтримує явне введення lyrics.
instrumentalbooleanЗапитати лише інструментальний результат, коли провайдер це підтримує.
imagestringОдин шлях до референсного зображення або URL.
imagesstring[]Кілька референсних зображень (до 10 у провайдерів, що це підтримують).
durationSecondsnumberЦільова тривалість у секундах, коли провайдер підтримує підказки тривалості.
format"mp3" | "wav"Підказка щодо формату виводу, коли провайдер її підтримує.
filenamestringТайм-аути запитів до провайдера є лише операторською конфігурацією. OpenClaw
використовує agents.defaults.musicGenerationModel.timeoutMs, коли його
налаштовано, підвищує значення нижче 120000ms до 120000ms, а в іншому разі
за замовчуванням встановлює для запитів до провайдера 300000ms.
Асинхронна поведінка
Генерація музики з підтримкою сесії виконується як фонове завдання:
- Фонове завдання:
music_generateстворює фонове завдання, негайно повертає відповідь про запуск/завдання, а пізніше публікує готовий трек у наступному повідомленні агента. - Запобігання дублюванню: доки завдання має стан
queuedабоrunning, подальші викликиmusic_generateу тій самій сесії повертають статус завдання замість запуску ще однієї генерації. Використовуйтеaction: "status", щоб перевірити явно. - Перегляд статусу:
openclaw tasks listабоopenclaw tasks show <taskId>показує статус queued, running і термінальний статус. - Пробудження після завершення: OpenClaw вводить внутрішню подію завершення назад у ту саму сесію, щоб модель сама могла написати наступну відповідь для користувача.
- Підказка prompt: подальші користувацькі/ручні ходи в тій самій сесії
отримують невелику runtime-підказку, коли завдання генерації музики вже
виконується, щоб модель не викликала
music_generateнаосліп знову. - Резервний варіант без сесії: прямі/локальні контексти без реальної сесії агента виконуються вбудовано й повертають фінальний аудіорезультат у тому самому ході.
Життєвий цикл завдання
| Стан | Значення |
|---|---|
queued |
Завдання створено, очікує, доки провайдер його прийме. |
running |
Провайдер обробляє (зазвичай від 30 секунд до 3 хвилин залежно від провайдера й тривалості). |
succeeded |
Трек готовий; агент прокидається й публікує його в розмові. |
failed |
Помилка або тайм-аут провайдера; агент прокидається з деталями помилки. |
Перевірка статусу з CLI:
openclaw tasks listopenclaw tasks show <taskId>openclaw tasks cancel <taskId>Конфігурація
Вибір моделі
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"], }, }, },}Порядок вибору провайдера
OpenClaw пробує провайдерів у такому порядку:
- Параметр
modelіз виклику інструмента (якщо агент його вказує). musicGenerationModel.primaryз конфігурації.musicGenerationModel.fallbacksза порядком.- Автовиявлення лише за замовчуваннями провайдера з налаштованою автентифікацією:
- спочатку поточний провайдер за замовчуванням;
- решта зареєстрованих провайдерів генерації музики в порядку provider-id.
Якщо провайдер зазнає невдачі, наступний кандидат пробується автоматично. Якщо не вдається жоден, помилка містить деталі кожної спроби.
Задайте agents.defaults.mediaGenerationAutoProviderFallback: false, щоб
використовувати лише явні записи model, primary і fallbacks.
Примітки щодо провайдерів
ComfyUI
Керується workflow і залежить від налаштованого графа та зіставлення вузлів
для полів prompt/output. Вбудований Plugin comfy підключається до
спільного інструмента music_generate через реєстр провайдерів
генерації музики.
fal
Використовує endpoints моделей 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)
Використовує пакетну генерацію Lyria 3. Поточний вбудований потік підтримує prompt, необов’язковий текст lyrics і необов’язкові референсні зображення.
MiniMax
Використовує пакетний endpoint music_generation. Підтримує prompt,
необов’язкові lyrics, інструментальний режим і mp3-вивід через
автентифікацію API-ключем minimax або OAuth minimax-portal.
OpenRouter
Використовує аудіовихід OpenRouter chat completions з увімкненим
streaming. Вбудований провайдер за замовчуванням використовує
google/lyria-3-pro-preview, а також надає
openrouter/google/lyria-3-clip-preview.
Вибір правильного шляху
- Спільний шлях із підтримкою провайдерів — коли потрібні вибір моделі, перемикання між провайдерами у разі збою та вбудований асинхронний потік завдання/статусу.
- Шлях Plugin (ComfyUI) — коли потрібен власний граф workflow або провайдер, який не входить до спільної вбудованої можливості генерації музики.
Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. ComfyUI. Якщо ви налагоджуєте спільну поведінку провайдера, почніть із fal, Google (Gemini), MiniMax або OpenRouter.
Режими можливостей провайдера
Спільний контракт генерації музики підтримує явні оголошення режимів:
generateдля генерації лише за промптом.edit, коли запит містить одне або більше еталонних зображень.
Нові реалізації провайдерів мають надавати перевагу явним блокам режимів:
capabilities: { generate: { maxTracks: 1, supportsLyrics: true, supportsFormat: true, }, edit: { enabled: true, maxTracks: 1, maxInputImages: 1, supportsFormat: true, },}Застарілих пласких полів, як-от maxInputImages, supportsLyrics і
supportsFormat, недостатньо, щоб оголосити підтримку редагування. Провайдери
мають явно оголошувати generate і edit, щоб live-тести, контрактні
тести та спільний інструмент music_generate могли детерміновано перевіряти
підтримку режимів.
Live-тести
Опціональне live-покриття для спільних вбудованих провайдерів:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.tsОбгортка репозиторію:
pnpm test:live:media musicЦей live-файл за замовчуванням використовує вже експортовані env vars провайдера
перед збереженими профілями автентифікації та запускає покриття для generate
і оголошеного edit, коли провайдер увімкнув режим редагування. Поточне покриття:
google:generateплюсeditfal: лишеgenerateminimax: лишеgenerateopenrouter:generateплюсeditcomfy: окреме live-покриття Comfy, не спільний обхід провайдерів
Опціональне live-покриття для вбудованого музичного шляху ComfyUI:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.tsLive-файл Comfy також покриває робочі процеси зображень і відео comfy, коли ці розділи налаштовані.
Пов’язане
- Фонові завдання — відстеження завдань для від’єднаних запусків
music_generate - ComfyUI
- Довідник конфігурації — конфігурація
musicGenerationModel - Google (Gemini)
- MiniMax
- Моделі — конфігурація моделей і перемикання після збою
- Огляд інструментів