Naar hoofdinhoud gaan
De tool music_generate laat de agent muziek of audio maken via de gedeelde mogelijkheid voor muziekgeneratie met geconfigureerde aanbieders: ComfyUI, fal, Google, MiniMax en OpenRouter op dit moment. Voor agentruns met sessieondersteuning start OpenClaw muziekgeneratie als een achtergrondtaak, volgt deze in het taaklogboek en wekt de agent daarna opnieuw wanneer de track klaar is, zodat de agent het de gebruiker kan vertellen en de voltooide audio kan bijvoegen. De voltooiingsagent volgt de normale zichtbare-antwoordmodus van de sessie: automatische aflevering van het eindantwoord wanneer dit is geconfigureerd, of message(action="send") wanneer de sessie de berichtentool vereist. Als de aanvragersessie inactief is of de actieve wake ervan mislukt, en er nog gegenereerde audio ontbreekt in het voltooiingsantwoord, verzendt OpenClaw een idempotente directe fallback met alleen de ontbrekende audio.
De ingebouwde gedeelde tool verschijnt alleen wanneer er minstens één aanbieder voor muziekgeneratie beschikbaar is. Als je music_generate niet ziet in de tools van je agent, configureer dan agents.defaults.musicGenerationModel of stel een API-sleutel voor een aanbieder in.

Snelstart

1

Authenticatie configureren

Stel een API-sleutel in voor minstens één aanbieder, bijvoorbeeld GEMINI_API_KEY of MINIMAX_API_KEY.
2

Een standaardmodel kiezen (optioneel)

{
  agents: {
    defaults: {
      musicGenerationModel: {
        primary: "google/lyria-3-clip-preview",
      },
    },
  },
}
3

De agent vragen

“Generate an upbeat synthpop track about a night drive through a neon city.”De agent roept music_generate automatisch aan. Geen allowlisting van tools nodig.
Voor directe synchrone contexten zonder agentrun met sessieondersteuning valt de ingebouwde tool nog steeds terug op inline generatie en retourneert het uiteindelijke mediapad in het toolresultaat.
Voorbeeldprompts:
Generate a cinematic piano track with soft strings and no vocals.
Generate an energetic chiptune loop about launching a rocket at sunrise.

Ondersteunde aanbieders

AanbiederStandaardmodelReferentie-invoerOndersteunde instellingenAuthenticatie
ComfyUIworkflowTot 1 afbeeldingDoor workflow gedefinieerde muziek of audioCOMFY_API_KEY, COMFY_CLOUD_API_KEY
falfal-ai/minimax-music/v2.6Geenlyrics, instrumental, durationSeconds, formatFAL_KEY of FAL_API_KEY
Googlelyria-3-clip-previewTot 10 afbeeldingenlyrics, instrumental, formatGEMINI_API_KEY, GOOGLE_API_KEY
MiniMaxmusic-2.6Geenlyrics, instrumental, format=mp3MINIMAX_API_KEY of MiniMax OAuth
OpenRoutergoogle/lyria-3-pro-previewTot 1 afbeeldinglyrics, instrumental, durationSeconds, formatOPENROUTER_API_KEY

Mogelijkhedenmatrix

Het expliciete moduscontract dat wordt gebruikt door music_generate, contracttests en de gedeelde live sweep:
AanbiedergenerateeditBewerkingslimietGedeelde live lanes
ComfyUI1 afbeeldingNiet in de gedeelde sweep; gedekt door extensions/comfy/comfy.live.test.ts
falGeengenerate
Google10 afbeeldingengenerate, edit
MiniMaxGeengenerate
OpenRouter1 afbeeldinggenerate, edit
Gebruik action: "list" om beschikbare gedeelde aanbieders en modellen tijdens runtime te inspecteren:
/tool music_generate action=list
Gebruik action: "status" om de actieve muziektask met sessieondersteuning te inspecteren:
/tool music_generate action=status
Voorbeeld van directe generatie:
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=true

Toolparameters

