在 Cursor 中打造你的专属前端“AI 助手”:Agent Skills 实战指南 什么是 Agent Skills?

在 Cursor 中打造你的专属前端“AI 助手”:Agent Skills 实战指南 什么是 Agent Skills?

文章目录


一、什么是 Agent Skills?

简单来说,Agent Skills 是一种标准化的方式,用来封装特定任务的知识和工作流。
如果说 MCP (Model Context Protocol) 是给 AI 装上了“手”(让它能连接数据库、Github),那么 Skills 就是给 AI 的“操作说明书”(告诉它怎么用这双手去搬砖)。
它和 .cursorrules 的区别在于:.cursorrules (全局规则): 就像公司的“员工手册”,是 AI 必须时刻记住的(Always on),适合放通用的代码风格(比如“永远使用 TypeScript”)。Agent Skills (技能): 就像“特定的任务SOP”,AI 只有在需要的时候(Context Relevant)才会去加载它,或者通过 / 命令手动触发。这大大节省了 Token,也让 AI 更专注。

二、使用步骤

1.下载官方提供的agent-skills文档

链接:github:https://github.com/anthropics/skills

在这里插入图片描述

2.cursor中使用

在cursor中新建.cursor目录加skills目录,把从Github上下载的skills拷贝到该目录下。上

在这里插入图片描述


在这里插入图片描述

这是参考frontend-design这个skills来设计的网站,会发现精美许多。

在这里插入图片描述


在这里插入图片描述

三、如何设计自己的skills

通过别人提供好的skils文档来生成

在这里插入图片描述


在cursor中输入提示词,cursor会自动扫描你文件下的skill.md文档进行生成。

在这里插入图片描述

四、实战:打造一个“生成标准 React 组件”的 Skill

假设我们团队有一个严格的组件开发规范:

  1. 组件必须是 Function Component。
  2. 必须使用 CSS Modules。
  3. 必须包含一个 interface 定义 Props。
  4. 文件结构必须是文件夹形式。

我们来写一个 Skill 教会 Cursor 怎么做。

第一步:创建目录

在你的项目根目录下(或者全局 ~/.cursor/skills),创建一个存放技能的文件夹:

.cursor/ skills/ react-component-gen/ <-- 技能名称文件夹 SKILL.md <-- 核心定义文件 

第二步:编写 SKILL.md

这是核心部分。SKILL.md 包含两部分:Frontmatter (元数据)Markdown 正文 (指令)

.cursor/skills/react-component-gen/SKILL.md 中写入:

--- name: react-component-gen description: Generate a new React functional component with CSS Modules and TypeScript interfaces following team standards. disable-model-invocation: false --- # React Component Generator Use this skill when the user asks to create a new UI component, page, or widget. ## [...](asc_slot://start-slot-9)Instructions 1. **Analyze the Request**: Identify the component name and props required. 2. **Directory Structure**: - Create a folder named exactly as the component (PascalCase). - Inside, create `index.tsx` and `styles.module.scss`. 3. **Code Standards**: - **index.tsx**: - Use `FC` type from 'react'. - Import styles as `import styles from './styles.module.scss'`. - Define an interface `[ComponentName]Props`. - Export the component as default. - **styles.module.scss**: - Create a root class `.container`. - Use BEM naming convention for inner elements if needed. ## [...](asc_slot://start-slot-11)Template Example If the user asks for a "Button", generate: ```tsx // Button/index.tsx import React, { FC } from 'react'; import styles from './styles.module.scss'; export interface ButtonProps { label: string; onClick: () => void; } const Button: FC<ButtonProps> = ({ label, onClick }) => { return ( <button className={styles.container} onClick={onClick}> {label} </button> ); }; export default Button; 
### [...](asc_slot://start-slot-13)第三步:启用并使用 1. **启用**:确保你的 Cursor 是较新版本(部分功能可能在 Beta/Nightly 通道)。打开设置 -> `Rules` 或 `Features`,确保 Agent Skills 相关的开关已打开。 2. **自动触发**: * 打开 Cursor 的 Agent 聊天框(CMD+L 或 CMD+K)。 * 输入:“帮我写一个 UserCard 组件,包含头像和名字。” * 你会发现 Agent 会自动识别意图,加载 `react-component-gen` 技能,并严格按照你的模板生成代码! 3. **手动触发**: * 输入 `/`,你应该能看到 `react-component-gen` 出现在命令列表中。 ## [...](asc_slot://start-slot-15)进阶玩法:带脚本的 Skill (自动化重构) 前端经常需要做一些批量重构,比如“找出所有硬编码的颜色并替换为 Tailwind 类名”。我们可以给 Skill 配上脚本。 

.cursor/skills/refactor-color/
SKILL.md
scripts/
find-hex.js <-- 一个扫描文件的脚本

