Tools
Генерація музики
Інструмент music_generate дає агенту змогу створювати музику або аудіо через
спільну можливість генерації музики з налаштованими провайдерами — Google,
MiniMax і налаштованим через workflow ComfyUI на сьогодні.
Для запусків агента з підтримкою сесії OpenClaw запускає генерацію музики як фонове завдання, відстежує його в реєстрі завдань, а потім знову пробуджує агента, коли трек готовий, щоб агент міг повідомити користувача й прикріпити готове аудіо. У групових чатах або каналах, які використовують видиму доставку лише через інструмент повідомлень, агент передає результат через інструмент повідомлень. Якщо агент завершення пише лише приватну фінальну відповідь, 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
"Згенеруй бадьорий synthpop-трек про нічну поїздку крізь неонове місто."
Агент автоматично викликає 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"
Приклади prompts:
Generate a cinematic piano track with soft strings and no vocals.
Generate an energetic chiptune loop about launching a rocket at sunrise.
Підтримувані провайдери
| Провайдер | Типова модель | Reference inputs | Підтримувані елементи керування | Auth |
|---|---|---|---|---|
| ComfyUI | workflow |
До 1 зображення | Визначена workflow музика або аудіо | COMFY_API_KEY, COMFY_CLOUD_API_KEY |
lyria-3-clip-preview |
До 10 зображень | lyrics, instrumental, format |
GEMINI_API_KEY, GOOGLE_API_KEY |
|
| MiniMax | music-2.6 |
Немає | lyrics, instrumental, durationSeconds, format=mp3 |
MINIMAX_API_KEY або MiniMax OAuth |
Матриця можливостей
Явний контракт режимів, який використовують music_generate, контрактні тести та
спільний live sweep:
| Провайдер | generate |
edit |
Ліміт редагування | Спільні live lanes |
|---|---|---|---|---|
| ComfyUI | ✓ | ✓ | 1 зображення | Не входить до спільного sweep; покрито extensions/comfy/comfy.live.test.ts |
| ✓ | ✓ | 10 зображень | generate, edit |
|
| MiniMax | ✓ | — | Немає | generate |
Використовуйте 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""status" повертає поточне завдання сесії; "list" перевіряє провайдерів.
modelstringПеревизначення провайдера/моделі (наприклад google/lyria-3-pro-preview,
comfy/workflow).
lyricsstringНеобов'язковий текст пісні, коли провайдер підтримує явне введення lyrics.
instrumentalbooleanЗапит на instrumental-only результат, коли провайдер це підтримує.
imagestringШлях або URL до одного reference image.
imagesstring[]Кілька reference images (до 10 у провайдерів, які це підтримують).
durationSecondsnumberЦільова тривалість у секундах, коли провайдер підтримує підказки тривалості.
format"mp3" | "wav"Підказка щодо формату виводу, коли провайдер це підтримує.
filenamestringtimeoutMsnumberАсинхронна поведінка
Генерація музики з підтримкою сесії виконується як фонове завдання:
- Фонове завдання:
music_generateстворює фонове завдання, одразу повертає відповідь про запуск/завдання, а пізніше публікує готовий трек у подальшому повідомленні агента. - Запобігання дублюванню: доки завдання має стан
queuedабоrunning, наступні викликиmusic_generateу тій самій сесії повертають статус завдання замість запуску ще однієї генерації. Використовуйтеaction: "status"для явної перевірки. - Перегляд статусу:
openclaw tasks listабоopenclaw tasks show <taskId>перевіряє статуси queued, running і terminal. - Пробудження після завершення: OpenClaw вставляє внутрішню подію завершення назад у ту саму сесію, щоб модель могла сама написати follow-up для користувача.
- Підказка prompt: пізніші користувацькі/ручні ходи в тій самій сесії отримують невелику
runtime-підказку, коли музичне завдання вже виконується, щоб модель
не викликала
music_generateзнову без потреби. - Fallback без сесії: прямі/локальні контексти без реальної сесії агента виконуються inline і повертають кінцевий аудіорезультат у тому самому ході.
Життєвий цикл завдання
| Стан | Значення |
|---|---|
queued |
Завдання створено, очікує прийняття провайдером. |
running |
Провайдер обробляє запит (зазвичай від 30 секунд до 3 хвилин залежно від провайдера та тривалості). |
succeeded |
Трек готовий; агент прокидається й публікує його в розмові. |
failed |
Помилка провайдера або тайм-аут; агент прокидається з подробицями помилки. |
Перевірте статус із CLI:
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
Конфігурація
Вибір моделі
{
agents: {
defaults: {
musicGenerationModel: {
primary: "google/lyria-3-clip-preview",
fallbacks: ["minimax/music-2.6"],
},
},
},
}
Порядок вибору провайдера
OpenClaw пробує провайдерів у такому порядку:
- Параметр
modelіз виклику інструмента (якщо агент його вказує). musicGenerationModel.primaryз конфігурації.musicGenerationModel.fallbacksпо порядку.- Автовизначення лише за стандартними провайдерами, підкріпленими автентифікацією:
- спочатку поточний стандартний провайдер;
- решта зареєстрованих провайдерів генерації музики за порядком ідентифікаторів провайдерів.
Якщо провайдер не спрацьовує, наступний кандидат пробується автоматично. Якщо всі спроби невдалі, помилка містить подробиці кожної спроби.
Установіть agents.defaults.mediaGenerationAutoProviderFallback: false, щоб використовувати лише
явні записи model, primary і fallbacks.
Примітки щодо провайдерів
ComfyUI
Керується робочим процесом і залежить від налаштованого графа та зіставлення вузлів
для полів запиту/виводу. Вбудований plugin comfy підключається до
спільного інструмента music_generate через реєстр провайдерів
генерації музики.
Google (Lyria 3)
Використовує пакетну генерацію Lyria 3. Поточний вбудований потік підтримує prompt, необов’язковий текст лірики та необов’язкові еталонні зображення.
MiniMax
Використовує пакетний endpoint music_generation. Підтримує prompt, необов’язкову
лірику, інструментальний режим, керування тривалістю та виведення mp3 через
автентифікацію API-ключем minimax або OAuth minimax-portal.
Вибір правильного шляху
- Спільний шлях на базі провайдерів, коли потрібні вибір моделі, резервне перемикання провайдера та вбудований асинхронний потік завдань/статусу.
- Шлях Plugin (ComfyUI), коли потрібен власний граф робочого процесу або провайдер, що не входить до спільної вбудованої можливості для музики.
Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. ComfyUI. Якщо ви налагоджуєте спільну поведінку провайдера, почніть із Google (Gemini) або MiniMax.
Режими можливостей провайдера
Спільний контракт генерації музики підтримує явні оголошення режимів:
generateдля генерації лише за prompt.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-змінні провайдера з ~/.profile, за замовчуванням надає перевагу
live/env API-ключам перед збереженими профілями автентифікації та запускає покриття як
generate, так і оголошеного edit, коли провайдер вмикає режим редагування.
Поточне покриття:
google:generateплюсeditminimax: лишеgeneratecomfy: окреме живе покриття Comfy, не спільна перевірка провайдера
Опційне живе покриття для вбудованого музичного шляху ComfyUI:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
Файл живих тестів Comfy також охоплює робочі процеси зображень і відео comfy, коли ці розділи налаштовано.
Пов’язане
- Фонові завдання — відстеження завдань для відокремлених запусків
music_generate - ComfyUI
- Довідник конфігурації — конфігурація
musicGenerationModel - Google (Gemini)
- MiniMax
- Моделі — конфігурація моделей і відновлення після збоїв
- Огляд інструментів