Skip to main content
Glama

场记 / Continuity

Un plugin de DeepSeek Harness que proporciona a un agente generación local de imágenes / voz / música / efectos de sonido y recuerda lo que ha creado — el mismo personaje sigue siendo el mismo personaje en cada llamada, y una generación fallida nunca puede pasar por un éxito.

Se ejecuta localmente. Los modelos se cargan de forma diferida por petición y se liberan cuando están inactivos, así que cuando no lo estás usando, la GPU no se toca — 0,21 GiB residentes, medido. Puedes jugar a un juego en la misma tarjeta.

场记 es el supervisor de continuidad en un rodaje. Su trabajo consiste en dos cosas: asegurarse de que el vestuario, el peinado y el atrezo coinciden entre tomas, y detectar el error en el set antes de que se corte en la película. Eso es exactamente el trabajo de este plugin.

Instalación

uvx --from continuity-mcp continuity-setup      # preflight → build engines → fetch weights → start
dsh plugin --profile <your-profile> add dsh-plugin-continuity

continuity-setup comprueba la máquina antes de descargar nada, y ajusta el tamaño de la instalación a lo que encuentra. Ejecuta continuity-setup --check primero para ver qué haría — eso lee el hardware y no cambia nada:

体检结果:
  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 显存)

Dos detalles que existen porque la versión ingenua es incorrecta:

  • Omite llvmpipe. El rasterizador por software anuncia 30,9 GiB de "VRAM" (es tu RAM del sistema) y ganaría cualquier concurso de "elige la tarjeta más grande". Entonces todo se ejecutaría en la CPU — funcionando, con aspecto completamente normal, e inutilizablemente lento.

  • Elige por VRAM libre, pero filtra por VRAM total. En la máquina anterior, la tarjeta de 24 GiB tiene 1,4 GiB realmente libres porque otro proceso la ocupa; elegir por tamaño la seleccionaría y luego habría OOM. Pero "¿es esta tarjeta suficientemente buena?" es una cuestión de hardware, así que eso usa el total — de lo contrario, una tarjeta de 16 GiB sería rechazada por tener un juego abierto.

Related MCP server: Voice-AGI MCP Server

Requisitos mínimos

Mínimo

Notas

GPU

8 GiB de VRAM

El pico es de 6,80 GiB (medido). Las peticiones se serializan, así que el pico es un modelo, no la suma.

API de GPU

Vulkan 1.2+

Sin CUDA, sin ROCm. Los kernels son SPIR-V compilados en tiempo de ejecución.

Disco

30 GiB durante la instalación, 19,5 GiB después

17,4 de pesos + 2,1 de imagen de runtime + 8,5 de capas de compilación (recuperables).

RAM del host

16 GiB (8 GiB viable — ver más abajo)

Impulsada por picos transitorios, no por el estado inactivo.

CPU

cualquier x86-64

La eliminación de fondo se ejecuta en la CPU.

Las instalaciones solo de audio (ver más abajo) necesitan 20 GiB durante la instalación, 9,5 GiB después.

Todas las cifras de VRAM/RAM en esta página son GiB (2³⁰ bytes), que es lo que reportan rocm-smi y vulkaninfo. Una versión anterior de este README las etiquetaba como GB; eso era incorrecto y hacía que el margen pareciera más ajustado de lo que es.

