大数跨境

人工智能 | 从Prompt到Skills:Agent走向工程化的关键能力层

人工智能 | 从Prompt到Skills:Agent走向工程化的关键能力层 联川AILab
2026-07-03
2
导读:在真实工程中,Agent的可靠性往往不只取决于模型,而取决于它是否能稳定复用一套成熟的工作方法。

当我们谈论AI Agent时,最容易关注的是模型本身:模型够不够强,推理够不够准,工具调用够不够稳。但在真实工程中,Agent的可靠性往往不只取决于模型,而取决于它是否能稳定复用一套成熟的工作方法。

很多团队一开始做Agent,都会从写长Prompt开始。比如写一个代码审查助手,就把安全检查、性能检查、输出格式、团队规范、测试要求、模板路径全部塞进系统提示词。短期看,这种方式很快;长期看,它会变成一团难以维护的上下文泥球:Prompt越来越长,同一套规则到处复制,不同Agent的能力边界不清晰,团队经验也很难沉淀。

Agent Skills解决的正是这个问题。它不是让Agent多一个按钮,而是把一类可重复任务的成熟做法封装成一个可发现、可加载、可维护的能力包。OpenAI Codex文档将Skills描述为面向可复用工作流的编写格式,一个Skill可以打包说明、资源和可选脚本,让Codex更可靠地执行特定任务;Anthropic的文档也将Agent Skills定义为模块化能力,用于把工作流、上下文、最佳实践等领域知识按需加载给Claude。

1

为什么 Agent 需要 Skills?

过去我们习惯把一切都写进 Prompt:你是代码审查专家;你要检查安全问题;你要检查性能问题;你要遵守团队规范;你要按表格输出;你要必要时运行测试脚本。

这种方式的问题不在于Prompt无效,而在于Prompt被迫承担了太多职责。它既要描述当前任务,又要承载长期规则;既要表达输出格式,又要维护团队流程;既要告诉模型怎么判断,又要告诉模型怎么调用外部资源。随着Agent任务变复杂,这种长Prompt模式会遇到几个明显瓶颈:第一,主提示词越来越长,很多内容并不是每次任务都需要,却每次都占用上下文窗口。第二,规则散落在不同项目、不同对话、不同工具配置里,难以版本管理。第三,多Agent协作时,每个Agent到底具备哪些能力不清楚。第四,团队已经验证过的工作流无法被稳定复用,只能靠复制粘贴。

Skills 的核心价值,就是把这些反复出现的经验从主Prompt中拆出来,整理成独立的能力包。一句话概括:Skill=可复用提示词+专业SOP+可选脚本+ 可选资源。它适合沉淀代码审查、测试修复、数据分析、周报撰写、技术文档改写、SQL 生成、接口调试、故障复盘等重复出现且步骤相对稳定的任务。Skill的价值在于把反复使用的经验整理成可复用、可发现、可按需加载的能力包,而不是继续堆在主提示词里。










2

Skill到底是什么?

从工程视角看,一个Skill通常是一个目录,目录里至少有一个“SKILL.md”文件。这个文件既是说明书,也是能力契约。典型结构如下:

其中,SKILL.md是核心文件,用来描述这个Skill的名称、触发场景、执行步骤、输出规范和资源引用。references/可以放规范文档、检查清单、领域资料;scripts/可以放确定性脚本;assets/可以放模板、示例、配置或图片素材。OpenAI Codex文档也给出了类似结构:一个 Skill是包含SKILL.md的目录,并可选包含 scripts/、references/、assets/ 等资源。一个最小的SKILL.md通常长这样:

这里最关键的是两个字段:name和description。name是技能名,description是触发门牌。模型通常会先看到这些元数据,再判断当前任务是否需要加载完整Skill。Anthropic文档明确说明,每个Skill都需要带YAML frontmatter,并且name与description是必需字段;description 应同时说明Skill做什么,以及什么时候应该使用。

3

Skills 的关键机制:渐进式加载

