← Research

Tools / Agent Stack

Harness 是底盘,Skill 是插件

你这问题问到根上了。harness 是包着模型的"底盘 + 手"——工具、循环、文件和代码执行、权限,决定模型有几只手、能不能真动文件;skill 是插在底盘上的"专长包"——一个文件夹,装着指令、脚本、资源,按需加载。你做 PPT 的 skill 平平,十有八九是只写了"指令"一层、缺了"脚本"和"资源"两层,而且你的 harness 可能压根没给它一只真能生成文件的手。官方 cowork 还行,是厚资源 + 强 harness。一句话:skill 的效果 = 指令 × 资源脚本厚度 × harness 能力,你大概率三项都偏薄。

harness 和 skills 啥关系?为啥我做的 PPT skill 平平,官方 cowork 还行? 读时~27 min
路线图

先认人,再拆你的 skill 哪薄了

咱们先把 harness 和 skill 这俩词分清楚(底盘 vs 插件);再看 skill 内部的三层结构,你就明白自己漏了啥;橙色那站直接诊断你的 PPT skill 为啥平平;再对照官方为啥还行;最后给你一套把它救起来的具体动作。

直接诊断 01 底盘+插件 啥关系 02 skill 三层 指令脚本资源 03 你的为啥平 诊断 04 官方为啥行 对照 05 怎么救 动作
Roadmap. 五步从"认清两个词"到"把你的 skill 救起来";橙色第三站直接诊断你的 PPT skill。

先认人:底盘是 harness,插件是 skill

这俩词老被混着说,先一刀切清楚。harness(中文常叫"运行时""执行环境""脚手架")是包在模型外面的那层底盘——它管着模型能调哪些工具、怎么一轮轮循环、能不能读写文件、能不能跑代码、有什么权限5。说白了,模型本身只会"想和说",真正让它能"动手干活"的那双手,是 harness 给的。

skill 则是插在这个底盘上的一个"专长包":技术上就是一个文件夹,里面一个 SKILL.md 写明"这门手艺怎么做",外加可选的脚本和资源文件2。它是可插拔的——你装上"做 PPT"的 skill,模型就多一门做 PPT 的本事;不用时它也不占地方。

关键是它俩的主从关系:skill 本身不会动手,它只是一套"指挥说明 + 工具箱";真正去读文件、跑脚本、生成 .pptx 的,是 harness 那双手。skill 出主意,harness 干活。这条关系记牢,你后面就懂为啥"skill 写得再好,harness 不行也白搭"。

先想一下

照这个"出主意 vs 干活"的分工:如果你的运行环境根本不能跑代码、不能写文件,那你给它装一个再完美的"做 PPT skill",会发生什么?先想一下再点开。

试着先答

它最多给你"描述"一份 PPT(讲每页该放啥),但生成不出真正能打开的 .pptx 文件——因为 skill 只出主意,真正动手要靠 harness 的"手"(代码执行 + 文件写入)。手没给,主意再好也落不了地。这就是为啥同一个 skill,换个 harness,效果天差地别。

记住这一句:harness 是底盘 + 那双手(工具/循环/文件/代码执行/权限),skill 是插在上面的专长包(指令+脚本+资源)。skill 出主意,harness 干活——主从关系记牢,全篇都顺。

skill 内部的三层:你大概只写了第一层

现在把 skill 这个"专长包"拆开看。一个真正好用的 skill,内部装着三层不同的东西,它们在不同时刻被加载——这套"按需加载"叫渐进式披露(progressive disclosure)1

是什么什么时候上场
① 指令(SKILL.md)用大白话讲"这门手艺的流程、规矩、注意事项"触发时读进来当指挥
② 脚本(scripts/)可执行代码,把确定性的活儿(比如真生成 .pptx)交给程序干需要时被"执行",不占上下文
③ 资源(模板/示例/参考)模板文件、设计规范、worked example、参考资料用到哪份读哪份,不占上下文

这三层的分工特别要紧:指令负责"怎么想",脚本负责"精确地做",资源负责"照着这个样子做"3。而且后两层有个大便宜——脚本和资源文件不占上下文,用到才读,所以你可以塞进大量模板、示例、文档,模型不会因此变笨1

