Continuity
场记 / Continuity
Ein DeepSeek Harness-Plugin, das einem Agenten lokale Bild-/Sprach-/Musik-/SFX-Generierung ermöglicht und sich merkt, was es erzeugt hat — dieselbe Figur bleibt bei jedem Aufruf dieselbe Figur, und eine fehlgeschlagene Generierung darf niemals als Erfolg durchgehen.
Läuft lokal. Modelle werden pro Anfrage lazy geladen und im Leerlauf freigegeben, sodass die GPU unberührt bleibt, wenn du das Plugin nicht nutzt — 0,21 GiB resident, gemessen. Du kannst auf derselben Karte ein Spiel spielen.
场记 ist die Continuity-Supervisorin am Filmset. Ihre gesamte Aufgabe besteht aus zwei Dingen: sicherstellen, dass Kostüm, Frisur und Requisiten zwischen den Takes übereinstimmen, und den Fehler am Set zu erkennen, bevor er in den Film geschnitten wird. Genau das ist die Aufgabe dieses Plugins.
Installation
uvx --from continuity-mcp continuity-setup # preflight → build engines → fetch weights → start
dsh plugin --profile <your-profile> add dsh-plugin-continuitycontinuity-setup prüft die Maschine, bevor es etwas herunterlädt, und dimensioniert die Installation
nach dem, was es vorfindet. Führe zuerst continuity-setup --check aus, um zu sehen, was es tun würde — das liest
die Hardware und ändert nichts:
体检结果:
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 显存)Zwei Details darin existieren, weil die naive Version falsch ist:
Es überspringt
llvmpipe. Der Software-Rasterizer wirbt mit 30,9 GiB „VRAM" (es ist dein Arbeitsspeicher) und würde jeden „wähle die größte Karte"-Wettbewerb gewinnen. Alles würde dann auf der CPU laufen — funktionierend, völlig normal aussehend und unbrauchbar langsam.Es wählt nach freiem VRAM aus, begrenzt nach Gesamt-VRAM. Auf der Maschine oben hat die 24-GiB-Karte 1,4 GiB tatsächlich frei, weil ein anderer Prozess sie hält; eine Auswahl nach Größe würde sie wählen und dann OOM auslösen. Aber „ist diese Karte gut genug" ist eine Hardware-Frage, daher wird dafür der Gesamtwert verwendet — sonst würde eine 16-GiB-Karte abgelehnt, nur weil ein Spiel geöffnet ist.
Related MCP server: Voice-AGI MCP Server
Mindestanforderungen
Minimum | Hinweise | |
GPU | 8 GiB VRAM | Spitze ist 6,80 GiB (gemessen). Anfragen werden serialisiert, die Spitze ist also ein Modell, nicht die Summe. |
GPU-API | Vulkan 1.2+ | Kein CUDA, kein ROCm. Kernel werden zur Laufzeit als SPIR-V kompiliert. |
Festplatte | 30 GiB während der Installation, 19,5 GiB danach | 17,4 Gewichte + 2,1 Laufzeit-Image + 8,5 Build-Layer (wiederverwertbar). |
Arbeitsspeicher | 16 GiB (8 GiB nutzbar — siehe unten) | Bestimmt durch transiente Spitzen, nicht durch den Leerlauf. |
CPU | beliebiges x86-64 | Hintergrundentfernung läuft auf der CPU. |
Nur-Audio-Installationen (siehe unten) benötigen 20 GiB während der Installation, 9,5 GiB danach.
Alle VRAM/RAM-Angaben auf dieser Seite sind GiB (2³⁰ Bytes), was rocm-smi und
vulkaninfo melden. Eine frühere Version dieser README bezeichnete sie als GB; das war falsch und
ließ den Spielraum enger erscheinen, als er ist.
Vulkan statt CUDA ist keine Präferenz — es ist der Grund, warum das überhaupt läuft. ROCm berechnet die VAE-Dekodierung auf dieser GPU-Klasse falsch (ROCm#6633): fünf Dekodierungen identischer Eingaben lieferten fünf gegenseitig unkorrelierte Ergebnisse. Vulkan/RADV kompiliert SPIR-V zur Laufzeit, statt eine pro-Architektur-Kerneltabelle nachzuschlagen, und ist hier korrekt und schneller. Der Nebeneffekt ist Portabilität über alle drei Hersteller.
GPU-Hersteller
Wie der Container die GPU erhält | Status | |
AMD |
| Getestet (RX 7800 XT, RX 7900 XTX) |
Intel |
| Ungetestet |
NVIDIA |
| Ungetestet |
Ich habe nur AMD-Karten, daher werde ich nicht mehr behaupten. Nichts im Code ist
AMD-spezifisch — kein CUDA, kein ROCm, kein HIP, kein /dev/kfd, keine gfx-Ziele — und ggmls Vulkan-Backend
wird auf NVIDIA breit eingesetzt. Aber „breit eingesetzt" ist nicht „ich habe es verifiziert".
Der NVIDIA-Pfad ist eine wirklich andere Verdrahtung, nicht nur eine andere Karte: NVIDIAs Vulkan-ICD
lebt im Host-Treiber und muss von nvidia-container-toolkit injiziert werden, wobei
NVIDIA_DRIVER_CAPABILITIES graphics enthalten muss — die Standardwerte compute,utility liefern dir
funktionierendes CUDA und eine leere Geräteliste in Vulkan. continuity-setup erkennt NVIDIA, verwendet
das richtige Compose-Overlay und teilt dir mit, dass der Pfad unverifiziert ist. Berichte in beide Richtungen sind willkommen.
Arbeitsspeicher im Detail
Der Leerlauf ist vernachlässigbar; die Spitzen bestimmen die Maschinengröße.
Vorgang | Spitzen-RSS |
Leerlauf | 0,52 GiB |
Musik | 0,50 GiB |
Sprache | 1,63 GiB |
Bild (1024²) | 4,94 GiB |
| 7,74 GiB |
| 1,33 GiB |
Die Hintergrundentfernung ist die Obergrenze, und ihre Kosten sind unabhängig von der Eingabegröße — 256 / 512 / 1024 px erreichen alle eine Spitze von ~6,8 GiB, weil BiRefNet mit einer festen internen Auflösung läuft.
Auf 16 GiB funktioniert alles. Unter 12 GiB setzt continuity-setup den Standard auf
quality="fast" (u2netp): Die Spitze fällt auf 1,33 GiB und es läuft in 0,6 s statt 7,2 s. Bei einem
typischen Game-Sprite sind die beiden mit bloßem Auge schwer zu unterscheiden — nebeneinander über einem Magenta-Hintergrund
mit gezoomten Kanten geprüft. best bleibt der Standard, wo Platz ist, weil sich die Modelle
im Prinzip bei feinen Kanten unterscheiden (Haare, halbtransparente Ränder), aber betrachte fast
als legitime Wahl statt als degradierten Fallback.
Was sich an deinen VRAM anpasst, und was nicht
Drei Dinge skalieren mit der Karte. Alle drei Schwellenwerte sind gemessen, nicht geraten:
Kleine Karte | Große Karte | Warum | |
Welche Hälfte installiert | nur Audio (<8 GiB) | Bild + Audio | Bildgenerierung erreicht eine Spitze von 6,80 GiB und es gibt keine Möglichkeit, sie zu verkleinern — siehe unten |
Audio vor Bild entladen | ja (<12 GiB) | nein | Audiomodelle bleiben resident; Bild zusätzlich dazu erreicht eine Spitze von 7,84 GiB statt 6,80 |
Referenz-Audio-Limit | 15 s (<12 GiB) | 30 s | Referenzaudio kostet ~0,19 GiB pro Sekunde |
Die Nur-Audio-Stufe ist ein echtes Produkt, kein Trostpreis: Stimmen besetzen, Dialog, Musik, SFX und Ausschneiden funktionieren alle, und es passt bequem in 4 GiB.
Was sich nicht anpasst: das Bildmodell. Quantisierung bewegt den VRAM überhaupt nicht — Q4_0 (2,29 GiB Gewichte) erreicht eine Spitze von 6,60 GiB, Q8_0 (4,01 GiB) 6,59 GiB, identisch. Eine niedrigere Auflösung hilft auch nicht (512 / 768 / 1024 erreichen alle dieselbe Spitze; nur die Zeit ändert sich). Der Engpass ist der 8 GiB große, unquantisierte 4B-Text-Encoder, nicht das Diffusionsmodell. Es gibt also keine „mittlere" Bildstufe anzubieten, nur installiert oder nicht. (Q4_0 wird trotzdem mitgeliefert — gleicher VRAM, 1,7 GiB weniger Festplatte.)
Unter 8 GiB für Bilder zu gehen bedeutet, den Text-Encoder oder die Modellfamilie zu ändern. Das ist
möglich, verschiebt aber die Identitätsverankerung von nativem ref_images zu IP-Adapter, was
hier nicht verifiziert ist — und Identitätsverankerung ist der ganze Sinn.
Null-Residenz
Gemessen auf einer RX 7800 XT ohne sonstige Last auf der Karte:
GPU | |
Leerlauf | 0,21 GiB |
während Bildgenerierung | 6,80 GiB |
2 s nach Abschluss | 0,21 GiB |
während TTS | 2,39 GiB |
120 s nach TTS | 0,21 GiB |
Bilder sind kostenlos: Die Engine streamt Gewichte pro Anfrage und hält sie nie resident.
Audio wird durch einen Leerlauf-Timer freigegeben (AUDIO_IDLE_UNLOAD_S, Standard 120 s) — nicht sofort,
weil jemand, der zehn Zeilen hintereinander vertont, nicht jedes Mal einen Neuladevorgang bezahlen sollte. Neuladen kostet
nichts Messbares: Dieselbe TTS-Anfrage dauerte kalt und warm 3,0 s, weil die Gewichte mmap'd sind und im Page Cache liegen.
Anfragen werden serialisiert, also Spitze = das einzelne größte Modell. Das Schließen des Agenten gibt den VRAM ebenfalls frei — der MCP-Server entlädt beim Beenden, statt die Engines damit halten zu lassen.
Zwei Dinge, die es tatsächlich tut
1. Identität überlebt Aufrufe. Generierungs-Backends sind zustandslos: Frage zweimal nach derselben Figur und du bekommst zwei Personen, die sich lediglich ähneln. Gemessen mit Qwen3-TTS, vier Zeilen aus einer Stimmbeschreibung:
Tonhöhen-Streuung über 4 Zeilen | |
direkt an das Modell (Standard-Sampling) | 125 Hz |
direkt an das Modell, gierige Dekodierung | 242 Hz — schlechter |
durch Continuity (verankerte Referenz) | 5 Hz |
Bei gieriger Dekodierung ist der Seed nachweislich wirkungslos — die Seeds 5 / 99 / 777 erzeugten einen identischen
sha256 — also wurde die Zufälligkeit vollständig eliminiert, und es driftete trotzdem um 242 Hz. Identität ist eine
Funktion des Eingabetextes, nicht der Zufallsziehung. temperature=0 und top_k=1 können das
nicht beheben. Nur die Verankerung an einem Referenzartefakt kann es.
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 / outfitIdentität und Garderobe sind getrennt: Verankere Gesicht und Körperbau, dann ändere die Kleidung im Szenen-
Prompt. Eine Referenz in einem Indigo-Gewand, gebeten um wearing heavy red armor, kommt in
Rüstung mit demselben Gesicht zurück.
Hast du deine Figur woanders schon besetzt? import_actor und import_subject verankern ein
Artefakt, das du lieferst — eine echte Sprachaufnahme, einen ElevenLabs-Clip, ein Charakterblatt aus einem
anderen Tool — und alles nachgelagerte verhält sich identisch. Audio wird für dich auf 24 kHz
Mono normalisiert (44,1 kHz Stereo als Eingabe, verifiziert: Referenz-f0 identisch, und ein importierter Actor
folgt einem nativ besetzten bis auf 11 Hz).
2. Degenerierte Ausgaben werden abgelehnt. Ein Backend, das falsch rechnet, liefert eine perfekt wohlgeformte All-Null-WAV oder ein flaches graues PNG mit HTTP 200. Jedes Artefakt wird geprüft (Bild-Standardabweichung, Audio-RMS, nicht-finite Samples), und der Aufruf schlägt laut fehl, statt Erfolg über Müll zu melden. Ausschnitte erhalten zusätzlich einen Qualitätsbericht — größtenteils transparent, nichts entfernt, Subjekt in Fragmente zersplittert, Löcher durch das Subjekt gefressen — jeweils mit einer spezifischen Warnung statt eines stillen Durchwinkens.
Plus remove_bg: Diffusionsmodelle zeichnen „transparenten Hintergrund" als undurchsichtiges Schachbrettmuster;
das verwandelt es in einen echten RGBA-Ausschnitt, den Sprites benötigen. Und gen_sfx, das prozedural
sfxr-artige Game-SFX synthetisiert — bit-identisch für einen gegebenen Seed, Millisekunden, keine GPU —
weil ein Diffusionsmodell das falsche Instrument für einen 40-ms-Münz-Pickup ist.
Tools
19 Tools. Alles gibt absolute lokale Dateipfade zurück, keine URLs — der Agent und die Engines befinden sich auf derselben Maschine, sodass ein Pfad direkt in dein Spielprojekt gehen kann, ohne Download-Schritt, und es gibt keinen Dateiserver, den man betreiben oder falsch konfigurieren müsste.
Stimme |
|
Optik |
|
Audio |
|
Post |
|
Meta |
|
generate_image und generate_speech existieren für einmalige Vorgänge und sagen dies in ihren eigenen Beschreibungen: Sie teilen dem Agenten explizit mit, dass das, was sie erzeugen, beim nächsten Aufruf nicht zurückkommt, und verweisen für alles Wiederkehrende auf die Pinning-Werkzeuge.
Grenzen und warum jede einzelne existiert
Jede Zahl hier ist eine gemessene Fehlergrenze, keine Richtlinie.
Grenze | Wert | Was darüber hinaus passiert |
Zeilenlänge | 200 Zeichen | 600 Zeichen klemmten die GPU: |
Referenz-Audio | 15 s / 30 s | ~0,19 GiB VRAM pro Sekunde: 15 s → 6,59 GiB, 30 s → 9,04 GiB. Darüber hinaus wird die Stimme zum Engpass statt des Bildes. |
Casting-Skript | 45 Zeichen | Es erzeugt das Referenz-Audio, das bei jeder späteren Zeile erneut gelesen wird. Die Zeichenanzahl ist ein schlechter Näherungswert (60 Zeichen ergaben gemessene 19,1 s, nicht die 13,7 s, die das Verhältnis vorhersagt), daher wird die tatsächliche Dauer nach dem Casting geprüft und gemeldet. |
Bildgröße | 1024 px | 1280 trieb den VRAM auf 14,5/16,4 GiB; 2048 versetzte den Treiber in |
Musiklänge | 120 s | Keine Sicherheitsgrenze: Die Engine kürzt bei 120 s stillschweigend und meldet Erfolg. Die Grenze macht daraus ein explizites |
Importiertes Audio unter 24 kHz wird akzeptiert, aber markiert: Hochsampling kann die Oktave, die verworfen wurde, nicht wiederherstellen, daher kommt der Klon matter heraus als die Datei, die du gegeben hast. Das verdient eine Warnung statt eines stillen Durchwinkens — es ist dieselbe Fehlerform wie alles andere, das dieses Plugin abfangen soll.
Übergroße Eingaben werden bewusst nach Typ unterschiedlich behandelt. Ein zu großes Bild wird verkleinert und das Ergebnis wird dir zurückgemeldet (原图 2400x1600 → 存为 1024x682) — ein skaliertes Bild zeigt immer noch dasselbe. Referenz-Audio, das zu lang ist, wird abgelehnt, nicht gekürzt: Das Abschneiden des Endes würde das Transkript hinterlassen, das etwas beschreibt, das das Audio nicht mehr sagt, und genau auf dieser Übereinstimmung beruht das Klonen. Stilles Kürzen würde dir einen Actor liefern, der erfolgreich importiert wurde und wie jemand anderes klingt.
Eigenes Backend mitbringen (optional)
Lokale Engines sind die Standardeinstellung, aber jedes Backend ist eine URL (SD_SERVER, AUDIO_SERVER). Richte sie auf deinen eigenen Server aus und die lokalen Modelle werden nie geladen. Eine Einschränkung, wenn du das tust: Die Audio-Engine löst den Referenz-Audio-Pfad selbst auf, daher muss sie dasselbe Actors-Verzeichnis sehen (gleiche Maschine oder ein gemeinsames Mount).
Das Bild-Backend muss ein Referenzbild akzeptieren (FLUX.2-artige native ref_images, IP-Adapter oder PuLID für Gesichter). Ohne das kann Identitäts-Pinning nicht funktionieren — und das Plugin sagt das, statt stillschweigend zu degradieren.
Stand der Technik
Eine Untersuchung des aktuellen MCP-Ökosystems — MiniMax-MCP, openrouter-mcp-multimodal, AtlasCloud, die dsh-Vision/Draw-Plugins und vier Game-Asset-Server — fand Sprachklonen in mehreren, visuelles Subjekt-Pinning in keinem und Ausgabeverifizierung in keinem.
Layout
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 manifestLizenz
MIT
Available Tools
21 toolsactor_ttsA
让某个已铸声的角色说一句台词, 音色与他之前每一句都一致。
做游戏 NPC 对白用这个, 不要用 generate_speech —— 后者每句音色会漂。 角色不存在会告诉你先去 create_actor。
参数: actor: 角色名(create_actor 时定的) text: 台词, 上限 200 字(约 45 秒), 超出截断 speaking_rate: 语速倍率(可选) seed: 随机种子(可选)
返回: 24 kHz 单声道 WAV 的本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| text | Yes | ||
| actor | Yes | ||
| speaking_rate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| actor | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| max_chars | No | |
| truncated | No | |
| consistent | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden and does well: it discloses the consistency guarantee, text truncation at 200 chars (~45s), the actor-not-found error behavior routing to create_actor, and the return format (24 kHz mono WAV path). It does not mention latency, cost, or concurrency, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the key routing decision, then parameters and return value in clearly delineated sections. Every line earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value detail is optional (though provided). With no annotations and 0% schema coverage, the description successfully covers purpose, routing, all params, error behavior, and output format. Minor gaps around speaking_rate/seed ranges and operational limits prevent a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must document params and it does all four: actor (name from create_actor), text (200-char cap, truncation), speaking_rate (rate multiplier), seed (random seed). The last two are thin — no valid ranges — so it compensates well but not exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('make an already-cast actor speak a line') and a distinctive property (timbre consistency across every line). It explicitly names and contrasts with the sibling generate_speech, so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('game NPC dialogue'), when-not ('don't use generate_speech — its timbre drifts per line'), and a prerequisite path (if the actor doesn't exist, it tells you to create_actor first). Alternatives and conditions are fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
continuity_statusA
本插件当前的状态: 两个引擎在不在、哪些能力开着、资产存在哪。
某个工具"不存在"时先看这里 —— 显存不够的机器上生图那半是被安装脚本关掉的, 不是坏了。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| audio | No | |
| error | No | |
| image | No | |
| actors | No | |
| subjects | No | |
| warnings | No | |
| state_dir | No | |
| engines_ok | No | |
| error_code | No | |
| engines_down | No | |
| setup_needed | No | |
| idle_unload_s | No | |
| cutout_quality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无 annotations,描述承担行为说明责任;它说明了状态涵盖引擎、能力和资产位置,并主动解释“工具不存在”可能是被安装脚本关闭而非故障。这提供了有用诊断上下文,但未明说只读/无副作用等安全属性。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
两句话,先总述状态内容,再给出故障排查指引;信息前置,无冗余,每句都有明确作用。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
存在输出 schema,因此无需描述返回值;工具无参数且用途简单。描述已覆盖状态范围与关键使用场景,信息完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
该工具无参数,输入 schema 为空且覆盖率为 100%。无参数工具的参数语义基线为 4,描述无需补充参数含义。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明确说明这是本插件当前状态工具,并列出返回内容:两个引擎是否存在、哪些能力启用、资产存放位置。它与所有创建/生成/导入类兄弟工具在用途上明显不同,代理可据此区分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
给出明确使用时机:当某个工具“不存在”时先查这里;还解释了常见原因(显存不足导致生图能力被安装脚本关闭)。但没有列出何时不用或替代工具,故非满分。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_actorA
给一个角色铸声(定妆), 之后用 actor_tts 让他说任意台词都保持同一个音色。
为什么要有这一步: 直接用文字描述合成语音, 那段描述只圈定一个大致的音色区间, 区间内每句台词各漂各的 —— 实测同 voice 同 seed 四句台词基频极差 125 Hz, 关掉采样走贪心反而涨到 242 Hz(音色是文本的函数, 不是采样随机性, 锁 seed 或 temperature 都锁不住)。本工具先用 voice 描述生成一段参考音, 之后所有台词 改由克隆模型照着这段参考音说, 音色与台词内容无关。实测极差降到 5 Hz。
重要: 铸完请先听那段试音, 确认是不是你要的那个人。铸砸了会把整个角色锁死在 错的音色上, 而且它之后每一句都错得很一致。不满意就 force=true 重铸。
参数: name: 角色名(字母/数字/下划线/连字符/中文, 1~40 字), 之后 actor_tts 用它指代 voice: 声音的自然语言描述, 英文效果最佳。写年龄/性别/音色/语速/情绪, 例如 "An elderly Chinese man, gravelly chest voice, commanding" sample_text: 铸声用的台词(可选)。默认用一段覆盖面较广的中文 seed: 随机种子(可选) force: 覆盖已有角色。会让该角色之前所有台词的音色对不上, 慎用
返回: 试音片段的本机路径 —— 先听再用
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| voice | Yes | ||
| sample_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| truncated | No | |
| error_code | No | |
| transcript | No | |
| ref_seconds | No | |
| imported_from | No | |
| source_format | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the output (a local path to the audition clip) and the consequential side effect of force=true (previously generated lines no longer match). It stops short of stating what happens if name already exists without force (error vs. reuse), so one behavioral gap remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence and the parameter block are front-loaded and tight. The middle 'why' paragraph justifies the tool's existence but spends several sentences on 125 Hz/242 Hz/5 Hz measurements, which is more evidence than an agent needs to make a selection decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained in prose (the description still notes the audition path usefully). For a 5-parameter mutation tool with zero schema coverage and no annotations, the description supplies the operational context needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate entirely – and it does. All five parameters are explained: name with charset/length constraints, voice with a concrete English example and content guidance, sample_text with its default, seed, and force with its destructive consequence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('给一个角色铸声(定妆)' – mint/cast a voice for a character) and immediately distinguishes itself from the sibling it feeds into ('之后用 actor_tts 让他说任意台词'). An agent can tell this apart from actor_tts, import_actor, or generate_speech without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use it: before actor_tts, to lock a stable timbre, and force=true to re-cast. It gives a clear workflow position but doesn't name alternative casting routes (import_actor, create_character) or say when those would be preferred instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_animalA
给一只动物/坐骑/灵兽定妆, 之后每张图它都是同一只。
appearance 里必须写死这几样:
物种 + 体型比例(腿长/身长/头身比)
毛色/羽色 + 花纹的分布位置(不是只说"有斑点", 要说斑点在哪)
耳朵、尾巴、翅膀的形状
显著特征(独角/断尾/眼色) 鞍具、缰绳这类可穿卸的东西和人物的服装同理: 写进 appearance 只是默认值, scene 里可以换掉。不要写场景和动作。
定完先看定妆图, 不满意 force=true 重定。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| width | No | ||
| height | No | ||
| appearance | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it explains that appearance values are hardcoded defaults that can be overridden in scene (for removable gear and clothing), and that force=true triggers a re-design. It omits persistence/side-effect details (does this register a reusable subject that list_subjects/subject_image later reference?) and does not mention deterministic seeding behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then an efficient bulleted list of required appearance fields, then the override rule and the force workflow. Every line contributes, though the removable-gear/clothing aside adds slight length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the appearance/override/force semantics are well covered. Gaps remain around the image-generation parameters and whether the created animal becomes a reusable referenced subject, but the core workflow is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It thoroughly explains 'appearance' (exactly which attributes to specify) and 'force', but leaves seed, width, height, guidance_scale, and num_inference_steps entirely undocumented in both schema and description. Partial compensation warrants a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (create/lock the design of an animal, mount, or spirit beast) and the concrete outcome (every subsequent image shows the same creature), which is a distinct purpose from the animal/character/object siblings. An agent can tell this is the animal-design tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear workflow guidance: design first, inspect the resulting design image, and rerun with force=true if unsatisfied. It also implicitly scopes out scene/action content ('不要写场景和动作'). It stops short of explicitly naming which sibling to use for scenes or characters, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_characterA
给一个人物定妆(生成并存下参考图), 之后 subject_image 出的每张图长相都一致。
为什么要有这一步: generate_image 每次给的是"长得不一样的人"。同一个角色的头像 / 战斗立绘 / 地图小人, 直接用文字描述生成出来是三个人。
appearance 分两部分, 分清楚很重要:
(1) 身份 —— 必须写死, 漏掉的每一项模型都会自己编, 而且每张编得不一样:
年龄段 + 体型(高瘦/魁梧/矮壮)
脸: 脸型、显著特征(疤/须/眉眼)
发型 + 发色 + 束发方式
辨识物: 跟着这个人走、换装也不摘的东西(独眼罩/佩剑/护腕/胎记)
(2) 默认服装 —— 只是个基线, 不是身份的一部分。照样写进 appearance, 但 subject_image 的 scene 里写新衣服就能换掉(实测: 定妆穿布袍, scene 写 "wearing heavy red armor" 能换成甲胄而脸不变)。所以一个角色不需要按套装 定妆很多次。
不要写场景、动作、表情 —— 那些留给 subject_image 的 scene。
定完先看返回的定妆图确认是不是你要的人; 定砸了会把整个角色锁死在错的长相上, 不满意就 force=true 重定。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| width | No | ||
| height | No | ||
| appearance | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses that this persists a locked-in appearance that governs all future subject_image output, that a bad result locks the whole character into the wrong look, and that force=true is the re-roll escape hatch, plus an instruction to verify the returned reference image. It is silent on the non-appearance generation knobs (seed, guidance_scale, steps, size) and on collision behavior when a name already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded – the one-line purpose precedes the rationale and the field guidance – and structured into clearly labeled sub-sections that an agent can scan. It is on the long side, and the illustrative anecdote about the robe-to-armor swap could be trimmed, but essentially every sentence carries usable instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not owed, and the description correctly just tells the agent to inspect the returned reference image. Combined with the purpose, usage and appearance guidance, an agent can call this correctly; the gaps are the undocumented generation parameters and name-collision behavior rather than anything blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so richly for the two most important parameters: `appearance` is decomposed into identity vs. default clothing with a concrete list of what must be pinned down, and `force` is defined as the re-create/override switch. The other five parameters (seed, width, height, guidance_scale, num_inference_steps) receive no semantics at all, leaving a substantial documentation hole.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource ('给一个人物定妆' – generate and persist a character reference) and immediately contrasts it with generate_image and subject_image, so the agent knows it is not a one-off image generator. It does not, however, differentiate itself from the parallel siblings create_actor / create_animal / create_object, which is the one ambiguity left.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit about when to use it (whenever a character must stay visually consistent across many images), what to use instead for one-offs (generate_image), and what NOT to put in this call ('不要写场景、动作、表情' – leave those to subject_image's scene). It even gives a worked example of swapping clothing via scene without re-creating the character, which is exactly the when/when-not guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_objectC
给一件道具/物件定妆, 之后每张图它都长一个样, 换角度也不变。
物件最容易漂的是几何, 不是材质配色 —— 实测一个宝箱, 材质配色五金件都对得上, 盖子却一会儿是平的方的、一会儿是拱的圆的, 因为原始描述里压根没写盖子什么形状。
appearance 里必须写死这几样:
整体轮廓 + 比例(长方/立方/圆桶, 宽高比)
关键几何: 盖子平的还是拱的、边角方的还是圆的、侧面直的还是弧的、有没有底座
材质 + 主次配色
五金件/纹饰及其位置(锁扣、包角、铆钉在哪) 不要写场景和角度 —— 角度留给 subject_image 的 scene。
定完先看定妆图, 不满意 force=true 重定。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seed | No | ||
| force | No | ||
| width | No | ||
| height | No | ||
| appearance | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does disclose a real behavioral trait: consistency of the object across images and angles, and that geometry drifts most. It also mentions rerolling with force. But it omits key mechanics: whether this is persistent/long-lived (only 'continuity_status' hints at that), idempotency, cost, or that seed/guidance_scale/steps control determinism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The appearance checklist is genuinely useful and front-loaded, and the scene/angle exclusion is a strong, earned sentence. But the opening anecdote about the treasure chest lid is long and the overall text is padded; it leans more persuasion than spec. Structure is reasonable but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't required. For an 8-param generation tool with no annotations, the description focuses almost entirely on the appearance field and lacks behavioral detail on persistence, determinism, and the many unlabeled generation parameters. Adequate for the creative how-to but thin as a full tool contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must compensate. It only meaningfully covers 'appearance' (extensively, with required content), and touches 'force' for rerolls. It says nothing about name, seed, width, height, guidance_scale, or num_inference_steps — six of eight parameters unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description describes the goal in domain-specific terms ('定妆' = locking in a canonical look for a prop/object so every subsequent image matches it), which clarifies the purpose as creating a persistent object reference. However, it never explicitly states it is the object-creation tool relative to siblings like create_character or create_animal, and the framing is heavily tutorial-flavored rather than naming the operation. The intent is inferable but not crisply stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong guidance on WHAT to put in appearance and what to exclude ('不要写场景和角度 —— 角度留给 subject_image 的 scene'), effectively routing scene/angle work to a sibling. But it gives no guidance on when to use this tool vs. create_character/create_animal, no prerequisites, and the 'force=true' reroll note is the only invocation condition described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_actorB
删掉一个已铸声的角色。不可逆: 参考音不可复现, 重铸出来是另一个人。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| error | No | |
| warnings | No | |
| error_code | No | |
| files_removed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does so well: it explicitly warns that the operation is irreversible (不可逆) and explains the concrete consequence that the reference voice cannot be reproduced and a re-created actor would be a different person. It omits permission/auth requirements, but the destructive consequence is unusually well articulated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, front-loaded with the action and immediately followed by the risk. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a destructive single-parameter tool with no annotations, the description adequately covers purpose, irreversibility and consequence; the main gap is any guidance on how to identify the actor via the name parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter (name) with 0% schema description coverage, and the description adds no information about it whatsoever – no format, matching rule, or identifier guidance. With coverage this low the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (删掉/delete) and a qualified resource (一个已铸声的角色 – a voice-cast actor), which is more precise than a bare 'delete actor'. It does not explicitly distinguish itself from the sibling delete_subject, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as delete_subject or list_actors, and no preconditions for invoking it. The agent must infer usage from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_subjectA
删掉一个已定妆的角色或物件。不可逆: 定妆图不可复现, 重定出来是另一个。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| error | No | |
| warnings | No | |
| error_code | No | |
| files_removed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the key destructive trait: the operation is irreversible and the finalized image cannot be reproduced, so re-finalizing yields a different subject. It omits confirmation requirements, permission needs, and whether dependent assets (images, sheets) are also removed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the destructive/irreversibility warning front-loaded right after the action statement. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the irreversibility warning covers the most important behavior. However, for a destructive tool with no annotations and no parameter documentation, the description should say more about what else is destroyed and how it relates to delete_actor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'name' parameter, and the description adds nothing about it — it never clarifies whether 'name' is a subject name, an ID, or whether it must match exactly. For a destructive identifier parameter, leaving it undocumented is a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (删掉/delete) and resource (一个已定妆的角色或物件 – a finalized character or object), with scope that implicitly distinguishes it from delete_actor by covering subjects of both kinds. Sibling differentiation is only implicit, though; it never names delete_actor or explains why a 'subject' differs from an 'actor'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The qualifier '已定妆的' implies a precondition (only subjects whose look has been finalized) and '重定出来是另一个' hints that re-creation is an option, but there is no explicit when-to-use/when-not guidance and no routing to alternatives such as delete_actor. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageA
生成一张一次性图片 —— 不保证与任何其它图一致。
会重复出现的角色/物件请先 create_character / create_object 定妆, 再用 subject_image 出图。这个工具适合背景板、UI 底图这类只出现一次的东西。
参数: prompt: 图片描述(英文效果最佳) width/height: 上限 1024 seed: 随机种子(可选) reference_image_path: 参考图的本机路径(可选), 传了就是图生图 num_inference_steps: 采样步数(可选, 不传用引擎默认)。多了更精细也更慢 guidance_scale: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊
返回: 本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| width | No | ||
| height | No | ||
| prompt | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No | ||
| reference_image_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| seed | No | |
| error | No | |
| scene | No | |
| width | No | |
| height | No | |
| clamped | No | |
| subject | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the non-deterministic/one-off nature of the output, that reference_image_path switches to image-to-image mode, and the speed/quality tradeoffs of num_inference_steps and guidance_scale. It stops short of covering permission needs, rate limits, cost, or resolution failure modes, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the defining distinction, then the sibling routing, then a compact parameter list, then the return value. Given the 0% schema coverage the parameter section is earned, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations and a 7-param schema with no descriptions, the definition covers scope, alternatives, per-parameter semantics, and even the return value (a local path). An output schema exists, so return details are not strictly required, making this fully sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does: every one of the 7 parameters is explained with meaning beyond type, including the 1024 cap on width/height, the optional seed, the img2img behavior triggered by reference_image_path, and the quality/latency and adherence/artifact tradeoffs of the two sampling params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (生成一张一次性图片) and immediately defines the key scope constraint: the output is not guaranteed consistent with any other image. It explicitly distinguishes itself from create_character, create_object, and subject_image, so an agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both when-not and when-to-use: recurring characters/objects should go to create_character/create_object then subject_image, while this tool is for backgrounds, UI base images, and other one-off assets. The alternative is named with the condition that selects it, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_musicA
生成一段背景音乐(Stable Audio), 返回 WAV 的本机路径。
参数: prompt: 音乐描述(风格/乐器/情绪, 英文效果最佳) seed: 随机种子(可选) duration: 秒数, 上限 120 num_inference_steps: 推理步数(默认 100, 越多越慢)
注意: 出来的是一段有头有尾的音乐, 没有做无缝循环点。要循环播放的 BGM 请自己在编辑器里找循环点, 或把它当作一次性过场音乐。
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| prompt | Yes | ||
| duration | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| error | No | |
| clamped | No | |
| duration | No | |
| warnings | No | |
| truncated | No | |
| error_code | No | |
| requested_duration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It usefully reports that the tool returns a local WAV path, that the output is not seamlessly loopable, that duration is capped at 120 seconds, and that higher inference steps are slower. It does not cover permissions, rate limits, or failure modes, but the core behavioral constraints an agent needs are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, then presents parameters in a compact list, and finishes with an important output caveat. Every part earns its place given the lack of schema descriptions, and there is no wasteful repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still helpfully notes the returned WAV path. With no annotations and 0% schema parameter coverage, the definition compensates by documenting all parameters and the key output limitation. It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all four parameters. It does so clearly: prompt is a music description with English working best, seed is optional random, duration is seconds with a 120 upper bound, and num_inference_steps defaults to 100 with more steps being slower. This adds meaning beyond the bare schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '生成一段背景音乐(Stable Audio), 返回 WAV 的本机路径'. It clearly distinguishes itself from generating speech or sound effects by specifying background music, though it does not explicitly name sibling alternatives such as gen_sfx or generate_speech.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an important usage caveat: the output has a beginning and end with no seamless loop point, so for looping BGM the user must find a loop point or treat it as one-shot transition music. However, it does not explicitly state when to use this tool versus generate_speech, gen_sfx, or other audio-generation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_speechA
一次性旁白 —— 不保证跨句音色一致, 会重复出现的角色请用 create_actor + actor_tts。
适合系统提示音、一次性播报这类"说完就没了"的语音。任何会说第二句的角色都不该 用这个: 同一段 voice 描述的两句台词不是同一个人。
参数: text: 要念的台词, 上限 200 字 voice: 声音的自然语言描述(英文效果最佳), 不传则用中性旁白嗓 seed / speaking_rate: 可选
返回: 24 kHz 单声道 WAV 的本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| text | Yes | ||
| voice | No | ||
| speaking_rate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| actor | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| max_chars | No | |
| truncated | No | |
| consistent | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose key traits: no cross-sentence voice consistency, a default neutral narration voice when `voice` is omitted, a 200-character cap, and the output format (24 kHz mono WAV, local path). It does not mention determinism, cost, or latency, so it stops short of exhaustive, but the critical gotcha (voice instability) is stated up front.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the differentiating constraint before any parameter detail, then uses a clean parameter block and a one-line return note. The extra sentence reinforcing the 'second line' rule is slight redundancy but functions as a strong routing heuristic, so it earns most of its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter generation tool with no annotations and a rich sibling set, the description supplies the routing rule, the character-limit constraint, default behavior, and output artifact. With an output schema present it did not need to describe the return, yet the one-line WAV note costs little and removes ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: `text` gets a 200-character limit, `voice` is explained as a natural-language description with English working best and a documented default, and both are the semantically important ones. `seed` and `speaking_rate` are only labeled '可选' with no explanation of what seed controls, leaving a partial gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (one-shot narration generation) and immediately scopes it: '一次性旁白 —— 不保证跨句音色一致'. It explicitly names the sibling route (create_actor + actor_tts) that handles the case it does not cover, so an agent can distinguish it from the voice/actor tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both a positive use case (system prompts, one-off announcements, '说完就没了' audio) and an explicit exclusion ('任何会说第二句的角色都不该用这个'), plus the concrete alternative to use instead. This is exactly the when/when-not/alternative structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gen_sfxA
合成一枚 sfxr/jsfxr 风格的游戏音效(纯程序化, 不用模型), 返回 WAV 路径。
不要用 generate_music 做音效: 那是扩散模型, 出来的是几十秒的宽带糊音。游戏音效 是 10~200ms 的瞬态, 要精确、即时、可复现 —— 本工具毫秒级出结果, 同 seed 逐字节可复现, 而且完全不占显存。
参数: preset: jump / coin / hit / explosion / powerup / laser / select / hurt seed: 随机种子。给了就在 preset 周围抖动参数(不是抖采样点), 同 seed 结果完全相同; 不给则严格使用 preset 的原始参数。 base_freq: 覆盖基频 Hz (noise 波形下是采样保持的刷新率) wave: 覆盖波形 square / saw / sine / triangle / noise overrides: 覆盖任意合成参数的字典, 例如 {"freq_slide": -3.0, "release": 0.4, "lpf": 0.5, "duty": 0.25} 可覆盖的完整字段名和默认值: 调 sfx_presets()
返回: 44.1kHz 16bit 单声道 WAV 的本机路径。结构化返回里的 params 是这一枚音效 用到的全部合成参数 —— 拿它加一点改动再调一次, 就能做出一整组同族音效。
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wave | No | ||
| preset | No | select | |
| base_freq | No | ||
| overrides | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| seed | No | |
| wave | No | |
| error | No | |
| params | No | |
| preset | No | |
| duration | No | |
| warnings | No | |
| base_freq | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses millisecond-level latency, byte-identical reproducibility under a fixed seed, no model/VRAM usage, and the exact output format (44.1kHz 16bit mono WAV path). It stops short of stating file-write/overwrite behavior or where artifacts land, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose then contrast, then a clean params/return block; every section earns its place. Minor redundancy in reiterating seed reproducibility ('同 seed 结果完全相同' and '同 seed 逐字节可复现'), but overall tight and well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 params with zero schema coverage, a nested overrides object, an existing output schema, and no annotations, the description is complete enough for correct invocation: all inputs are explained, the output artifact and its structured params are described, and reproducibility semantics are stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and it does: it enumerates preset and wave values, explains seed semantics precisely (jitter around the preset's parameters, not sample points; identical seed yields identical output), defines base_freq incl. its meaning under noise, and points to sfx_presets() for valid overrides keys with a worked example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (synthesize a programmatic sfxr/jsfxr-style game sound effect) and immediately distinguishes itself from the sibling generate_music. An agent can tell exactly what it produces and what it does not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (generate_music) and the condition that rules it out: diffusion music is tens-of-seconds broadband mush, whereas game SFX are 10~200ms transients needing precision and immediacy. This is textbook when-to-use/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_actorA
用一段现成的录音铸声 —— 声音是别处做的(真人录音 / 其它 TTS)也照样能保持一致。
和 create_actor 得到的东西完全一样, 只是参考音由你提供而不是我们生成。之后 actor_tts 让他说任意台词, 音色都来自这段录音。
参数: name: 角色名, 之后 actor_tts 用它指代 audio_path: 录音的本机路径。16-bit PCM WAV, 2~30 秒, 单人清唱式的干净人声 最好(没有背景音乐和混响)。采样率/声道数会自动转成 24 kHz 单声道。 其它格式先转: ffmpeg -i 原文件 -acodec pcm_s16le -ac 1 -ar 24000 ref.wav transcript: 那段录音里念的是什么。不给就自动听写一遍填上, 但那是机器听的, 会在返回里标出来让你核 —— 克隆模型拿它对齐音频和文字, 错一个词 音色就会明显不对。手上有准确的文字就直接给, 别让它猜。 force: 覆盖已有角色
注意: 你有权使用这段声音才导入它。克隆一个真人的嗓子在很多地方是需要本人同意的。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| force | No | ||
| audio_path | Yes | ||
| transcript | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| voice | No | |
| warnings | No | |
| truncated | No | |
| error_code | No | |
| transcript | No | |
| ref_seconds | No | |
| imported_from | No | |
| source_format | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
由于未提供 annotations,描述承担了全部说明责任,且完成得非常好:它详细说明了音频格式约束(16 位 PCM WAV、2–30 秒、尽可能为干净的单人无伴奏人声)、自动转换行为(转为 24 kHz 单声道)、ffmpeg 回退命令、自动转录标注质量警告、force 覆盖行为以及同意/授权注意事项。这远超 schema 和 annotations 所包含的信息。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
开篇一句话简洁地前载了核心目的,随后用带标签的段落解释参数和注意事项。篇幅合理,每句话都提供了有用信息,但 ffmpeg 命令和转录警告略长。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
对于一个包含 4 个参数、无 annotations、0% schema 描述覆盖率的变更工具,描述提供了智能体正确调用所需的一切:用途、与兄弟工具的关系、每个参数的含义、输入格式要求、自动转换行为,以及授权注意事项。由于存在 output schema,无需再解释返回值。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
schema 描述覆盖率为 0%,因此描述必须弥补这一差距;它确实做到了,为全部四个参数提供了含义:name(供 actor_tts 引用)、audio_path(本地路径及格式和时长规格)、transcript(用于克隆模型对齐,自动生成内容会被标记供审查)和 force(覆盖已有角色)。这已远超 schema 中裸属性名称所提供的内容。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明确说明了动作(从一段现成录音铸造声音)和资源(角色),并直接说明它与 create_actor 的区别——唯一区别在于参考音频是由用户提供而非系统生成。这使智能体无需查看任一 schema 即可将其与同名资源类兄弟工具区分开来。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
清楚地说明了后续流程(actor_tts 稍后通过名称引用该角色),并给出何时提供 transcript 与让系统自动听写的条件。缺少与 import_subject 等同类导入工具的明确对比,但对于何时使用此工具已足够清晰。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_subjectA
用一张现成的图定妆 —— 角色/物件是别处画的也照样能保持一致。
和 create_character / create_object 得到的东西完全一样, 只是定妆图由你提供。 之后 subject_image 让它出任意场景图, 外观都来自这张图。
参数: name: 名字, 之后 subject_image 用它指代 image_path: 参考图的本机路径。要求和我们自己生成的定妆图一样: 单个主体、 正面或四分之三视角、背景干净、看得全。一张有场景有动作的插画 当参考图, 场景会跟着一起被复制过去。 appearance: 这是什么的文字描述 —— 必填, 它会被拼进之后每一张场景图的提示词。 只给参考图而不给描述, 模型对"这是什么"没有着落, 外观照样会漂。 写法同 create_character / create_animal / create_object 的要求。 kind: character / animal / object force: 覆盖已有的
大图会缩到 1024 以内; 带透明通道的图会转成 RGB(透明区交给引擎会变成黑块)。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | character | |
| name | Yes | ||
| force | No | ||
| appearance | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| kind | No | |
| name | No | |
| seed | No | |
| error | No | |
| resized | No | |
| warnings | No | |
| appearance | No | |
| error_code | No | |
| source_size | No | |
| stored_size | No | |
| imported_from | No | |
| reference_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it delivers real behavioral detail: images over 1024 are downscaled, alpha channels are converted to RGB (transparency becomes black), and force overwrites an existing subject. It also warns that a scene-containing reference will replicate that scene. Missing permission/auth or failure-mode disclosure keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose before dropping into a structured 参数 list, and each parameter note earns its place with actionable detail. Slightly long, but the length is justified by the 0% schema coverage it has to make up for.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description covers overwrite semantics, image preprocessing, and reference-image constraints; the existence of an output schema means return values need not be explained. Auth/permission requirements and error behavior remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents every one of the five parameters: name (used later by subject_image), image_path (with concrete requirements: single subject, front or 3/4 view, clean background, fully visible), appearance (required, injected into every subsequent scene prompt, with a warning about drift if omitted), kind, and force.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (import a ready-made image to define a subject's look) and explicitly distinguishes it from siblings: the result is identical to create_character/create_object, only the reference image is user-supplied. An agent can tell it apart from create_character without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the workflow context clearly: use this when you already have a reference image, then subject_image generates arbitrary scene images whose appearance derives from that image. The comparison to create_character/create_object implicitly covers the alternative, though it never states an explicit when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actorsB
列出已铸声的角色(名字 + 当初的声音描述 + 铸声时间)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | No | |
| error | No | |
| actors | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. '列出' implies a read-only, non-mutating operation, and the parenthetical clarifies the returned content, but there is no mention of ordering, pagination, permissions, or what an empty result means. Adequate but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It's efficient, though the parenthetical return-field list is somewhat redundant given an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool with an output schema, the description supplies enough for correct invocation: it identifies the resource and the data returned. Only the lack of any routing hint against sibling list tools keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly adds nothing about inputs, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (列出/list) with a scoped resource (已铸声的角色 – characters that have had voices cast) and even enumerates the returned fields. It's clearly distinguishable from create_actor/delete_actor, but it does not explicitly differentiate itself from the nearby list_subjects sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives such as list_subjects or actor_tts. Usage is only inferable from the verb 'list', which is weak for a tool with this many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subjectsA
列出已定妆的角色、动物和物件。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | No | |
| error | No | |
| subjects | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 列出 implies a read-only list operation, which gives basic safety context, but it does not disclose pagination, return size, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the core action and scope with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with an output schema, the description is nearly complete: it names the resource and the finalized-only scope. A brief note on how it relates to sibling listing tools would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description does not need to compensate for any schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (列出) and resource (角色、动物和物件), and the qualifier 已定妆 narrows the scope. It is clear enough to distinguish from generic subject listing, but it does not explicitly contrast itself with siblings such as list_actors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool lists finalized characters, animals, and objects. There is no explicit when-to-use guidance, no exclusions, and no mention of alternatives like list_actors for unfinalized actors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_bgA
抠掉图片背景, 输出真正带 alpha 通道的 RGBA PNG。
生图模型画不出 alpha: 你让它画"透明背景", 它是把 PS 那种灰白棋盘格当成不透明 像素画出来的。做游戏精灵图必须用本工具把它转成真的 RGBA。
参数: image_path: 图片的本机路径(其它工具返回的路径可直接用) image_base64: 或者直接给 base64 mode: auto (默认, 按结构证据判断是不是棋盘格: 恰好两级灰度 + 周期方格; 不是就走 通用抠图) / checker (强制只抠棋盘格) / rembg (强制通用显著物体抠图, CPU) quality: best (birefnet-general-lite, ~7s, 峰值内存 ~6.8 GB) / fast (u2netp, ~0.6s, 峰值 ~1.3 GB)。只影响 rembg 分支。 不传则用安装时按本机内存定下的默认值。
返回: RGBA PNG 的本机路径, 附带实际走的分支与透明像素占比。抠出来明显不对 (几乎全透明 / 几乎没抠掉 / 碎成一堆小块 / 主体被啃出洞) 时会附一行 ⚠️ 警告 —— 那种结果别直接用。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | |
| quality | No | ||
| image_path | No | ||
| image_base64 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| error | No | |
| model | No | |
| metrics | No | |
| warnings | No | |
| mode_used | No | |
| error_code | No | |
| checker_evidence | No | |
| transparent_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does an excellent job: it explains what the checkerboard artifact is, details mode-specific behaviors (auto detection heuristics, forced checker, forced rembg), documents quality trade-offs (speed vs. memory), and discloses return format plus warning conditions for bad results. Minor gap: it doesn't state whether the operation is idempotent or what happens if both image_path and image_base64 are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and rationale before diving into parameters. It is thorough but not padded; every section earns its place. The only minor deduction is that the Chinese formatting and emoji might slightly increase parsing overhead for an agent, though the structure is logical and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations and 0% schema description coverage, the description covers everything an agent needs: purpose, usage context, all parameters with semantics, return format (even though an output schema exists, the description adds warning conditions not captured there), and failure modes. An agent can call this tool correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully documents all four parameters: image_path (local path accepted directly from other tools), image_base64 (alternative input), mode (three valid values with exact behavioral definitions), and quality (two values with model names, runtime, and peak memory, plus note on default behavior based on system memory). This is exemplary compensation for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (remove image background, output real RGBA PNG with alpha) and explains the motivating scenario (generative models paint checkerboards as opaque pixels). It clearly distinguishes itself from siblings like generate_image or slice_sheet, which do not perform background removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use it ('做游戏精灵图必须用本工具把它转成真的 RGBA') and explains the mode selection logic. It does not explicitly state when NOT to use the tool, but the context is clear enough for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sfx_presetsA
列出 gen_sfx 能用的 preset, 以及 overrides 里可以覆盖的全部字段和它们的默认值。
先看这里再去 overrides: 字段名写错了 gen_sfx 会直接失败, 而"有哪些字段"是猜不出来的 (占空比扫描叫 duty_sweep 还是 duty_slide, 低通叫 lpf 还是 cutoff)。
返回: preset 名单 + 参数默认值表 + 采样率。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| rate | No | |
| error | No | |
| params | No | |
| presets | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does disclose useful traits: exact field-name sensitivity that causes hard failure in gen_sfx, the fact that valid field names cannot be inferred, and the shape of the return (preset list, defaults table, sample rate). It is a read-only listing so auth/rate-limit disclosure is not critical, but no explicit statement of read-only safety is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the reason to use it, then the return contents. The parenthetical naming examples look verbose but each one illustrates a real ambiguity risk, so every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter discovery tool with an output schema present, the definition is complete: it explains what to consult it for, why it matters, and sums up the return contents. Nothing an agent needs to call it or act on the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero input parameters, so the baseline is 4. The description additionally explains what the returned field table means and gives examples of ambiguous field names (duty_sweep vs duty_slide, lpf vs cutoff), adding interpretive value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (presets usable by gen_sfx), and goes further by naming the overrides fields and their defaults as part of the payload. It is clearly distinguishable from the sibling gen_sfx: this is the discovery/companion tool the agent consults before invoking gen_sfx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing ('先看这里再去 overrides' – look here before touching overrides) tied to a concrete failure mode (wrong field names make gen_sfx fail). It identifies the sibling gen_sfx as the downstream consumer and the reason guessing field names is unsafe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slice_sheetA
把排成网格的 sprite sheet 切成单帧 PNG。
让生图模型画"4 帧动画"时它会摆成 2x2 网格而不是 4 张图, 用本工具切开。
参数: image_path / image_base64: 同其它图片工具 rows, cols: 网格行列数(二者都给) frame_width, frame_height: 单帧像素尺寸(与 rows+cols 二选一) trim: 是否把每帧裁到非透明/非背景的外接框(默认 True)
返回: 各帧 PNG 的本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| cols | No | ||
| rows | No | ||
| trim | No | ||
| image_path | No | ||
| frame_width | No | ||
| frame_height | No | ||
| image_base64 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| paths | No | |
| frames | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does useful work: it discloses the trim default (True), the mutual-exclusivity rule between rows/cols and frame_width/frame_height, and the fact that slicing writes per-frame PNG files to local paths. It does not discuss overwrite behavior or permissions, but the essential write semantics are visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+resource, then the rationale, then a compact parameter block and the return value. Every segment earns its place; only the deferral of image input semantics to other tools is slightly loose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be spelled out, yet the description still names the return shape (local PNG paths). With no annotations and zero schema descriptions, the description supplies the constraints an agent needs to choose between the two sizing modes, making it adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all 7 params are bare titles, so the description must compensate and largely does: it documents the two image-input alternatives, the rows/cols pair, the frame_width/frame_height alternative, the trim flag with its default, and the exclusivity constraint that the schema cannot express. Only the image_path vs image_base64 distinction is deferred to 'same as other image tools'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('把排成网格的 sprite sheet 切成单帧 PNG') and even explains the motivating case (image models laying out 2x2 grids instead of separate frames). No sibling tool covers sheet slicing, so the distinction is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete trigger ('让生图模型画"4 帧动画"时它会摆成 2x2 网格而不是 4 张图, 用本工具切开'), which tells the agent exactly when this tool applies. It stops short of naming alternatives or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subject_imageA
让某个已定妆的角色或物件出一张新图, 外观与它之前每一张都一致。
做游戏素材用这个, 不要用 generate_image —— 后者每张长相会变。 subject 不存在会告诉你先去 create_character / create_animal / create_object。
参数: subject: 名字(定妆时定的) scene: 这张图里它在干什么 / 在哪 / 什么角度 —— 只写场景动作视角, 身份由定妆图决定。例如 "opened, seen from behind, on a stone floor"。 人物/动物还可以在这里换装: "wearing heavy red armor" 会换掉定妆图 里那身衣服而保住脸。 width/height: 上限 1024 seed: 随机种子(可选) num_inference_steps: 采样步数(可选, 不传用引擎默认)。多了更精细也更慢 guidance_scale: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊
返回: 本机路径
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| scene | Yes | ||
| width | No | ||
| height | No | ||
| subject | Yes | ||
| guidance_scale | No | ||
| num_inference_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| seed | No | |
| error | No | |
| scene | No | |
| width | No | |
| height | No | |
| clamped | No | |
| subject | No | |
| warnings | No | |
| error_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does well: it discloses the missing-subject failure path, the 1024 dimension cap, that unspecified seed/steps/guidance fall back to engine defaults, and the slower-but-finer tradeoff of more steps. It does not cover output file format, overwrite behavior, or reproducibility guarantees, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the sibling warning are front-loaded in the first two lines, followed by a clean parameter block. Every sentence earns its place — the dress/face example in particular prevents a common misuse without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return value needs no elaboration beyond the one-line note that it yields a local path. Across a 7-parameter, 2-required generation tool, the description covers invocation, prerequisites, dimension limits, optional-parameter defaults, and identity/scene separation — nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents all seven parameters. Critically it adds semantics the schema cannot: scene controls action/place/angle only while identity comes from the dated 定妆 image, and clothing can be swapped via scene text ('wearing heavy red armor') while preserving the face. That is genuine meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (出一张新图 of a 已定妆 character/object) plus the scope constraint that appearance must stay consistent with every prior image. It is immediately distinguishable from the sibling generate_image. No ambiguity about what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use this for game assets 不要用 generate_image, with the reason (generate_image mutates the face each time). It also states the prerequisite path — if subject doesn't exist, go to create_character/create_animal/create_object first. Both when-to-use and the alternative are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribeA
听一段录音, 返回里面说的文字。
两个用处, 都是"核对"而不是"生产字幕":
导入参考音时不知道那段录音念的是什么 —— import_actor 不给 transcript 就是 自动调它, 也可以先单独调一次看看听出来的对不对。
验稿: 配完一句台词, 听回来和台词原文比一比。克隆模型偶尔会吞掉尾巴, 而那种"少了半句"的产物听起来完全正常, 只有把它听成文字才看得见。
参数: audio_path: 录音的本机路径, 只收 WAV language: 语种提示 (可选, 如 zh / en)。不给就让模型自己判 —— 它本来就带语种识别, 只有在把方言听成另一种语言时才需要指定。
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| audio_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| text | No | |
| error | No | |
| source | No | |
| language | No | |
| warnings | No | |
| error_code | No | |
| audio_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses auto-invocation by import_actor, that the model has built-in language identification, and the real-world failure mode (clone models dropping sentence tails) that motivates verification. It stops short of stating cost/latency or error behavior, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core behavior, then uses clearly sectioned blocks for uses and parameters. The script-verification rationale is slightly verbose but each sentence contributes useful context, so only marginally over-length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. Purpose, both parameters with constraints, and both usage modes are covered, leaving nothing an agent needs in order to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and does: audio_path is a local path restricted to WAV, and language is an optional hint (zh/en) whose default is model self-detection, with guidance to supply it only when a dialect is misclassified. This adds meaning well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+output: listen to a recording and return the spoken text as words. It also distinguishes itself from siblings by clarifying it is for verification, not subtitle production, and that import_actor invokes it automatically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Enumerates two concrete when-to-use scenarios (checking reference audio during import, validating a dubbed line against its script text) and explicitly excludes the wrong use case ('核对' not '生产字幕'). It also names how it relates to import_actor's automatic invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
v0.5.5- First observed
actor_tts - First observed
continuity_status - First observed
create_actor - First observed
create_animal - First observed
create_character - First observed
create_object - First observed
delete_actor - First observed
delete_subject - First observed
gen_sfx - First observed
generate_image - First observed
generate_music - First observed
generate_speech - First observed
import_actor - First observed
import_subject - First observed
list_actors - First observed
list_subjects - First observed
remove_bg - First observed
sfx_presets - First observed
slice_sheet - First observed
subject_image - First observed
transcribe
TDQS
Scored across 21 tools
Each tool has a clearly distinct purpose, and the descriptions explicitly draw the boundaries between the easily-confused pairs: create_actor+actor_tts (consistent voice) vs generate_speech (one-off), and create_character/subject_image (consistent appearance) vs generate_image (one-off). The casting tools split cleanly by subject kind (character/animal/object) and by source (generate vs import), leaving no meaningful overlap.
Most names follow a clean verb_noun pattern (create_actor, import_actor, list_actors, delete_actor, create_character, generate_image, remove_bg, slice_sheet). A minority deviate with noun_verb or bare-noun forms (actor_tts, subject_image, sfx_presets, continuity_status) and one abbreviation (gen_sfx vs generate_speech/generate_music/generate_image), but the scheme remains readable and predictable overall.
21 tools is on the heavier side, but the server spans several genuinely separate sub-domains (voice casting, image casting, image post-processing, music, procedural SFX, status), so the count is justified rather than padded. Each tool maps to a real capability with no obvious filler.
Coverage is strong: full lifecycle for actors and subjects (create/import/list/delete), plus generation, transcription, background removal, sprite slicing, music, SFX, and a diagnostic status tool. The only minor gap is no in-place update/edit for an actor or subject (you must delete and re-cast), which agents can work around.
Maintenance
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
MCP server for Wan AI video generation
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA sophisticated MCP server providing advanced memory capabilities with RAG, hallucination detection, and enterprise-grade AI infrastructure for intelligent agent ecosystems.-
- FlicenseNot gradedqualityDmaintenanceAn advanced MCP server that provides stateful voice-controlled AGI capabilities with local STT, TTS, and intent detection. It enables users to execute tools, manage memory, and conduct research through natural multi-turn dialogue with low-latency performance tracking.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that runs Stability AI's Stable Audio Open 1.0 locally on NVIDIA GPUs, enabling AI agents to generate broadcast-quality 44.1 kHz stereo WAV sound effects from text prompts fully offline with no API costs.Apache 2.0
- AlicenseAqualityDmaintenanceAn MCP server that enables local AI agents to generate images and videos through the OpenRouter API, manage a browsable media library, and track generation costs.11MIT