基于火山引擎Kickart服务生成抖店/抖音商品营销短视频,支持用户上传自定义图片/视频素材、素材分析、创意分析、故事板创作、成片生成、抖音发布全流程。当用户发送抖店/抖音商品链接、提及「上传素材」「添加图片」「添加视频」「素材分析」「创意分析」「故事板」「生成短视频」「营销视频」「发布视频」「抖音发布」时触发使用。
--- name: "byted-kickart-marketing-material-generator" description: "基于火山引擎Kickart服务生成抖店/抖音商品营销短视频,支持用户上传自定义图片/视频素材、素材分析、创意分析、故事板创作、成片生成、抖音发布全流程。当用户发送抖店/抖音商品链接、提及「上传素材」「添加图片」「添加视频」「素材分析」「创意分析」「故事板」「生成短视频」「营销视频」「发布视频」「抖音发布」时触发使用。" version: "1.1.5" tags: ["抖店", "抖音", "营销短视频", "Kickart", "AIGC创作", "抖音发布"] --- # 营销视频SKILL ## 🚨 强制前置校验流程(必须按顺序执行,任意不通过直接终止流程) 所有用户请求必须先完成以下4步校验,不得跳过: 1. **模型输入能力校验** - 读取openclaw.json配置文件,检查当前默认使用的模型input配置是否包含"image" - 若不包含image输入支持:提示用户需要为模型添加image输入支持,否则会影响图片/视频素材上传和处理功能,并询问用户是否需要帮助配置image输入,终止流程 2. **火山鉴权校验** - 读取`./references/火山鉴权指南.md`,检查本地是否已配置环境变量 - 未配置:引导用户按指南完成密钥配置,终止流程 3. **套餐有效性校验** - 读取`./references/套餐开通指南.md`,调用套餐查询接口检查用户套餐是否在有效期内、创点余额充足 - 套餐失效/余额不足:引导用户按指南升级/充值套餐,终止流程 4. **链接有效性校验** - 检查用户输入的链接是否为合法抖店/抖音商品链接(域名包含`haohuo.jinritemai.com`或`v.douyin.com`) - 无效链接:引导用户输入正确的抖店商品链接,终止流程 5. **自定义素材场景适配** - 若用户需求为上传自定义图片/视频素材,跳过抖店/抖音链接有效性校验,直接进入素材上传流程 ## 🚫 任务提交与重试铁则(强制遵守,零例外) 1. **绝对禁止主动重新提交任务**:所有异步任务(素材分析/创意分析/故事板/视频生成)提交成功后,必须立即将后端返回的全局唯一`Task ID`持久化存储(保留72小时,与后端任务结果有效期一致)。无论本地exec会话/状态是否丢失、异常中断,都只会通过已持久化的`Task ID`查询后端真实任务状态,永远不会自行发起重复提交。 2. **后端任务失败也不自动重提**:如果通过`Task ID`查询到后端任务明确返回失败状态,仅向用户明确告知失败原因和对应解决方案,等待用户明确指令,不会自动重新提交任务,不产生任何额外创点消耗。 3. **仅用户主动要求才允许重提**:只有当用户明确说出「重新提交」「重新生成」「重做一次」「再做一个」这类主动发起的要求时,才可以执行重新提交操作,且提交前需再次向用户确认需求,避免误操作。 ## 🎯 意图判断与依赖处理规则(基于对话历史自动识别) 结合当前用户输入和历史记录,按以下优先级判断意图: 1. **进度查询最高优先级匹配**: - 用户提及「查询进度」「查看结果」「生成怎么样了」「好了吗」等关键词时,优先触发进度查询流程,强制加载`./references/任务查询指南.md`,无需依赖其他任务上下文判断,直接执行标准化查询流程 2. **明确关键词匹配(次优先级)**: - 素材上传:用户提及「上传素材」「添加图片」「添加视频」「自定义素材」 - 素材分析:用户提及「素材分析」「分析商品」「拉取素材」 - 创意分析:用户提及「创意分析」「卖点分析」「受众分析」「创作方向」 - 故事板创作:用户提及「故事板」「分镜」「脚本」「故事构思」 - 视频生成:用户提及「生成视频」「成片」「导出视频」「制作短视频」 - 视频发布:用户提及「生成发布二维码」「视频发布」「发布抖音」「跳转发布」 3. **无明确意图处理**: - 用户仅发送商品链接未说明需求:询问用户需要的操作(素材分析/创意分析/故事板创作/直接生成短视频) ## 🛠️ 各任务执行指南 | 任务类型 | 执行依据 | 输出要求 | 前置要求 | |---------|---------|---------|---------| | 进度查询 | 读取`./references/任务查询指南.md`(含完整标准化查询流程规范)调用对应服务接口 | 输出当前任务执行状态(如「任务已完成」、「任务执行中」等),确认是否需要调整 | 需从会话上下文持久化存储中获取对应任务ID,无有效ID时直接告知用户未查询到相关任务 | | 素材分析 | 读取`./references/素材分析指南.md`(含完整执行流程规范)调用对应服务接口 | 输出商品主图/详情图/视频数量、核心卖点、基础商品信息,确认结果准确性后询问下一步需求 | 任务提交成功后自动将Task ID持久化存储到会话上下文 | | 创意分析 | 读取`./references/创意分析指南.md`(含完整执行流程规范)调用对应服务接口 | 输出目标受众、推荐视频规格、核心卖点提炼、创意方向建议,确认结果准确性后询问下一步需求 | 任务提交成功后自动将Task ID持久化存储到会话上下文 | | 故事板创作 | 读取`./references/故事板创作指南.md`(含完整执行流程规范)调用对应服务接口 | 输出分镜脚本、镜头描述、口播文案、画面时长分配,确认结果准确性后询问下一步需求 | 任务提交成功后自动将Task ID持久化存储到会话上下文 | | 视频生成 | 读取`./references/消费成片指南.md`(含完整执行流程规范)调用对应服务接口 | 输出成片视频下载链接、视频参数,确认是否需要调整 | 任务提交成功后自动将Task ID持久化存储到会话上下文 | | 素材上传 | 读取`./references/素材上传指南.md`(含完整上传流程规范)调用对应工具接口 | 输出上传成功的素材URL列表,确认素材完整性后询问下一步需求 | 任务提交成功后自动将会话ID、素材列表持久化存储到会话上下文 | | 视频发布 | 读取`./references/视频发布指南.md`(含完整二维码生成和发布流程规范)调用对应脚本接口 | 输出抖音发布跳转二维码(图片形式)、使用说明,提醒用户扫码即可跳转发布 | 前置要求:已获取到成片视频公网下载链接,且用户提供了发布文案内容 | ## 📝 任务状态管理规范(强制遵守) 1. **任务ID持久化要求**: 所有异步任务(素材分析/创意分析/故事板创作/视频生成)提交成功后,必须将以下信息持久化存储到会话上下文: - Task ID(后端返回的任务唯一标识) - 任务类型(素材分析/创意分析/故事板创作/视频生成) - 提交时间(UTC+8时间戳) - 执行会话ID(exec返回的sessionId) - 任务参数(用户指定的时长、prompt等关键信息) 禁止丢失Task ID,无有效Task ID时不得响应用户查询进度请求。 2. **任务状态查询优先级**: 用户查询进度时,必须按以下顺序执行查询: ① 检查是否存在正在运行的对应exec子进程:存在则调用`process(action=poll)`轮询进程状态 ② 无运行中的进程:使用持久化的Task ID调用`scripts/task.py`查询后端真实任务状态 ③ 最终任务状态以后端接口返回结果为准,禁止仅以本地脚本执行退出状态判断任务最终结果 3. **本地脚本超时处理逻辑**: 当本地执行脚本因超时退出(非0返回码)时,不得直接判定任务失败,必须立即使用持久化的Task ID调用查询接口确认后端任务状态: - 后端返回任务仍在执行:告知用户任务仍在后台运行,无需重复提交 - 后端返回任务成功:获取结果并反馈给用户 - 后端返回任务失败:告知用户错误原因和解决方案 4. **素材消耗规则(强制遵守)** 当视频生成任务确认完成并向用户交付成片后,必须立即执行素材消耗操作:调用`python3 upload.py clear -s <当前会话ID>`清空当前会话所有已上传的素材本地记录,防止同一份素材被重复用于其他视频创作,保障素材使用唯一性。 ## 📂 文件输出与命名规范(强制遵守) 所有任务输出文件必须遵循以下规范,避免文件名冲突和磁盘占用问题: 1. **统一输出目录**:所有输出文件必须保存到`/tmp/openclaw/kickart/output/`目录,执行前自动创建目录: ```bash mkdir -p /tmp/openclaw/kickart/output ``` 2. **唯一文件名生成规则**:文件名格式为 `<文件类型>_<13位毫秒时间戳>_<6位随机数>.json`,冲突概率为0: | 文件类型 | 命名前缀 | 示例 | |---------|---------|------| | 素材分析结果 | `material` | `material_1742525890123_654321.json` | | 创意分析结果 | `creative` | `creative_1742525912345_123456.json` | | 故事板生成结果 | `storyboard` | `storyboard_1742525956789_987654.json` | | 视频成片结果 | `video` | `video_1742526012345_456789.json` | 3. **文件名生成命令**:执行每个环节前动态生成唯一文件名,示例: ```bash # 生成素材分析输出文件名 MATERIAL_FILE="/tmp/openclaw/kickart/output/material_$(date +%s%N | cut -b1-13)_$((RANDOM%900000+100000)).json" ``` ## ⚠️ 错误处理规范 所有错误必须明确告知原因和可执行解决方案,禁止模糊提示!!! | 错误码 | 错误描述 | 详细说明 | 用户处理建议 | | --- | --- | --- | --- | | 0 | 无返回值 | 接口调用成功,但服务返回结果为空 | 请稍后重试,如问题持续请联系火山技术支持 | | 1402 | 创点不足 | 调用接口时,用户账户的创点额度不足 | 请前往 [创点充值页面](https://console.volcengine.com/kickart/fusion/setting/combobuy?tab=additionalCombo) 充值创点或升级套餐 | | 1412 | 图片格式错误 | 调用接口时,输入参数中包含了非支持的图片格式 | 请检查图片格式是否为 jpg、png 等支持的格式 | | 1413 | 无效的媒体URL错误 | 调用接口时,输入参数中包含了无效的媒体URL | 请检查您提供的URL是否正确,避免包含特殊字符或格式错误 | | 1414 | 输入包含敏感信息错误 | 调用接口时,输入参数中包含了敏感信息,如个人隐私数据等 | 暂不可生成带人物的营销视频,请等待后续版本更新 | | 1415 | 输出包含敏感信息错误 | 调用接口时,服务返回结果中包含了敏感信息,如个人隐私数据等 | 暂不可生成带人物的营销视频,请等待后续版本更新 | | 1416 | 输入媒体数量错误 | 用户输入的素材数量超过限制 | 提供的媒体素材数量超出限制,多出的素材可能不会使用 | | 1417 | 大模型调用错误 | 模型调用出错,通常是输入参数错误 | 媒体素材处理存在问题,请重新尝试,如问题持续请联系火山技术支持 | | 1418 | 时长计费参数错误 | 提交时入参时间有问题 | 要求的成片时长不符合技能要求,请按照0-60s的时长限制提交制作需求,如问题持续请联系火山技术支持 | | 1501 | 用户套餐过期 | 调用接口时,用户套餐已过期 | 请前往 [套餐开通页面](https://console.volcengine.com/kickart/fusion/setting/combobuy?tab=combo) 开通套餐 | | 100010 | 签名验证失败 | AK/SK签名验证失败 | 请检查您提供的火山鉴权AK/SK是否正确,可访问[火山引擎控制台](https://console.volcengine.com/iam/keymanage)确认 | | 100013 | 缺少服务权限 | 缺少iccloud\_muse服务的RegisterArkClawCombo权限 | 您的企业账号未开通Kickart权限,请联系火山主账号管理员为您开通,或详询火山技术支持 | | x01001 | AK/SK未配置 | 用户未配置AK/SK | 请输入火山鉴权的AK/SK,可访问[火山引擎控制台](https://console.volcengine.com/iam/keymanage)获取 | | x01010 | 有效套餐缺失 | 素材上传出现错误,通常是套餐原因 | 请前往 [套餐开通页面](https://console.volcengine.com/kickart/fusion/setting/combobuy?tab=combo) 开通套餐 | | 其他 | \- | 未明确列出的其他错误情况 | 稍后重试,如问题持续请联系火山技术支持 |
don't have the plugin yet? install it then click "run inline in claude" again.