问题来了:大多数人自己写 skill,只写了第一层——一段 SKILL.md,描述"帮我做个好看的 PPT,要专业、要有逻辑"。没脚本(于是模型每次得临时现编生成代码,飘)、没资源(于是没有模板、没有"好 PPT 长啥样"的范例,全凭它自由发挥)。三条腿的凳子,你只给了一条腿。

举个具体的(就拿你正在读的这个 skill)

你现在读的这篇,是一个叫 teach-me 的 skill 产出的。它为啥不只是"一段 prompt"?因为它三层齐全:SKILL.md(指令:怎么分轴、怎么写、怎么过 reviewer)+ template.html(资源:这套杂志排版的现成模板,不用每次重画)+ publish.sh(脚本:确定性地重建索引、提交、部署)。指令 + 资源 + 脚本三层都厚,跑在一个能写文件、能开子 agent 的强 harness 上——所以它产出稳定。你的 PPT skill 要是只有 SKILL.md 那段话,缺的正是后面这两层。

先想一下

这三层(指令/脚本/资源),你觉得哪一层最能解释"为啥产出忽好忽坏、不稳定"?先想一下再点开。

试着先答

脚本那一层。没脚本,生成 .pptx 的代码每次都让模型临时现编——这次想周到、下次偷懒,结果当然飘。有了固定脚本,这步就从"每次重新发挥"变成"每次照着同一套程序走",确定性的活交给确定性的代码,产出立刻稳。资源层管的是"好不好看",脚本层管的才是"稳不稳"。

记住这一句:好 skill 有三层——指令(怎么想)、脚本(精确地做)、资源(照着样子做),后两层还不占上下文。你写的多半只有指令一层,这是"平平"的第一个根。

直接诊断:你的 PPT skill 为啥平平

到这儿能正面回答你了。你的 PPT skill 效果一般,通常不是一个原因,是三个洞同时漏风——对照下面这张表,你大概率中了不止一条。

你的 skill 多半的样子后果
缺脚本没有真生成 .pptx 的脚本,靠模型临时现写代码每次结果不稳、排版常翻车
缺资源没有模板、没有"好 PPT 范例"、没有设计规范模型自由发挥,审美和结构全凭运气
指令太泛"做个专业好看的 PPT"——没有具体步骤、没有验收标准它不知道"做对了"长啥样,只能糊一个
harness 没手环境不能跑代码 / 不能写文件再好的 skill 也只能"说",产不出文件

这四条里,最隐蔽、也最伤的是"指令太泛"和"缺资源"凑一块:你说"做个专业好看的 PPT",模型脑子里"专业好看"的中位数,就是那种人人见过、谁也不记得的模板风。你没给它一个具体的好样子(资源),它就只能回归平庸的平均值。这跟"AI 出图为啥有 AI 味儿"是同一个病根——没有具体约束,模型必然滑向中位数。

常见错答

"那我把 SKILL.md 那段提示词写得更详细、形容词堆更多('要高级、要有设计感、要惊艳'),是不是就好了?"——你以为问题是"形容词不够多",其实形容词越多越没用。"高级""惊艳"这种词,模型没法执行——它需要的是能照着做的具体东西:一个 .pptx 模板、一个"好页面"的范例、一条"每页不超过 6 行字"这种可验收的规矩。把'形容词'换成'模板 + 范例 + 可验收规矩',才是真药。

记住这一句:你的 PPT 平平,通常是四个洞一起漏——缺脚本、缺资源、指令太泛、harness 没手。最伤的是"指令泛+缺资源",它逼模型回归平庸中位数;解药不是堆形容词,是给具体的模板、范例和可验收规矩。

对照:官方 cowork 为啥就还行

把你的 skill 跟官方的摆一块,差距一下就清楚了——它行,不是因为它的"提示词"写得比你玄,是因为它把你缺的那几层全补齐了

