标签

从代码生成到工程协同:OpenAI Skills 重塑项目维护新范式

发布时间:2026-06-07 21:02来源:微信阅读:1

然而当 AI 真正深入大型项目维护后,一个更关键的问题浮现出来:

也就是说,AI 编程助手的价值,不应该只停留在"一次性生成代码"。

真正有价值的在于:它能否像一个熟悉项目规范的工程协作者,知道这个仓库该如何修改、如何测试、如何发布、如何交接。

OpenAI 在 Agents SDK 的 Python 和 TypeScript 开源仓库中,实践了一套极具参考价值的方法:通过 Skills、AGENTS.md 和 GitHub Actions,将验证、发布准备、示例集成测试、PR Review 等重复性工程任务,沉淀为稳定、可复用、可验证的工作流。

本文将深入剖析这一做法,以及它对 Codebase、AI IDE 和 Agent 平台建设的启示。

OpenAI 的方案可以归纳为四个核心部分:

这套机制的核心价值在于:

不再每次都依赖人重新告诉 AI "这个项目应该怎么做",而是将项目规范、验证流程、发布要求和交接格式沉淀到仓库中。

这与传统工程中的 Makefile、CI 配置、贡献指南非常相似。

区别在于,Skills 和 AGENTS.md 是专门为 AI Agent 准备的"操作知识"。

也就是说,仓库中不仅保存代码,还保存了 AI 执行任务时需要遵循的工作方式。

在这个实践中,Skill 可以理解为一个小型"操作知识包"。

它通常包含:

其中:

一个 Skill 不应该大包大揽。

优秀的 Skill 通常具备三个特点:

例如:

这些都是非常适合做成 Skill 的场景。

很多人会把 Skill 理解为"高级提示词"。

但更准确地说,Skill 是一种可复用工作流。

普通 Prompt 通常是这样的:

而 Skill 更像这样:

前者依赖模型临场发挥。后者将流程固定下来,让 Agent 稳定执行。

这就是 Skill 的核心价值:

将"人脑里的经验"转化为"仓库里的流程"。

Skill 只有被正确触发,才有价值。

因此还需要一个地方告诉 Codex:

这个地方就是 AGENTS.md。

可以把它理解为仓库级的 Agent 操作规约。

一个简化版可能长这样:

这类规则如果只存在于人脑中,AI 很容易遗忘。

如果每次都写进 Prompt,又太低效。

放入 AGENTS.md,就能让它成为仓库的一部分。

以代码变更验证为例,一个常见误区是:

只要用了 AI 改代码,就让它每次都跑全量测试。

这听起来稳妥,但实际会拖慢效率。

更好的方式是明确定义触发条件:

这就比"永远跑全量"更合理。

文档-only 改动不需要被过重流程拖慢。但真正影响 SDK 行为的改动,必须完成标准验证。

例如 Python 仓库可以定义:

TypeScript 仓库可以定义:

关键不是命令本身,而是把"什么叫完成"定义清楚。

对 Agent 来说,完成任务不应该只是"代码写完了",而应该是"代码写完,并且完成了仓库要求的验证"。

AI 编程助手很容易犯一个问题:

凭记忆写 API。

这在平台能力快速变化时尤其危险。

比如 SDK、API 参数、流式接口、工具调用方式、认证机制、部署规范,这些内容都可能变化。

所以 OpenAI 在相关仓库中设置了类似 $openai-knowledge 的 Skill:当任务涉及 OpenAI API 或平台集成时,Codex 不能只凭训练记忆回答,而要查询当前官方文档。

这个思路对企业内部项目也非常重要。

可以类比成:

很多 AI 代码问题,本质不是模型不会写,而是上下文过期。

所以,Agent 必须有能力在关键场景下查最新资料。

很多工程任务真正完成时,还差最后一步:

这些工作不难,但很耗时间,而且容易写得不一致。

所以 OpenAI 把这一步也做成了 Skill。

当一项实质性工作完成后,Codex 会根据真实 diff、测试结果和任务上下文,生成 PR 草稿。

示例格式可以是:

这件事看起来很小,但非常有价值。

因为它把"开发完成后的交接动作"也标准化了。

AI 不只是帮你改代码,也可以帮你把改动整理成可 Review、可合并、可追踪的工程产物。

在 Skill 里,description 不是装饰性文案,而是路由规则的一部分。

