Video Intent Studio
Follow a user-led workflow for video generation. Do not choose the final prompt for the user. Suggest options, keep the current prompt transparent, and ask for confirmation before generation.
Core behavior
- - Respond in the user's language. Default to Chinese if the user is writing in Chinese.
- Keep the workflow layered: intent -> ranked video types -> parameter tuning -> prompt confirmation -> generation.
- Present 3 to 5 options at the type-selection step. Keep the option set stable and only reorder by relevance.
- Show the current prompt preview whenever parameters change.
- Let the user revise or exit at every stage.
- Keep a simple state object in memory or scratch space:
CODEBLOCK0
Skill directory and script paths
When this SKILL.md is loaded, resolve the skill directory from the absolute path of this file.
- - Suggestion and prompt builder:
-
<skill-dir>/scripts/video_agent_backend.py
-
<skill-dir>/scripts/generate_ark_video.py
- - Type catalog and defaults:
-
<skill-dir>/references/video-types.md
- - Usage walkthrough and examples:
- INLINECODE4
Use absolute paths when running the scripts.
Recommended workflow
- 1. Capture the user's raw idea.
- Keep the original wording in state as
user_input.
- Do not rewrite it into a final prompt yet.
- 2. Rank video types.
- Run:
CODEBLOCK1
- Present the top 3 to 5 results as numbered options.
- For each option, include:
- type name
- one-sentence use case
- default duration and ratio
- short reason why it matches
- 3. After the user chooses a type, build a prompt preview.
- Run:
CODEBLOCK2
- Show:
- current prompt preview
- current parameter summary
- a short numbered list of tunable options
- 4. If the user adjusts settings, rerun
build with explicit parameters.
- Supported parameters:
-
--duration 5|8|10|12
-
--ratio 9:16|16:9|1:1|4:3
-
--motion light|medium|strong
-
--style realistic|anime|cinematic|original
-
--brightness moody|normal|bright
-
--subtitle off|on
-
--dream-filter off|on
- INLINECODE14
- 5. Before generation, show the final prompt and ask for confirmation.
- Use a short confirmation question such as:
- "Final prompt and parameters are ready. Generate now?"
- 6. After explicit confirmation, generate the video.
- Run:
CODEBLOCK3
- 7. Report success or failure clearly.
- On success, give the downloaded file path and task id if available.
- On failure, bucket the issue into one of:
- API key or auth problem
- network or polling problem
- task failed remotely
- response did not include a downloadable video URL
Important implementation notes
- - The bundled generator script intentionally mirrors the existing HTTP + polling pattern already used in this workspace.
- The current API request sends a text prompt payload only. Duration, ratio, motion, style, and other controls are encoded into the prompt text unless you later extend the API payload.
- The generator script reads credentials from environment variables first:
-
ARK_API_KEY
-
VOLCENGINE_ARK_API_KEY
- - Optional environment variables:
-
ARK_VIDEO_MODEL
- INLINECODE18
Conversation rules
- - Do not skip the type-selection step unless the user explicitly says they already know the type.
- Do not ask broad open-ended questions if a numbered choice is possible.
- If the user says "more realistic", "more cinematic", "shorter", "vertical", or similar, treat that as a parameter update and keep moving.
- If the user says "generate", "go", or "就这样生成", show the final prompt once and ask for one explicit confirmation unless they already confirmed in the same message.
When to read references
视频意图工作室
遵循用户主导的工作流程进行视频生成。不要为用户选择最终提示词。提供选项建议,保持当前提示词透明,并在生成前请求确认。
核心行为
- - 使用用户的语言回复。如果用户使用中文书写,默认使用中文。
- 保持工作流程分层:意图 -> 排序视频类型 -> 参数调整 -> 提示词确认 -> 生成。
- 在类型选择步骤中提供3到5个选项。保持选项集稳定,仅按相关性重新排序。
- 每当参数变化时,显示当前提示词预览。
- 在每个阶段允许用户修改或退出。
- 在内存或临时空间中维护一个简单的状态对象:
python
state = {
user_input: ,
selected_type: None,
params: {
duration: 8,
ratio: 16:9,
motion: medium,
style: original,
brightness: normal,
subtitle: off,
dream_filter: off,
},
final_prompt: ,
stage: init,
}
技能目录和脚本路径
当加载此SKILL.md时,从此文件的绝对路径解析技能目录。
-
/scripts/videoagentbackend.py
- /scripts/generatearkvideo.py
- /references/video-types.md
- /references/usage-guide.md
运行脚本时使用绝对路径。
推荐工作流程
- 1. 捕获用户的原始想法。
- 在状态中保持原始措辞为user_input。
- 不要立即将其改写为最终提示词。
- 2. 对视频类型进行排序。
- 运行:
bash
python /scripts/videoagentbackend.py suggest --input 用户想法
- 将前3到5个结果作为编号选项呈现。
- 每个选项包括:
- 类型名称
- 一句话用例说明
- 默认时长和比例
- 匹配原因的简短说明
- 3. 用户选择类型后,构建提示词预览。
- 运行:
bash
python /scripts/videoagentbackend.py build ^
--input 用户想法 ^
--type cinematic-story
- 显示:
- 当前提示词预览
- 当前参数摘要
- 可调整选项的简短编号列表
- 4. 如果用户调整设置,使用显式参数重新运行build。
- 支持的参数:
- --duration 5|8|10|12
- --ratio 9:16|16:9|1:1|4:3
- --motion light|medium|strong
- --style realistic|anime|cinematic|original
- --brightness moody|normal|bright
- --subtitle off|on
- --dream-filter off|on
- --notes 额外用户约束
- 5. 生成前,显示最终提示词并请求确认。
- 使用简短的确认问题,例如:
- 最终提示词和参数已准备就绪。立即生成?
- 6. 明确确认后,生成视频。
- 运行:
bash
python /scripts/generatearkvideo.py ^
--prompt 最终提示词文本 ^
--output C:\path\to\result.mp4
- 7. 清晰报告成功或失败。
- 成功时,提供下载文件路径和任务ID(如有)。
- 失败时,将问题归类为以下之一:
- API密钥或认证问题
- 网络或轮询问题
- 任务远程失败
- 响应未包含可下载的视频URL
重要实现说明
- - 捆绑的生成器脚本有意镜像此工作区已有的HTTP+轮询模式。
- 当前API请求仅发送文本提示词负载。时长、比例、运动、风格和其他控制参数编码到提示词文本中,除非后续扩展API负载。
- 生成器脚本首先从环境变量读取凭据:
- ARKAPIKEY
- VOLCENGINEARKAPI_KEY
- ARKVIDEOMODEL
- ARKVIDEOTASKS_URL
对话规则
- - 除非用户明确表示已知类型,否则不要跳过类型选择步骤。
- 如果可能提供编号选择,不要提出宽泛的开放式问题。
- 如果用户说更真实、更电影化、更短、竖屏或类似内容,将其视为参数更新并继续推进。
- 如果用户说生成、开始或就这样生成,显示最终提示词一次并请求一次明确确认,除非他们在同一消息中已确认。
何时阅读参考资料