Anthropic 官方那套做 PPT 的能力(开源在它的 skills 仓库里),里头带着真正的生成脚本(封装好 python-pptx 这类库,确定性地拼出 .pptx)、成套的模板和设计约定、还有打磨过的工作流和示例4。换句话说,它的"指令、脚本、资源"三层都厚。

更关键的是另一半:官方 cowork 这类产品,跑在一个"手很全"的 harness 上——能执行代码、能读写文件、能把生成的 .pptx 真交到你手里2。你自己那个环境,可能这只手就没接上。所以你看到的"还行",其实是厚 skill × 强 harness两个因子相乘的结果,不是单点的"提示词更好"。

你来补

用本篇的公式 效果 = 指令 × 资源脚本厚度 × harness 能力,给"你的 skill"和"官方 cowork"各打个高低,看差距落在哪几项。试着补:

· 你的 skill:指令 ? / 资源脚本 ? / harness ?
· 官方 cowork:指令 ? / 资源脚本 ? / harness ?

对答案

你的:指令(泛)/ 资源脚本(几乎没有)/ harness(可能没手)——三项可能都偏低,相乘当然小。官方:指令(打磨过)/ 资源脚本(厚:真脚本+模板+示例)/ harness(强:能跑码写文件)——三项都高,相乘就大。注意是"相乘"不是"相加":任何一项接近零,整体就垮——这正是为啥你只补"指令"那一项,提升也有限。

记住这一句:官方 cowork 还行,不是提示词更玄,是"厚 skill(三层都满)× 强 harness(手很全)"两个因子相乘。你看到的差距,是结构差距,不是文采差距。

怎么把你的 PPT skill 救起来

诊断完了,给你一套能直接上手的修法。顺序很重要——按"性价比"从高到低排:

先确认 harness 有没有手

第一件事不是改 skill,是确认你的运行环境能不能跑代码、能不能写文件。这是地基,地基没有,后面白搭。能,就往下走;不能,先换一个支持代码执行 + 文件读写的环境(很多 Claude 的官方客户端、能跑 bash/python 的 agent 环境都行)。

给它一个真脚本

别让模型每次现编生成代码。写(或让 Claude 帮你写)一个稳定的 .pptx 生成脚本(拿 python-pptx 这类库来写),skill 每次调它,产出就稳了3。这一步把"缺脚本"那个洞堵上,通常提升最明显。

喂它一个好样子 + 可验收规矩

放一个你认可的 .pptx 模板当资源,再写两三条能验收的硬规矩:每页不超过 N 行字、标题用某字号、配色用某套、关键页必须有图。把空泛的"专业好看"换成这些能照做、能检查的东西——这一步治"指令泛 + 缺资源"那个最伤的病。

最后一条心法:别把 skill 当"更长的提示词",把它当"一个带工具箱和样板间的专业包"。提示词是嘴,工具箱(脚本)是手,样板间(资源)是眼——三样齐了,你的 skill 才追得上官方的。

记住这一句:救你的 PPT skill,按性价比三步走——先确认 harness 有手,再给它一个稳定的生成脚本,再喂一个好模板 + 可验收规矩;把 skill 当"带工具箱和样板间的专业包",不是更长的提示词。

综合判断

不是提示词不够花,是结构缺了腿

正面收个口。harness 和 skill 的关系一句话:harness 是底盘加那双手,skill 是插在上面的专长包;skill 出主意,harness 干活。而一个好 skill 内部有三层——指令(怎么想)、脚本(精确地做)、资源(照着样子做),后两层还不占上下文。你做 PPT 的 skill 平平,十有八九不是因为提示词写得不够花,是结构上缺了腿:多半只写了"指令"一层,没脚本(于是产出不稳)、没资源(于是审美和结构回归平庸中位数),指令还偏泛("专业好看"模型没法执行),甚至你的 harness 可能压根没有"动手生成文件"的那只手。官方 cowork 之所以还行,不是它的提示词更玄,是它把这几层全补齐了——真脚本、成套模板、打磨过的示例,再跑在一个能跑码写文件的强 harness 上,是厚 skill × 强 harness 相乘的结果。所以你该怎么改?——按性价比:先确认 harness 有手(不能跑码写文件就先换环境),再给 skill 一个稳定的 .pptx 生成脚本,再喂一个你认可的模板 + 几条可验收的硬规矩(每页几行、什么配色)。把空泛形容词换成"模板 + 范例 + 可验收规矩"。一句话收尾:别把 skill 当更长的提示词,把它当一个带工具箱(脚本)和样板间(资源)的专业包——它跟官方的差距是结构差距,补齐那两条腿,你的就追得上。

