Tools

音楽生成

music_generate ツールにより、エージェントは構成済みプロバイダー(現在は Google、MiniMax、ワークフロー構成の ComfyUI)を使って、共有の音楽生成機能を通じて音楽やオーディオを作成できます。

セッションに裏付けられたエージェント実行では、OpenClaw は音楽生成をバックグラウンドタスクとして開始し、タスク台帳で追跡したうえで、トラックの準備ができたときにエージェントを再度起動します。これにより、エージェントはユーザーに通知し、完成したオーディオを添付できます。メッセージツールのみの可視配信を使用するグループ/チャンネルチャットでは、エージェントはメッセージツールを通じて結果を中継します。完了エージェントがプライベートな最終返信だけを書いた場合、OpenClaw は生成されたメディアを直接チャンネル送信するフォールバックを行います。完了時の起動では、これらの経路では通常の最終返信がプライベートであることをエージェントに明示的に警告します。

クイックスタート

共有プロバイダー利用

  • 認証を構成する

    少なくとも 1 つのプロバイダーに API キーを設定します。たとえば GEMINI_API_KEY または MINIMAX_API_KEY です。

  • 既定モデルを選択する(任意)

    {
      agents: {
        defaults: {
          musicGenerationModel: {
            primary: "google/lyria-3-clip-preview",
          },
        },
      },
    }
    
  • エージェントに依頼する

    「ネオンの街を夜にドライブする、明るいシンセポップのトラックを生成して。」

    エージェントは music_generate を自動的に呼び出します。ツールの許可リスト登録は不要です。

  • セッションに裏付けられたエージェント実行がない直接同期コンテキストでは、組み込みツールは引き続きインライン生成にフォールバックし、ツール結果で最終メディアパスを返します。

    ComfyUI ワークフロー

  • ワークフローを構成する

    ワークフロー JSON とプロンプト/出力ノードを使って plugins.entries.comfy.config.music を構成します。

  • クラウド認証(任意)

    Comfy Cloud の場合は、COMFY_API_KEY または COMFY_CLOUD_API_KEY を設定します。

  • ツールを呼び出す

    /tool music_generate prompt="Warm ambient synth loop with soft tape texture"
    
  • プロンプト例:

    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 枚の画像 ワークフロー定義の音楽またはオーディオ COMFY_API_KEY, COMFY_CLOUD_API_KEY
    Google 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、契約テスト、共有ライブスイープで使用される明示的なモード契約:

    プロバイダー generate edit 編集上限 共有ライブレーン
    ComfyUI 1 枚の画像 共有スイープには含まれません。extensions/comfy/comfy.live.test.ts でカバーされます
    Google 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
    

    ツールパラメーター

    promptstringrequired

    音楽生成プロンプト。action: "generate" では必須です。

    action"generate" | "status" | "list"

    "status" は現在のセッションタスクを返し、"list" はプロバイダーを確認します。

    modelstring

    プロバイダー/モデルの上書き(例: google/lyria-3-pro-preview, comfy/workflow)。

    lyricsstring

    プロバイダーが明示的な歌詞入力に対応している場合の任意の歌詞。

    instrumentalboolean

    プロバイダーが対応している場合、インストゥルメンタルのみの出力を要求します。

    imagestring

    単一の参照画像パスまたは URL。

    imagesstring[]

    複数の参照画像(対応プロバイダーでは最大 10 枚)。

    durationSecondsnumber

    プロバイダーが長さのヒントに対応している場合の目標時間(秒)。

    format"mp3" | "wav"

    プロバイダーが対応している場合の出力形式ヒント。

    filenamestring
    timeoutMsnumber

    非同期動作

    セッションに裏付けられた音楽生成はバックグラウンドタスクとして実行されます:

    • バックグラウンドタスク: music_generate はバックグラウンドタスクを作成し、開始済み/タスクの応答をただちに返し、後続のエージェントメッセージで完成したトラックを後から投稿します。
    • 重複防止: タスクが queued または running の間、同じセッション内で後続の music_generate 呼び出しがあると、別の生成を開始せずにタスクステータスを返します。明示的に確認するには action: "status" を使用します。
    • ステータス確認: openclaw tasks list または openclaw tasks show <taskId> は、キュー済み、実行中、終端ステータスを確認します。
    • 完了時の起動: OpenClaw は内部の完了イベントを同じセッションに注入し、モデルがユーザー向けのフォローアップを自分で書けるようにします。
    • プロンプトヒント: 同じセッションで後続のユーザー/手動ターンが発生した場合、音楽タスクがすでに進行中であれば小さなランタイムヒントを受け取り、モデルが不用意に再度 music_generate を呼び出さないようにします。
    • セッションなしのフォールバック: 実際のエージェントセッションがない直接/ローカルコンテキストではインラインで実行され、同じターンで最終オーディオ結果を返します。

    タスクライフサイクル

    状態 意味
    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 は次の順序でプロバイダーを試します:

    1. ツール呼び出しの model パラメーター(エージェントが指定した場合)。
    2. 構成の musicGenerationModel.primary
    3. musicGenerationModel.fallbacks を順番に。
    4. 認証に裏付けられたプロバイダー既定値のみを使った自動検出:
      • 現在の既定プロバイダーを最初に使用。
      • 残りの登録済み音楽生成プロバイダーをプロバイダー ID 順に使用。

    プロバイダーが失敗した場合は、次の候補が自動的に試されます。すべて失敗した場合、エラーには各試行の詳細が含まれます。

    明示的な modelprimaryfallbacks エントリのみを使用するには、agents.defaults.mediaGenerationAutoProviderFallback: false を設定します。

    プロバイダーノート

    ComfyUI

    ワークフロードリブンであり、プロンプト/出力フィールド用に構成されたグラフとノードマッピングに依存します。バンドルされた comfy Plugin は、音楽生成プロバイダーレジストリを通じて共有 music_generate ツールに接続します。

    Google (Lyria 3)

    Lyria 3 バッチ生成を使用します。現在のバンドルフローは、プロンプト、任意の歌詞テキスト、任意の参照画像に対応しています。

    MiniMax

    バッチ music_generation エンドポイントを使用します。minimax API キー認証または minimax-portal OAuth のいずれかを通じて、プロンプト、任意の歌詞、インストゥルメンタルモード、長さの誘導、mp3 出力に対応しています。

    適切な経路の選択

    • 共有プロバイダー利用 は、モデル選択、プロバイダーフェイルオーバー、組み込みの非同期タスク/ステータスフローが必要な場合に使います。
    • Plugin パス (ComfyUI) は、カスタムワークフローグラフ、または共有のバンドル音楽機能に含まれないプロバイダーが必要な場合に使います。

    ComfyUI 固有の動作をデバッグしている場合は、ComfyUI を参照してください。共有プロバイダーの動作をデバッグしている場合は、Google (Gemini) または MiniMax から始めてください。

    プロバイダー機能モード

    共有音楽生成契約は明示的なモード宣言に対応しています:

    • プロンプトのみの生成には generate
    • リクエストに 1 つ以上の参照画像が含まれる場合は edit

    新しいプロバイダー実装では、明示的なモードブロックを優先してください:

    capabilities: {
      generate: {
        maxTracks: 1,
        supportsLyrics: true,
        supportsFormat: true,
      },
      edit: {
        enabled: true,
        maxTracks: 1,
        maxInputImages: 1,
        supportsFormat: true,
      },
    }
    

    maxInputImagessupportsLyricssupportsFormat などのレガシーなフラットフィールドだけでは、編集対応を示すには不十分です。ライブテスト、契約テスト、共有 music_generate ツールがモード対応を決定論的に検証できるよう、プロバイダーは generateedit を明示的に宣言する必要があります。

    ライブテスト

    共有バンドルプロバイダー向けのオプトインライブカバレッジ:

    OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
    

    リポジトリラッパー:

    pnpm test:live:media music
    

    このライブファイルは、不足しているプロバイダー環境変数を ~/.profile から読み込み、既定では保存済み認証プロファイルよりライブ/env API キーを優先し、プロバイダーが編集モードを有効化している場合は generate と宣言済み edit の両方のカバレッジを実行します。現在のカバレッジ:

    • google: generateedit
    • minimax: generate のみ
    • comfy: 共有プロバイダースイープではなく、独立した Comfy のライブカバレッジ

    バンドルされた ComfyUI 音楽パス向けのオプトインのライブカバレッジ:

    OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
    

    Comfy ライブファイルは、それらのセクションが構成されている場合、comfy の画像および動画ワークフローも対象にします。

    関連