Skills 最重要的设计不是有一个文件夹,而是Progressive Disclosure,渐进式加载。

如果一个项目里有50个Skill,我们不可能把每个 Skill的完整说明、模板、脚本、参考资料全部塞进上下文。那样会迅速撑爆上下文窗口,也会让模型在过多信息中迷失。

因此,Skills通常分三层加载:

第一层是元信息层。Agent启动或扫描技能目录时,只读取每个Skill的name、description 和路径。第二层是指令层。当当前任务匹配某个 Skill的描述时,Agent才读取完整的SKILL.md。第三层是资源执行层,只有在任务真的需要时,才进一步读取参考文件、模板或执行脚本。Agent Skills标准文档也将这一过程概括为 Discovery、Activation、Execution三个阶段:先发现技能,再加载完整说明,最后按需执行脚本或读取资源。这就是Skills 和把所有东西都塞进Prompt的根本区别。Prompt是一次性输入;Skill是可复用能力。Prompt直接占用上下文;Skill先暴露索引,真正需要时再加载。Prompt很难版本化;Skill可以像代码一样放进仓库、评审、复用、迭代。

Anthropic的工程文章也强调,渐进式披露是Agent Skills能够扩展的核心设计原则:Agent 不需要一开始把所有技能内容读入上下文,而是像查阅一本组织良好的手册,先看目录,再看章节,最后按需查看附录或运行代码。

4

Skill与Prompt、Rules、Memory、Tool、MCP、Agent的边界

Skills 容易和很多概念混在一起。真正理解它,关键是分清它解决的问题。

Prompt解决的是这次要做什么。例如:把这段文字改成更正式的语气。Rules解决的是几乎每次都要遵守什么。例如:本项目使用pnpm接口返回结构统一为 {code, message, data}。Memory解决的是长期状态和偏好是什么。例如:用户偏好中文回答这个项目已经迁移到 FastAPI。Tool 解决的是Agent 能执行什么动作。例如运行测试、查询数据库、调用接口、写文件。MCP则进一步解决外部工具、数据源、工作流如何标准化接入AI应用的问题。MCP官方文档将其描述为连接AI应用与外部系统的开放标准,让AI应用可以访问本地文件、数据库、搜索引擎、计算器和工作流等能力。(Model Context Protocol)

Skill解决的是遇到这类任务应该按什么方法做。它不直接替代Tool,也不直接替代MCP。更准确地说:Tool负责动作,Skill负责方法,MCP 负责连接,Agent负责决策。例如,run_tests()是Tool;通过MCP接入 GitHub、数据库、文件系统,是外部能力连接;测试修复流程才是Skill,因为它告诉Agent 什么时候运行测试、如何定位失败、如何写回归用例、最终如何汇报。原文也给出了类似边界:Tool是动作,MCP是外部能力标准接入,Skill是任务方法、流程、规则和资源的封装。

5

真实案例:把随机森林分类模型封装成Skill

为了更具体地理解Skills,我们不再用代码审查助手这类通用例子,而是换成一个更贴近真实业务的场景:把Omicsmind平台中的随机森林分类模型脚本封装成Agent Skill。

在我们的平台里,随机森林分类模型原本已经是一套可运行的Python 脚本。入口脚本负责读取JSON配置、输入数据路径、输出目录和结果压缩包名称,然后调用核心训练函数执行模型流程。核心脚本会完成数据读取、特征重命名、标签编码、训练测试集划分、随机森林训练、超参数优化、模型评估、特征重要性分析、ROC 曲线、PR曲线、混淆矩阵、SHAP图、学习曲线、模型保存、结果打包和 MD5 校验文件生成。与此同时,还有一个分类任务检查脚本,用来提前判断上传文件是否可读、特征列是否为数值型、目标变量是否符合分类任务要求。

