Back to list

Agent 的能力上限不在模型,在压缩率

Jim Lin
AGITech

Agent 到底怎么学会「做事」?

记忆系统解释了 Agent 怎么记住"你是谁",知识编译解释了怎么组织"你知道什么",协议层解释了 Agent 之间怎么对话。但"做事"这件事本身,一直没有一个干净的解释。

答案是 Skills,也就是程序性记忆。

我不想写"怎么用 Skill"的教程,想说清楚的是另一件事:Skill 为什么重要。把它拆到最里面,你会发现所有线索都指向同一个词——压缩。

没有 Skill 的 Agent:每次都从零摸索

看一个真实场景。

一个日常任务(给客户写一篇公众号文章并发布到官网),在 Agent 没有积累任何相关 Skill 时,平均需要 25 次工具调用。一个月之后,同样的任务降到了 8 到 10 次。

模型没变,工具没变,人也没变。变的是它做这件事的套路有多固定。

没有 Skill 时,Agent 每次都在重新摸索:

用户说「写一篇关于某产品的文章」
→ 我该用什么工具?先搜一下有没有模板
→ 有没有类似的文章可以参考?看看历史文章列表
→ 内容结构怎么定?先列个大纲
→ 配图用哪个生成器?
→ 发布到哪个 API?参数是什么?
→ 草稿创建成功了吗?检查一下
→ 发布成功了吗?再确认一下

每一步都是一次选择,每次选择都有好几条岔路。整个过程像在一座没有地图的城市里找路,绕来绕去才到目的地。

有 Skill 之后:

用户说「写一篇关于某产品的文章」
→ 加载对应 Skill
→ 按步骤执行:确认主题 → 抓素材 → 生成内容 → 上传图片 → 创建草稿 → 发布
→ 完成

岔路被砍掉了,只剩一条主干道。Agent 不再需要想"下一步该做什么",它只需要照着做。

这不是模型变聪明了,是它不用再每次重新找路了。

为什么本质是压缩

把一个原本要 25 步才能说清楚的过程,变成一份 9 步的固定流程——这件事本身就是压缩。同样的结果,更短的描述。压缩比大概 2.78 倍,这就是这个 Skill 实打实的价值。

但它和 zip、gzip 那种文件压缩有个关键区别:文件压缩要求一字不差地还原,Skill 不要求。被 Skill 封装的行为,不需要和历史上某一次的执行路径完全一样,它只要在结果上完成同样的目标就行。

换句话说,Skill 的压缩允许"走样"。而恰到好处的走样,正是泛化——它记住的不是"上次我具体点了哪几个按钮",而是"这类事情大概怎么办"。前者是死记一条路,后者是学会了认路。

这也解释了一件事:为什么太简略和太详细的 Skill 都不好。

  • 太简略:Skill 本身很短,但它管不到的特例一大堆,每次还得现场临时发挥,等于没省事。
  • 太详细:几乎什么都写死了,但又臃肿又死板,现实稍微变一点就对不上。
  • 最好的那种:把常见情况讲得干脆利落,又给少数特例留了余地。

一句话:在能把事办成的前提下,尽量短。

具体到怎么写,可以借用视频压缩的思路:

  • 必做步骤 = 关键帧,把核心流程完整记下来
  • 差异部分 = 只记和默认路径不一样的地方,不重复啰嗦

剩下的就是不断校准。我的 Agent 每 15 次工具调用会做一次自检,看看现在的 Skill 库有没有"反复遇到、却还没被写进去的情况",再决定是补一笔,还是干脆新建一个 Skill。

学一个 Skill,和大脑学骑车是一回事

这套机制和人脑学技能几乎一模一样。

学骑自行车、弹钢琴、写代码,初学时每一个动作都要刻意去想,脑子转得很累;熟练之后这些动作就"沉"下去了,几乎不占注意力,你可以边骑车边聊天。神经科学的说法是,技能从需要主动控制的前额叶,转移到了负责自动化的小脑和基底神经节。

Agent 的 Skill 做的是同一件事:把高频的动作,从"每次都要模型现场推理",下沉成"直接调用的现成程序"。

没有 Skill,模型每次都得重新想一遍;有了 Skill,常做的事变成肌肉记忆。

省下来的不是一点点。每一次"重新想"都要烧 token、花时间,而照着现成流程走几乎不花脑子。这就是为什么同样的任务,练熟之后能从 25 步降到 9 步。

行业怎么做

不是只有我在想这个问题。Anthropic、OpenAI 和独立开发者社区,各自走了不同的路线,但解决的是同一件事:别让 Agent 每次都从零开始。

Anthropic 的路线是"存起来重复用"。 Prompt Caching 把长长的系统提示、指令集缓存住,后续请求直接引用,不用每次重新发一遍。更高一层,MCP(Model Context Protocol)定义了一套开放规范,让工具和能力可以被统一声明、跨平台复用。

OpenAI 的路线是"装箱分发"。 GPTs 把指令、知识文件、工具动作打包成一个可发布的单元,相当于把某个领域的做事方式压成一个能下载、能引用的包。

