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 |
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 でカバーされます |
| ✓ | ✓ | 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"プロバイダーが対応している場合の出力形式ヒント。
filenamestringtimeoutMsnumber非同期動作
セッションに裏付けられた音楽生成はバックグラウンドタスクとして実行されます:
- バックグラウンドタスク:
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 は次の順序でプロバイダーを試します:
- ツール呼び出しの
modelパラメーター(エージェントが指定した場合)。 - 構成の
musicGenerationModel.primary。 musicGenerationModel.fallbacksを順番に。- 認証に裏付けられたプロバイダー既定値のみを使った自動検出:
- 現在の既定プロバイダーを最初に使用。
- 残りの登録済み音楽生成プロバイダーをプロバイダー ID 順に使用。
プロバイダーが失敗した場合は、次の候補が自動的に試されます。すべて失敗した場合、エラーには各試行の詳細が含まれます。
明示的な model、primary、fallbacks エントリのみを使用するには、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,
},
}
maxInputImages、supportsLyrics、supportsFormat などのレガシーなフラットフィールドだけでは、編集対応を示すには不十分です。ライブテスト、契約テスト、共有 music_generate ツールがモード対応を決定論的に検証できるよう、プロバイダーは generate と edit を明示的に宣言する必要があります。
ライブテスト
共有バンドルプロバイダー向けのオプトインライブカバレッジ:
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:generateとeditminimax:generateのみcomfy: 共有プロバイダースイープではなく、独立した 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
- モデル — モデル設定とフェイルオーバー
- ツール概要