Continuity
场记 / Continuity
DeepSeek Harness 플러그인으로, 에이전트에게 로컬 이미지 / 음성 / 음악 / SFX 생성을 제공하고 만든 것을 기억합니다 — 같은 캐릭터는 모든 호출에서 같은 캐릭터로 유지되며, 실패한 생성이 성공으로 통과되는 일은 절대 없습니다.
로컬에서 실행됩니다. 모델은 요청별로 지연 로드되고 유휴 시 해제되므로, 사용하지 않을 때는 GPU가 전혀 건드려지지 않습니다 — 상주 메모리 0.21GiB, 측정 기준. 같은 카드로 게임을 할 수 있습니다.
场记는 영화 촬영 현장의 연속성 감독입니다. 그들의 임무는 정확히 두 가지입니다: 테이크 사이에 의상, 헤어, 소품이 일치하는지 확인하고, 필름에 편집되기 전에 세트에서 실수를 잡는 것입니다. 이것이 바로 이 플러그인의 임무입니다.
설치
uvx --from continuity-mcp continuity-setup # preflight → build engines → fetch weights → start
dsh plugin --profile <your-profile> add dsh-plugin-continuitycontinuity-setup은 아무것도 다운로드하기 전에 머신을 확인하고, 발견한 내용에 맞게 설치 규모를
조정합니다. 먼저 continuity-setup --check를 실행하여 무엇을 할지 확인하세요 — 하드웨어를 읽고
아무것도 변경하지 않습니다:
体检结果:
GPU AMD Radeon RX 7800 XT (RADV NAVI32) (16.0 GiB, 此刻可用 15.8 GiB, DISCRETE_GPU, vulkan device 1)
未选 AMD Radeon RX 7900 XTX (RADV NAVI31) (24.0 GiB, 此刻可用 1.4 GiB)
跳过 llvmpipe —— 软件渲染, 不是真显卡
内存 30.9 GiB
磁盘 3118.4 GiB 可用 / 需要 30 GiB
生图 启用
抠图默认档 best
参考音上限 30s (每秒约 0.19 GiB 显存)여기에는 순진한 버전이 틀렸기 때문에 존재하는 두 가지 세부 사항이 있습니다:
llvmpipe를 건너뜁니다. 소프트웨어 래스터라이저는 30.9GiB의 "VRAM"을 광고합니다(이는 시스템 RAM입니다) 그리고 "가장 큰 카드 고르기" 경쟁에서 이길 것입니다. 그러면 모든 것이 CPU에서 실행됩니다 — 작동하고, 완전히 정상적으로 보이며, 사용할 수 없을 정도로 느립니다.무료 VRAM으로 선택하고, 총 VRAM으로 게이트합니다. 위 머신에서 24GiB 카드는 다른 프로세스가 보유하고 있기 때문에 실제로 1.4GiB만 비어 있습니다. 크기로 선택하면 그 카드가 선택되고 OOM이 발생합니다. 그러나 "이 카드가 충분히 좋은가"는 하드웨어 질문이므로 총 VRAM을 사용합니다 — 그렇지 않으면 16GiB 카드가 게임이 열려 있다는 이유로 거부될 것입니다.
Related MCP server: Voice-AGI MCP Server
최소 요구 사항
최소 | 참고 사항 | |
GPU | 8GiB VRAM | 최고 6.80GiB(측정). 요청은 직렬화되므로 최고는 모델 하나의 합이 아니라 하나입니다. |
GPU API | Vulkan 1.2+ | CUDA 없음, ROCm 없음. 커널은 런타임에 컴파일되는 SPIR-V입니다. |
디스크 | 설치 중 30GiB, 설치 후 19.5GiB | 17.4 가중치 + 2.1 런타임 이미지 + 8.5 빌드 레이어(재확보 가능). |
호스트 RAM | 16GiB(8GiB 작업 가능 — 아래 참조) | 유휴가 아니라 일시적 최고치에 의해 결정됩니다. |
CPU | 모든 x86-64 | 배경 제거는 CPU에서 실행됩니다. |
오디오 전용 설치(아래 참조)는 설치 중 20GiB, 설치 후 9.5GiB가 필요합니다.
이 페이지의 모든 VRAM/RAM 수치는 GiB(2³⁰바이트)이며, rocm-smi와
vulkaninfo가 보고하는 값입니다. 이 README의 이전 버전은 GB로 표시했습니다. 그것은 잘못되었고
헤드룸이 실제보다 더 빡빡해 보이게 만들었습니다.
CUDA 대신 Vulkan을 사용하는 것은 선호의 문제가 아닙니다 — 이것이 실행되는 이유입니다. ROCm은 이 GPU 클래스에서 VAE 디코드를 잘못 계산합니다(ROCm#6633): 동일한 입력의 5번의 디코드가 서로 상관관계가 없는 5개의 결과를 반환했습니다. Vulkan/RADV는 아키텍처별 커널 테이블을 조회하는 대신 런타임에 SPIR-V를 컴파일하며, 여기서 정확하고 빠릅니다. 부작용은 세 공급업체 모두에서 이식 가능하다는 것입니다.
GPU 공급업체
컨테이너가 GPU를 얻는 방법 | 상태 | |
AMD |
| 테스트됨 (RX 7800 XT, RX 7900 XTX) |
Intel |
| 테스트되지 않음 |
NVIDIA |
| 테스트되지 않음 |
저는 AMD 카드만 있으므로 그 이상을 주장하지 않겠습니다. 코드에는 AMD 특정 항목이 없습니다 —
CUDA, ROCm, HIP, /dev/kfd, gfx 타겟이 없습니다 — 그리고 ggml의 Vulkan
백엔드는 NVIDIA에서 널리 실행됩니다. 그러나 "널리 실행"은 "제가 확인했다"는 아닙니다.
NVIDIA 경로는 단순히 다른 카드가 아니라 진정으로 다른 배선입니다: NVIDIA의 Vulkan
ICD는 호스트 드라이버에 있으며 nvidia-container-toolkit에 의해 주입되어야 하며,
NVIDIA_DRIVER_CAPABILITIES에 graphics가 포함되어야 합니다 — 기본 compute,utility는
작동하는 CUDA와 Vulkan의 빈 장치 목록을 제공합니다. continuity-setup은 NVIDIA를 감지하고,
올바른 compose 오버레이를 사용하며, 경로가 검증되지 않았음을 알려줍니다. 어느 쪽이든 보고는 환영합니다.
호스트 RAM 상세
유휴는 무시할 수 있습니다. 피크가 머신의 크기를 결정합니다.
작업 | 피크 RSS |
유휴 | 0.52GiB |
음악 | 0.50GiB |
음성 | 1.63GiB |
이미지 (1024²) | 4.94GiB |
| 7.74GiB |
| 1.33GiB |
배경 제거가 최고점이며, 그 비용은 입력 크기와 무관합니다 — 256 / 512 / 1024px 모두 ~6.8GiB에서 피크를 찍습니다. BiRefNet이 고정 내부 해상도에서 실행되기 때문입니다.
16GiB에서는 모든 것이 작동합니다. 12GiB 미만에서는 continuity-setup이 기본값을
quality="fast"(u2netp)로 설정합니다: 피크는 1.33GiB로 떨어지고 7.2초 대신 0.6초에 실행됩니다.
일반적인 게임 스프라이트에서는 두 가지를 눈으로 구분하기 어렵습니다 — 마젠타 배경 위에서 가장자리를 확대하여 나란히 확인했습니다. best는 공간이 있는 곳에서 기본값으로 유지됩니다. 모델은 미세한 가장자리(머리카락, 반투명 프린지)에서 원칙적으로 다르기 때문입니다. 그러나 fast를 저하된 대체가 아닌 정당한 선택으로 취급하십시오.
VRAM에 맞게 조정되는 것과 조정할 수 없는 것
세 가지가 카드에 따라 확장됩니다. 세 가지 임계값은 모두 추측이 아닌 측정된 것입니다:
작은 카드 | 큰 카드 | 이유 | |
어느 절반이 설치되는지 | 오디오만 (<8GiB) | 이미지 + 오디오 | 이미지 생성은 6.80GiB에서 피크를 찍으며 줄일 방법이 없습니다 — 아래 참조 |
이미지 전에 오디오 언로드 | 예 (<12GiB) | 아니요 | 오디오 모델은 상주합니다. 이미지가 그 위에 있으면 6.80 대신 7.84GiB에서 피크를 찍습니다. |
참조 오디오 제한 | 15초 (<12GiB) | 30초 | 참조 오디오는 초당 ~0.19GiB의 비용이 듭니다. |
오디오 전용 계층은 위로가 아니라 실제 제품입니다: 캐스팅 음성, 대화, 음악, SFX 및 컷아웃이 모두 작동하며 4GiB에 편안하게 들어갑니다.
조정되지 않는 것: 이미지 모델. 양자화해도 VRAM이 전혀 움직이지 않습니다 — Q4_0(2.29GiB 가중치)은 6.60GiB에서 피크, Q8_0(4.01GiB)은 6.59GiB에서 피크, 동일합니다. 해상도를 낮춰도 도움이 되지 않습니다(512 / 768 / 1024 모두 동일하게 피크, 시간만 변경). 병목은 8GiB 비양자화 4B 텍스트 인코더이며, 확산 모델이 아닙니다. 따라서 "중간" 이미지 계층을 제공할 수 없으며, 설치 여부만 있습니다. (Q4_0은 어쨌든 제공됩니다 — 동일한 VRAM, 디스크 1.7GiB 절약.)
이미지에 대해 8GiB 미만으로 내려가면 텍스트 인코더나 모델 계열을 변경해야 합니다. 가능하지만,
정체성 고정을 네이티브 ref_images에서 IP-Adapter로 이동시키며, 이는
여기서 검증되지 않았습니다 — 그리고 정체성 고정이 핵심입니다.
제로 상주
카드에 다른 것이 없는 RX 7800 XT에서 측정:
GPU | |
유휴 | 0.21GiB |
이미지 생성 중 | 6.80GiB |
완료 후 2초 | 0.21GiB |
TTS 중 | 2.39GiB |
TTS 후 120초 | 0.21GiB |
이미지는 무료입니다: 엔진은 요청별로 가중치를 스트리밍하고 상주시키지 않습니다.
오디오는 유휴 타이머(AUDIO_IDLE_UNLOAD_S, 기본 120초)에 의해 해제됩니다 — 즉시가 아닙니다.
연속으로 열 줄을 말하는 사람이 매번 리로드 비용을 지불하지 않도록 하기 위해서입니다. 리로드는
측정 가능한 비용이 없습니다: 동일한 TTS 요청이 콜드와 웜 모두 3.0초가 걸렸습니다. 가중치가
mmap되고 페이지 캐시에 있기 때문입니다.
요청은 직렬화되므로 피크 = 단일 최대 모델입니다. 에이전트를 닫으면 VRAM도 해제됩니다 — MCP 서버는 엔진이 보유한 채로 종료하는 대신 종료 시 언로드합니다.
실제로 하는 두 가지
1. 정체성은 호출 간에 유지됩니다. 생성 백엔드는 상태가 없습니다: 같은 캐릭터를 두 번 요청하면 서로 닮은 두 사람을 얻습니다. Qwen3-TTS에서 측정, 하나의 음성 설명에서 네 줄:
4줄에 걸친 피치 분포 | |
모델에 직접(기본 샘플링) | 125Hz |
모델에 직접, 탐욕적 디코딩 | 242Hz — 더 나쁨 |
Continuity를 통해(고정 참조) | 5Hz |
탐욕적 디코딩에서 시드는 증명 가능하게 불활성입니다 — 시드 5 / 99 / 777이 하나의 동일한 sha256을 생성했습니다 — 따라서 무작위성이 완전히 제거되었음에도 242Hz로 드리프트했습니다. 정체성은 입력 텍스트의 함수이지 무작위 추첨의 함수가 아닙니다. temperature=0과 top_k=1은 그것을 고칠 수 없습니다. 참조 아티팩트에 고정하는 것만 가능합니다.
create_actor(name, voice) -> audition clip; listen before you commit
actor_tts(actor, text) -> same timbre every line
create_character / create_animal / create_object (name, appearance)
subject_image(subject, scene) -> same look, new scene / angle / outfit정체성과 의상은 분리되어 있습니다: 얼굴과 체형을 고정한 다음 장면 프롬프트에서 옷을 변경하세요.
인디고 로브의 참조가 wearing heavy red armor를 요청하면 같은 얼굴로 갑옷을 입고 돌아옵니다.
이미 다른 곳에서 캐스팅한 캐릭터가 있나요? import_actor와 import_subject는
제공한 아티팩트를 고정합니다 — 실제 음성 녹음, ElevenLabs 클립, 다른 도구의 캐릭터 시트 —
그리고 모든 다운스트림은 동일하게 동작합니다. 오디오는 24kHz 모노로 정규화됩니다(44.1kHz 스테레오 입력, 검증됨: 참조 f0 동일, 가져온 배우가 네이티브 캐스트 배우를 11Hz로 추적).
2. 퇴화 출력은 거부됩니다. 잘못 계산하는 백엔드는 완벽하게 형성된 all-zero WAV 또는 평평한 회색 PNG를 HTTP 200으로 반환합니다. 모든 아티팩트가 검사됩니다(이미지 표준 편차, 오디오 RMS, 비유한 샘플) 그리고 호출은 쓰레기 위에 성공을 보고하는 대신 크게 실패합니다. 컷아웃은 추가로 품질 보고서를 받습니다 — 대부분 투명, 제거된 것 없음, 조각으로 분해된 주제, 주제를 관통하는 구멍 — 각각 특정 경고와 함께 조용한 통과 대신.
또한 remove_bg: 확산 모델은 "투명 배경"을 불투명 체커보드로 그립니다. 이것은 실제 RGBA 컷아웃으로 변환하며, 스프라이트에 필요합니다. 그리고 gen_sfx는 sfxr 스타일 게임 SFX를 절차적으로 합성합니다 — 주어진 시드에 대해 비트 동일, 밀리초, GPU 없음 — 확산 모델은 40ms 코인 픽업에 잘못된 도구이기 때문입니다.
도구
19개 도구. 모든 것은 절대 로컬 파일 경로를 반환합니다 — URL이 아닙니다. 에이전트와 엔진은 같은 머신에 있으므로 경로는 다운로드 단계 없이 게임 프로젝트에 직접 들어갈 수 있으며, 파일 서버를 실행하거나 잘못 구성할 필요가 없습니다.
voice |
|
look |
|
audio |
|
post |
|
meta |
|
generate_image와 generate_speech는 일회성 작업을 위해 존재하며, 각자의 설명에도 그렇게 명시되어 있습니다. 즉, 이 도구들이 생성한 결과물은 다음 호출에서 다시 돌아오지 않는다는 것을 에이전트에게 명확히 알려주고, 반복적인 작업이 필요하면 고정(pinning) 도구를 사용하도록 안내합니다.
제한 사항과 각 제한이 존재하는 이유
여기 있는 모든 수치는 정책이 아니라 측정된 실패 경계입니다.
제한 | 값 | 한계를 넘으면 발생하는 상황 |
줄 길이 | 200자 | 600자는 GPU를 멈추게 했습니다: |
참조 오디오 | 15초 / 30초 | 초당 ~0.19 GiB VRAM: 15초 → 6.59 GiB, 30초 → 9.04 GiB. 이 한계를 넘으면 이미지 대신 음성이 병목이 됩니다. |
캐스팅 스크립트 | 45자 | 캐스팅 스크립트는 참조 오디오를 생성하며, 이후 모든 라인에서 다시 읽힙니다. 글자 수는 좋은 근사치가 아닙니다(60자는 비율이 예측한 13.7초가 아닌 19.1초로 측정됨). 따라서 실제 길이는 캐스팅 후에 확인되어 보고됩니다. |
이미지 크기 | 1024px | 1280은 VRAM을 14.5/16.4 GiB까지 끌어올렸고, 2048은 드라이버를 |
음악 길이 | 120초 | 안전 제한이 아닙니다: 엔진이 120초에서 조용히 잘라내고 성공을 보고합니다. 이 제한은 이를 명시적인 |
24kHz 미만으로 가져온 오디오는 허용되지만 플래그가 표시됩니다: 업샘플링은 버려진 옥타브를 복원할 수 없으므로, 클론은 원본 파일보다 탁한 결과물이 됩니다. 이는 조용히 통과시키기보다 경고할 가치가 있습니다 — 이 플러그인이 잡아내기 위해 존재하는 다른 모든 실패와 동일한 형태의 실패이기 때문입니다.
과도하게 큰 입력은 유형별로 의도적으로 다르게 처리됩니다. 너무 큰 이미지는 크기가 조정되고 결과가 보고됩니다 (原图 2400x1600 → 存为 1024x682) — 크기가 조정된 그림도 여전히 같은 대상을 묘사합니다. 너무 긴 참조 오디오는 잘라내지 않고 거부됩니다: 오디오의 끝부분을 잘라내면 트랜스크립트가 더 이상 오디오가 말하지 않는 내용을 설명하게 되며, 그 정렬이 바로 클로닝이 의존하는 핵심입니다. 조용히 잘라내면 성공적으로 가져와졌지만 다른 사람처럼 들리는 액터를 받게 될 것입니다.
자체 백엔드 사용 (선택 사항)
로컬 엔진이 기본값이지만, 모든 백엔드는 URL입니다 (SD_SERVER, AUDIO_SERVER). 이를 자체 서버로 지정하면 로컬 모델은 절대 로드되지 않습니다. 한 가지 제약이 있습니다: 오디오 엔진은 참조 오디오 경로를 자체적으로 해석하므로, 동일한 actors 디렉토리(동일한 머신 또는 공유 마운트)를 볼 수 있어야 합니다.
이미지 백엔드는 참조 이미지를 반드시 수용해야 합니다 (FLUX.2 스타일 네이티브 ref_images, IP-Adapter, 또는 얼굴용 PuLID). 이것이 없으면 신원 고정(identity pinning)이 작동할 수 없습니다 — 그리고 플러그인은 조용히 성능을 저하시키는 대신 그 사실을 명시적으로 알려줍니다.
선행 연구
현재 MCP 생태계에 대한 조사 — MiniMax-MCP, openrouter-mcp-multimodal, AtlasCloud, dsh vision/draw 플러그인, 그리고 4개의 게임 에셋 서버 — 에서 음성 클로닝은 여러 곳에서 발견되었지만, 시각적 대상 고정은 어디에도 없었고, 출력 검증도 어디에도 없었습니다.
레이아웃
bundle/ dsh bundle (npm) — one plugin row; dsh spawns and supervises the MCP server
src/ the MCP server: pinning, guardrails, verification, cutout, VRAM lifecycle
src/continuity_mcp/deploy/ compose + engine Dockerfile + weight manifest라이선스
MIT
Available Tools
21 toolsactor_ttsA
让某个已铸声的角色说一句台词, 音色与他之前每一句都一致。
做游戏 NPC 对白用这个, 不要用 generate_speech —— 后者每句音色会漂。 角色不存在会告诉你先去 create_actor。
参数: actor: 角色名(create_actor 时定的) text: 台词, 上限 200 字(约 45 秒), 超出截断 speaking_rate: 语速倍率(可选) seed: 随机种子(可选)
返回: 24 kHz 单声道 WAV 的本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| text | Yes | ||
| actor | Yes | ||
| speaking_rate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| actor | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| max_chars | No | |
| truncated | No | |
| consistent | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden and does well: it discloses the consistency guarantee, text truncation at 200 chars (~45s), the actor-not-found error behavior routing to create_actor, and the return format (24 kHz mono WAV path). It does not mention latency, cost, or concurrency, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the key routing decision, then parameters and return value in clearly delineated sections. Every line earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value detail is optional (though provided). With no annotations and 0% schema coverage, the description successfully covers purpose, routing, all params, error behavior, and output format. Minor gaps around speaking_rate/seed ranges and operational limits prevent a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must document params and it does all four: actor (name from create_actor), text (200-char cap, truncation), speaking_rate (rate multiplier), seed (random seed). The last two are thin — no valid ranges — so it compensates well but not exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('make an already-cast actor speak a line') and a distinctive property (timbre consistency across every line). It explicitly names and contrasts with the sibling generate_speech, so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('game NPC dialogue'), when-not ('don't use generate_speech — its timbre drifts per line'), and a prerequisite path (if the actor doesn't exist, it tells you to create_actor first). Alternatives and conditions are fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
continuity_statusA
本插件当前的状态: 两个引擎在不在、哪些能力开着、资产存在哪。
某个工具"不存在"时先看这里 —— 显存不够的机器上生图那半是被安装脚本关掉的, 不是坏了。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| audio | No | |
| error | No | |
| image | No | |
| actors | No | |
| subjects | No | |
| warnings | No | |
| state_dir | No | |
| engines_ok | No | |
| error_code | No | |
| engines_down | No | |
| setup_needed | No | |
| idle_unload_s | No | |
| cutout_quality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无 annotations,描述承担行为说明责任;它说明了状态涵盖引擎、能力和资产位置,并主动解释“工具不存在”可能是被安装脚本关闭而非故障。这提供了有用诊断上下文,但未明说只读/无副作用等安全属性。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
两句话,先总述状态内容,再给出故障排查指引;信息前置,无冗余,每句都有明确作用。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
存在输出 schema,因此无需描述返回值;工具无参数且用途简单。描述已覆盖状态范围与关键使用场景,信息完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
该工具无参数,输入 schema 为空且覆盖率为 100%。无参数工具的参数语义基线为 4,描述无需补充参数含义。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明确说明这是本插件当前状态工具,并列出返回内容:两个引擎是否存在、哪些能力启用、资产存放位置。它与所有创建/生成/导入类兄弟工具在用途上明显不同,代理可据此区分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
给出明确使用时机:当某个工具“不存在”时先查这里;还解释了常见原因(显存不足导致生图能力被安装脚本关闭)。但没有列出何时不用或替代工具,故非满分。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_actorA
给一个角色铸声(定妆), 之后用 actor_tts 让他说任意台词都保持同一个音色。
为什么要有这一步: 直接用文字描述合成语音, 那段描述只圈定一个大致的音色区间, 区间内每句台词各漂各的 —— 实测同 voice 同 seed 四句台词基频极差 125 Hz, 关掉采样走贪心反而涨到 242 Hz(音色是文本的函数, 不是采样随机性, 锁 seed 或 temperature 都锁不住)。本工具先用 voice 描述生成一段参考音, 之后所有台词 改由克隆模型照着这段参考音说, 音色与台词内容无关。实测极差降到 5 Hz。
重要: 铸完请先听那段试音, 确认是不是你要的那个人。铸砸了会把整个角色锁死在 错的音色上, 而且它之后每一句都错得很一致。不满意就 force=true 重铸。
参数: name: 角色名(字母/数字/下划线/连字符/中文, 1~40 字), 之后 actor_tts 用它指代 voice: 声音的自然语言描述, 英文效果最佳。写年龄/性别/音色/语速/情绪, 例如 "An elderly Chinese man, gravelly chest voice, commanding" sample_text: 铸声用的台词(可选)。默认用一段覆盖面较广的中文 seed: 随机种子(可选) force: 覆盖已有角色。会让该角色之前所有台词的音色对不上, 慎用
返回: 试音片段的本机路径 —— 先听再用
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| voice | Yes | ||
| sample_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| truncated | No | |
| error_code | No | |
| transcript | No | |
| ref_seconds | No | |
| imported_from | No | |
| source_format | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the output (a local path to the audition clip) and the consequential side effect of force=true (previously generated lines no longer match). It stops short of stating what happens if name already exists without force (error vs. reuse), so one behavioral gap remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence and the parameter block are front-loaded and tight. The middle 'why' paragraph justifies the tool's existence but spends several sentences on 125 Hz/242 Hz/5 Hz measurements, which is more evidence than an agent needs to make a selection decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained in prose (the description still notes the audition path usefully). For a 5-parameter mutation tool with zero schema coverage and no annotations, the description supplies the operational context needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate entirely – and it does. All five parameters are explained: name with charset/length constraints, voice with a concrete English example and content guidance, sample_text with its default, seed, and force with its destructive consequence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('给一个角色铸声(定妆)' – mint/cast a voice for a character) and immediately distinguishes itself from the sibling it feeds into ('之后用 actor_tts 让他说任意台词'). An agent can tell this apart from actor_tts, import_actor, or generate_speech without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use it: before actor_tts, to lock a stable timbre, and force=true to re-cast. It gives a clear workflow position but doesn't name alternative casting routes (import_actor, create_character) or say when those would be preferred instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_animalA
给一只动物/坐骑/灵兽定妆, 之后每张图它都是同一只。
appearance 里必须写死这几样:
物种 + 体型比例(腿长/身长/头身比)
毛色/羽色 + 花纹的分布位置(不是只说"有斑点", 要说斑点在哪)
耳朵、尾巴、翅膀的形状
显著特征(独角/断尾/眼色) 鞍具、缰绳这类可穿卸的东西和人物的服装同理: 写进 appearance 只是默认值, scene 里可以换掉。不要写场景和动作。
定完先看定妆图, 不满意 force=true 重定。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| width | No | ||
| height | No | ||
| appearance | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it explains that appearance values are hardcoded defaults that can be overridden in scene (for removable gear and clothing), and that force=true triggers a re-design. It omits persistence/side-effect details (does this register a reusable subject that list_subjects/subject_image later reference?) and does not mention deterministic seeding behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then an efficient bulleted list of required appearance fields, then the override rule and the force workflow. Every line contributes, though the removable-gear/clothing aside adds slight length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the appearance/override/force semantics are well covered. Gaps remain around the image-generation parameters and whether the created animal becomes a reusable referenced subject, but the core workflow is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It thoroughly explains 'appearance' (exactly which attributes to specify) and 'force', but leaves seed, width, height, guidance_scale, and num_inference_steps entirely undocumented in both schema and description. Partial compensation warrants a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (create/lock the design of an animal, mount, or spirit beast) and the concrete outcome (every subsequent image shows the same creature), which is a distinct purpose from the animal/character/object siblings. An agent can tell this is the animal-design tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear workflow guidance: design first, inspect the resulting design image, and rerun with force=true if unsatisfied. It also implicitly scopes out scene/action content ('不要写场景和动作'). It stops short of explicitly naming which sibling to use for scenes or characters, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_characterA
给一个人物定妆(生成并存下参考图), 之后 subject_image 出的每张图长相都一致。
为什么要有这一步: generate_image 每次给的是"长得不一样的人"。同一个角色的头像 / 战斗立绘 / 地图小人, 直接用文字描述生成出来是三个人。
appearance 分两部分, 分清楚很重要:
(1) 身份 —— 必须写死, 漏掉的每一项模型都会自己编, 而且每张编得不一样:
年龄段 + 体型(高瘦/魁梧/矮壮)
脸: 脸型、显著特征(疤/须/眉眼)
发型 + 发色 + 束发方式
辨识物: 跟着这个人走、换装也不摘的东西(独眼罩/佩剑/护腕/胎记)
(2) 默认服装 —— 只是个基线, 不是身份的一部分。照样写进 appearance, 但 subject_image 的 scene 里写新衣服就能换掉(实测: 定妆穿布袍, scene 写 "wearing heavy red armor" 能换成甲胄而脸不变)。所以一个角色不需要按套装 定妆很多次。
不要写场景、动作、表情 —— 那些留给 subject_image 的 scene。
定完先看返回的定妆图确认是不是你要的人; 定砸了会把整个角色锁死在错的长相上, 不满意就 force=true 重定。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| width | No | ||
| height | No | ||
| appearance | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses that this persists a locked-in appearance that governs all future subject_image output, that a bad result locks the whole character into the wrong look, and that force=true is the re-roll escape hatch, plus an instruction to verify the returned reference image. It is silent on the non-appearance generation knobs (seed, guidance_scale, steps, size) and on collision behavior when a name already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded – the one-line purpose precedes the rationale and the field guidance – and structured into clearly labeled sub-sections that an agent can scan. It is on the long side, and the illustrative anecdote about the robe-to-armor swap could be trimmed, but essentially every sentence carries usable instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not owed, and the description correctly just tells the agent to inspect the returned reference image. Combined with the purpose, usage and appearance guidance, an agent can call this correctly; the gaps are the undocumented generation parameters and name-collision behavior rather than anything blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so richly for the two most important parameters: `appearance` is decomposed into identity vs. default clothing with a concrete list of what must be pinned down, and `force` is defined as the re-create/override switch. The other five parameters (seed, width, height, guidance_scale, num_inference_steps) receive no semantics at all, leaving a substantial documentation hole.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource ('给一个人物定妆' – generate and persist a character reference) and immediately contrasts it with generate_image and subject_image, so the agent knows it is not a one-off image generator. It does not, however, differentiate itself from the parallel siblings create_actor / create_animal / create_object, which is the one ambiguity left.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit about when to use it (whenever a character must stay visually consistent across many images), what to use instead for one-offs (generate_image), and what NOT to put in this call ('不要写场景、动作、表情' – leave those to subject_image's scene). It even gives a worked example of swapping clothing via scene without re-creating the character, which is exactly the when/when-not guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_objectC
给一件道具/物件定妆, 之后每张图它都长一个样, 换角度也不变。
物件最容易漂的是几何, 不是材质配色 —— 实测一个宝箱, 材质配色五金件都对得上, 盖子却一会儿是平的方的、一会儿是拱的圆的, 因为原始描述里压根没写盖子什么形状。
appearance 里必须写死这几样:
整体轮廓 + 比例(长方/立方/圆桶, 宽高比)
关键几何: 盖子平的还是拱的、边角方的还是圆的、侧面直的还是弧的、有没有底座
材质 + 主次配色
五金件/纹饰及其位置(锁扣、包角、铆钉在哪) 不要写场景和角度 —— 角度留给 subject_image 的 scene。
定完先看定妆图, 不满意 force=true 重定。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| width | No | ||
| height | No | ||
| appearance | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does disclose a real behavioral trait: consistency of the object across images and angles, and that geometry drifts most. It also mentions rerolling with force. But it omits key mechanics: whether this is persistent/long-lived (only 'continuity_status' hints at that), idempotency, cost, or that seed/guidance_scale/steps control determinism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The appearance checklist is genuinely useful and front-loaded, and the scene/angle exclusion is a strong, earned sentence. But the opening anecdote about the treasure chest lid is long and the overall text is padded; it leans more persuasion than spec. Structure is reasonable but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't required. For an 8-param generation tool with no annotations, the description focuses almost entirely on the appearance field and lacks behavioral detail on persistence, determinism, and the many unlabeled generation parameters. Adequate for the creative how-to but thin as a full tool contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must compensate. It only meaningfully covers 'appearance' (extensively, with required content), and touches 'force' for rerolls. It says nothing about name, seed, width, height, guidance_scale, or num_inference_steps — six of eight parameters unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description describes the goal in domain-specific terms ('定妆' = locking in a canonical look for a prop/object so every subsequent image matches it), which clarifies the purpose as creating a persistent object reference. However, it never explicitly states it is the object-creation tool relative to siblings like create_character or create_animal, and the framing is heavily tutorial-flavored rather than naming the operation. The intent is inferable but not crisply stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong guidance on WHAT to put in appearance and what to exclude ('不要写场景和角度 —— 角度留给 subject_image 的 scene'), effectively routing scene/angle work to a sibling. But it gives no guidance on when to use this tool vs. create_character/create_animal, no prerequisites, and the 'force=true' reroll note is the only invocation condition described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_actorB
删掉一个已铸声的角色。不可逆: 参考音不可复现, 重铸出来是另一个人。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| error | No | |
| warnings | No | |
| error_code | No | |
| files_removed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does so well: it explicitly warns that the operation is irreversible (不可逆) and explains the concrete consequence that the reference voice cannot be reproduced and a re-created actor would be a different person. It omits permission/auth requirements, but the destructive consequence is unusually well articulated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, front-loaded with the action and immediately followed by the risk. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a destructive single-parameter tool with no annotations, the description adequately covers purpose, irreversibility and consequence; the main gap is any guidance on how to identify the actor via the name parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter (name) with 0% schema description coverage, and the description adds no information about it whatsoever – no format, matching rule, or identifier guidance. With coverage this low the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (删掉/delete) and a qualified resource (一个已铸声的角色 – a voice-cast actor), which is more precise than a bare 'delete actor'. It does not explicitly distinguish itself from the sibling delete_subject, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as delete_subject or list_actors, and no preconditions for invoking it. The agent must infer usage from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_subjectA
删掉一个已定妆的角色或物件。不可逆: 定妆图不可复现, 重定出来是另一个。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| error | No | |
| warnings | No | |
| error_code | No | |
| files_removed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the key destructive trait: the operation is irreversible and the finalized image cannot be reproduced, so re-finalizing yields a different subject. It omits confirmation requirements, permission needs, and whether dependent assets (images, sheets) are also removed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the destructive/irreversibility warning front-loaded right after the action statement. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the irreversibility warning covers the most important behavior. However, for a destructive tool with no annotations and no parameter documentation, the description should say more about what else is destroyed and how it relates to delete_actor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'name' parameter, and the description adds nothing about it — it never clarifies whether 'name' is a subject name, an ID, or whether it must match exactly. For a destructive identifier parameter, leaving it undocumented is a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (删掉/delete) and resource (一个已定妆的角色或物件 – a finalized character or object), with scope that implicitly distinguishes it from delete_actor by covering subjects of both kinds. Sibling differentiation is only implicit, though; it never names delete_actor or explains why a 'subject' differs from an 'actor'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The qualifier '已定妆的' implies a precondition (only subjects whose look has been finalized) and '重定出来是另一个' hints that re-creation is an option, but there is no explicit when-to-use/when-not guidance and no routing to alternatives such as delete_actor. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageA
生成一张一次性图片 —— 不保证与任何其它图一致。
会重复出现的角色/物件请先 create_character / create_object 定妆, 再用 subject_image 出图。这个工具适合背景板、UI 底图这类只出现一次的东西。
参数: prompt: 图片描述(英文效果最佳) width/height: 上限 1024 seed: 随机种子(可选) reference_image_path: 参考图的本机路径(可选), 传了就是图生图 num_inference_steps: 采样步数(可选, 不传用引擎默认)。多了更精细也更慢 guidance_scale: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊
返回: 本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| width | No | ||
| height | No | ||
| prompt | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No | ||
| reference_image_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| seed | No | |
| error | No | |
| scene | No | |
| width | No | |
| height | No | |
| clamped | No | |
| subject | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the non-deterministic/one-off nature of the output, that reference_image_path switches to image-to-image mode, and the speed/quality tradeoffs of num_inference_steps and guidance_scale. It stops short of covering permission needs, rate limits, cost, or resolution failure modes, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the defining distinction, then the sibling routing, then a compact parameter list, then the return value. Given the 0% schema coverage the parameter section is earned, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations and a 7-param schema with no descriptions, the definition covers scope, alternatives, per-parameter semantics, and even the return value (a local path). An output schema exists, so return details are not strictly required, making this fully sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does: every one of the 7 parameters is explained with meaning beyond type, including the 1024 cap on width/height, the optional seed, the img2img behavior triggered by reference_image_path, and the quality/latency and adherence/artifact tradeoffs of the two sampling params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (生成一张一次性图片) and immediately defines the key scope constraint: the output is not guaranteed consistent with any other image. It explicitly distinguishes itself from create_character, create_object, and subject_image, so an agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both when-not and when-to-use: recurring characters/objects should go to create_character/create_object then subject_image, while this tool is for backgrounds, UI base images, and other one-off assets. The alternative is named with the condition that selects it, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_musicA
生成一段背景音乐(Stable Audio), 返回 WAV 的本机路径。
参数: prompt: 音乐描述(风格/乐器/情绪, 英文效果最佳) seed: 随机种子(可选) duration: 秒数, 上限 120 num_inference_steps: 推理步数(默认 100, 越多越慢)
注意: 出来的是一段有头有尾的音乐, 没有做无缝循环点。要循环播放的 BGM 请自己在编辑器里找循环点, 或把它当作一次性过场音乐。
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| prompt | Yes | ||
| duration | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| error | No | |
| clamped | No | |
| duration | No | |
| warnings | No | |
| truncated | No | |
| error_code | No | |
| requested_duration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It usefully reports that the tool returns a local WAV path, that the output is not seamlessly loopable, that duration is capped at 120 seconds, and that higher inference steps are slower. It does not cover permissions, rate limits, or failure modes, but the core behavioral constraints an agent needs are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, then presents parameters in a compact list, and finishes with an important output caveat. Every part earns its place given the lack of schema descriptions, and there is no wasteful repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still helpfully notes the returned WAV path. With no annotations and 0% schema parameter coverage, the definition compensates by documenting all parameters and the key output limitation. It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all four parameters. It does so clearly: prompt is a music description with English working best, seed is optional random, duration is seconds with a 120 upper bound, and num_inference_steps defaults to 100 with more steps being slower. This adds meaning beyond the bare schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '生成一段背景音乐(Stable Audio), 返回 WAV 的本机路径'. It clearly distinguishes itself from generating speech or sound effects by specifying background music, though it does not explicitly name sibling alternatives such as gen_sfx or generate_speech.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an important usage caveat: the output has a beginning and end with no seamless loop point, so for looping BGM the user must find a loop point or treat it as one-shot transition music. However, it does not explicitly state when to use this tool versus generate_speech, gen_sfx, or other audio-generation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_speechA
一次性旁白 —— 不保证跨句音色一致, 会重复出现的角色请用 create_actor + actor_tts。
适合系统提示音、一次性播报这类"说完就没了"的语音。任何会说第二句的角色都不该 用这个: 同一段 voice 描述的两句台词不是同一个人。
参数: text: 要念的台词, 上限 200 字 voice: 声音的自然语言描述(英文效果最佳), 不传则用中性旁白嗓 seed / speaking_rate: 可选
返回: 24 kHz 单声道 WAV 的本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| text | Yes | ||
| voice | No | ||
| speaking_rate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| actor | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| max_chars | No | |
| truncated | No | |
| consistent | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose key traits: no cross-sentence voice consistency, a default neutral narration voice when `voice` is omitted, a 200-character cap, and the output format (24 kHz mono WAV, local path). It does not mention determinism, cost, or latency, so it stops short of exhaustive, but the critical gotcha (voice instability) is stated up front.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the differentiating constraint before any parameter detail, then uses a clean parameter block and a one-line return note. The extra sentence reinforcing the 'second line' rule is slight redundancy but functions as a strong routing heuristic, so it earns most of its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter generation tool with no annotations and a rich sibling set, the description supplies the routing rule, the character-limit constraint, default behavior, and output artifact. With an output schema present it did not need to describe the return, yet the one-line WAV note costs little and removes ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: `text` gets a 200-character limit, `voice` is explained as a natural-language description with English working best and a documented default, and both are the semantically important ones. `seed` and `speaking_rate` are only labeled '可选' with no explanation of what seed controls, leaving a partial gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (one-shot narration generation) and immediately scopes it: '一次性旁白 —— 不保证跨句音色一致'. It explicitly names the sibling route (create_actor + actor_tts) that handles the case it does not cover, so an agent can distinguish it from the voice/actor tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both a positive use case (system prompts, one-off announcements, '说完就没了' audio) and an explicit exclusion ('任何会说第二句的角色都不该用这个'), plus the concrete alternative to use instead. This is exactly the when/when-not/alternative structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_sfxA
合成一枚 sfxr/jsfxr 风格的游戏音效(纯程序化, 不用模型), 返回 WAV 路径。
不要用 generate_music 做音效: 那是扩散模型, 出来的是几十秒的宽带糊音。游戏音效 是 10~200ms 的瞬态, 要精确、即时、可复现 —— 本工具毫秒级出结果, 同 seed 逐字节可复现, 而且完全不占显存。
参数: preset: jump / coin / hit / explosion / powerup / laser / select / hurt seed: 随机种子。给了就在 preset 周围抖动参数(不是抖采样点), 同 seed 结果完全相同; 不给则严格使用 preset 的原始参数。 base_freq: 覆盖基频 Hz (noise 波形下是采样保持的刷新率) wave: 覆盖波形 square / saw / sine / triangle / noise overrides: 覆盖任意合成参数的字典, 例如 {"freq_slide": -3.0, "release": 0.4, "lpf": 0.5, "duty": 0.25} 可覆盖的完整字段名和默认值: 调 sfx_presets()
返回: 44.1kHz 16bit 单声道 WAV 的本机路径。结构化返回里的 params 是这一枚音效 用到的全部合成参数 —— 拿它加一点改动再调一次, 就能做出一整组同族音效。
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wave | No | ||
| preset | No | select | |
| base_freq | No | ||
| overrides | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| seed | No | |
| wave | No | |
| error | No | |
| params | No | |
| preset | No | |
| duration | No | |
| warnings | No | |
| base_freq | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses millisecond-level latency, byte-identical reproducibility under a fixed seed, no model/VRAM usage, and the exact output format (44.1kHz 16bit mono WAV path). It stops short of stating file-write/overwrite behavior or where artifacts land, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose then contrast, then a clean params/return block; every section earns its place. Minor redundancy in reiterating seed reproducibility ('同 seed 结果完全相同' and '同 seed 逐字节可复现'), but overall tight and well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 params with zero schema coverage, a nested overrides object, an existing output schema, and no annotations, the description is complete enough for correct invocation: all inputs are explained, the output artifact and its structured params are described, and reproducibility semantics are stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and it does: it enumerates preset and wave values, explains seed semantics precisely (jitter around the preset's parameters, not sample points; identical seed yields identical output), defines base_freq incl. its meaning under noise, and points to sfx_presets() for valid overrides keys with a worked example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (synthesize a programmatic sfxr/jsfxr-style game sound effect) and immediately distinguishes itself from the sibling generate_music. An agent can tell exactly what it produces and what it does not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (generate_music) and the condition that rules it out: diffusion music is tens-of-seconds broadband mush, whereas game SFX are 10~200ms transients needing precision and immediacy. This is textbook when-to-use/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_actorA
用一段现成的录音铸声 —— 声音是别处做的(真人录音 / 其它 TTS)也照样能保持一致。
和 create_actor 得到的东西完全一样, 只是参考音由你提供而不是我们生成。之后 actor_tts 让他说任意台词, 音色都来自这段录音。
参数: name: 角色名, 之后 actor_tts 用它指代 audio_path: 录音的本机路径。16-bit PCM WAV, 2~30 秒, 单人清唱式的干净人声 最好(没有背景音乐和混响)。采样率/声道数会自动转成 24 kHz 单声道。 其它格式先转: ffmpeg -i 原文件 -acodec pcm_s16le -ac 1 -ar 24000 ref.wav transcript: 那段录音里念的是什么。不给就自动听写一遍填上, 但那是机器听的, 会在返回里标出来让你核 —— 克隆模型拿它对齐音频和文字, 错一个词 音色就会明显不对。手上有准确的文字就直接给, 别让它猜。 force: 覆盖已有角色
注意: 你有权使用这段声音才导入它。克隆一个真人的嗓子在很多地方是需要本人同意的。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| force | No | ||
| audio_path | Yes | ||
| transcript | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| truncated | No | |
| error_code | No | |
| transcript | No | |
| ref_seconds | No | |
| imported_from | No | |
| source_format | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
由于未提供 annotations,描述承担了全部说明责任,且完成得非常好:它详细说明了音频格式约束(16 位 PCM WAV、2–30 秒、尽可能为干净的单人无伴奏人声)、自动转换行为(转为 24 kHz 单声道)、ffmpeg 回退命令、自动转录标注质量警告、force 覆盖行为以及同意/授权注意事项。这远超 schema 和 annotations 所包含的信息。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
开篇一句话简洁地前载了核心目的,随后用带标签的段落解释参数和注意事项。篇幅合理,每句话都提供了有用信息,但 ffmpeg 命令和转录警告略长。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
对于一个包含 4 个参数、无 annotations、0% schema 描述覆盖率的变更工具,描述提供了智能体正确调用所需的一切:用途、与兄弟工具的关系、每个参数的含义、输入格式要求、自动转换行为,以及授权注意事项。由于存在 output schema,无需再解释返回值。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
schema 描述覆盖率为 0%,因此描述必须弥补这一差距;它确实做到了,为全部四个参数提供了含义:name(供 actor_tts 引用)、audio_path(本地路径及格式和时长规格)、transcript(用于克隆模型对齐,自动生成内容会被标记供审查)和 force(覆盖已有角色)。这已远超 schema 中裸属性名称所提供的内容。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明确说明了动作(从一段现成录音铸造声音)和资源(角色),并直接说明它与 create_actor 的区别——唯一区别在于参考音频是由用户提供而非系统生成。这使智能体无需查看任一 schema 即可将其与同名资源类兄弟工具区分开来。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
清楚地说明了后续流程(actor_tts 稍后通过名称引用该角色),并给出何时提供 transcript 与让系统自动听写的条件。缺少与 import_subject 等同类导入工具的明确对比,但对于何时使用此工具已足够清晰。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_subjectA
用一张现成的图定妆 —— 角色/物件是别处画的也照样能保持一致。
和 create_character / create_object 得到的东西完全一样, 只是定妆图由你提供。 之后 subject_image 让它出任意场景图, 外观都来自这张图。
参数: name: 名字, 之后 subject_image 用它指代 image_path: 参考图的本机路径。要求和我们自己生成的定妆图一样: 单个主体、 正面或四分之三视角、背景干净、看得全。一张有场景有动作的插画 当参考图, 场景会跟着一起被复制过去。 appearance: 这是什么的文字描述 —— 必填, 它会被拼进之后每一张场景图的提示词。 只给参考图而不给描述, 模型对"这是什么"没有着落, 外观照样会漂。 写法同 create_character / create_animal / create_object 的要求。 kind: character / animal / object force: 覆盖已有的
大图会缩到 1024 以内; 带透明通道的图会转成 RGB(透明区交给引擎会变成黑块)。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | character | |
| name | Yes | ||
| force | No | ||
| appearance | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it delivers real behavioral detail: images over 1024 are downscaled, alpha channels are converted to RGB (transparency becomes black), and force overwrites an existing subject. It also warns that a scene-containing reference will replicate that scene. Missing permission/auth or failure-mode disclosure keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose before dropping into a structured 参数 list, and each parameter note earns its place with actionable detail. Slightly long, but the length is justified by the 0% schema coverage it has to make up for.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description covers overwrite semantics, image preprocessing, and reference-image constraints; the existence of an output schema means return values need not be explained. Auth/permission requirements and error behavior remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents every one of the five parameters: name (used later by subject_image), image_path (with concrete requirements: single subject, front or 3/4 view, clean background, fully visible), appearance (required, injected into every subsequent scene prompt, with a warning about drift if omitted), kind, and force.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (import a ready-made image to define a subject's look) and explicitly distinguishes it from siblings: the result is identical to create_character/create_object, only the reference image is user-supplied. An agent can tell it apart from create_character without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the workflow context clearly: use this when you already have a reference image, then subject_image generates arbitrary scene images whose appearance derives from that image. The comparison to create_character/create_object implicitly covers the alternative, though it never states an explicit when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actorsB
列出已铸声的角色(名字 + 当初的声音描述 + 铸声时间)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | No | |
| error | No | |
| actors | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. '列出' implies a read-only, non-mutating operation, and the parenthetical clarifies the returned content, but there is no mention of ordering, pagination, permissions, or what an empty result means. Adequate but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It's efficient, though the parenthetical return-field list is somewhat redundant given an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool with an output schema, the description supplies enough for correct invocation: it identifies the resource and the data returned. Only the lack of any routing hint against sibling list tools keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly adds nothing about inputs, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (列出/list) with a scoped resource (已铸声的角色 – characters that have had voices cast) and even enumerates the returned fields. It's clearly distinguishable from create_actor/delete_actor, but it does not explicitly differentiate itself from the nearby list_subjects sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives such as list_subjects or actor_tts. Usage is only inferable from the verb 'list', which is weak for a tool with this many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subjectsA
列出已定妆的角色、动物和物件。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | No | |
| error | No | |
| subjects | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 列出 implies a read-only list operation, which gives basic safety context, but it does not disclose pagination, return size, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the core action and scope with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with an output schema, the description is nearly complete: it names the resource and the finalized-only scope. A brief note on how it relates to sibling listing tools would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description does not need to compensate for any schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (列出) and resource (角色、动物和物件), and the qualifier 已定妆 narrows the scope. It is clear enough to distinguish from generic subject listing, but it does not explicitly contrast itself with siblings such as list_actors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool lists finalized characters, animals, and objects. There is no explicit when-to-use guidance, no exclusions, and no mention of alternatives like list_actors for unfinalized actors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_bgA
抠掉图片背景, 输出真正带 alpha 通道的 RGBA PNG。
生图模型画不出 alpha: 你让它画"透明背景", 它是把 PS 那种灰白棋盘格当成不透明 像素画出来的。做游戏精灵图必须用本工具把它转成真的 RGBA。
参数: image_path: 图片的本机路径(其它工具返回的路径可直接用) image_base64: 或者直接给 base64 mode: auto (默认, 按结构证据判断是不是棋盘格: 恰好两级灰度 + 周期方格; 不是就走 通用抠图) / checker (强制只抠棋盘格) / rembg (强制通用显著物体抠图, CPU) quality: best (birefnet-general-lite, ~7s, 峰值内存 ~6.8 GB) / fast (u2netp, ~0.6s, 峰值 ~1.3 GB)。只影响 rembg 分支。 不传则用安装时按本机内存定下的默认值。
返回: RGBA PNG 的本机路径, 附带实际走的分支与透明像素占比。抠出来明显不对 (几乎全透明 / 几乎没抠掉 / 碎成一堆小块 / 主体被啃出洞) 时会附一行 ⚠️ 警告 —— 那种结果别直接用。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | |
| quality | No | ||
| image_path | No | ||
| image_base64 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| error | No | |
| model | No | |
| metrics | No | |
| warnings | No | |
| mode_used | No | |
| error_code | No | |
| checker_evidence | No | |
| transparent_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does an excellent job: it explains what the checkerboard artifact is, details mode-specific behaviors (auto detection heuristics, forced checker, forced rembg), documents quality trade-offs (speed vs. memory), and discloses return format plus warning conditions for bad results. Minor gap: it doesn't state whether the operation is idempotent or what happens if both image_path and image_base64 are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and rationale before diving into parameters. It is thorough but not padded; every section earns its place. The only minor deduction is that the Chinese formatting and emoji might slightly increase parsing overhead for an agent, though the structure is logical and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations and 0% schema description coverage, the description covers everything an agent needs: purpose, usage context, all parameters with semantics, return format (even though an output schema exists, the description adds warning conditions not captured there), and failure modes. An agent can call this tool correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully documents all four parameters: image_path (local path accepted directly from other tools), image_base64 (alternative input), mode (three valid values with exact behavioral definitions), and quality (two values with model names, runtime, and peak memory, plus note on default behavior based on system memory). This is exemplary compensation for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (remove image background, output real RGBA PNG with alpha) and explains the motivating scenario (generative models paint checkerboards as opaque pixels). It clearly distinguishes itself from siblings like generate_image or slice_sheet, which do not perform background removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use it ('做游戏精灵图必须用本工具把它转成真的 RGBA') and explains the mode selection logic. It does not explicitly state when NOT to use the tool, but the context is clear enough for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sfx_presetsA
列出 gen_sfx 能用的 preset, 以及 overrides 里可以覆盖的全部字段和它们的默认值。
先看这里再去 overrides: 字段名写错了 gen_sfx 会直接失败, 而"有哪些字段"是猜不出来的 (占空比扫描叫 duty_sweep 还是 duty_slide, 低通叫 lpf 还是 cutoff)。
返回: preset 名单 + 参数默认值表 + 采样率。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| rate | No | |
| error | No | |
| params | No | |
| presets | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does disclose useful traits: exact field-name sensitivity that causes hard failure in gen_sfx, the fact that valid field names cannot be inferred, and the shape of the return (preset list, defaults table, sample rate). It is a read-only listing so auth/rate-limit disclosure is not critical, but no explicit statement of read-only safety is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the reason to use it, then the return contents. The parenthetical naming examples look verbose but each one illustrates a real ambiguity risk, so every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter discovery tool with an output schema present, the definition is complete: it explains what to consult it for, why it matters, and sums up the return contents. Nothing an agent needs to call it or act on the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero input parameters, so the baseline is 4. The description additionally explains what the returned field table means and gives examples of ambiguous field names (duty_sweep vs duty_slide, lpf vs cutoff), adding interpretive value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (presets usable by gen_sfx), and goes further by naming the overrides fields and their defaults as part of the payload. It is clearly distinguishable from the sibling gen_sfx: this is the discovery/companion tool the agent consults before invoking gen_sfx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing ('先看这里再去 overrides' – look here before touching overrides) tied to a concrete failure mode (wrong field names make gen_sfx fail). It identifies the sibling gen_sfx as the downstream consumer and the reason guessing field names is unsafe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slice_sheetA
把排成网格的 sprite sheet 切成单帧 PNG。
让生图模型画"4 帧动画"时它会摆成 2x2 网格而不是 4 张图, 用本工具切开。
参数: image_path / image_base64: 同其它图片工具 rows, cols: 网格行列数(二者都给) frame_width, frame_height: 单帧像素尺寸(与 rows+cols 二选一) trim: 是否把每帧裁到非透明/非背景的外接框(默认 True)
返回: 各帧 PNG 的本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| cols | No | ||
| rows | No | ||
| trim | No | ||
| image_path | No | ||
| frame_width | No | ||
| frame_height | No | ||
| image_base64 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| paths | No | |
| frames | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does useful work: it discloses the trim default (True), the mutual-exclusivity rule between rows/cols and frame_width/frame_height, and the fact that slicing writes per-frame PNG files to local paths. It does not discuss overwrite behavior or permissions, but the essential write semantics are visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+resource, then the rationale, then a compact parameter block and the return value. Every segment earns its place; only the deferral of image input semantics to other tools is slightly loose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be spelled out, yet the description still names the return shape (local PNG paths). With no annotations and zero schema descriptions, the description supplies the constraints an agent needs to choose between the two sizing modes, making it adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all 7 params are bare titles, so the description must compensate and largely does: it documents the two image-input alternatives, the rows/cols pair, the frame_width/frame_height alternative, the trim flag with its default, and the exclusivity constraint that the schema cannot express. Only the image_path vs image_base64 distinction is deferred to 'same as other image tools'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('把排成网格的 sprite sheet 切成单帧 PNG') and even explains the motivating case (image models laying out 2x2 grids instead of separate frames). No sibling tool covers sheet slicing, so the distinction is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete trigger ('让生图模型画"4 帧动画"时它会摆成 2x2 网格而不是 4 张图, 用本工具切开'), which tells the agent exactly when this tool applies. It stops short of naming alternatives or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subject_imageA
让某个已定妆的角色或物件出一张新图, 外观与它之前每一张都一致。
做游戏素材用这个, 不要用 generate_image —— 后者每张长相会变。 subject 不存在会告诉你先去 create_character / create_animal / create_object。
参数: subject: 名字(定妆时定的) scene: 这张图里它在干什么 / 在哪 / 什么角度 —— 只写场景动作视角, 身份由定妆图决定。例如 "opened, seen from behind, on a stone floor"。 人物/动物还可以在这里换装: "wearing heavy red armor" 会换掉定妆图 里那身衣服而保住脸。 width/height: 上限 1024 seed: 随机种子(可选) num_inference_steps: 采样步数(可选, 不传用引擎默认)。多了更精细也更慢 guidance_scale: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊
返回: 本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| scene | Yes | ||
| width | No | ||
| height | No | ||
| subject | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| seed | No | |
| error | No | |
| scene | No | |
| width | No | |
| height | No | |
| clamped | No | |
| subject | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does well: it discloses the missing-subject failure path, the 1024 dimension cap, that unspecified seed/steps/guidance fall back to engine defaults, and the slower-but-finer tradeoff of more steps. It does not cover output file format, overwrite behavior, or reproducibility guarantees, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the sibling warning are front-loaded in the first two lines, followed by a clean parameter block. Every sentence earns its place — the dress/face example in particular prevents a common misuse without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return value needs no elaboration beyond the one-line note that it yields a local path. Across a 7-parameter, 2-required generation tool, the description covers invocation, prerequisites, dimension limits, optional-parameter defaults, and identity/scene separation — nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents all seven parameters. Critically it adds semantics the schema cannot: scene controls action/place/angle only while identity comes from the dated 定妆 image, and clothing can be swapped via scene text ('wearing heavy red armor') while preserving the face. That is genuine meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (出一张新图 of a 已定妆 character/object) plus the scope constraint that appearance must stay consistent with every prior image. It is immediately distinguishable from the sibling generate_image. No ambiguity about what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use this for game assets 不要用 generate_image, with the reason (generate_image mutates the face each time). It also states the prerequisite path — if subject doesn't exist, go to create_character/create_animal/create_object first. Both when-to-use and the alternative are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribeA
听一段录音, 返回里面说的文字。
两个用处, 都是"核对"而不是"生产字幕":
导入参考音时不知道那段录音念的是什么 —— import_actor 不给 transcript 就是 自动调它, 也可以先单独调一次看看听出来的对不对。
验稿: 配完一句台词, 听回来和台词原文比一比。克隆模型偶尔会吞掉尾巴, 而那种"少了半句"的产物听起来完全正常, 只有把它听成文字才看得见。
参数: audio_path: 录音的本机路径, 只收 WAV language: 语种提示 (可选, 如 zh / en)。不给就让模型自己判 —— 它本来就带语种识别, 只有在把方言听成另一种语言时才需要指定。
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| audio_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| text | No | |
| error | No | |
| source | No | |
| language | No | |
| warnings | No | |
| error_code | No | |
| audio_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses auto-invocation by import_actor, that the model has built-in language identification, and the real-world failure mode (clone models dropping sentence tails) that motivates verification. It stops short of stating cost/latency or error behavior, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core behavior, then uses clearly sectioned blocks for uses and parameters. The script-verification rationale is slightly verbose but each sentence contributes useful context, so only marginally over-length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. Purpose, both parameters with constraints, and both usage modes are covered, leaving nothing an agent needs in order to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and does: audio_path is a local path restricted to WAV, and language is an optional hint (zh/en) whose default is model self-detection, with guidance to supply it only when a dialect is misclassified. This adds meaning well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+output: listen to a recording and return the spoken text as words. It also distinguishes itself from siblings by clarifying it is for verification, not subtitle production, and that import_actor invokes it automatically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Enumerates two concrete when-to-use scenarios (checking reference audio during import, validating a dubbed line against its script text) and explicitly excludes the wrong use case ('核对' not '生产字幕'). It also names how it relates to import_actor's automatic invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
v0.5.5- First observed
actor_tts - First observed
continuity_status - First observed
create_actor - First observed
create_animal - First observed
create_character - First observed
create_object - First observed
delete_actor - First observed
delete_subject - First observed
gen_sfx - First observed
generate_image - First observed
generate_music - First observed
generate_speech - First observed
import_actor - First observed
import_subject - First observed
list_actors - First observed
list_subjects - First observed
remove_bg - First observed
sfx_presets - First observed
slice_sheet - First observed
subject_image - First observed
transcribe
TDQS
Scored across 21 tools
Each tool has a clearly distinct purpose, and the descriptions explicitly draw the boundaries between the easily-confused pairs: create_actor+actor_tts (consistent voice) vs generate_speech (one-off), and create_character/subject_image (consistent appearance) vs generate_image (one-off). The casting tools split cleanly by subject kind (character/animal/object) and by source (generate vs import), leaving no meaningful overlap.
Most names follow a clean verb_noun pattern (create_actor, import_actor, list_actors, delete_actor, create_character, generate_image, remove_bg, slice_sheet). A minority deviate with noun_verb or bare-noun forms (actor_tts, subject_image, sfx_presets, continuity_status) and one abbreviation (gen_sfx vs generate_speech/generate_music/generate_image), but the scheme remains readable and predictable overall.
21 tools is on the heavier side, but the server spans several genuinely separate sub-domains (voice casting, image casting, image post-processing, music, procedural SFX, status), so the count is justified rather than padded. Each tool maps to a real capability with no obvious filler.
Coverage is strong: full lifecycle for actors and subjects (create/import/list/delete), plus generation, transcription, background removal, sprite slicing, music, SFX, and a diagnostic status tool. The only minor gap is no in-place update/edit for an actor or subject (you must delete and re-cast), which agents can work around.
Maintenance
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
MCP server for Wan AI video generation
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA sophisticated MCP server providing advanced memory capabilities with RAG, hallucination detection, and enterprise-grade AI infrastructure for intelligent agent ecosystems.-
- FlicenseNot gradedqualityDmaintenanceAn advanced MCP server that provides stateful voice-controlled AGI capabilities with local STT, TTS, and intent detection. It enables users to execute tools, manage memory, and conduct research through natural multi-turn dialogue with low-latency performance tracking.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that runs Stability AI's Stable Audio Open 1.0 locally on NVIDIA GPUs, enabling AI agents to generate broadcast-quality 44.1 kHz stereo WAV sound effects from text prompts fully offline with no API costs.Apache 2.0
- AlicenseAqualityDmaintenanceAn MCP server that enables local AI agents to generate images and videos through the OpenRouter API, manage a browsable media library, and track generation costs.11MIT