Agent Skills

Agent Skills

 

一、什么是Skills?

Skills是给AI Agent的一个专业技能包,或者说是一种带目录的说明书。

在Claude官方文档上对Skills的说明是:Agent Skills 是扩展 Claude 功能的模块化能力。每个 Skill 包含指令、元数据和可选资源(脚本、模板),Claude 在相关时会自动使用这些资源。

 

二、为什么会有Agent Skills ?

  1. Prompt 流程

暂时无法在Lark文档外展示此内容

Prompt 是一种指令或信息,它引导或触发AI系统作出回应。在与 AI 如 ChatGPT 的交互中,每当我们输入一段文字,无论是问题、命令还是陈述,这段文字就是一个 Prompt。

  1. 痛点:上下文可能被压缩

暂时无法在Lark文档外展示此内容

上下文是有长度限制的,当上下文的长度已经接近100%或者已经超了的时候,编程工具/Claude Code等可能会对上下文进行一次自动压缩,可能就会把代码文件、设计规范里的内容压缩删除,如果此时,你让大模型设计新的页面,因为大模型已经忘记之前的设计规范了,所有的流程又得从对话1开始

摘要必然有损:压缩会丢失关键细节,Agent越聊越糊涂。

  1. 痛点:AI没有记忆,需要重复对话

你费劲心思写了一长串完美的 System Prompt,告诉 AI 要扮演什么角色、遵守什么规范、输出什么格式。效果不错,但当你换了一个新对话窗口,或者任务稍微复杂一点,AI 就开始“失忆”了。

每一次对话,你都在重复造轮子。

  1. Skills的出现

Claude Skills 的出现,就是要解决这个痛点。它把那些一次性的提示词,变成了可以持久化、模块化、随时调用的能力包。

如果说 Prompt 是你写在便利贴上的临时指令,随手一撕就没了;那么 Skills 就是一本厚厚的《员工手册》外加一个装满工具的百宝箱,直接挂载在 AI 的身上。

从此以后,AI 不再是单纯地通过概率预测下一个字,它开始真正拥有了程序性知识和执行逻辑。它不仅能说,还能在一个安全的沙箱环境里做,比如运行一段 Python 代码来处理 Excel,而不是瞎猜里面的数据。

 

暂时无法在Lark文档外展示此内容

我们可以把工作流,某些专业能力,某些规范封装成一个个Skills交给AI Agent , 让Agent在执行特定任务的时候,更稳定,更高效,更可靠,还能更快、更省钱,结果可解释,这才是企业级 AI 该有的样子

 

 

 

个人觉得Skill的本质还是Prompt,只是换了个形式。MCP、SKills都是AI提示词的最佳实践。

 

 

Agent Skills的设计

  1. 渐进式披露(Progressive Disclosure)

想象一下一位真正的人类专家。他脑子里装着海量的知识储备(长期记忆),但在和你聊天的当下,他只会调动和话题相关的那一小部分工作记忆。

这是一种现代软件工程中的"懒加载"机制,确保 Claude 只在需要时加载必要内容,避免上下文窗口浪费

第一阶段:元数据扫描(Discovery Phase)

当你开始对话时,Claude 并没有把所有技能书都背下来。它只是快速扫了一眼所有技能的封面——也就是技能的名字和简介。这个过程消耗的 Token 极少,几乎可以忽略不计。

第二阶段:意图识别(Activation Phase)

当你发出指令,比如“帮我按品牌合规要求生成一份销售报表”,Claude 会瞬间意识到:“嘿,这个需求和那个叫 financial-report-generator 的技能描述高度匹配!”

第三阶段:动态加载(Loading Phase)

只有确认了你要用这个技能,Claude 才会把这本技能书的具体内容(指令文件、参考资料、代码脚本)真正下载到当前的对话大脑里。

这种懒加载机制简直是天才般的设计。这意味着你可以给你的数字员工装备成百上千种技能,平时它们静静地躺在硬盘里,完全不占内存;一旦需要,瞬间激活。

  1. 模块化与单一职责(Modularization and Single Responsibility)

一个 Skill 应该专注于一个明确的领域或任务类型。如果一个 Skill 试图做太多事情,会导致:

  • Description 过于宽泛,匹配精度下降
  • 指令内容过长,浪费上下文
  • 难以维护和更新
  1. 模块化与单一职责(Modularization and Single Responsibility)

一个 Skill 应该专注于一个明确的领域或任务类型。如果一个 Skill 试图做太多事情,会导致:

  • Description 过于宽泛,匹配精度下降
  • 指令内容过长,浪费上下文
  • 难以维护和更新

建议:与其创建一个"通用数据分析"技能,不如创建多个专门的技能:

  • mysql-employees-analysis:专门分析 employees 数据库
  • sales-data-analysis:专门分析销售数据
  • user-behavior-analysis:专门分析用户行为数据
  1. Skill对话的典型工作流

典型工作流:

  1. 用户问:“帮我开发一个卖青少年服装的企业官网,功能包括首页,产品列表,联系我们,公司介绍”
  2. 大模型Skills 层识别这是一个设计网页的功能,会查询有没有什么技能可以做这个事情,通过元数据,发现有一个叫front-design的skill能处理网页的设计任务,就让AI编程工具去加载 front-design 这个技能。
  3. AI编程工具把 front-design 这个技能说明书加载到上下文里
  4. Skills 层根据技能指令,将任务分解为结构化步骤
    1. 按照skill.md内容执行相关逻辑
    2. 通过传过来的skill.md内容,设计网页需要去读取design.md的规范,就让AI编程工具去加载design.md的内容
  5. MCP 层执行具体的知识与数据调用
  6. Skills 层根据front-design的专业知识,对MCP返回的数据进行整合、验证与优化
  7. 大模型返回相关内容给用户。

这种架构的优势是:

  • 关注点分离:MCP 专注于"能力",Skills 专注于"智慧"
  • 成本优化:渐进式加载大幅降低 token 消耗
  • 可维护性:业务逻辑(Skills)与基础设施(MCP)解耦
  • 复用性:同一个 MCP 服务器可以被多个 Skills 使用

 

  1. Agent Skills vs MCP:本质区别与协作关系
  • Skill文件&目录结构 示例与规范
  • Skill.md文件的标准结构

每个 Skill 都需要一个带有 YAML 前置数据的 SKILL.md 文件

必需字段:name 和 description

 

四、如何创建和使用 Skills

官网文档:https://platform.claude.com/docs/zh-CN/agents-and-tools/agent-skills/best-practices

  1. 创建Skills的方法
    1. 使用官方的skill-creator这个技能通过对话来创建,把你要实现的流程告诉AI
    2. 自己按照标准的skill文件夹格式来手动创建
  2. 使用Skills的方法
    1. 通过关键词匹配Skills中的描述,大模型自动调用
    2. 通过技能的名字来明确调用
  3. Skills的安全风险

如果skill中包含脚本,意味着脚本里可能会有安全风险的代码。

如果要用公共技能,尽量使用github等stars比较多的

 

posted @ 2026-06-08 17:40  chenqi1231  阅读(19)  评论(0)    收藏  举报