Skill —— AI时代的"App"
一、Skill是什么
Skill是AI Agent的能力封装单元。它的载体是一个Markdown定义文件(SKILL.md),精确描述了一项任务"何时触发、如何执行、产出什么"。可以将它理解为一份可执行的专家知识合约:Agent读取这份合约,按其中约定的流程、规则和质量标准,自主完成一项完整的业务任务。
一个典型的Skill定义文件包含以下要素:
- 触发条件
:在什么场景下激活该技能 - 执行流程
:分阶段的推进策略与决策规则 - 输入/输出契约
:需要哪些上下文信息,产出何种标准化交付件 - 质量门禁
:内建的校验规则与合规检查
Skill的设计哲学是"将隐性经验显性化"。一位资深专家花十年积累的领域方法论,可以被封装为一个Skill,让任何接入了对应Agent客户端的团队成员即时调用,产出同等质量的专业成果。
二、Skill就是AI时代的"App"
这个判断不是修辞,而是对Skill在AI生态中所处位置的准确描述。
回看2007年iPhone发布和App Store上线之前的移动生态:每个手机厂商都有自己的内置功能,但不存在一个通用的、可组合的应用分发体系。App的出现改变了一切——它将"手机能力"从一个封闭的、厂商定义的概念,变成了一个开放的、开发者驱动的生态。App的本质,是将计算能力封装为标准化的功能单元,通过平台分发,让用户即装即用。
Skill在AI时代扮演的正是这个角色。
在Agent Client(如Qoder、OpenClaw、Hermes等)大规模涌现的当下,一个关键问题浮出水面:Agent能做什么,不取决于底层模型本身,而取决于它搭载了哪些Skill。 没有Skill的Agent,是一个通用对话界面;装备了Skill的Agent,可以发布文章到多个技术平台、将PPT转换为演讲视频、完成需求分析并产出规格说明书。
更进一步,Skill与App共享三个结构性特征:
第一,封装性。 App将复杂功能收敛为触屏可触达的操作;Skill将多步骤、多工具的工程流收敛为Agent可执行的标准化流程。以PPT转视频为例,Skill封装了LibreOffice PPT解析、DashScope TTS语音合成、rembg背景移除、ffmpeg视频合成等七个技术环节,用户在Agent对话中输入一句指令,后续全部由Agent按Skill定义的流程自动完成。
第二,可分发性。 App通过应用商店分发到每台手机;Skill通过MCP(Model Context Protocol)协议分发到各类Agent客户端。一次封装,多端即用——Skill不再绑定特定工具或个人,而是成为组织的可复用基础设施。
第三,可组合性。 一如App之间通过URL Scheme和API相互调用,Skill之间也可以组合编排。PPT转视频的Skill内部调用了封面图生成Skill;技术文章发布Skill内部编排了多平台发布、封面设置等多个子流程。这种组合能力,让Agent可以处理的场景从"单点任务"扩展到"端到端工作流"。
如果App是"移动计算的能力封装",那么Skill就是"智能体计算的能力封装"。两者的本质一致:将复杂能力标准化打包,让使用者无需理解底层实现就能拿到结果。
三、案例:从PPT到演讲视频
如果说上一节是概念层面的类比,这一节我们从工程设计层面,具体拆解一个Skill的完整架构。选取的案例是ppt-to-video——一个将PowerPoint演示文稿自动转换为带虚拟演讲者的演播视频的Skill。
3.1 用户视角:一条指令,一段视频
从用户侧来看,操作极为简单:在Agent对话框中提供PPT文件,激活技能,等待输出。大约几分钟后,一段完整的演讲视频生成完毕——包含PPT背景、虚拟演讲者动画、TTS语音解说,直接可播放的MP4文件。
但"简单"只是表面。这条指令背后,是一个精心设计的两阶段流水线。
3.2 架构设计:两阶段流水线与中间规范
ppt-to-video的整体流程分为两个阶段,由两个独立Python脚本承担:
Phase 1 — PPT解析与脚本生成: Agent首先调用LibreOffice将PPT转为PDF,再用PyMuPDF逐页渲染为高清截图(默认DPI=150,约1920×1080分辨率)。同时,使用python-pptx提取每页的备注文字作为演讲脚本。两项产物的整合形式,是一份req.md文件——它既是Phase 1的结构化输出,也是Phase 2的输入规范,更是用户可中途审核修改的"脚本"。
这个设计决策值得关注。两个阶段之间不是简单的数据传递,而是通过一个人类可读可编辑的中间规范来衔接。这意味着用户可以在Phase 1完成后检查每一页的演讲稿是否准确,修改措辞或补充内容,然后再启动Phase 2的视频生成。它赋予用户在不牺牲自动化效率的前提下,对最终产出保持控制权。
Phase 2 — 视频生成流水线: 这一阶段包含六个顺序步骤:
- TTS语音合成
:调用DashScope qwen3-tts-flash模型,按场景逐段合成音频。超过~450字的长文本自动按句子边界拆分,分段合成后用ffmpeg拼接。 - 演讲者视频准备
:系统内置三个演讲者形象(赛博朋克女生、职业装女生、科技男生),每个形象与一个TTS音色固化绑定。用户也可指定自定义视频。 - 背景移除与帧稳定
:这是最耗时的步骤。使用rembg(u2netp模型)逐帧移除演讲者视频背景,生成透明视频;再对所有帧进行人物区域分析,计算统一的缩放和定位参数,确保演讲者在每个场景中的大小和位置保持视觉一致。 - 逐场景合成
:每个场景通过ffmpeg将三层内容合成为视频——PPT截图作为背景层,透明演讲者视频叠加在左下角,TTS音频作为音轨。输出规格:1920×1080,25fps,H.264+AAC。 - 封面生成
:调用ImageGen生成与主题匹配的封面图片,转为3秒片头视频。 - 拼接输出
:将封面视频和所有场景视频按顺序拼接为最终MP4。
3.3 几个工程决策的价值
技术细节本身不构成亮点,但几个设计决策所体现的工程思路,值得展开:
形象与音色固化绑定。 系统内置的三个演讲者形象,每个绑定一个特定TTS音色——赛博朋克女生配Cherry(芊悦·阳光亲切女声),职业装女生配Elias(墨讲师·知性专业女声),科技男生配Neil(朗读者·沉稳男声)。选择形象即自动确定音色,用户无需在形象和音色之间反复权衡。一个看似简单的默认值设计,实际降低了每轮使用的决策负担。
画布扩展避免截断。 HappyHorse生成的演讲者视频中,人物手部有时会伸到画面边缘。如果直接在原画面上运行rembg背景移除,边缘像素会被裁切,导致手部截断。解决方案是:在背景移除前,对每帧画面四周添加35%的背景色padding(尺寸从862×1070扩展至1464×1818),为边缘区域预留安全空间。这看起来是增加计算量,实则是从源头解决质量问题,而非事后修补。
缓存机制的层次设计。 系统基于文件存在性判断每个中间产物是否需要重新生成——PDF、截图、TTS音频、透明视频、稳定视频、合成视频,每一个步骤都会检查对应文件是否已存在。更精细的是,演讲者视频通过一个.speaker_marker文件(格式:type:name:mtime:size)记录当前演讲者标识,当源文件被替换后,即使文件名不变,系统也能通过文件修改时间和大小双重校验检测到变更,自动清除所有下游缓存。这种设计支持断点续跑——流程中断后重新启动,已完成的步骤自动跳过。
这三个决策的共同指向是:一个好的Skill,不仅要把事情做对,还要让使用者在每一步都不需要多余的思考和操作。
3.4 Skill封装了什么
回顾整个ppt-to-video的工程实现,它封装的内容可以归纳为四个层面:
- 技术集成
:LibreOffice、PyMuPDF、python-pptx、DashScope TTS/HappyHorse、rembg、ffmpeg七个技术组件的协同编排 - 流程编排
:从PPT解析到视频输出的六个步骤的顺序依赖、错误处理、断点续跑 - 质量约束
:DPI分辨率、画布安全区域、帧稳定一致性、音频合成规格等工程质量标准 - 用户交互
:req.md作为人工审核节点,形象/音色默认绑定减少决策负担
这四个层面合在一起,构成了一个"PPT→视频"的完整能力封装。用户不需要知道LibreOffice如何将PPT转为PDF,不需要理解rembg的u2netp模型原理,甚至不需要安装ffmpeg——Skill的依赖管理自动处理了这些。
而这正是App的逻辑:把复杂性留给自己,把简单留给用户。
如果读者希望实际体验Skill的"可分发性",本文所分析的 ppt-to-video 已按标准化结构打包,可在此获取:
ppt-to-video.zip(约 4.8 MB)
将压缩包解压到任意 Qoder 项目的 .qoder/skills/ 目录下,Agent 即可获得"PPT → 演讲视频"的完整能力。这就是一次封装、即装即用的实际含义。
四、小结
App的出现,让手机从"能打电话的设备"变成了"能做任何事的手持终端"。Skill的出现,正在让AI Agent从"能对话的程序"变成"能完成完整业务任务的智能体"。
这个类比并非牵强附会。封装性、可分发性、可组合性——这三个结构性特征是App经济的基石,也是Skill正在AI生态中复现的模式。区别只在于:App封装的是移动计算能力,面向触屏交互;Skill封装的是智能体计算能力,面向自然语言交互。
ppt-to-video的案例表明,一个设计良好的Skill可以将七个技术组件、六个处理步骤、多个质量约束收敛为一条自然语言指令背后的静默执行。当这样的Skill积累到一定数量,当Skill之间的组合编排足够灵活,Agent的能力边界将从"辅助工具"扩展到"生产力基础设施"。
回到那个核心类比:如果App定义了移动互联网时代的能力分发方式,那么Skill正在定义AI时代的能力分发方式。 区别在于,我们还处在它的2008年——生态刚刚开始形成,但趋势已经清晰可见。
夜雨聆风