SuperAPI AI 工具集

oc

智能体与模型

查看项目

更新于 10-16 08:14

技能介绍

OpenClip 是一个干净、以智能体为先的视频处理框架。在该框架中,编排者(oc-orchestrator 角色)负责全部协调与判断,Python 仅提供可组合的工具(oc CLI)和项目状态。该技能文件夹是自包含的:流程清单位于 flows/,工具参考位于 tools-reference.md,均相对于本技能的基础目录。

用途

OpenClip 是 ContractPlane 的第一个实质性媒体 Domain Pack。可移植契约打包在 domain-pack/openclip.domain.yaml;预编译参考计划位于 domain-pack/compiled/;全部 13 个完整 worker 契约位于 domain-pack/roles/。路由前应先阅读 Domain Pack,然后使用现有流程清单获取 OpenClip 特有的命令细节与兼容性。

用户只需一次显式调用,例如:

$ oc make three shorts from ./talk.mp4

诸如“编辑这个视频”“添加字幕”“制作缩略图”等自然请求也必须通过该技能进入。所有同级的 oc-* 技能都应视为内部 worker 角色;用户无需知道 worker 名称、工具箱命令或流程。

主要能力

  • 转录加剪辑编辑(LRF/长视频):对应 flows/flow1-cutedit.yaml。
  • 从单个长视频切出短视频:对应 flows/flow2-shorts.yaml。
  • 将 N 个视频编织成长视频,并把钩子切为短视频:对应 flows/flow3-assemble.yaml。
  • 制作与钩子匹配的缩略图:对应 flows/flow4-thumbnail.yaml。

核心思路是:拆分、并行分发、保持可引导、然后验证。将工作拆分为独立单元(5 分钟分块、转录段落、逐片段渲染);在同一轮中为每个单元生成一个 worker 子代理以并发运行;每波之前读取 oc status 获取 open_steering 并向 worker 注入匹配指令,每波之后呈现 worker 提议并邀请人类在提交渲染前进行引导;合并 worker 的 JSON 结果;推进前进行验证——worker 的“完成”只是声明,需生成独立的 oc-verifier 并要求确认结论,若结果单薄、仅确认或验证失败,则重新生成更紧凑的单元;在 project.json 中为阶段设置检查点(工具也会追加到 ledger.jsonl),然后继续。

使用方式

每个会话的首次请求:运行 oc --version,运行 oc doctor,选择流程,然后分派窄范围的 worker 技能。不要让用户选择 worker 或清单。

设置(每个会话在首次工具调用前检查一次):

  • oc CLI >= 0.2.4:用 oc --version 探测(回退:从仓库克隆运行 python3 -m openclip.harness.cli --version),然后运行 oc doctor。若 CLI 缺失或过旧,先征得用户同意(“是否安装或升级 OpenClip CLI?它会在本地运行 ffmpeg 渲染。”)——未经明确同意绝不安装软件。然后执行:

uv tool install --force "openclip-agent>=0.2.4"
|| pipx install --force "openclip-agent>=0.2.4"
|| pip install --upgrade "openclip-agent>=0.2.4"

用 oc --version && oc doctor 确认;下文所有命令均假设两者报告支持 mock 的设置。

  • ffmpeg/ffprobe 在 PATH 中(由 oc doctor 报告)。缺失时告知用户:macOS 用 brew install ffmpeg,Linux 用 apt install ffmpeg。没有它不要继续。

  • 设置 OPENAI_API_KEY(环境变量或项目目录旁的 .env),并取消设置 OPENAI_BASE_URL——真实 STT/翻译/gpt-image 需要。离线或试运行:向 stt/subtitle/thumbnail 传入 --mock。付费运行前运行 oc doctor --real-run。

选择流程:读取所选清单,它声明每个阶段的 worker、扇出宽度、确切工具调用和成功标准。清单工具行用 <P> 表示项目目录——约定为 out/<输入基名>(例如 demo.mp4 → out/demo),除非用户指定。快速开始示例中,将 demo.mp4 替换为用户的实际视频路径。

