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