关于作者10年项目管理与全栈开发经验近半年专注 Agent Skills 实战落地帮助团队实现项目交付效率提升40%。本文所有示例均基于 Trae / Cursor环境测试通过。这是「Agent Skills 开发实战」系列的第 2 篇。上一篇我们聊透了什么是 Agent Skills智能体技能——本质上它就是 AI 智能体的“标准化工作手册”让它从“只会聊天”变成“能按流程把事做好”。很多朋友看完就问“道理我懂了但我该怎么自己写一个 Skill有没有能直接上手的入门教程”这篇就带你从零开始写一个最简单、标准、能直接跑起来的Hello World 级别的 Skill全程跟着做小白也能一次成功。一、先搞懂一个标准的 Skill到底长什么样不管是 Trae、Cursor 还是 OpenClaw、Hemers绝大多数 AI 智能体的 Skill 都遵循一个通用的 “极简结构”像一个迷你的 “说明书 执行脚本” 组合。标准 Skill 的核心结构my-first-skill/ # 你的Skill专属文件夹名字自定义├── SKILL.md # 【灵魂文件】给AI看的“说明书”必须有└── main.py # 【执行文件】可选用来写具体逻辑也可以是bash/js等SKILL.md智能体的 “行动指南”规定了这个 Skill 是干嘛的、什么时候触发、怎么用、输入输出是什么是 AI 识别并调用你的 Skill 的核心依据。main.py可选具体的执行脚本比如处理数据、调用工具、执行命令也可以用其他语言写根据你的智能体支持的格式来定。我们的 Hello World Skill核心就是写好SKILL.md让智能体能看懂并正确调用它。二、第一步创建你的第一个 Skill 文件夹先在电脑上新建一个文件夹名字随便取比如hello-world-skill进入文件夹新建一个文本文件把文件名改成SKILL.md注意后缀必须是.md不能是.txt小提示Windows 用户如果看不到文件后缀需要在文件管理器的 “查看” 选项里勾选 “文件扩展名”。现在你的文件夹里就只有一个SKILL.md文件我们接下来就往里面写内容。三、第二步写标准的 SKILL.md 模板直接复制就能用SKILL.md不是随便写的智能体需要明确的格式才能识别。我们用最通用、最基础的模板来写直接复制下面的内容粘贴到你的SKILL.md里就行。markdown---name: Hello World 入门技能version: 1.0.0description: 根据提示词测试我的第一个skill技能author: 你的名字/昵称tags: [入门, 测试, hello-world]---# Hello World 入门技能Skill## 1. 技能概述这是一个入门级别的测试Skill作用是当用户触发时输出一句指定的问候语验证Skill的调用流程是否正常是你探索AI智能体自动化能力的第一步。## 2. 触发条件当用户说出以下任意一句话时触发本技能- “测试一下我的第一个技能”- “运行hello world技能”- “让智能体打个招呼”## 3. 输入参数| 参数名 | 类型 | 是否必填 | 说明 ||--------|------|----------|------|| name | 字符串 | 选填 | 要打招呼的对象不填则默认输出“你好AI世界” |## 4. 执行步骤1. 接收用户的触发指令读取输入参数name2. 如果用户传入了name则拼接问候语你好{{name}}欢迎来到AI智能体的世界~3. 如果用户没有传入name则输出默认问候语你好AI世界我的第一个 Hello World Skill 调用成功啦4. 把最终的问候语直接回复给用户## 5. 输出格式直接返回纯文本问候语即可不需要额外格式或代码块。## 6. 错误处理- 如果无法识别触发指令不主动报错等待用户进一步说明需求- 如果参数格式错误比如传入非字符串忽略错误参数使用默认值执行四、第三步理解模板里的关键内容小白也能懂上面的模板每一部分都有明确作用我们拆开来讲帮你彻底搞懂技能名称 / 描述给智能体和你自己看的一句话说清楚这个 Skill 是干嘛的比如 “HelloWorld 入门测试”AI 一看就知道这是个测试用的技能。触发条件这是 Skill 的 “开关”你要明确告诉 AI用户说什么话的时候要调用这个 Skill。比如上面的 “测试一下我的第一个技能”用户一说这句话AI 就会自动匹配到这个 Skill。输入参数定义这个 Skill 需要用户提供什么信息就像函数的参数一样。我们的例子里加了一个可选的name参数用户可以指定打招呼的对象也可以不填。执行步骤这是给 AI 的 “操作说明书”一步一步写清楚 AI 该做什么避免 AI “自由发挥”。比如我们的例子里先判断有没有参数再拼接问候语最后回复用户流程非常清晰。输出格式 / 错误处理小白入门阶段可以简单写告诉 AI 结果该怎么返回、遇到问题该怎么处理避免 AI 输出乱七八糟的内容。五、第四步把 Skill 导入你的智能体开始测试不同的智能体Trae/Cursor/OpenClaw/Hemers导入 Skill 的方式略有区别但核心逻辑是一样的这里给你通用的操作步骤导入方法Trae放入项目根目录的 .trae/skills/ 文件夹。Cursor放入项目根目录的 .cursor/skills/ 文件夹OpenClaw/Hemers可以放到桌面告诉他去桌面读取/安装即可小白测试方法以我们的例子为例在智能体的对话窗口里输入下面任意一句话测试你的 Skill 是否生效输入测试一下我的第一个技能预期结果AI 回复你好AI世界我的第一个 Hello World Skill 调用成功啦输入运行hello world技能我叫小明预期结果AI 回复你好小明欢迎来到AI智能体的世界~如果 AI 按预期回复了说明你的第一个 Skill 已经成功跑通啦六、进阶小玩法给你的 Skill 加一点 “实用功能”刚才的 Hello World 只是纯文本回复我们可以稍微升级一下让它变得更 “像个真正的技能”。升级方案用 main.py 实现动态时间问候在你的hello-world-skill文件夹里新建一个main.py文件把下面的代码复制进去markdownpythonimport datetimeimport sys# 接收用户传入的name参数没有则用默认值name sys.argv[1] if len(sys.argv) 1 else AI世界# 获取当前时间判断问候语current_hour datetime.datetime.now().hourif 5 current_hour 12:greeting 早上好elif 12 current_hour 18:greeting 下午好elif 18 current_hour 22:greeting 晚上好else:greeting 夜深了也要注意休息呀# 输出最终问候语print(f{greeting}{name}这是我的第一个带脚本的Skill调用成功啦)3. 修改你的SKILL.md里的 “执行步骤” 部分改成markdown## 5. 执行步骤1. 接收用户的触发指令读取输入参数name2. 在终端中执行命令python main.py {{name}}如果用户未提供 name则使用默认值 AI世界3. 获取终端输出的结果直接回复给用户4. 重新导入你的 Skill再测试一下比如输入运行hello world技能我叫小明现在 AI 会根据当前时间回复你 “早上好 / 下午好 / 晚上好小明……”是不是瞬间就实用多了七、小白必看新手写 Skill 的避坑指南很多新手第一次写 Skill会遇到各种问题这里整理了最常见的几个坑帮你一次避开文件名写错了核心文件必须是SKILL.md注意大小写很多智能体是区分大小写的写成skill.md会识别不到。触发条件写得太模糊别写 “当用户打招呼时”AI 理解不了。一定要写具体的触发指令比如 “当用户说‘测试一下我的第一个技能’时”。执行步骤写得太笼统别写 “处理用户的请求”要一步一步写清楚比如 “1. 读取参数2. 调用脚本3. 返回结果”越具体AI 越不容易出错。导入后没生效检查一下智能体的 “自定义技能” 开关有没有打开有些平台默认会禁用本地导入的技能需要手动开启。八、写在最后你的第一个 Skill是 AI 自动化的起点你刚才写的这个 Hello World Skill虽然简单但它已经具备了标准 Skill 的所有核心要素有明确的触发条件有标准化的执行流程有清晰的输入输出定义能被 AI 智能体识别并调用从这个小小的例子开始你可以慢慢拓展更复杂的技能比如自动生成周报、批量整理文件、调用 API 查询信息…… 这些复杂的工作都可以用标准化的 Skill 来实现。关于 Agent Skills 开发实战系列下一篇我们将深入拆解 Skill.md 的文件结构逐一讲透每个字段的作用与编写规范让你从“照猫画虎”进阶到“真正理解原理”。不想错过零基础实战干货完整 Skill 开发流程欢迎关注我每周准时更新硬核技术内容。