Skip to content

Kiro CLI 的 skills 机制让你把常用工作流(PR 审查、部署流程、编码规范等)封装成可复用的指令包。每个 skill 是一个包含 SKILL.md 的文件夹,Kiro 在对话开始时自动发现并加载这些指令。你可以直接用自然语言触发,也可以用 /skill-name 斜杠命令精确调用。skills 分为项目级(.kiro/skills/)和全局(~/.kiro/skills/)两种作用域,遵循开放的 Agent Skills 标准,可在不同工具和团队之间共享。

什么是 skills

Skills 是可移植的指令包,用来扩展 Kiro 的能力范围。每个 skill 针对一个特定工作流编写指令,例如审查 Pull Request、部署基础设施,或者执行团队编码规范。

Skills 遵循开放的 Agent Skills 标准,可以在工具和团队之间共享。

skills 如何工作

启动对话时,Kiro 通过读取 skill 的名称和描述来发现可用的 skills。触发方式有两种:

  • 自动触发:Kiro 将你的请求与 skill 描述匹配,自动加载相关 skill。
  • 斜杠命令:输入 / 加 skill 名称直接调用。例如名为 pr-review 的 skill 变成 /pr-review 命令。
> 帮我检查这个 PR 的安全问题

我将按安全检查清单审查这个 PR...
> /pr-review

我将按安全检查清单审查这个 PR...

要查看当前会话中可用的 skills,使用 /context show 命令:

> /context show

skill 存放位置

位置作用域适用场景
.kiro/skills/工作区项目专属工作流、团队规范
~/.kiro/skills/全局跨项目的个人工作流

同名 skill 时,工作区 skill 优先于全局 skill 生效。

默认 agent

默认 agent 会自动从两个位置加载 skills,无需任何配置。

自定义 agents

自定义 agents 默认不加载 skills,需要在 agent 的 resources 字段中显式添加:

json
{
  "name": "my-agent",
  "resources": [
    "skill://.kiro/skills/*/SKILL.md",
    "skill://~/.kiro/skills/*/SKILL.md"
  ]
}

skill:// URI 支持具体路径、glob 模式和家目录展开。

创建一个 skill

skill 是包含 SKILL.md 文件的文件夹:

pr-review/
├── SKILL.md           # 必需
└── references/        # 可选
    └── checklist.md

SKILL.md 格式

文件以 YAML frontmatter 开头,后跟 Markdown 指令:

markdown
---
name: pr-review
description: Review pull requests for code quality, security issues, and test coverage. Use when reviewing PRs or preparing code for review.
---

## 审查清单

审查 Pull Request 时:

1. 检查漏洞、注入风险、暴露的密钥
2. 验证边界情况和失败模式是否有处理
3. 确认新代码有对应测试
4. 确保变量和函数命名清晰

## 常见问题

- 硬编码的凭证或 API key
- 缺少输入校验
- 未处理的 Promise 拒绝
- 遗留在生产代码中的 console.log

frontmatter 字段说明

字段是否必需说明
nameskill 标识符。只允许小写字母、数字和连字符,最多 64 个字符。
description决定何时激活该 skill。Kiro 用此描述匹配你的请求,最多 1024 个字符。

description 字段决定 Kiro 何时激活 skill,应包含与你日常请求用语相匹配的关键词和动作。

references 文件夹

对于大量参考资料,使用 references/ 文件夹:

aws-deployment/
├── SKILL.md
└── references/
    ├── ecs-guide.md
    └── troubleshooting.md

在 SKILL.md 中引用这些文件:

ECS 部署请按照 `references/ecs-guide.md` 中的指南操作。

Kiro 只在指令明确指向时才加载 references 文件,不会自动全量加载。

完整示例:CDK 部署 skill

目录结构:

cdk-deploy/
├── SKILL.md
└── references/
    └── stack-patterns.md

SKILL.md 内容:

markdown
---
name: cdk-deploy
description: Deploy AWS CDK stacks with best practices. Use when deploying infrastructure, running cdk deploy, or troubleshooting CDK issues.
---

## 部署流程

1. 运行 `cdk synth` 在部署前验证模板
2. 使用 `cdk diff` 预览变更内容
3. 运行 `cdk deploy` 并检查 IAM 变更

## 部署前检查

- 确认目标账号的 AWS 凭证已配置
- 确认 CDK 版本与项目要求匹配
- 查阅 `references/stack-patterns.md` 了解各环境的特定模式

## 回滚流程

部署失败时:
1. 查看 CloudFormation 控制台中的具体错误
2. 只有在 stack 处于失败状态时才运行 `cdk destroy`
3. 修复问题后重新部署

使用示例:

> 把我的 CDK stack 部署到 staging

我将按部署流程执行。首先合成模板...

最佳实践

写精准的 description。description 决定 Kiro 何时激活 skill:

  • 好的写法:Review pull requests for security vulnerabilities and test coverage. Use when reviewing PRs or preparing code for review.
  • 模糊写法:Helps with code review

SKILL.md 保持可执行性。把详细参考资料放在 references/ 文件夹里,主文件只留操作步骤。

选择正确的作用域。个人跨项目通用的工作流用全局 skill;团队流程和项目特定规范用工作区 skill。

工作区 skills 纳入版本控制。将 .kiro/skills/ 提交到仓库,让整个团队共享同一套工作流。

故障排查

问题解决方法
Skill 未自动触发在 description 中加入更多与你请求用语匹配的关键词
斜杠命令找不到确认 skill 文件夹名称与你输入的一致;SKILL.md 必须有有效的 frontmatter;用 /context show 确认 skill 已加载
Skill 文件找不到确认 SKILL.md 存在且 frontmatter 有效
自定义 agent 缺少 skills在 agent 的 resources 字段添加 skill:// URI
触发了错误的 skill在各 skill 的 description 中加入更具区分性的关键词

常见问题

Q:skill 的 description 写多长合适?

A:description 最长支持 1024 个字符,但不需要写满。关键是包含你实际请求时会用到的关键词和动作短语。一般 2~4 句话就足够,既说明 skill 的功能,又说明何时应该使用它。

Q:全局 skill 和工作区 skill 同名会怎样?

A:工作区 skill 优先。这种覆盖机制让你可以在全局定义默认行为,再在特定项目中按需重写,而不影响其他项目。

Q:自定义 agent 为什么默认不加载 skills?

A:这是设计上的有意克制——自定义 agent 需要精确控制上下文,因此要求显式声明所有资源(包括 skills)。在 agent 配置的 resources 字段中添加 skill:// URI 即可。详情参考 自定义 Agents

相关链接