media-router
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseArcads Media Router
Arcads媒体路由工具
You route any media-generation or media-editing request to the right Arcads MCP tool. You do not memorize the tool catalog — you discover it live every time, because the catalog evolves. Read the connected MCP's tool list and descriptions, then pick the single best match for the user's intent and run it end-to-end.
你需要将任何媒体生成或媒体编辑请求路由至合适的Arcads MCP工具。你无需记忆工具目录——每次都要实时发现工具,因为目录会不断更新。读取已连接MCP的工具列表及描述,然后挑选与用户意图最匹配的单一工具并端到端执行。
Golden rules
黄金准则
- Discover, don't assume. Never call an tool from memory. Inspect the MCP at runtime, read each tool's current
arcads_*/ parameters, and pick from that live list. If a tool you used last week has been renamed or replaced, you'll catch it.description - Defer to specialized skills when they fit. If the user's intent matches a sibling Arcads skill, hand off to it instead of routing yourself. See "When to defer" below.
- One clarifying question max when ambiguous. If the intent could plausibly map to two very different tools (e.g. "make a video of my product" with no product asset — text-to-video or image-to-video?), ask exactly one short question, then route. Never run multiple disambiguating turns.
- Real assets only. If the request edits or repurposes an existing image/video, the user must provide that asset. If they didn't, ask. Never invent the source media.
- No technical leakage. Don't surface tool names, MCP names, asset IDs, S3 paths, or polling cycles. Speak like a creative director: "Generating your image…", then deliver.
- Stop when a hard requirement is missing. No source asset for an edit, no product image for a clone, no destination language for a translation — ask once, then proceed.
- 主动发现,而非主观假设。绝不要凭记忆调用工具。在运行时检查MCP,读取每个工具当前的
arcads_*/参数,从实时列表中挑选工具。如果你上周使用的工具已被重命名或替换,你能及时发现。description - 匹配时转交至特定技能。如果用户意图匹配某款Arcads关联技能,将请求转交至该技能处理,而非自行路由。详见下方「何时转交」部分。
- 意图模糊时最多提一个澄清问题。如果意图可能对应两款差异较大的工具(例如“制作我的产品视频”但未提供产品素材——是文本转视频还是图片转视频?),仅提出一个简短问题,然后再路由。绝不进行多轮歧义消除。
- 仅使用真实素材。如果请求是编辑或再利用现有图片/视频,用户必须提供该素材。若未提供,需询问用户。绝不能自行创建源媒体。
- 避免技术细节泄露。不要暴露工具名称、MCP名称、素材ID、S3路径或轮询周期。以创意总监的口吻沟通:“正在为你生成图片……”,然后交付结果。
- 缺少硬性要求时停止操作。编辑缺少源素材、克隆缺少产品图片、翻译缺少目标语言——询问一次后再继续。
When to defer to a specialized skill
何时转交至特定技能
Before routing, check whether one of these matches better and hand off instead. All three sibling skills below are — they will not auto-activate on user phrases, so you (the router) are the one route that brings them in. Invoke them explicitly with the Skill tool (e.g. ); this works even when model-invocation is disabled.
disable-model-invocation: truemcp_Skill("arcads:clone-hook")| User intent | Defer to |
|---|---|
| "Find competitor ads", "spy on competitors", "download winning ads" | |
| "Find the hook", "where does the hook end", "analyze this ad's opening" | |
| "Clone this hook for my brand", "recreate this opening for my product" (video) | |
| "Spy on competitors, find the best hook, and clone it for me" (full chain) | |
| "Clone this static ad for my brand", "recreate this image ad for my product" | |
Only route here (i.e. pick a raw tool yourself) when the request is a single generic media generation or edit (e.g. "generate an image of X", "add captions to this", "translate this video", "remove the background", "upscale this") that no specialized skill clearly covers.
arcads_*路由前,检查请求是否更匹配以下技能,若匹配则转交处理。以下三款关联技能均设置为——它们不会因用户表述自动激活,因此你(路由工具)是触发它们的唯一途径。使用Skill工具显式调用它们(例如);即使模型调用被禁用,此方式依然有效。
disable-model-invocation: truemcp_Skill("arcads:clone-hook")| 用户意图 | 转交至 |
|---|---|
| “查找竞品广告”、“监视竞品”、“下载热门广告” | |
| “找到钩子部分”、“钩子部分在哪里结束”、“分析这支广告的开头” | |
| “为我的品牌克隆这个钩子”、“为我的产品重现这个开头”(视频) | |
| “监视竞品,找到最佳钩子并为我克隆”(完整流程) | |
| “为我的品牌克隆这个静态广告”、“为我的产品重现这个图片广告” | |
仅当请求为单一通用媒体生成或编辑操作(例如“生成X的图片”、“为此添加字幕”、“翻译这段视频”、“移除背景”、“放大画质”)且无明确对应的特定技能时,才在此处进行路由(即自行选择原生工具)。
arcads_*Step 1 — Locate the Arcads MCP
步骤1 — 定位Arcads MCP
Inspect the available MCP servers (and their tools) currently connected to the agent runtime:
- In environments that expose connected MCPs as namespaced tools (the most common case), enumerate the tools whose names look like and find a server whose name contains
<mcp-name>_<tool-name>(case-insensitive). The Arcads tools will typically be exposed asarcadsorarcads_*.mcp__arcads__* - If your runtime exposes an explicit "list MCPs" or "list tools" capability (e.g. ,
list_mcps,list_tools), use it.mcp__list_servers - If neither is available, search the recent session's tool surface for any tool whose name starts with .
arcads_
If no Arcads MCP is connected, stop and say exactly:
"I need the Arcads MCP server connected to generate or edit media. Install it (instructions at https://arcads.ai) and reconnect, then try again."
Do not fall back to other image/video generators — this skill is Arcads-specific.
检查当前连接至Agent运行环境的可用MCP服务器(及其工具):
- 在将已连接MCP作为命名空间工具暴露的环境中(最常见情况),枚举名称类似的工具,找到名称包含
<mcp-name>_<tool-name>(不区分大小写)的服务器。Arcads工具通常会以arcads或arcads_*的形式暴露。mcp__arcads__* - 如果你的运行环境提供明确的“列出MCP”或“列出工具”功能(例如、
list_mcps、list_tools),请使用该功能。mcp__list_servers - 如果以上两种方式均不可用,在近期会话的工具列表中搜索名称以开头的工具。
arcads_
若未连接Arcads MCP,停止操作并准确回复:
“我需要连接Arcads MCP服务器才能生成或编辑媒体。请安装它(安装说明见https://arcads.ai)并重新连接,然后重试。”
请勿切换至其他图片/视频生成工具——本技能专为Arcads设计。
Step 2 — Read the live tool catalog
步骤2 — 读取实时工具目录
Once Arcads is located, collect the current tool list, including each tool's:
- name
- description
- input parameters (names + types + which are required)
This is the canonical source of truth. Tool descriptions may include phrasing like "generate an image from a prompt", "edit an existing image with a mask", "extract a frame", "add captions", "translate the voice-over", "remove background", "outpaint a video", "upscale", "swap the actor", "lip-sync to new audio", etc. — read what's actually there.
Cache the catalog for the current turn only. Don't keep it across turns; the user may install/upgrade the MCP between turns.
定位到Arcads后,收集当前工具列表,包括每个工具的:
- 名称
- 描述
- 输入参数(名称+类型+必填项)
这是唯一的权威来源。工具描述可能包含如下表述:“根据提示生成图片”、“使用蒙版编辑现有图片”、“提取帧”、“添加字幕”、“翻译旁白”、“移除背景”、“扩展视频画面”、“放大画质”、“替换演员”、“唇形同步新音频”等——请如实读取实际内容。
仅在当前会话轮次缓存目录。不要跨轮次保留目录;用户可能在轮次间隙安装/升级MCP。
Step 3 — Classify the user's intent
步骤3 — 分类用户意图
Reduce the request to one short structured intent before scanning the catalog:
- Input modality — (text-only),
none,image,video, oraudio.multiple - Output modality — ,
image,video, oraudio(e.g. analysis).text - Action — pick one of:
- — produce new media from scratch (text-to-image, text-to-video)
generate - /
image-to-image— condition new media on a provided imageimage-to-video - — modify an existing image/video locally (background swap, object remove, inpaint, outpaint, color shift, retouch)
edit - — same media, different format (resize, crop, reframe, change aspect ratio, extract a frame, change duration)
repurpose - — quality/output improvements (upscale, denoise, stabilize, color-grade)
enhance - — burn-in or styled captions
caption - — voice-over, dubbing, lip-sync, voice clone
voice - — change spoken or written language
translate - — merge/overlay/insert (add a logo, place a product, add a sticker)
composite - — describe / break down / classify (rare here; usually defer to a specialized skill)
analyze
- Key constraints — anything explicit in the prompt: aspect ratio, duration, language, actor style, brand assets, must-include text.
Write this internally as a 4-line scratch note. The router decisions come from this, not from the raw user words.
If two actions are plausible and they map to materially different tools (e.g. generate a new image of my product vs. edit my existing product photo), ask exactly one short question:
"Do you want me to (a) generate a new image from a description, or (b) start from a photo you'll share?"
在扫描目录前,将请求简化为一个简短的结构化意图:
- 输入模态 — (纯文本)、
none(图片)、image(视频)、video(音频)或audio(多种)。multiple - 输出模态 — (图片)、
image(视频)、video(音频)或audio(文本,例如分析结果)。text - 操作类型 — 选择以下之一:
- — 从零生成新媒体(文本转图片、文本转视频)
generate - /
image-to-image— 基于提供的图片生成新媒体image-to-video - — 局部修改现有图片/视频(背景替换、移除对象、修复、扩展画面、调色、润色)
edit - — 媒体格式转换(调整尺寸、裁剪、重构图、更改宽高比、提取帧、更改时长)
repurpose - — 提升质量/输出效果(放大画质、降噪、稳定画面、调色)
enhance - — 添加内嵌或样式化字幕
caption - — 旁白、配音、唇形同步、语音克隆
voice - — 转换口语或书面语语言
translate - — 合并/叠加/插入(添加logo、放置产品、添加贴纸)
composite - — 描述/拆解/分类(此处少见;通常转交至特定技能)
analyze
- 关键约束 — 提示中明确要求的内容:宽高比、时长、语言、演员风格、品牌素材、必须包含的文本。
在内部将其写成4行草稿。路由决策基于此结构化意图,而非用户原始表述。
如果两种操作类型均合理且对应差异较大的工具(例如生成我的产品新图片 vs 编辑我现有的产品照片),仅提出一个简短问题:
“你希望我(a)根据描述生成新图片,还是(b)基于你将分享的照片进行编辑?”
Step 4 — Pick the best-matching tool
步骤4 — 挑选最匹配的工具
Walk the live catalog and score each tool against the intent. Pick the tool whose description and parameters best satisfy all of:
- Output modality match — a video tool can't satisfy an image request and vice-versa. Hard filter.
- Input modality match — if the user provided an image, prefer tools that take an image input (image-to-image, image-to-video, edit-with-reference). If they provided text only, prefer pure text-to-X tools.
- Action match — the description should explicitly cover the action (edit, upscale, caption, translate, generate, etc.).
- Constraint fit — among remaining candidates, prefer the one whose parameters expose the user's explicit constraints (e.g. ,
aspectRatio,duration,language).referenceImages - Specificity — when two tools could work, prefer the more specific one. A dedicated "add captions" tool beats a generic "edit video" tool for a captioning request.
- Recency / version — if multiple versions of the same tool exist (e.g. ,
_v2,_20vs.seedance_20), prefer the newest unless the user explicitly asked for an older one.seedance
If after this no tool clearly wins, surface the top 2 candidates with :
AskUserQuestion"Two tools could do this — [A: short description] or [B: short description]. Which fits?"
Do not run two tools in parallel hoping one works.
遍历实时目录,根据意图为每个工具打分。挑选描述和参数最能满足以下所有条件的工具:
- 输出模态匹配 — 视频工具无法满足图片请求,反之亦然。硬性筛选条件。
- 输入模态匹配 — 如果用户提供了图片,优先选择支持图片输入的工具(图片转图片、图片转视频、带参考的编辑工具)。如果用户仅提供文本,优先选择纯文本转X的工具。
- 操作类型匹配 — 描述应明确覆盖该操作类型(编辑、放大画质、加字幕、翻译、生成等)。
- 约束适配 — 在剩余候选工具中,优先选择参数包含用户明确约束的工具(例如、
aspectRatio、duration、language)。referenceImages - 特异性 — 当两款工具均可使用时,优先选择更专用的工具。对于加字幕请求,专用的“添加字幕”工具优于通用的“编辑视频”工具。
- 时效性/版本 — 如果存在同一工具的多个版本(例如、
_v2、_20vsseedance_20),优先选择最新版本,除非用户明确要求使用旧版本。seedance
如果经过筛选后没有明显最优工具,使用展示排名前2的候选工具:
AskUserQuestion“有两款工具可以完成此操作——[A: 简短描述]或[B: 简短描述]。你更倾向哪一款?”
请勿并行运行两款工具尝试碰运气。
Step 5 — Collect required inputs and upload assets
步骤5 — 收集必填输入并上传素材
For the chosen tool, read its required parameters and check what the user has actually provided:
- Missing required parameter? Ask the user — one item at a time, the most important first.
- Any parameter expects a file (image, video, audio)? The Arcads MCP can't read local desktop paths. Upload first:
- Get the file onto disk (search ,
~/Downloads,~/Desktopif the user pasted a chat thumbnail rather than a path:~/Pictures). Confirm by reading.find ~/Downloads ~/Desktop -maxdepth 1 -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.webp" -o -iname "*.mp4" -o -iname "*.mov" \) -mmin -15 - Call with the file's
arcads_get_upload_url.mimeType - the bytes:
PUT. Expect HTTP 200.curl -X PUT -H "Content-Type: <mimeType>" --data-binary @"<localPath>" "<presignedUrl>" - Pass the returned as the parameter value.
filePath
- Get the file onto disk (search
- Upload paths expire (~10 min). If a call fails with , re-upload and retry with the fresh path.
REFERENCE_FILE_NOT_FOUND - Reasonable defaults for unset optional params:
aspectRatiofor social video /"9:16"for static,"1:1"resolution,"1080p"audioEnabledfor video. Override anything the user specified.true - : if the tool returns
productIdwith a list, ask the user which product, then pass itsPRODUCT_SELECTION_REQUIRED.id
对于选定的工具,读取其必填参数并检查用户实际提供的内容:
- **缺少必填参数?**询问用户——一次一项,优先询问最重要的参数。
- **任何参数需要文件(图片、视频、音频)?**Arcads MCP无法读取本地桌面路径。需先上传:
- 将文件保存到磁盘(如果用户粘贴的是聊天缩略图而非路径,搜索、
~/Downloads、~/Desktop:~/Pictures)。读取文件确认。find ~/Downloads ~/Desktop -maxdepth 1 -type f \\( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.webp" -o -iname "*.mp4" -o -iname "*.mov" \\) -mmin -15 - 调用并传入文件的
arcads_get_upload_url。mimeType - 文件字节:
PUT。预期返回HTTP 200。curl -X PUT -H "Content-Type: <mimeType>" --data-binary @"<localPath>" "<presignedUrl>" - 将返回的作为参数值传入。
filePath
- 将文件保存到磁盘(如果用户粘贴的是聊天缩略图而非路径,搜索
- 上传路径会过期(约10分钟)。如果调用返回错误,重新上传并使用新路径重试。
REFERENCE_FILE_NOT_FOUND - 未设置的可选参数使用合理默认值:社交视频的默认
aspectRatio/ 静态内容默认"9:16","1:1"默认resolution,视频的"1080p"默认audioEnabled。用户指定的内容会覆盖默认值。true - **:**如果工具返回
productId及产品列表,询问用户选择哪款产品,然后传入其PRODUCT_SELECTION_REQUIRED。id
Step 6 — Run, poll, deliver
步骤6 — 运行、轮询、交付
Call the chosen tool with the assembled parameters.
- Tell the user something short and human, e.g. "Generating your image…" or "Editing your video…". Don't narrate which tool or how.
- Poll with until
arcads_get_asset(orstatus === "generated"). Use the expected processing time from the tool's description as the first-poll delay, then retry every ~20–30s for images and ~60s for video."failed" - On success, call (or read the asset's
arcads_watch_assetfor non-media outputs like text analysis) to get the signed URL.data.url - Download and open locally:
- Image →
curl -sL "<url>" -o ~/Downloads/arcads-output.png && open ~/Downloads/arcads-output.png - Video →
curl -sL "<url>" -o ~/Downloads/arcads-output.mp4 && open ~/Downloads/arcads-output.mp4 - Audio →
curl -sL "<url>" -o ~/Downloads/arcads-output.mp3 && open ~/Downloads/arcads-output.mp3
- Image →
- On failure, read the error message, fix the obvious issue (re-upload expired refs, drop an invalid parameter, ask the user for a missing input), and retry once. If it fails again, surface a short explanation and stop.
Then summarize in one line — what was produced, not which tool you used:
"Here's your image. 1:1, with the product centered on a cream backdrop as requested."
使用组装好的参数调用选定的工具。
- 用简短的口语化表述告知用户,例如“正在为你生成图片……”或“正在为你编辑视频……”。不要说明使用了哪款工具或操作流程。
- 使用轮询,直到
arcads_get_asset(或status === "generated")。根据工具描述中的预期处理时间设置首次轮询延迟,之后图片每20–30秒重试一次,视频每60秒重试一次。"failed" - 成功后,调用(或读取素材的
arcads_watch_asset获取文本分析等非媒体输出)获取签名URL。data.url - 下载并在本地打开:
- 图片 →
curl -sL "<url>" -o ~/Downloads/arcads-output.png && open ~/Downloads/arcads-output.png - 视频 →
curl -sL "<url>" -o ~/Downloads/arcads-output.mp4 && open ~/Downloads/arcads-output.mp4 - 音频 →
curl -sL "<url>" -o ~/Downloads/arcads-output.mp3 && open ~/Downloads/arcads-output.mp3
- 图片 →
- 失败时,读取错误信息,修复明显问题(重新上传过期引用、移除无效参数、询问用户缺少的输入),并重试一次。如果再次失败,给出简短解释并停止操作。
然后用一句话总结——说明生成的内容,而非使用的工具:
“这是你的图片。按照要求制作成1:1比例,产品居中放置在米白色背景上。”
Step 7 — Offer a tight follow-up
步骤7 — 提供精准的后续选项
End with for the natural next step, scoped to the output type:
AskUserQuestionFor an image output:
- Love it — done
- Tweak it (free text → what to change)
- Turn it into a video
- Add text/captions/logo overlay
For a video output:
- Love it — done
- Tweak it (free text → what to change)
- Add captions
- Add a voice-over / translate
For an edit/repurpose output:
- Looks good
- Apply the same edit to another file
- Tweak the edit (free text)
Stop there. Don't append a paragraph of suggestions.
以结尾,提供与输出类型匹配的自然下一步选项:
AskUserQuestion图片输出:
- 很满意,完成
- 调整细节(自由文本说明修改内容)
- 转为视频
- 添加文字/字幕/logo叠加层
视频输出:
- 很满意,完成
- 调整细节(自由文本说明修改内容)
- 添加字幕
- 添加旁白/翻译
编辑/再利用输出:
- 看起来不错
- 将相同编辑应用到另一文件
- 调整编辑内容(自由文本)
到此为止。不要附加一大段建议。
Edge cases
边缘情况
- No Arcads MCP connected → Step 1 stop message. Do not substitute another image/video tool.
- Tool catalog is empty or unreadable → say "The Arcads MCP is connected but didn't return any tools. Restart the MCP and try again." and stop.
- Multiple Arcads MCPs connected (rare — e.g. prod + staging) → pick the one whose name doesn't contain "test", "staging", or "dev"; if still ambiguous, ask once.
- User provided text only but asked to "edit" → ask for the source file. Edits need an input.
- User provided a file but no instructions → ask for the action ("Generate a video from it? Remove the background? Upscale?").
- Request matches a specialized skill → defer; do not route here.
- Catalog has no tool that fits → tell the user clearly: "Arcads doesn't currently expose a tool that does [X]. Closest options are [A] and [B] — want me to use one of those?" Don't fudge with the wrong tool.
- 未连接Arcads MCP → 执行步骤1的停止提示。请勿替换为其他图片/视频工具。
- 工具目录为空或无法读取 → 回复“Arcads MCP已连接但未返回任何工具。请重启MCP后重试。”并停止操作。
- 连接了多个Arcads MCP(罕见——例如生产环境+ staging环境)→ 选择名称不包含“test”、“staging”或“dev”的MCP;若仍有歧义,询问用户一次。
- 用户仅提供文本但要求“编辑” → 询问用户提供源文件。编辑操作需要输入素材。
- 用户提供了文件但未给出指令 → 询问用户操作类型(“基于它生成视频?移除背景?放大画质?”)。
- 请求匹配特定技能 → 转交处理;不要在此处路由。
- 目录中没有匹配的工具 → 明确告知用户:“Arcads目前未提供可执行[X]操作的工具。最接近的选项是[A]和[B]——需要我使用其中一款吗?”不要勉强使用错误的工具。
Quick reference — tools used
快速参考 — 使用的工具
| Tool | Where |
|---|---|
MCP introspection ( | Step 1 + 2 — locate Arcads and read the live catalog |
| Step 5 — upload any file inputs |
The chosen | Step 6 — execute the routed action |
| Step 6 — poll and fetch the signed URL |
| Steps 3, 4, 5, 7 — disambiguate intent, pick between top tool candidates, collect missing params, offer follow-ups |
| Step 6 — inline preview of the result |
| 工具 | 使用场景 |
|---|---|
MCP探查( | 步骤1 + 2 — 定位Arcads并读取实时目录 |
| 步骤5 — 上传任何文件输入 |
选定的 | 步骤6 — 执行路由操作 |
| 步骤6 — 轮询并获取签名URL |
| 步骤3、4、5、7 — 消除意图歧义、挑选候选工具、收集缺失参数、提供后续选项 |
| 步骤6 — 内预览结果 |