Vulkan en lugar de CUDA no es una preferencia — es la razón por la que esto funciona en absoluto. ROCm calcula mal la decodificación de VAE en esta clase de GPU (ROCm#6633): cinco decodificaciones de una entrada idéntica devolvieron cinco resultados mutuamente no correlacionados. Vulkan/RADV compila SPIR-V en tiempo de ejecución en lugar de buscar una tabla de kernels por arquitectura, y es correcto y más rápido aquí. El efecto secundario es la portabilidad entre los tres fabricantes.

Fabricantes de GPU

Cómo obtiene el contenedor la GPU

Estado

AMD

/dev/dri + mesa RADV dentro de la imagen

Probado (RX 7800 XT, RX 7900 XTX)

Intel

/dev/dri + mesa ANV dentro de la imagen — mismo mecanismo

Sin probar

NVIDIA

nvidia-container-toolkit inyecta el driver del host (docker-compose.nvidia.yml)

Sin probar

Solo tengo tarjetas AMD, así que no voy a afirmar más que eso. Nada en el código es específico de AMD — sin CUDA, sin ROCm, sin HIP, sin /dev/kfd, sin objetivos gfx — y el backend Vulkan de ggml se ejecuta ampliamente en NVIDIA. Pero "se ejecuta ampliamente" no es "lo he verificado".

La ruta de NVIDIA es un cableado genuinamente diferente, no solo una tarjeta diferente: el ICD de Vulkan de NVIDIA vive en el driver del host y debe ser inyectado por nvidia-container-toolkit, con NVIDIA_DRIVER_CAPABILITIES incluyendo graphics — el valor predeterminado compute,utility te da CUDA funcional y una lista de dispositivos vacía en Vulkan. continuity-setup detecta NVIDIA, usa la superposición de compose correcta, y te informa de que la ruta no está verificada. Los informes en cualquier dirección son bienvenidos.

RAM del host en detalle

El estado inactivo es insignificante; los picos son lo que dimensiona la máquina.

operación

pico de RSS

inactivo

0,52 GiB

música

0,50 GiB

voz

1,63 GiB

imagen (1024²)

4,94 GiB

remove_bg quality="best"

7,74 GiB

remove_bg quality="fast"

1,33 GiB

La eliminación de fondo es el techo, y su coste es independiente del tamaño de entrada — 256 / 512 / 1024 px alcanzan todos un pico de ~6,8 GiB, porque BiRefNet se ejecuta a una resolución interna fija.

Con 16 GiB todo funciona. Por debajo de 12 GiB, continuity-setup establece el valor predeterminado a quality="fast" (u2netp): el pico baja a 1,33 GiB y se ejecuta en 0,6 s en lugar de 7,2 s. En un sprite de juego típico, los dos son difíciles de distinguir a simple vista — comprobado lado a lado sobre un fondo magenta con los bordes ampliados. best sigue siendo el valor predeterminado donde hay espacio, porque los modelos sí difieren en principio en los bordes finos (cabello, flecos semitransparentes), pero trata fast como una opción legítima en lugar de un recurso degradado.

Qué se adapta a tu VRAM, y qué no puede

Tres cosas escalan con la tarjeta. Los tres umbrales están medidos, no adivinados:

Tarjeta pequeña

Tarjeta grande

Por qué

Qué mitad se instala

solo audio (<8 GiB)

imagen + audio

La generación de imágenes alcanza un pico de 6,80 GiB y no hay forma de reducirlo — ver más abajo

Audio descargado antes de imagen

sí (<12 GiB)

no

Los modelos de audio permanecen residentes; la imagen encima de ellos alcanza un pico de 7,84 GiB en lugar de 6,80

Límite de audio de referencia

15 s (<12 GiB)

30 s

El audio de referencia cuesta ~0,19 GiB por segundo

El nivel solo de audio es un producto real, no un premio de consolación: casting de voces, diálogo, música, efectos de sonido y recorte funcionan todos, y cabe cómodamente en 4 GiB.

Lo que no se adapta: el modelo de imagen. Cuantizarlo no mueve la VRAM en absoluto — Q4_0 (2,29 GiB de pesos) alcanza un pico de 6,60 GiB, Q8_0 (4,01 GiB) 6,59 GiB, idéntico. Bajar la resolución tampoco ayuda (512 / 768 / 1024 alcanzan todos el mismo pico; solo cambia el tiempo). El cuello de botella es el codificador de texto de 4B sin cuantizar de 8 GiB, no el modelo de difusión. Así que no hay un nivel de imagen "medio" que ofrecer, solo instalado o no. (Q4_0 se incluye de todos modos — misma VRAM, 1,7 GiB menos de disco.)

Bajar de 8 GiB para imágenes significa cambiar el codificador de texto o la familia de modelos. Eso es posible, pero mueve la fijación de identidad de ref_images nativo a IP-Adapter, que no está verificado aquí — y la fijación de identidad es el punto central.

Residencia cero

Medido en una RX 7800 XT sin nada más en la tarjeta:

GPU

inactivo

0,21 GiB

durante la generación de imágenes

6,80 GiB

2 s después de terminar

0,21 GiB

durante TTS

2,39 GiB

120 s después de TTS

0,21 GiB

Las imágenes son gratuitas: el motor transmite los pesos por petición y nunca los mantiene residentes. El audio se libera mediante un temporizador de inactividad (AUDIO_IDLE_UNLOAD_S, 120 s por defecto) — no inmediatamente, porque alguien que pone voz a diez líneas seguidas no debería pagar una recarga cada vez. La recarga no cuesta nada medible: la misma petición de TTS tardó 3,0 s tanto en frío como en caliente, porque los pesos están mapeados con mmap y residen en la caché de páginas.

Las peticiones se serializan, así que el pico = el modelo individual más grande. Cerrar el agente también libera la VRAM — el servidor MCP se descarga al salir en lugar de dejar que los motores la retengan.

Dos cosas que realmente hace

1. La identidad sobrevive entre llamadas. Los backends de generación no tienen estado: pide el mismo personaje dos veces y obtienes dos personas que meramente se parecen. Medido en Qwen3-TTS, cuatro líneas de una descripción de voz:

dispersión de tono en 4 líneas

directo al modelo (muestreo predeterminado)

125 Hz

directo al modelo, decodificación voraz

242 Hz — peor

a través de Continuity (referencia fijada)

5 Hz

Con decodificación voraz, la semilla es demostrablemente inerte — las semillas 5 / 99 / 777 produjeron un sha256 idéntico — así que la aleatoriedad se eliminó por completo, y aun así se desvió 242 Hz. La identidad es una función del texto de entrada, no del sorteo aleatorio. temperature=0 y top_k=1 no pueden arreglarlo. Solo fijarla a un artefacto de referencia puede.

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

La identidad y el vestuario son separados: fija la cara y la constitución, luego cambia la ropa en el prompt de la escena. Una referencia con una túnica índigo, a la que se le pide wearing heavy red armor, vuelve con armadura y la misma cara.

¿Ya has hecho el casting de tu personaje en otro sitio? import_actor e import_subject fijan un artefacto que tú proporcionas — una grabación de voz real, un clip de ElevenLabs, una ficha de personaje de otra herramienta — y todo lo posterior se comporta de forma idéntica. El audio se normaliza a 24 kHz mono por ti (44,1 kHz estéreo de entrada, verificado: f0 de referencia idéntico, y un actor importado sigue a uno creado nativamente hasta 11 Hz).

2. La salida degenerada se rechaza. Un backend que calcula mal devuelve un WAV perfectamente bien formado de todo ceros, o un PNG gris plano, con HTTP 200. Cada artefacto se comprueba (desviación estándar de la imagen, RMS del audio, muestras no finitas) y la llamada falla de forma ruidosa en lugar de informar de éxito sobre basura. Los recortes además reciben un informe de calidad — mayormente transparente, nada eliminado, sujeto destrozado en fragmentos, agujeros que atraviesan el sujeto — cada uno con una advertencia específica en lugar de un pase silencioso.

Además remove_bg: los modelos de difusión dibujan "fondo transparente" como un tablero de ajedrez opaco; esto lo convierte en un recorte RGBA real, que es lo que requieren los sprites. Y gen_sfx, que sintetiza efectos de sonido de juego estilo sfxr de forma procedimental — bit-idéntico para una semilla dada, milisegundos, sin GPU — porque un modelo de difusión es el instrumento equivocado para un pickup de moneda de 40 ms.

Herramientas

19 herramientas. Todo devuelve rutas de archivo locales absolutas, no URLs — el agente y los motores están en la misma máquina, así que una ruta puede ir directamente a tu proyecto de juego sin un paso de descarga, y no hay servidor de archivos que ejecutar o configurar mal.

voz

create_actor import_actor actor_tts list_actors delete_actor generate_speech

imagen

create_character create_animal create_object import_subject subject_image list_subjects delete_subject generate_image

audio

generate_music gen_sfx

post

remove_bg slice_sheet

meta

continuity_status

generate_image y generate_speech existen para usos puntuales y así lo indican en sus propias descripciones: le dicen explícitamente al agente que lo que producen no volverá en la siguiente llamada, y apuntan a las herramientas de fijación para cualquier cosa recurrente.

Límites, y por qué existe cada uno

Cada número aquí es un límite de fallo medido, no una política.

límite

valor

qué ocurre al superarlo

longitud de línea

200 caracteres

600 caracteres bloquearon la GPU: amdgpu GPU reset(6), dispositivo perdido, un proceso no relacionado en la otra tarjeta fue eliminado. 200 es la mitad del valor seguro más grande conocido.

audio de referencia

15 s / 30 s

~0,19 GiB de VRAM por segundo: 15 s → 6,59 GiB, 30 s → 9,04 GiB. Más allá de eso, la voz se convierte en el techo en lugar de la imagen.

guion de casting

45 caracteres

Produce el audio de referencia, que luego se vuelve a leer en cada línea posterior. El número de caracteres es un proxy deficiente (60 caracteres midieron 19,1 s, no los 13,7 s que predice la proporción), así que la duración real se comprueba después del casting y se informa.

tamaño de imagen

1024 px

1280 llevó la VRAM a 14,5/16,4 GiB; 2048 envió al controlador a un thrashing de restore_userptr_worker con el proceso atascado en estado D ininterrumpible — peor que un OOM limpio.

duración de música

120 s

No es un límite de seguridad: el motor trunca silenciosamente a 120 s e informa éxito. El límite convierte eso en un campo clamped explícito.

El audio importado por debajo de 24 kHz se acepta pero se marca: el sobremuestreo no puede restaurar la octava que se descartó, así que el clon sale más apagado que el archivo que le diste. Eso merece una advertencia en lugar de un pase silencioso — es la misma forma de fallo que todo lo demás que este plugin existe para detectar.

Las entradas sobredimensionadas se manejan de forma diferente según el tipo, a propósito. Una imagen demasiado grande se redimensiona y el resultado se te informa (原图 2400x1600 → 存为 1024x682) — una imagen escalada sigue representando lo mismo. El audio de referencia demasiado largo se rechaza, no se recorta: cortar el final del audio dejaría la transcripción describiendo algo que el audio ya no dice, y esa alineación es exactamente de lo que depende la clonación. Recortarlo silenciosamente te entregaría un actor que se importó correctamente y suena como otra persona.

Trae tu propio backend (opcional)

Los motores locales son el valor predeterminado, pero cada backend es una URL (SD_SERVER, AUDIO_SERVER). Apúntalos a tu propio servidor y los modelos locales nunca se cargan. Una restricción si lo haces: el motor de audio resuelve la ruta del audio de referencia por sí mismo, así que debe ver el mismo directorio de actores (la misma máquina, o un montaje compartido).

El backend de imagen debe aceptar una imagen de referencia (ref_images nativo estilo FLUX.2, IP-Adapter o PuLID para rostros). Sin eso, la fijación de identidad no puede funcionar — y el plugin lo dice en lugar de degradarse silenciosamente.

Trabajo previo

Un estudio del ecosistema MCP actual — MiniMax-MCP, openrouter-mcp-multimodal, AtlasCloud, los plugins dsh vision/draw y cuatro servidores de assets de juegos — encontró clonación de voz en varios, fijación de sujeto visual en ninguno y verificación de salida en ninguno.

Diseño

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

Licencia

MIT

Available Tools

21 tools
actor_ttsA

让某个已铸声的角色说一句台词, 音色与他之前每一句都一致。

做游戏 NPC 对白用这个, 不要用 generate_speech —— 后者每句音色会漂。 角色不存在会告诉你先去 create_actor。

参数: actor: 角色名(create_actor 时定的) text: 台词, 上限 200 字(约 45 秒), 超出截断 speaking_rate: 语速倍率(可选) seed: 随机种子(可选)

返回: 24 kHz 单声道 WAV 的本机路径

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
textYes
actorYes
speaking_rateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
actorNo
errorNo
voiceNo
warningsNo
max_charsNo
truncatedNo
consistentNo
error_codeNo

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

本插件当前的状态: 两个引擎在不在、哪些能力开着、资产存在哪。

某个工具"不存在"时先看这里 —— 显存不够的机器上生图那半是被安装脚本关掉的, 不是坏了。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
audioNo
errorNo
imageNo
actorsNo
subjectsNo
warningsNo
state_dirNo
engines_okNo
error_codeNo
engines_downNo
setup_neededNo
idle_unload_sNo
cutout_qualityNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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: 覆盖已有角色。会让该角色之前所有台词的音色对不上, 慎用

返回: 试音片段的本机路径 —— 先听再用

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
seedNo
forceNo
voiceYes
sample_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
seedNo
errorNo
voiceNo
warningsNo
truncatedNo
error_codeNo
transcriptNo
ref_secondsNo
imported_fromNo
source_formatNo
reference_pathNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 重定。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
seedNo
forceNo
widthNo
heightNo
appearanceYes
guidance_scaleNo
num_inference_stepsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
seedNo
errorNo
resizedNo
warningsNo
appearanceNo
error_codeNo
source_sizeNo
stored_sizeNo
imported_fromNo
reference_pathNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 重定。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
seedNo
forceNo
widthNo
heightNo
appearanceYes
guidance_scaleNo
num_inference_stepsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
seedNo
errorNo
resizedNo
warningsNo
appearanceNo
error_codeNo
source_sizeNo
stored_sizeNo
imported_fromNo
reference_pathNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines5/5

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 重定。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
seedNo
forceNo
widthNo
heightNo
appearanceYes
guidance_scaleNo
num_inference_stepsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
seedNo
errorNo
resizedNo
warningsNo
appearanceNo
error_codeNo
source_sizeNo
stored_sizeNo
imported_fromNo
reference_pathNo

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines3/5

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

删掉一个已铸声的角色。不可逆: 参考音不可复现, 重铸出来是另一个人。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
errorNo
warningsNo
error_codeNo
files_removedNo

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

删掉一个已定妆的角色或物件。不可逆: 定妆图不可复现, 重定出来是另一个。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
errorNo
warningsNo
error_codeNo
files_removedNo

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊

返回: 本机路径

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
widthNo
heightNo
promptYes
guidance_scaleNo
num_inference_stepsNo
reference_image_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
seedNo
errorNo
sceneNo
widthNo
heightNo
clampedNo
subjectNo
warningsNo
error_codeNo

TDQS

A4.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 请自己在编辑器里找循环点, 或把它当作一次性过场音乐。

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
promptYes
durationNo
num_inference_stepsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
errorNo
clampedNo
durationNo
warningsNo
truncatedNo
error_codeNo
requested_durationNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 的本机路径

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
textYes
voiceNo
speaking_rateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
actorNo
errorNo
voiceNo
warningsNo
max_charsNo
truncatedNo
consistentNo
error_codeNo

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 是这一枚音效 用到的全部合成参数 —— 拿它加一点改动再调一次, 就能做出一整组同族音效。

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
waveNo
presetNoselect
base_freqNo
overridesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
seedNo
waveNo
errorNo
paramsNo
presetNo
durationNo
warningsNo
base_freqNo
error_codeNo

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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: 覆盖已有角色

注意: 你有权使用这段声音才导入它。克隆一个真人的嗓子在很多地方是需要本人同意的。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
forceNo
audio_pathYes
transcriptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
seedNo
errorNo
voiceNo
warningsNo
truncatedNo
error_codeNo
transcriptNo
ref_secondsNo
imported_fromNo
source_formatNo
reference_pathNo

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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(透明区交给引擎会变成黑块)。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNocharacter
nameYes
forceNo
appearanceYes
image_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
kindNo
nameNo
seedNo
errorNo
resizedNo
warningsNo
appearanceNo
error_codeNo
source_sizeNo
stored_sizeNo
imported_fromNo
reference_pathNo

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

列出已铸声的角色(名字 + 当初的声音描述 + 铸声时间)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countNo
errorNo
actorsNo
warningsNo
error_codeNo

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

列出已定妆的角色、动物和物件。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countNo
errorNo
subjectsNo
warningsNo
error_codeNo

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 的本机路径, 附带实际走的分支与透明像素占比。抠出来明显不对 (几乎全透明 / 几乎没抠掉 / 碎成一堆小块 / 主体被啃出洞) 时会附一行 ⚠️ 警告 —— 那种结果别直接用。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoauto
qualityNo
image_pathNo
image_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
errorNo
modelNo
metricsNo
warningsNo
mode_usedNo
error_codeNo
checker_evidenceNo
transparent_ratioNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 名单 + 参数默认值表 + 采样率。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
rateNo
errorNo
paramsNo
presetsNo
warningsNo
error_codeNo

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 的本机路径

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNo
rowsNo
trimNo
image_pathNo
frame_widthNo
frame_heightNo
image_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
pathsNo
framesNo
warningsNo
error_codeNo

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊

返回: 本机路径

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
sceneYes
widthNo
heightNo
subjectYes
guidance_scaleNo
num_inference_stepsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
pathNo
seedNo
errorNo
sceneNo
widthNo
heightNo
clampedNo
subjectNo
warningsNo
error_codeNo

TDQS

A4.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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)。不给就让模型自己判 —— 它本来就带语种识别, 只有在把方言听成另一种语言时才需要指定。

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNo
audio_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
textNo
errorNo
sourceNo
languageNo
warningsNo
error_codeNo
audio_secondsNo

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 21 tool updatesv0.5.5
    • First observedactor_tts
    • First observedcontinuity_status
    • First observedcreate_actor
    • First observedcreate_animal
    • First observedcreate_character
    • First observedcreate_object
    • First observeddelete_actor
    • First observeddelete_subject
    • First observedgen_sfx
    • First observedgenerate_image
    • First observedgenerate_music
    • First observedgenerate_speech
    • First observedimport_actor
    • First observedimport_subject
    • First observedlist_actors
    • First observedlist_subjects
    • First observedremove_bg
    • First observedsfx_presets
    • First observedslice_sheet
    • First observedsubject_image
    • First observedtranscribe

TDQS

A3.9/5.0

Scored across 21 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A sophisticated MCP server providing advanced memory capabilities with RAG, hallucination detection, and enterprise-grade AI infrastructure for intelligent agent ecosystems.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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