扫码打开虎嗅APP

搜索历史
删除
完成
全部删除
热搜词
2026-02-13 13:37

OpenAI也来教你怎么写Skills,我建议你看一下

本文来自微信公众号:思考机器,作者:陆三金,题图来自:AI生成


大家好呀,我是陆三金。


OpenAI Developers 最近更新文章了,分享了一些让长期运行的 agents 更高效的技巧,核心是三样东西:Skills、Shell、Compaction。



一句话总结:Skill 告诉模型“怎么做”,Shell 提供“做的环境”,Compaction 确保“能一直做下去”。


这篇只聊 Skills。


一、Skills是什么


虽然很多人已经对 skills 的概念并不陌生,但还是有必要提一下。


Skill 是一组打包好的指令和资料,包含一个SKILL.md清单文件,外加模板、示例等附件。


当 skills 可用时,平台会向模型公开每个技能的name、description和path。


它的作用很简单:当模型需要执行某个特定任务时,动态加载对应的“操作手册”。


举个例子:你需要让 agent 写一份数据分析报告。以前,你得在 prompt 里反复交代格式、字段、图表规范。现在,把这些全写进一个 Skill。模型看到任务描述,自己决定要不要调用。一旦调用,它就拥有了完整的执行标准。


关键是:Skill 只在被调用时加载,不会一直占用上下文。


二、OpenAI的实战建议


基于内部 Codex 开发和 Glean 的生产实践,OpenAI 给出了这些技巧:


1. 把description当成路由逻辑写


不要在描述中写“本 Skill 用于生成高质量报告”这种空话。


回答三个问题:什么时候用?什么时候不用?输出什么?


建议直接加一段“Use when vs. Don't use when”。


这一点很重要,当你的 skills 没有被调用,很有可能问题就出现在这里,下面是我的 Openclaw 帮我修改的 description,之前只有一句话,现在明确了何时用、何时不用、输出什么。



2. 负面例子不是可选项


Glean 的教训:第一批 Skill 上线后,模型正确触发率反而下降 20%。


原因是 Skill 之间太相似,模型选错了。


解决方法是加明确的负面例子:“别在 X 场景调用我,这时候用 Y Skill”。加上后,触发率恢复正常。


3. 模板塞进Skill,几乎是免费的


还在 system prompt 里塞大段模板?Stop。


Skill 里的模板只有触发时才加载,不相关查询不会为此多付 token。Glean 说这是他们质量和延迟优化的最大来源之一。


适用于:结构化报告、摘要、数据导出等需要固定格式的任务。


4. 需要确定性时,直接下指令


默认行为是模型自己决定是否用 Skill。这很方便,但不够确定。


在关键流程里,直接说:“Use the data-report skill.”


这是最简单的可靠性杠杆。


5. Skill + 开放网络 = 高危组合


这是 OpenAI 明确警告的:把 Skills 和开放网络访问结合,会给数据泄露创造高风险路径。


Skill 通常包含内部规范、数据格式、业务逻辑。如果模型执行时能自由访问外网,理论上可以把这些信息编码发送出去。


推荐配置:


  • Skills:允许

  • Shell:允许

  • 网络:仅对最小化白名单开启,且按请求配置


6. 用domain_secrets管理凭证


如果 Skill 需要调用受保护的 API,不要把密钥写进 prompt。


用domain_secrets,模型看到的是占位符(如$API_KEY),实际值由 sidecar 在请求发出前注入。模型永远看不到明文。


三、最后分享两个小技巧


第一条来自宝玉老师——可以把自己的工作拆解下,拆解完了,如果不知道怎么做 skills,把内容发给 claude code ,让它帮你写。



个人认为,任何你写超过两遍的 prompt,都该考虑封装。都可以用这种方式来做成 skills。


第二条来自最近在 Openclaw 领域比较活跃的推特博主Alex Finn——遇到这种可以改进自己 Agent 能力的文档,可以直接把它塞给 Openclaw,让它去自我改进。



当你不会做的时候,交给 AI 来做吧,AI 现在动手能力很强了。


本文来自微信公众号:思考机器,作者:陆三金

本内容由作者授权发布,观点仅代表作者本人,不代表虎嗅立场。
如对本稿件有异议或投诉,请联系 tougao@huxiu.com。

大 家 都 在 搜