Skip to content

音乐生成

music_generate 工具让 Agent 通过配置好的 Provider 生成音乐或音频,支持 Google、MiniMax 和 ComfyUI 三种后端。

对于共享 Provider 的 Agent 会话,OpenClaw 将音乐生成作为后台任务异步执行,完成后主动唤醒 Agent,在原频道发送生成的音频文件。

只有在至少一个音乐生成 Provider 可用时,music_generate 才会出现在 Agent 工具列表中。如果看不到该工具,请配置 agents.defaults.musicGenerationModel 或设置 Provider API Key。

快速开始

通过共享 Provider 生成

  1. 为至少一个 Provider 设置 API Key(如 GEMINI_API_KEYMINIMAX_API_KEY
  2. 可选:设置首选模型:
json5
{
  agents: {
    defaults: {
      musicGenerationModel: {
        primary: "google/lyria-3-clip-preview",
      },
    },
  },
}
  1. 告诉 Agent:"生成一首赛博朋克风格的夜间驾车电子乐。"

Agent 自动调用 music_generate,无需手动开启工具权限。

示例 Prompt:

text
Generate a cinematic piano track with soft strings and no vocals.
text
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=true

通过 ComfyUI workflow 生成

  1. models.providers.comfy.music 中配置 workflow JSON 和节点
  2. 如使用 Comfy Cloud,设置 COMFY_API_KEYCOMFY_CLOUD_API_KEY
  3. 直接让 Agent 生成音乐
text
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"

内置 Provider 支持

Provider默认模型参考输入支持参数API Key
ComfyUIworkflow最多 1 张图片Workflow 定义COMFY_API_KEYCOMFY_CLOUD_API_KEY
Googlelyria-3-clip-preview最多 10 张图片lyricsinstrumentalformatGEMINI_API_KEYGOOGLE_API_KEY
MiniMaxmusic-2.5+lyricsinstrumentaldurationSecondsformat=mp3MINIMAX_API_KEY

运行时查看可用 Provider:

text
/tool music_generate action=list

查看当前后台音乐任务状态:

text
/tool music_generate action=status

工具参数

参数类型说明
promptstring音乐生成提示词(action: "generate" 时必填)
actionstring"generate"(默认)、"status""list"
modelstring覆盖 Provider/模型,如 google/lyria-3-pro-preview
lyricsstring歌词文本(Provider 支持时可选)
instrumentalboolean请求纯器乐输出
imagestring参考图路径或 URL(单张)
imagesstring[]参考图(多张,最多 10 张)
durationSecondsnumber目标时长(Provider 支持时)
formatstring输出格式提示(mp3wav
filenamestring输出文件名提示

不支持的参数会被忽略并在结果中告警。

异步任务机制

  • Session-backedmusic_generate 创建后台任务,立即返回已启动状态,完成后在原频道发送音频
  • 防重复:后台任务运行期间,再次调用 music_generate 返回任务状态而非启动新任务
  • 状态查询action: "status" 查看当前会话的后台音乐任务
  • 任务追踪openclaw tasks listopenclaw tasks show <taskId>
  • 无 Session 回退:非 Agent 直接调用时同步生成并返回结果

配置

json5
{
  agents: {
    defaults: {
      musicGenerationModel: {
        primary: "google/lyria-3-clip-preview",
        fallbacks: ["minimax/music-2.5+"],
      },
    },
  },
}

延伸阅读