RHMCP 的 OpenClaw Skill 包装层,提供智能决策和 Agent 指引。
git clone https://github.com/AIRix315/RHMCP.git && cd RHMCP && npm install && npm run buildservice.json 和 .envtext
用户请求
│
├─ "生成图片" / "文生图" / "画画"
│ └─► rh_execute_app({ alias: "qwen-text-to-image", params: { text: "描述" } })
│
├─ "修改图片" / "改图" / "图生图"
│ └─► rh_execute_app({ alias: "qwen-image-to-image", params: { image: "URL", prompt: "描述" } })
│
└─ "更多APP"
└─► rh_list_apps() 查看所有可用APP
参数必填默认值说明text✅-提示词width❌1024图片宽度height❌1024图片高度
参数必填默认值说明image✅-输入图片URLprompt✅-修改提示词
长时间任务使用异步模式:
APP 类型首次等待轮询间隔最大等待图生视频3 分钟1 分钟15 分钟数字人2 分钟30 秒10 分钟文生图10 秒5 秒5 分钟javascript
// 提交异步任务
const { taskId } = await rh_execute_app({
alias: "image-to-video",
params: { image: "https://..." },
mode: "async",
});
// 轮询查询
await sleep(180000); // 3分钟
while (true) {
const status = await rh_query_task({ taskId });
if (status.status === "SUCCESS") return status.data;
if (status.status === "FAILED") throw new Error(status.msg);
await sleep(60000); // 1分钟
}
步骤位置存储模式原因中间步骤noneURL 直接传递最终输出none返回 URL,用户保存用户要求network用户明确要求保存javascript
// 中间步骤:URL 直接传递
const img = await rh_execute_app({
alias: "qwen-text-to-image",
params: { text: "一只猫" },
});
// 后续步骤:使用 URL
const video = await rh_execute_app({
alias: "image-to-video",
params: { image: img.outputs[0].originalUrl, motion: "转身" },
});
javascript
// 步骤1:文生图
const img = await rh_execute_app({
alias: "qwen-text-to-image",
params: { text: "一个女孩在樱花树下" },
});
// 步骤2:图生视频
const video = await rh_execute_app({
alias: "image-to-video",
params: {
image: img.outputs[0].originalUrl,
motion: "樱花飘落,女孩转身微笑",
},
});
return { videoUrl: video.outputs[0].originalUrl };
javascript
const fallbacks = ["sdxl-text-to-image", "flux-text-to-image"];
for (const alias of fallbacks) {
try {
return await rh_execute_app({ alias, params });
} catch (e) {
continue; // 尝试下一个
}
}
throw new Error("所有备选 APP 均失败");
错误码含义处理方式0成功正常返回结果804排队中等待后轮询805任务失败调整提示词重试813执行中继续等待421并发限制等待 5 秒后重试
工具用途rh_list_apps列出所有可用APPrh_get_app_info获取APP参数详情rh_execute_app执行APP任务rh_query_task查询任务状态rh_upload_media上传媒体文件
模板ID名称尺寸适用场景anime-portrait动漫人像1024×1024角色生成landscape-wide风景横图1920×1080风景创作portrait-vertical人像竖图768×1024人物肖像javascript
// 使用模板
const templates = require("./references/templates.json");
const t = templates.templates["anime-portrait"];
rh_execute_app({ alias: t.alias, params: { ...t.params, text: "用户描述" } });
问题原因解决方案"未找到 alias"APP 未配置运行 rhmcp --update-apps"apiKey 是必填项"未配置 API Key在 .env 设置 RUNNINGHUB_API_KEY"任务超时"执行时间过长使用 mode: "async"
MIT-0