生成 worker:worker 角色契约是同级技能 ../oc-<role>/SKILL.md(安装在本技能旁边)。.claude/agents/<role>.md、.agents/skills/oc-<role>/SKILL.md 和 skills/oc-<role>/SKILL.md 都携带相同契约——它们是 agents/<role>.md 的生成镜像;使用运行时能解析的任一形式。Claude Code 且已注册 oc-* 代理(仓库克隆或插件安装):用 Agent 工具生成,subagent_type = worker 名称(oc-stt-worker、oc-cut-proposer 等)。这是首选方式——SubagentStop 证据钩子仅对已注册的 oc-* 类型强制执行。仅技能安装(npx skills add,无代理注册):从 ../oc-<role>/SKILL.md 读取 worker 契约,并生成一个通用子代理,将该契约内联在其提示顶部。行为相同;注意证据钩子不会拦截这些生成,因此将验证者的确认结论视为唯一关卡。Codex:按单元调用同级技能 oc-<role>;在运行时支持的情况下并行运行单元。

剪辑编辑辩论(流程 1,标志性动作):剪辑不由单一声音决定。对每个转录段落,生成 2-3 个具有不同视角的 oc-cut-proposer 代理——填充(收紧死气)、节奏(保持能量)、叙事(保护铺垫→回报)。它们以明确理由进行辩论。然后由 oc-cut-judge 将其调和为最终的 keep-EDL(叙事连贯性优先于紧凑性;共识死气总是剪掉)。这会产生单次处理会遗漏的剪辑。

Worker(子代理):oc-proxy-converter、oc-stt-worker、oc-cut-proposer、oc-cut-judge、oc-subtitle-agent、oc-hook-finder、oc-assembler、oc-thumbnail-artist、oc-verifier(每次渲染后的独立对抗性关卡)、oc-toolsmith(编写并复用学习到的工具,使框架自我改进)、oc-tool-auditor(学习工具共享前的对抗性晋升关卡)。

工具:参见 tools-reference.md。快速开始(有界、离线)以检查设置:

oc --project out/demo ingest --input demo.mp4 --max-seconds 60 oc --project out/demo stt --chunk 0 --mock oc --project out/demo transcript-merge

适用场景

适用于需要从长视频转录并剪辑、从长视频切出短视频、将多个视频组装成长视频并切出钩子短视频、以及生成与钩子匹配的缩略图的场景。

限制与规则

  • 绝不要以单次线性处理转录/渲染长视频——要扇出。
  • Worker 返回 JSON,而非散文;计划由编排者持有。
  • 生成的媒体不进入 git;仅提交框架代码和清单。
  • 真实运行需要设置 OPENAI_API_KEY 并取消设置 OPENAI_BASE_URL。
  • 能力缺口处理:当请求的能力不是内置动词时,阅读 tool-lifecycle.md 并在行动前分类缺口:创意/编辑判断 → 分派代理;小型确定性本地转换 → 复用工具箱,仅当没有健康工具时才分派 oc-toolsmith;多个流程需要的可复用有状态能力 → 准备 oc builtin 提案;网络/浏览器/服务/凭证密集型能力 → 专用集成,绝不使用未经审查的学习脚本。工具经独立审计后,oc toolbox propose 创建 PR 包。它绝不推送或打开 GitHub 状态。在任何分支、推送、issue 或 PR 操作前明确询问用户,然后使用包的 PR_BODY.md。
  • 不要将 ContractPlane 的 Agent Contract Plane 与 oc acp serve 混淆,后者实现现有的面向编辑器的 Agent Client Protocol 传输。
  • ContractPlane v0.1 保留扇出选择器和绑定但不执行它们;该编排者仍将块、段落和钩子扩展为真实 worker 单元。oc domain-pack show 报告打包的契约,oc domain-pack export --out <DIR> 导出它,无需运行时依赖 ContractPlane。