Agent Skills
Agent Skills 是 Kimi Code CLI 扩展模型能力的轻量机制。一个 Skill 就是一份带 YAML frontmatter 的 Markdown 文档,描述某项专业知识或工作流程——例如项目的代码风格规范、PR review 流程、提交消息格式。
相比每次把同样的指引粘到提示词里,Skill 的优势在于:内容沉淀在文件里、可以跨项目和团队复用、可以通过斜杠命令一键加载,也可以让模型在需要时自动调用。
创建 Skill
Skill 文件需放在已知的扫描目录中。支持两种文件结构:
•
目录形式(推荐):在 Skills 目录下创建一个子目录,主文件命名为 SKILL.md,可在同目录下放置脚本、参考资料等辅助文件。同目录下同时存在
•
扁平形式:直接使用单个 .md 文件,Skill 名称取文件名(去掉 .md)。
文件格式
SKILL.md 由 YAML frontmatter 和 Markdown 正文两部分组成:
代码块
Plain Text
---name: code-styledescription: 项目代码风格规范,定义命名、缩进、注释和文件组织type: promptwhenToUse: 当用户让我编写、修改或审查项目源代码时disableModelInvocation: falsearguments: - target - mode---请按下述规范处理代码:- 缩进使用 2 空格- 变量名使用 `camelCase`,类型名使用 `PascalCase`- 公开函数必须带 TSDoc 注释- 单行不超过 100 字符
Frontmatter 字段
#tTsEXazWmcXF text { white-space: pre; }#tTsEXazWmcXF .fb0 { stroke: var(--N900-FG, 0.15); }#tTsEXazWmcXF .fb0 {stroke: rgba(31,35,41, 0.15)}#tTsEXazWmcXF .fx0 { stroke-miterlimit: 10; }#tTsEXazWmcXF .fx0 {stroke-miterlimit: 10}#tTsEXazWmcXF .fa1 { fill: rgb(187, 191, 196); }#tTsEXazWmcXF .fa1 {fill: rgb(187, 191, 196)}#tTsEXazWmcXF .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#tTsEXazWmcXF .fx1 {font-style: normal}#tTsEXazWmcXF .fx2 { text-anchor: middle; }#tTsEXazWmcXF .fx2 {text-anchor: middle}#tTsEXazWmcXF .fx3 { dominant-baseline: central; }#tTsEXazWmcXF .fx3 {dominant-baseline: central}#tTsEXazWmcXF .fx4 { stroke: none; }#tTsEXazWmcXF .fx4 {stroke: none}#tTsEXazWmcXF .fc0 { fill: var(--text-caption); }#tTsEXazWmcXF .fc0 {fill: #646a73}#tTsEXazWmcXF .fa2 { fill: var(--text-link-disabled); }#tTsEXazWmcXF .fa2 {fill: rgb(187, 191, 196)}#tTsEXazWmcXF .fa3 { fill: rgb(246, 246, 247); }#tTsEXazWmcXF .fa3 {fill: rgb(246, 246, 247)}#tTsEXazWmcXF .fx5 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#tTsEXazWmcXF .fx5 {font-style: normal}#tTsEXazWmcXF .fx6 { text-anchor: start; }#tTsEXazWmcXF .fx6 {text-anchor: start}#tTsEXazWmcXF .fx7 { dominant-baseline: alphabetic; }#tTsEXazWmcXF .fx7 {dominant-baseline: alphabetic}#tTsEXazWmcXF .fc1 { fill: rgb(103, 103, 108); }#tTsEXazWmcXF .fc1 {fill: rgb(103, 103, 108)}#tTsEXazWmcXF .fx8 { font: 400 12px LarkHackSafariFont, LarkEmojiFont, ui-monospace, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#tTsEXazWmcXF .fx8 {font-style: normal}#tTsEXazWmcXF .fc2 { fill: rgb(52, 81, 178); }#tTsEXazWmcXF .fc2 {fill: rgb(52, 81, 178)}#tTsEXazWmcXF .fc3 { fill: rgb(60, 60, 67); }#tTsEXazWmcXF .fc3 {fill: rgb(60, 60, 67)}#tTsEXazWmcXF .fb1 { fill: var(--N900-FG, 0.15); }#tTsEXazWmcXF .fb1 {fill: rgba(31,35,41, 0.15)}#tTsEXazWmcXF .fb2 { fill: rgb(226, 226, 227); }#tTsEXazWmcXF .fb2 {fill: rgb(226, 226, 227)}#tTsEXazWmcXF .fa4 { fill: var(--bg-body); }#tTsEXazWmcXF .fa4 {fill: #fff}#tTsEXazWmcXF .fa5 { fill: var(--ccmtoken-mindnote-highlightcolor-neutral); }#tTsEXazWmcXF .fa5 {fill: #dee0e3}AB1234567字段说明namedescriptiontypewhenToUsedisableModelInvocationargumentsSKILL.md.mdSKILL.md.mdpromptinlinepromptflowwhen-to-usewhen_to_usetruedisable-model-invocationdisable_model_invocationarguments: target mode$
注意
目录型 SKILL.md 中 name 和 description 必须显式填写,省略任意一项均会导致解析失败。
正文占位符
正文在发送给模型前会展开少量占位符:
•
$ARGUMENTS:调用时附带的完整原始参数字符串
•
$ARGUMENTS[0]、$ARGUMENTS[1] 及简写 $0、$1:按空白分词后的位置参数(从 0 开始)
•
$
•
${KIMI_SKILL_DIR}:当前 Skill 文件所在目录
位置参数支持单双引号包裹,如 /skill:commit "fix login" patch 中 $0 展开为 fix login。若正文不含任何参数占位符,调用时附带的文本会以 \n\nARGUMENTS: <文本> 的形式追加到正文末尾。
Skill 存放位置
Kimi Code CLI 按作用域分四档扫描,越具体的作用域优先级越高:Project > User > Extra > Built-in
用户级(对所有项目生效):
•
$KIMI_CODE_HOME/skills/(默认:~/.kimi-code/skills/)
•
~/.agents/skills/
Kimi 专属用户级 Skill 目录会随 KIMI_CODE_HOME 移动,因此隔离数据根时也会隔离 Kimi 专属 Skills。通用 ~/.agents/skills/ 目录仍放在真实 OS home 下,以便跨工具共享。
项目级(项目根 = 工作目录向上最近的含 .git 的目录):
•
.kimi-code/skills/
•
.agents/skills/
额外目录:通过 config.toml 顶层的 extra_skill_dirs 声明:
代码块
Plain Text
extra_skill_dirs = ["~/team-skills", ".agents/team-skills"]
内置 Skills 随 CLI 一起分发,优先级最低。它们为常见任务提供开箱即用的工作流,例如配置 MCP server、定制 TUI 主题和编辑配置文件。完整列表详见内置 Skill 命令。
调用 Skill
用户通过斜杠命令主动调用:
代码块
Plain Text
/skill:code-style/skill:git-commits 修复登录接口的并发问题
模型也可以根据 description 和 whenToUse 自动调用 Skill(除非 disableModelInvocation 设为 true 或 type 为 flow)。Skill 调用时最多允许嵌套 3 层,超过后会被终止。
完整示例
代码块
Plain Text
---name: review-prdescription: 按团队标准审查一个 Pull Request,输出结构化的 review 报告type: promptwhenToUse: 当用户让我审查 PR、检查代码变更或评估提交质量时arguments: - pr_ref---请按照以下流程审查用户指定的 PR:$pr_ref1. 拉取并阅读 `$pr_ref` 的全部 diff。2. 对照以下检查项逐条核对: - 是否包含对应的测试用例 - 公开 API 是否有文档更新 - 是否引入了新的依赖;若有,说明引入理由 - 错误处理是否覆盖了边界情况3. 参考同目录下的检查清单:`references/checklist.md`4. 输出一份 review 报告,包含: - 总体结论(approve / request changes / comment) - 必须修改项(blocking) - 建议改进项(non-blocking) - 值得肯定的地方
保存为 $KIMI_CODE_HOME/skills/review-pr/SKILL.md(未设置 KIMI_CODE_HOME 时为 ~/.kimi-code/skills/review-pr/SKILL.md),检查清单放在同目录的 references/checklist.md,重开会话后即可通过 /skill:review-pr #1234 调用,其中 #1234 会展开到 $pr_ref。