**SKILL.md**: ```markdown --- name: refactor-color description: Refactor hardcoded hex colors to Tailwind utility classes. --- # Color Refactoring ## [...](asc_slot://start-slot-17)Instructions 1. Run the script `scripts/find-hex.js` to locate hex codes in the current file. 2. For each hex code found, map it to the closest Tailwind color (e.g., `#ef4444` -> `text-red-500`). 3. Rewrite the code. 

这样,AI 就不只是在“瞎猜”,而是真正执行了你写的工具脚本来辅助它工作。

总结:为什么你应该开始用 Skills?

  1. 团队规范统一:把这个 .cursor 文件夹提交到 Git 仓库,新入职的同事 git pull 下来,他的 AI 助手立刻学会了全套团队规范,不用手把手教。
  2. 减少上下文污染:只在写组件时加载组件规范,写测试时加载测试规范,让 AI 的脑子更清醒。
  3. 沉淀最佳实践:把那些你每次都要重复敲的 Prompt,固化成代码资产。

💡 个人心得
不要试图把所有东西都塞进 .cursorrules。把 .cursorrules 当作宪法(不可动摇的原则),把 Agent Skills 当作SOP 手册(针对具体任务的流程)。

快去试试在你的项目里加一个 Skill 吧!如果你有更好玩的 Skill 创意(比如自动写 Code Review 意见),欢迎在评论区分享!👇

Read more

Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座

Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座 前言 在鸿蒙(OpenHarmony)生态的全面爆发元年、特别是涉及到极高密级强网大盾政务信创办公大系统、亦或是动辄流水千万级每日亿级请求的极金融极支付级别的大应用沙盘之中。“如何绝对安全且极其严密地在原生系统底层、Flutter 大前台视图甚至与那些及其脏乱差极不可控的第三方或者内部历史遗留极大旧有 Web H5 容器之间进行身份 Cookie 或者重大利益 Token 的极其安全单向大透传与绝对防死净清理?”这绝对是一扇只要微微由于你的无知或者偷懒漏出那么一丝极小门缝,就会在极短时间导致全应用甚至全行业发生恶性串号、极大账本混乱甚至直接导致极大数据严重越权被全面极光大拉库漏底的核爆级架构黑洞死命门。如果你带领的 0308 批次前端依然只能极其粗糙地开一个极其简陋粗暴且

By Ne0inhk

手把手教你配置:企业微信外部群 Webhook 主动发送指南

QiWe开放平台 · 个人名片                 API驱动企微自动化,让开发更高效         核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景         官方站点:https://www.qiweapi.com         团队定位:专注企微API生态的技术服务团队        对接通道:搜「QiWe 开放平台」联系客服         核心理念:合规赋能,让企微开发更简单、更高效   在企业微信的自动化体系中,群机器人(Webhook) 是实现系统消息自动同步到外部群最快捷、门槛最低的工具。 虽然 2026 年官方对外部群机器人的管理更加精细化,但只要掌握正确的配置流程和调用逻辑,它依然是效率提升的神器。以下是完整的实操步骤: 第一步:获取 Webhook 地址 1. 添加机器人: 打开企业微信电脑端,进入你需要配置的外部群,点击右上角“...”,选择“群机器人” -> “添加机器人”。 2.

By Ne0inhk
JavaScript WebAPI 核心操作指南

JavaScript WebAPI 核心操作指南

JavaScript(WebAPI) WebAPI 背景知识 什么是 WebAPI 前面学习的 JS 分成三个大的部分: * ECMAScript:基础语法部分 * DOM API:操作页面结构 * BOM API:操作浏览器 WebAPI 就包含了 DOM + BOM。 这个是 W3C 组织规定的(和制定 ECMAScript 标准的大佬们不是一伙人)。 前面学的 JS 基础语法主要学的是 ECMAScript,这让我们建立基本的编程思维,相当于练武需要先扎马步。但是真正来写一个更加复杂的有交互式的页面,还需要 WebAPI 的支持,相当于各种招式。 什么是 API API 是一个更广义的概念,而 WebAPI 是一个更具体的概念,特指 DOM+BOM。 所谓的 API

By Ne0inhk
Flutter for OpenHarmony:web_socket 纯 Dart 标准 WebSocket 客户端(跨平台兼容性之王) 深度解析与鸿蒙

Flutter for OpenHarmony:web_socket 纯 Dart 标准 WebSocket 客户端(跨平台兼容性之王) 深度解析与鸿蒙

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 虽然 dart:io 提供了 WebSocket 类,dart:html 也提供了 WebSocket 类,但这种“分裂”的 API 设计让编写跨平台(同时支持 Mobile/Web/Desktop)的代码变得异常痛苦。你需要使用条件导入 (if (dart.library.io) ...) 来分别处理。 web_socket 库就是为了解决这个问题而诞生的。它提供了一个统一的、平台无关的WebSocket 接口。 无论你的代码运行在 Android、iOS、Web 还是 OpenHarmony 上,它都会自动选择最底层的实现(在鸿蒙上通常是 dart:io)

By Ne0inhk