如果只是把这些脚本作为普通工具暴露给 Agent,Agent最多只能执行命令。但Skill化之后,Agent获得的不只是一个运行入口,而是一套完整的建模方法:什么时候应该调用随机森林分类模型,输入数据必须满足什么格式,训练前要做哪些检查,配置文件如何生成,训练结束后应该检查哪些产物,模型指标如何解释,最终结果如何交付给用户。也就是说,Skill把机器学习脚本升级成了Agent可调度的标准化建模能力。

最关键的SKILL.md要告诉Agent:这个Skill什么时候使用、输入数据长什么样、运行前检查什么、如何生成配置、如何调用脚本、如何判断运行成功,以及如何向用户解释模型结果。一个精简后的SKILL.md可以这样写:

通过这个例子可以看到,Skill并不是简单地把脚本包一层Prompt。它真正做的是把一段机器学习脚本周围的上下文补齐:输入契约、参数契约、执行契约、输出契约和解释契约。模型脚本负责算,Skill负责告诉Agent什么时候算、怎么算、算完怎么交付。这也是机器学习平台引入Skills的核心意义。过去每个模型脚本都需要开发人员理解参数、手动运行、检查输出、解释结果;Skill化之后,随机森林、SVM、XGBoost、LightGBM、MLP等模型都可以被整理成标准化能力包,由 Agent根据用户任务自动选择和调用。

因此,在我们的真实场景中,Skills更像是机器学习平台和Agent之间的能力适配层。它让 Agent不只是会运行一个脚本,而是能够理解一个模型能力的完整生命周期:从数据检查、配置生成、模型训练,到结果解释和交付打包。这样的Skill才真正具备工程价值。

6

如何写一个高质量Skill?

写Skill的核心,不是写得多,而是写得清楚、可触发、可执行、可维护。

1.description 要像“触发门牌”

不推荐:description: 一个有用的开发助手。

推荐:description: 当用户要求审查 Python/FastAPI 后端代码、PR diff、接口错误处理、安全风险或测试缺口时使用。不要用于普通代码解释或新功能开发。

一个好的description至少回答四个问题:做什么?什么时候用?处理什么输入?什么时候不用?如果描述太泛,Agent会误触发;如果描述太窄,Agent该用时不用。原文也强调,description是Skill的触发门牌,需要同时包含任务对象、任务动作、触发条件和适用边界。

2.Skill要小而专。

好的Skill:python-code-reviewer,fastapi-api-debugger,markdown-doc-editor,sql-query-writerfrontend-accessibility-reviewer

不好的Skill:developer-helper,all-in-one-agent,document-tool,data-everything

Skill越大,触发条件越模糊,模型越难判断什么时候该用。真正工程化的Skills应该像函数一样,职责单一、边界清晰、可以组合。

3.把确定性步骤交给脚本

并不是所有内容都适合写成自然语言说明。能稳定自动化的步骤,应该放进脚本。例如格式检查、静态扫描、数据清洗、模板渲染、依赖明确的转换逻辑,都适合写进scripts/。需要理解、判断和表达的部分,交给模型;两者之间的流程,写进SKILL.md。这也是Skills比纯Prompt 更强的地方:它可以同时承载自然语言流程和确定性代码。Anthropic的工程文章也指出,某些操作用传统代码执行比让模型逐token生成更高效、更可靠,Skill可以包含可执行代码,让流程更一致、可重复。

7

什么时候应该写 Skill?

可以用下面五个问题判断:1.这个能力会重复使用吗?2.它有明确触发条件吗?3.它有固定步骤或输出格式吗?4.它需要附带模板、资料或脚本吗?5.它不适合每次都塞进主 Prompt 吗?如果多数答案是“是”,就适合写成 Skill。

反过来,以下情况不适合写 Skill:只是一次性小提示;任务非常简单;触发条件模糊;多个 Skill 描述高度重叠;内容几乎每次都要加载;本质是外部动作;或者需要独立上下文和权限隔离。原文也明确指出,如果只是多了一套可复用流程和输出格式,优先 Skill;如果已经出现不同角色、不同权限、不同上下文、不同工具集合,再考虑 Subagent。

8

Skills 的安全边界:它不是权限系统