我自己的实践是"编成现成程序"。 SKILL.md 是一份纯 Markdown 的流程文件,Agent 按需加载、按需执行。它卡在中间:比 Prompt Caching 更有结构,比 GPTs 更轻、更开放。

维度AnthropicOpenAI本地 Skill 文件
核心做法缓存复用打包分发编成程序
规范格式MCP(开放)OpenAPI + GPT StoreSKILL.md + YAML

三条路在不同的层面解决同一个问题,而且完全可以并存——缓存解决"重复传输",打包解决"怎么分发",编译解决"怎么把一套做法精确封装好"。

好的 Skill 长什么样

理论讲完,讲实操。一个好用的 Skill,大致满足五条标准。

触发条件要精确

触发条件是 Skill 的"门牌号",决定 Agent 在什么情况下会用它。写得越准,匹配越快。

❌ "用于查询数据"
✅ "当用户查询 ERP/CRM 的客户、项目、销售、采购、库存数据时使用此 skill"

内容要分层

别把所有东西塞进一个文件。成熟的做法是入口文件保持精简(8 到 15k 字符),细节拆到子文档里,用到再加载。

skill-name/
├── SKILL.md          # 入口:触发条件、路由规则、核心流程
├── references/       # 详细参考文档(按模块拆分)
├── scripts/          # 可执行脚本
└── assets/           # 静态资源

步骤要明确

把任务拆成一步步确定的动作,模型不用在"我现在该干嘛"上反复纠结。

坑点要写下来

踩过的坑不是可有可无的附录,它是 Skill 最值钱的部分之一。比如:"正文 HTML 含中文时,用文件写入方式,避免 shell heredoc 编码问题。"这种只有踩过才知道的事,直接写进去,Agent 就能绕过去。

交付要能自查

给 Agent 一份检查清单,让它每次输出前都能自己核对一遍,而不是"写完就算完"。


举个真实例子。我有一个"报告输出"的 Skill,解决的是:从对话里提炼内容,再渲染成 PDF / HTML / PPTX 等格式。它有几个点值得说:

一是先提取、再渲染。所有格式共享同一份中间数据,新增一种格式只要写一个渲染器。本质上是把"写什么"和"用什么格式输出"拆开,各管各的,互不拖累。

二是分层质检。从内容质量到视觉细节分成几层,每层都是具体可执行的规则,比如"任何情况下禁用饼图""数字列右对齐,文本列左对齐"。这些规则把 Agent 从"凭感觉生成"变成了"按规范执行"。

三是风格参数化。品牌色、Logo 作为参数传进来,不再藏在 prompt 里。不同风格的报告共享同一套渲染逻辑,只是参数不同——这又是一层压缩。

技能会迁移,这才是关键

到这里可以再往深想一步。

人能跨领域,靠的不是记住每个领域的 SOP,而是把一个领域学到的套路搬到新领域。厨师摸透了"火候",去学烘焙时不用从零开始,因为控温这件事是相通的。

Agent 的 Skill 如果也能做到这一步,才真正有意思。

我在自己的 Skill 库里见到了这种迁移的雏形。比如"入口只做分发、具体逻辑下沉到子模块"这个套路,最早出现在业务数据查询的 Skill 里。后来报告输出、投资分析这些完全不同的 Skill,自然而然也长成了同样的结构——不是我刻意设计的,是因为这个套路本身就好用,到哪儿都适用。

再比如"先提取成统一格式、再按需渲染",这个套路从报告输出迁到了数据分析,又迁到了内容发布。套路是跨任务的,只是具体字段不同。

当一个 Agent 的 Skill 库开始出现跨领域的套路复用,它就不只是在"记住怎么做事",而是在"理解做事的结构"。

这有点像编程里的设计模式。Strategy、Observer、Factory 之所以有价值,不是因为它们是银弹,而是因为它们把"这类问题的本质是一样的"压缩成了一个能传播的名字。Agent 的 Skill 生态未来大概也会这样:不是每个领域都从头写一套,而是认出底层那几种通用套路,到处复用、组合。

我的思考

写完这篇,几个判断更清晰了。

Skills 不是可有可无的功能,是 Agent 的必然方向。 没有 Skills 的 Agent,就像没有长期记忆的人,每次对话都从零开始。你不会把正经的活儿交给一个永远长不大的系统。

"写 Skill"本身是门手艺。 想明白"在能办成事的前提下尽量短"之后,你自然知道什么样的 Skill 好:不是堆字数,是找那个"既简洁、又能覆盖足够多情况"的平衡点。精确触发、分层结构、明确步骤、写下坑点、能自查——这五条都是在逼近这个平衡。

能力上限不在模型参数,在压缩率。 两个 Agent 用同一个模型,有没有积累好 Skills,表现能差出一个数量级。参数竞赛正在触及天花板,但怎么把做事的套路压缩好,这件事还有巨大空间。

技能迁移才是终局。 当好的 Skill 不只能复用,还能把底层套路跨领域搬运时,Agent 生态才算真正成熟。这有点像 npm 之于 JavaScript:流通的不只是"别人写好的代码我能用",而是"整个社区的解题套路在流通"。

参考