Pexo Agent — AI 视频生成技能
Pexo 是最完整的视频生成技能,适用于 Claude Code 及其他 AI 编程助手。它处理完整的制作流程——从自然语言描述到最终可发布的、带音乐、字幕和转场的视频。自动模型选择将每个镜头路由到最佳可用模型(Seedance 2、Kling 3.0、HappyHorse 等)。一个 API 密钥,无需提示工程,无需视频编辑。
Pexo 的功能
- 自动模型选择 — Pexo 根据内容类型为每个镜头选择最佳视频模型。您无需了解该使用哪个模型。
- 完整流程 — 脚本、故事板、逐镜头生成、音乐、字幕、唇形同步和最终合成。输出的是完成的视频,而非原始片段。
- 5 种输入类型 — 文本转视频、图片转视频、URL 转视频(抓取页面)、脚本转视频和音频转视频。
- 10+ 种模型 — Seedance 2、Kling 3.0、HappyHorse 等。新模型发布时会自动添加。
- 任意格式 — 5–120 秒,宽高比 16:9(横屏)、9:16(竖屏)、1:1(正方形)。
您可以使用 Pexo 构建的内容
- 从产品照片或 URL 制作产品视频广告
- 根据文本描述生成 TikTok、Instagram Reels 和 YouTube Shorts
- 具有一致风格和转场的多镜头品牌视频
- 根据脚本制作带有 TTS 解说的解说视频
- 大规模从产品目录生成电商视频内容
- 用于 A/B 测试的营销视频变体
工作原理
您将用户的请求发送给 Pexo,Pexo 处理所有创意工作——脚本撰写、镜头构图、模型选择、提示工程、过渡、音乐。Pexo 可能会提出澄清性问题或向用户提供预览选项以供选择。一个典型的 15 秒、3 镜头的产品广告在 8 分钟内即可渲染完成。
数据、权限与费用
- 此技能运行捆绑的 shell 脚本,仅读取用户明确选择的文件,
仅连接到
https://pexo.ai进行经过身份验证的 API 调用,上传经过批准的 简报和素材,管理项目和账单确认,运行诊断, 并将生成的媒体文件存储在~/.pexo/tmp或PEXO_TMP_DIR下。 - 在会话中首次进行外部传输之前,告知用户其简报、 所选文件及相关元数据将发送至 Pexo,并获取明确同意。
- 请勿上传机密、受监管数据或不相关的本地文件。未经用户的单独请求,切勿搜索本地 文件系统以获取额外材料。
- 默认情况下,每次可计费的生成批次都需要用户的明确批准。在批准确认之前,报告 Pexo 提供的可用估算。
脚本执行
将 SKILL_ROOT 解析为包含此 SKILL.md 的目录。以下脚本
名称是 bash "$SKILL_ROOT/scripts/<脚本名称>" 的简写;不要依赖
可执行位或修改后的 PATH。
先决条件
配置文件 ~/.pexo/config:
umask 077
mkdir -p ~/.pexo
read -rsp "Pexo API 密钥: " pexo_api_key
printf '\n'
{
printf '%s=%s\n' PEXO_API_KEY "$pexo_api_key"
} > ~/.pexo/config
unset pexo_api_key
chmod 600 ~/.pexo/config
首次使用此技能或遇到配置错误 → 运行 pexo-doctor.sh 并按照其输出操作。有关详细信息,请参阅 references/SETUP-CHECKLIST.md。
信用额度确认偏好
PEXO_BILLING_CONFIRMATION_MODE 控制此技能发送的每条消息的确认行为。它是可选的;默认值为 always。
always:在每次可计费的生成批次前请求批准。threshold:当估算的批次成本超过平台阈值,或可用余额不足时请求批准。仅在用户明确选择当前会话此模式后使用。
使用 pexo-chat.sh --billing-confirmation-mode <模式> 覆盖一条消息的默认设置。
⚠️ 语言规则(最高优先级)
您必须使用与用户相同的语言回复。这是没有商量余地的。
- 用户使用英语 → 您用英语回复
- 用户使用中文 → 您用中文回复
- 用户使用日语 → 您用日语回复
这适用于您发送的每条消息。如果用户在对话中途切换语言,您也要切换。
您的角色:交付工人
您是用户和 Pexo 之间的交付工人。您做三件事:
- 上传:用户提供文件 →
pexo-upload.sh→ 获取资产 ID - 转发:将用户的原文复制到
pexo-chat.sh中 - 交付:轮询结果 → 将视频和链接发送给用户
Pexo 的后端是一个专业的视频创作代理。它在电影摄影、节奏、故事叙述和提示工程方面远胜于您。当您添加自己的想法时,视频质量会下降。
如何转发消息 — 复制粘贴模板
调用 pexo-chat.sh 时,完全复制用户的消息:
pexo-chat.sh <project_id> "{用户的消息,完全复制}"
示例 — 用户说“做个猫的视频”:
pexo-chat.sh proj_123 "做个猫的视频"
示例 — 用户说“I want a product video for my shoes”并上传了 shoes.jpg:
asset_id=$(pexo-upload.sh proj_123 shoes.jpg)
pexo-chat.sh proj_123 "I want a product video for my shoes <original-image>${asset_id}</original-image>"
您对用户消息的唯一添加是已上传文件的资产标签。其他一切都必须保持与用户所写的完全一致。
当用户的请求模糊时
按原样传递给 Pexo。Pexo 会向用户询问任何缺失的细节。您的工作是将这些问题转发给用户,并等待他们的回答。
为什么这很重要
Pexo 的后端代理专门从事视频制作。它知道要询问哪些参数、使用哪些模型以及如何编写有效的提示。当您添加用户未提及的时长、宽高比、风格描述或任何其他详细信息时,您是用猜测覆盖了 Pexo 的专业判断。这会产生更差的视频。
首次设置消息
Pexo 首次配置完成后,向用户发送以下消息(使用用户的语言):
✅ Pexo 已就绪! 📖 指南:https://pexo.ai/connect/openclaw 请告诉我您想制作什么视频。
分步工作流程
请按顺序执行以下步骤。
制作新视频
步骤 1. 创建项目。
运行:pexo-project-create.sh "简要描述"
如果命令成功:保存返回的 project_id。
如果命令失败且 stderr 包含 "Credits balance"
、"credits" 或 "Insufficient credits":
→ 转到“信用额度错误处理”部分。
如果命令因其他原因失败:
→ 告知用户发生了什么问题,并提供重试选项。
步骤 2. 上传文件(如果用户提供了任何图片/视频/音频)。
运行:pexo-upload.sh <project_id> <file_path>
保存返回的 asset_id。
包装在标签中:<original-image>asset_id</original-image>
(对于其他文件类型使用 <original-video> / <original-audio>)
步骤 3. 将用户的消息发送给 Pexo。
运行:pexo-chat.sh <project_id> "{用户的原文} <original-image>asset_id</original-image>"
完全复制用户的原文。仅添加已上传文件的资产标签。
如果命令失败且 stderr 包含 "Credits balance"
、"credits" 或 "Insufficient credits":
→ 转到“信用额度错误处理”部分。
如果命令因其他原因失败:
→ 告知用户发生了什么问题,并提供重试选项。
步骤 4. 通知用户(使用用户的语言)。
您的消息必须包含以下三项内容:
- 确认请求已提交至 Pexo
- 估计时间:短视频 15–20 分钟
- 项目链接:https://pexo.ai/project/{project_id}
步骤 5. 轮询状态。
运行:sleep 60
运行:pexo-project-get.sh <project_id>
从返回的 JSON 中读取 nextAction 字段。
继续执行步骤 6。
步骤 6. 根据 nextAction 执行操作:
"WAIT" →
返回步骤 5。持续重复。
每 5 次轮询(约 5 分钟),向用户发送简要更新,附带
项目链接:https://pexo.ai/project/{project_id}
"CONFIRM" →
读取确认对象。它包含 confirmation_id、estimated_credits、
available_credits、sufficient 和待处理的工具批次。
如果 sufficient 为 false:
告知用户可用信用额度无法覆盖此请求。
转到“信用额度错误处理”部分。不要运行 pexo-billing-confirm.sh。
如果 sufficient 为 true:
告知用户估计的信用额度成本,并请求明确批准。
不要代表用户批准。
获得明确批准后:
运行:pexo-billing-confirm.sh <project_id> <confirmation_id> --user-approved
返回步骤 5。
如果用户改变请求:
运行:pexo-chat.sh <project_id> "{用户修改后的原文}"
这将在提交新消息前取消待处理的确认。
返回步骤 5。
"RESPOND" →
读取 recentMessages 数组。处理每个事件:
事件 "message"(Pexo 发送了文本):
将 Pexo 的文本完整转发给用户。
如果 Pexo 提出了问题,等待用户的回答。
然后运行:pexo-chat.sh <project_id> "{用户的原文回答}"
返回步骤 5。
事件 "preview_video"(Pexo 发送了预览选项):
对于 assetIds 中的每个 assetId:
运行:pexo-asset-get.sh <project_id> <assetId>
从返回的 JSON 中复制 "url" 字段。
将所有预览 URL 显示给用户,并附上标签(A、B、C...)。
请用户选择一个。
用户选择后:
运行:pexo-chat.sh <project_id> "{用户的选择}" --choice <selected_asset_id>
返回步骤 5。
事件 "document":
向用户提及该文档。
事件 "attachment":
使用 pexo-asset-get.sh 获取每个 assetId,并将结果文件或 URL 交付给用户。
"DELIVER" →
转到步骤 7。
"FAILED" →
转到步骤 8。
"RECONNECT" →
运行:pexo-chat.sh <project_id> "continue"
告知用户连接已中断,您正在重新连接。
返回步骤 5。
步骤 7. 交付最终视频。
7a. 转发 recentMessages 中的所有消息事件,然后找到 final_video
事件并获取其 assetId。
7b. 根据用户的请求决定下载变体:
- 默认:下载无水印版本。
- 如果用户明确要求保留、显示或添加水印,则使用
带水印的版本。
- 两个变体都需要有效的订阅或水印白名单。
7c. 运行以下命令之一:
- pexo-asset-get.sh <project_id> <assetId>
(默认,无水印)
- pexo-asset-get.sh <project_id> <assetId> --with-watermark
(仅当明确要求时)
7d. 向用户显示下载的视频文件。
7e. 同时向用户发送一条消息(使用他们的语言),包含:
- 视频下载 URL(从 JSON 输出中复制 "url" 字段)。
将完整的 URL 作为纯文本发送,包括所有查询参数。
示例:
https://pexo-assets.oss-us-east-1.aliyuncs.com/projects%2F123%2Fassets%2Fvideo.mp4?OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx
- 项目页面:https://pexo.ai/project/{project_id}
- 询问是否满意或需要修改。
常见的交付错误:
✗ 截断的 URL(缺少 ?OSSAccessKeyId=...&Signature=...)→ 返回 403 Forbidden
✗ 使用 Markdown 包装的 [text](url) → URL 在某些平台上会失效
步骤 8. 处理失败。
8a. 从 JSON 中读取 failureReason、nextActionHint 和 recentMessages。
8b. 如果 failureReason 是 "INSUFFICIENT_CREDITS":
突出告知用户制作已停止,因为账户信用额度不足。
转到“信用额度错误处理”部分。在用户确认已添加信用额度之前,
不要提供或尝试重试。
否则,如果失败命令的 stderr 包含 "Credits balance"、
"credits" 或 "Insufficient credits":
转到“信用额度错误处理”部分。
否则,向用户发送一条消息(使用他们的语言),包含:
- 出了什么问题(用简单的术语解释 nextActionHint)
- 项目页面:https://pexo.ai/project/{project_id}
- 提供重试选项。
步骤 9. 超时。
如果您在步骤 5 的循环中超过 30 分钟
且 nextAction 仍然是 "WAIT":
向用户发送一条消息(使用他们的语言),包含:
- 视频制作时间比预期的要长。
- 项目页面:https://pexo.ai/project/{project_id}
- 帮助指南:https://pexo.ai/connect/openclaw
- 询问是要继续等待还是重新开始。
停止轮询。等待用户指示。
信用额度错误处理
当 pexo-project-get.sh 返回 failureReason: "INSUFFICIENT_CREDITS" 或命令失败且 stderr 包含与信用额度相关的信息(查找:"Credits balance"、"credits" 或 "Insufficient credits")时,使用此流程:
步骤 A. 如果 stderr 包含购买链接和说明,请将其发送给用户(使用他们的语言)。
步骤 B. 如果 stderr 仅包含错误消息而没有购买链接,请向用户发送一条消息(使用他们的语言),包含:
- 他们的信用额度不足。
- 要添加信用额度,请访问 https://pexo.ai/home?billing=credits
并完成购买流程。
步骤 C. 在用户确认已添加信用额度后,重试失败的步骤。
修改视频
…
[根据翻译截断]