Skills很强,但也有风险。一个Skill可以包含自然语言指令、脚本、参考资料和外部资源引用。如果来源不可信,它就可能影响Agent的行为,诱导Agent读取敏感信息、调用高风险工具,甚至执行不该执行的脚本。Anthropic文档明确提醒:Skills会通过指令和代码给Claude新能力,因此只应使用可信来源的Skills;恶意 Skill 可能引导 Claude 以与 Skill 声称目的不一致的方式调用工具或执行代码。这意味着,团队在引入Skills时必须把它当成工程资产管理,而不是随手下载的提示词片段。至少要做到:

  1. Skill 进入版本控制;

  2.  明确维护人、版本和变更记录;

  3.  审查scripts/ 里的可执行代码;

  4. 检查是否包含外部网络访问;

  5. 高风险动作必须经过工具权限、沙箱或人工审批;

  6. 定期清理过时、重复、职责模糊的 Skill。

尤其要记住:

Skill 只能写流程,不能代替权限控制。

删除文件、修改生产配置、调用支付接口、发送邮件、删除数据库等高风险动作,应该由工具权限、人工审批、沙箱、幂等设计和审计日志来控制,而不是靠SKILL.md里的一句不要误操作。

9

把Skills放进Agent工程体系中理解

如果说Prompt Engineering解决的是如何让模型这次回答得更好,Context Engineering解决的是如何给模型提供正确上下文,那么Skills更像是两者之间的一层能力封装:Prompt Engineering负责当前任务怎么表达,Context Engineering负责任务需要什么上下文,Tool / MCP Engineering负责Agent 能连接什么外部能力,Skill Engineering负责一类任务的成熟做法如何复用,Agent Engineering负责如何规划、选择、执行、校验和协作。

Skills的出现,说明Agent工程正在从调 Prompt走向组织能力。真正可用的Agent,不应该每次都从零开始理解任务,而应该像一个团队新人一样,能查阅已有SOP、调用已有脚本、遵守已有规范,并在执行过程中只加载当前任务真正需要的内容。这也是Skills最值得关注的地方:它把经验从聊天记录里释放出来,变成可以复用、可以共享、可以版本管理、可以审查的工程资产。

10

结语:Agent的能力,不应该只存在于一次对话里

很多团队做Agent失败,不是因为模型完全不行,而是因为没有把成功经验沉淀下来。今天调通一次的Prompt,明天换个任务又要重写;今天修好的流程,下周另一个Agent又会踩同样的坑;今天靠人工补充的上下文,明天仍然要重新解释。Skills提供了一种更工程化的路径:把一次性提示词变成可复用流程; 把团队经验变成版本化资产; 把 Agent 能力从会一次变成可重复。

未来的Agent系统,不会只由模型、工具和工作流组成,还会有一层越来越重要的能力库。这个能力库里沉淀的不是简单提示词,而是团队对任务的理解、标准、流程、资源和自动化脚本。当我们开始认真设计 Skills,本质上就是在为 Agent建立一套可复用的专业方法论。这可能才是Agent从Demo走向生产系统的关键一步。

基于文章中所使用的先进技术,包括深度学习,联川生物为您提供最前沿的生物分析解决方案。联川生物的专业团队将这些先进技术与丰富的经验相结合,为您提供高效、精准的服务。无论您的需求是基础研究还是临床诊断,我们都能够为您提供量身定制的解决方案。选择联川生物,让您的研究获得最新科技的支持,开创更广阔的科学道路。

参考文献:

https://github.com/competition-W/ai-agents-from-zero.git

扫描下方二维码


【声明】内容源于网络
0
0
联川AILab
联川AI,与你同在,让科研更简单,让探索更深远。欢迎关注我们,一同开启智慧科研的新篇章。
内容 26
粉丝 0
联川AILab 联川AI,与你同在,让科研更简单,让探索更深远。欢迎关注我们,一同开启智慧科研的新篇章。
总阅读17
粉丝0
内容26