本文来自微信公众号:思考机器,作者:陆三金,题图来自: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 现在动手能力很强了。
本文来自微信公众号:思考机器,作者:陆三金
