Tools
음악 생성
music_generate 도구를 사용하면 에이전트가 구성된 공급자와 함께
공유 음악 생성 기능을 통해 음악이나 오디오를 만들 수 있습니다. 현재
지원되는 공급자는 Google, MiniMax, 그리고 워크플로로 구성된 ComfyUI입니다.
세션 기반 에이전트 실행의 경우, OpenClaw는 음악 생성을 백그라운드 작업으로 시작하고, 작업 원장에 추적한 다음, 트랙이 준비되면 에이전트를 다시 깨워 에이전트가 사용자에게 알리고 완성된 오디오를 첨부할 수 있게 합니다. 메시지 도구 전용 가시 전달을 사용하는 그룹/채널 채팅에서는 에이전트가 메시지 도구를 통해 결과를 중계합니다. 완료 에이전트가 비공개 최종 응답만 작성하면 OpenClaw는 생성된 미디어를 포함한 직접 채널 전송으로 대체합니다. 완료 웨이크는 해당 경로에서 일반 최종 응답이 비공개임을 에이전트에게 명시적으로 경고합니다.
빠른 시작
공유 공급자 기반
인증 구성
하나 이상의 공급자에 대해 API 키를 설정합니다. 예:
GEMINI_API_KEY 또는 MINIMAX_API_KEY.
기본 모델 선택(선택 사항)
{
agents: {
defaults: {
musicGenerationModel: {
primary: "google/lyria-3-clip-preview",
},
},
},
}
에이전트에게 요청
"Generate an upbeat synthpop track about a night drive through a neon city."
에이전트가 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. - 인증 기반 공급자 기본값만 사용한 자동 감지:
- 현재 기본 공급자를 먼저 사용합니다.
- 나머지 등록된 음악 생성 공급자를 provider-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: 프롬프트만 사용한 생성.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에서 로드하고,
기본적으로 저장된 인증 프로필보다 라이브/환경 API 키를 우선하며, 공급자가
편집 모드를 활성화한 경우 generate와 선언된 edit 커버리지를 모두
실행합니다. 현재 커버리지:
google:generate와editminimax:generate만comfy: 공유 provider 스윕이 아닌 별도의 Comfy 라이브 범위
번들 ComfyUI 음악 경로에 대한 옵트인 라이브 범위:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
Comfy 라이브 파일은 해당 섹션이 구성된 경우 comfy 이미지 및 비디오 워크플로도 다룹니다.