prompt
string
vereist
Prompt voor muziekgeneratie. Vereist voor action: "generate".
action
"generate" | "status" | "list"
standaard:"generate"
"status" retourneert de huidige sessietaak; "list" inspecteert aanbieders.
model
string
Overschrijving van aanbieder/model (bijv. google/lyria-3-pro-preview, comfy/workflow).
lyrics
string
Optionele songteksten wanneer de aanbieder expliciete invoer voor songteksten ondersteunt.
instrumental
boolean
Vraag om uitvoer met alleen instrumentale audio wanneer de aanbieder dit ondersteunt.
image
string
Pad of URL naar één referentieafbeelding.
images
string[]
Meerdere referentieafbeeldingen (tot 10 bij ondersteunende aanbieders).
durationSeconds
number
Doelduur in seconden wanneer de aanbieder duurhints ondersteunt.
format
"mp3" | "wav"
Hint voor uitvoerformaat wanneer de aanbieder dit ondersteunt.
filename
string
Hint voor uitvoerbestandsnaam.
Niet alle aanbieders ondersteunen alle parameters. OpenClaw valideert nog steeds harde limieten, zoals invoeraantallen, vóór indiening. Wanneer een aanbieder duur ondersteunt maar een korter maximum gebruikt dan de gevraagde waarde, beperkt OpenClaw dit tot de dichtstbijzijnde ondersteunde duur. Echt niet-ondersteunde optionele hints worden genegeerd met een waarschuwing wanneer de geselecteerde aanbieder of het geselecteerde model ze niet kan honoreren. Toolresultaten rapporteren toegepaste instellingen; details.normalization legt elke mapping van gevraagd naar toegepast vast.
Time-outs voor aanbiedersverzoeken zijn alleen operatorconfiguratie. OpenClaw gebruikt agents.defaults.musicGenerationModel.timeoutMs wanneer dit is geconfigureerd, verhoogt waarden onder 120000 ms naar 120000 ms en gebruikt anders standaard 300000 ms voor aanbiedersverzoeken.

Asynchroon gedrag

Muziekgeneratie met sessieondersteuning draait als een achtergrondtaak:
  • Achtergrondtaak: music_generate maakt een achtergrondtaak, retourneert meteen een gestart-/taakantwoord en plaatst de voltooide track later in een opvolgend agentbericht.
  • Dubbele aanvragen voorkomen: zolang een taak queued of running is, retourneren latere music_generate-aanroepen in dezelfde sessie de taakstatus in plaats van een nieuwe generatie te starten. Gebruik action: "status" om dit expliciet te controleren.
  • Status opzoeken: openclaw tasks list of openclaw tasks show <taskId> inspecteert de status queued, running en terminal.
  • Voltooiings-wake: OpenClaw injecteert een interne voltooiingsgebeurtenis terug in dezelfde sessie, zodat het model zelf de gebruikersgerichte opvolging kan schrijven.
  • Prompthint: latere gebruikers-/handmatige beurten in dezelfde sessie krijgen een kleine runtimehint wanneer er al een muziektask loopt, zodat het model niet blind opnieuw music_generate aanroept.
  • Fallback zonder sessie: directe/lokale contexten zonder echte agentsessie draaien inline en retourneren het uiteindelijke audioresultaat in dezelfde beurt.

Taaklevenscyclus

StatusBetekenis
queuedTaak gemaakt, wacht tot de aanbieder deze accepteert.
runningAanbieder verwerkt de taak (meestal 30 seconden tot 3 minuten, afhankelijk van aanbieder en duur).
succeededTrack gereed; de agent wordt gewekt en plaatst deze in het gesprek.
failedFout of time-out bij aanbieder; de agent wordt gewekt met foutdetails.
Controleer de status vanuit de CLI:
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>

Configuratie

Modelselectie

{
  agents: {
    defaults: {
      musicGenerationModel: {
        primary: "google/lyria-3-clip-preview",
        fallbacks: ["fal/fal-ai/minimax-music/v2.6", "minimax/music-2.6"],
      },
    },
  },
}

Selectievolgorde voor aanbieders

OpenClaw probeert aanbieders in deze volgorde:
  1. model-parameter uit de toolaanroep (als de agent er een opgeeft).
  2. musicGenerationModel.primary uit de configuratie.
  3. musicGenerationModel.fallbacks op volgorde.
  4. Automatische detectie met alleen standaardaanbieders op basis van authenticatie:
    • huidige standaardaanbieder eerst;
    • overige geregistreerde aanbieders voor muziekgeneratie op volgorde van aanbieder-id.