关键不确定性

这些地方我说实话也没全把握

  • 我没看过你那个 PPT skill 的具体内容,四个洞是"最常见"的诊断,不是对你的定论。也许你某项做得不错、卡在别处。最准的做法是拿这四条逐一对照你自己的 skill 实物。
  • "官方 cowork 内部到底怎么实现"我是合理推断,标 🟡。Anthropic 公开的 Agent Skills 文档和开源 skills 仓库里确实有带脚本+模板的 PPT 能力,我据此推断 cowork 用了类似结构;但它具体挂了哪套、harness 细节如何,我没有内部一手信息。
  • "harness / skill"这套术语本身还在演化。不同产品、文档对 harness 的叫法不一(运行时/执行环境/脚手架/agent runtime),边界也在变。我给的是当下主流的理解框架,不是钉死的标准定义。
自测

读完盖住,试着答这几题

  1. 用"出主意 / 干活"区分 harness 和 skill,各是哪个?

    试着先答

    skill 出主意(它是指令+脚本+资源的专长包,本身不动手);harness 干活(底盘+那双手:工具、循环、文件/代码执行、权限)。skill 指挥,harness 执行。

  2. 一个好 skill 内部的三层是什么?各管什么?后两层有什么额外好处?

    试着先答

    指令(SKILL.md,管"怎么想")、脚本(scripts,管"精确地做")、资源(模板/示例,管"照着样子做")。后两层额外好处:不占上下文、用到才读,所以能塞大量模板和文档而不让模型变笨。

  3. 为什么"指令太泛 + 缺资源"是最伤的组合?它跟"AI 味儿"有什么共同病根?

    试着先答

    因为"专业好看"这种泛指令模型没法执行,又没有具体范例约束,它只能回归"专业好看"的平庸中位数。共同病根:没有具体约束时,模型必然滑向训练数据的中位数——这正是 AI 味儿的来源。

  4. 为什么说效果是"相乘"不是"相加"?这对你的改进顺序有什么含义?

    试着先答

    效果=指令×资源脚本×harness,任何一项接近零,整体就接近零。含义:别只猛补"指令"一项;尤其先确认 harness 有手(它若是零,其它再好都白搭),这也是为什么改进要按"先 harness、再脚本、再资源"的性价比顺序。

  5. 应用题:朋友说"我把做 PPT 的提示词又加了 200 字形容词,还是不行"。你一句话点醒他?

    试着先答

    形容词模型执行不了,你缺的不是更长的提示词,是三层里的后两层:给它一个真能生成 .pptx 的脚本、一个你认可的模板范例、几条可验收的硬规矩(每页几行、什么配色),并先确认你的环境能跑代码写文件。

把这几题截图,过两三天再凭记忆答一遍 —— 记得住才算真学会。

引用

Sources

  1. Anthropic — Equipping agents for the real world with Agent Skills(三层内容:指令/代码/资源、渐进式披露、文件不占上下文) — https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
  2. Agent Skills overview(Claude Docs:skill=含 SKILL.md 的文件夹、scripts/references/assets 目录结构、何时触发) — https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview
  3. Skill authoring best practices(Claude Docs:SKILL.md 控行数、脚本做确定性操作、提供模板与示例) — https://docs.claude.com/en/docs/agents-and-tools/agent-skills/best-practices
  4. anthropics/skills(官方开源 skills 仓库,内含 pptx/docx 等带脚本+模板的能力) — https://github.com/anthropics/skills
  5. Claude Agent Skills: A First Principles Deep Dive(harness/运行时与 skill 的关系、progressive disclosure 系统设计) — https://leehanchung.github.io/blogs/2025/10/26/claude-skills-deep-dive/