因为 Codex 在还没有读取完整 Skill 内容之前,通常会先根据 Skill 的名字和描述判断:

所以 description 不能写得太泛。

比如:

这个描述太宽泛。

更好的写法是:

前者只说了"做什么"。后者说清楚了"什么时候做"。

再比如 PR 草稿 Skill。

不好的写法:

更好的写法:

这个描述告诉 Codex:

一句话:

Skill 的 description 写得越像触发条件,路由越稳定。

这套实践里,一个非常重要的分工是:

不要让模型每次都重新想:

这些确定性动作应该写成脚本。

比如:

而模型更适合做:

这是一条非常实用的 Agent 工程原则:

脚本负责稳定执行,模型负责理解判断。

如果全部交给模型,流程不稳定。如果全部写死脚本,又缺乏灵活判断。

最好的方式是两者配合。

在示例集成测试中,有一个很重要的观点:

命令执行成功,不代表 Agent 行为正确。

很多 example 或集成场景,即使退出码是 0,也可能存在问题:

所以更好的做法是:

这比单纯看退出码更可靠。

对 AI IDE 和 Agent 平台也是一样:

未来的 Agent 系统,需要保存更多过程证据,再基于证据做二次审查。

发布前检查也是很适合做成 Skill 的场景。

一个好的 release review Skill 不应该只是问:

而应该先收集证据:

然后再让模型给出判断:

并说明原因。

这种方式可以让 AI 参与发布准备,但不会变成随口判断。

它的基础仍然是证据:

当某个 Skill 在本地已经稳定可用,就可以通过 GitHub Actions 把它接入 CI。

但顺序很重要:

因为本地阶段更适合调试:

如果流程本身还不稳定,过早接入 CI 只会自动化地产生混乱。

另外,自动化越强,越要重视安全边界。

尤其是公开仓库里的 GitHub Actions,需要注意:

这点对企业内部平台也一样。

自动化不是简单地"让 AI 自己跑",而是要设计清楚权限、触发器和审批边界。

OpenAI 也在这些仓库中使用 Codex 做 PR Review。

Codex 很适合检查:

这些检查具有高重复性、规则比较明确,非常适合交给 AI。

但人工 Review 仍然非常重要。

人更适合判断:

所以,人和 AI 的关系不是替代,而是分工。

可以这样理解:

这样,Reviewer 可以从大量低价值重复检查中解放出来,把精力放在真正需要判断的地方。

这套实践对 Codebase、Agent 平台建设非常有参考价值。

过去我们做 Codebase,更多关注的是:

这些当然重要。

但 Agent 真正进入开发流程后,还需要理解:

这些不是单纯检索能解决的。

它们更像仓库级 Skills、AGENTS.md 和自动化工作流。

未来的 Codebase 系统,不应该只回答:

还应该帮助 Agent 知道:

这意味着 Codebase 要从"代码检索系统"升级成"Agent 工程上下文系统"。

对内部项目来说,可以把仓库关键规则沉淀到 AGENTS.md:

这样,Agent 不再完全依赖用户每次提醒,而是根据仓库规则工作。

在 Codebase / Agent 场景中,可以优先沉淀这些 Skills:

重点不是 Skill 数量,而是每个 Skill 都要有明确边界。

在我们的系统中,也可以采用同样分工:

这样比"全部交给模型"更稳定,也比"全部写死脚本"更灵活。

适合 Codex / Agent 承担的:

适合人类承担的:

这才是 AI 工程协作更合理的方向。

不是替代人,而是把人从低价值重复劳动中释放出来。

这套实践最值得借鉴的地方,不是某一个具体 Skill,而是一种新的工程化范式:

一句话总结:

AI 编程助手的终点,不是"更会写代码",而是"更懂工程流程"。

真正可落地的 Agent,不应该每次都靠用户重新讲清楚怎么做。

它应该能从仓库中读取规则、选择技能、运行脚本、验证结果,并在该交给人的地方,把问题、证据和建议整理清楚。

这才是 AI 编程助手从"工具"走向"工程协作者"的关键一步。

本文参考并整理自 OpenAI Developers Blog:

Using skills to accelerate OSS maintenance作者:Kazuhiro Sera 发布时间:2026 年 3 月 9 日 原文链接:https://developers.openai.com/blog/skills-agents-sdk