Als een aanbieder faalt, wordt de volgende kandidaat automatisch geprobeerd. Als alle pogingen falen, bevat de fout details van elke poging. Stel agents.defaults.mediaGenerationAutoProviderFallback: false in om alleen expliciete vermeldingen in model, primary en fallbacks te gebruiken.

Opmerkingen per aanbieder

Workflowgestuurd en afhankelijk van de geconfigureerde graph plus knooppuntmapping voor prompt-/uitvoervelden. De gebundelde comfy-Plugin sluit aan op de gedeelde tool music_generate via het aanbiedersregister voor muziekgeneratie.
Gebruikt fal-modeleindpunten via het gedeelde authenticatiepad voor aanbieders. De gebundelde aanbieder gebruikt standaard fal-ai/minimax-music/v2.6 en stelt ook fal-ai/ace-step/prompt-to-audio en fal-ai/stable-audio-25/text-to-audio beschikbaar voor prompt-naar-audioverzoeken.
Gebruikt Lyria 3-batchgeneratie. De huidige gebundelde flow ondersteunt prompt, optionele tekst voor songteksten en optionele referentieafbeeldingen.
Gebruikt het batch-eindpunt music_generation. Ondersteunt prompt, optionele songteksten, instrumentale modus en mp3-uitvoer via minimax-authenticatie met API-sleutel of minimax-portal OAuth.
Gebruikt audio-uitvoer van OpenRouter-chatvoltooiingen met streaming ingeschakeld. De gebundelde aanbieder gebruikt standaard google/lyria-3-pro-preview en stelt ook openrouter/google/lyria-3-clip-preview beschikbaar.

Het juiste pad kiezen

  • Gedeeld, met aanbiederondersteuning wanneer je modelselectie, failover tussen aanbieders en de ingebouwde asynchrone taak-/statusflow wilt.
  • Pluginpad (ComfyUI) wanneer je een aangepaste workflowgraph nodig hebt of een aanbieder die geen deel uitmaakt van de gedeelde gebundelde muziekmogelijkheid.
Als je ComfyUI-specifiek gedrag debugt, zie ComfyUI. Als je gedeeld aanbiedergedrag debugt, begin dan met fal, Google (Gemini), MiniMax of OpenRouter.

Mogelijkheidsmodi voor aanbieders

Het gedeelde contract voor muziekgeneratie ondersteunt expliciete modusdeclaraties:
  • generate voor generatie met alleen een prompt.
  • edit wanneer de aanvraag een of meer referentieafbeeldingen bevat.
Nieuwe aanbiederimplementaties moeten de voorkeur geven aan expliciete modusblokken:
capabilities: {
  generate: {
    maxTracks: 1,
    supportsLyrics: true,
    supportsFormat: true,
  },
  edit: {
    enabled: true,
    maxTracks: 1,
    maxInputImages: 1,
    supportsFormat: true,
  },
}
Verouderde platte velden zoals maxInputImages, supportsLyrics en supportsFormat zijn niet genoeg om bewerkingsondersteuning aan te geven. Aanbieders moeten generate en edit expliciet declareren, zodat livetests, contracttests en de gedeelde tool music_generate modusondersteuning deterministisch kunnen valideren.

Livetests

Opt-in livedekking voor de gedeelde gebundelde aanbieders:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
Repo-wrapper:
pnpm test:live:media music
Dit livebestand gebruikt standaard reeds geëxporteerde omgevingsvariabelen van aanbieders vóór opgeslagen authenticatieprofielen en voert zowel generate als gedeclareerde edit-dekking uit wanneer de aanbieder de bewerkingsmodus inschakelt. Dekking op dit moment:
  • google: generate plus edit
  • fal: alleen generate
  • minimax: alleen generate
  • openrouter: generate plus edit
  • comfy: afzonderlijke Comfy-livedekking, niet de gedeelde aanbiedersweep
Opt-in livedekking voor het gebundelde ComfyUI-muziekpad:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
Het Comfy-livebestand dekt ook comfy-workflows voor afbeeldingen en video wanneer die secties zijn geconfigureerd.

Gerelateerd