AI Agent代码智能体人工智能大模型CLI【免费下载链接】kimi-codeKimi Code CLI — The Starting Point for Next-Gen Agents项目地址https://gitcode.com/gh_mirrors/ki/kimi-code点击查看免费下载Agent Skills 是 Kimi Code CLI 提供的一套轻量模型能力扩展机制一份带 YAML frontmatter 的 Markdown 文档就能把项目的代码风格规范、PR review 流程、提交消息格式等专业知识沉淀成可复用的「技能」既能通过斜杠命令一键加载也能让模型在需要时自动调用。本文将基于 docs/zh/customization/skills.md 完整讲解 Skill 的创建、解析、存放、调用全流程并结合仓库源码parser.ts、registry.ts、fileSkillDiscovery.ts 等深入剖析底层实现帮助你写出可复制、可运行、行为可控的 Skill。Skill 是什么一个 Skill 就是一份带 YAML frontmatter 的 Markdown 文档描述某项专业知识或工作流程项目的代码风格规范、PR review 流程、提交消息格式等。与每次把同样的指引粘到提示词里相比Skill 把内容沉淀在文件里可以跨项目和团队复用——既可以由用户通过斜杠命令一键加载也可以让模型根据description与whenToUse在需要时自动调用。创建 Skill两种文件结构Skill 文件需要放在已知的扫描目录中支持两种结构目录形式推荐在 Skills 目录下创建一个子目录主文件命名为SKILL.md可在同目录放置脚本、参考资料等辅助文件。扁平形式不建子目录把一个.md文件直接放在 Skills 目录下适合不需要辅助文件的简单 Skill。两种结构都会注册出 Skill区别只在文件组织方式skills/ ├── review-pr/ # 目录形式 → Skill 名 review-pr │ ├── SKILL.md # 主文件 │ └── checklist.md # 辅助文件正文用 ${KIMI_SKILL_DIR} 引用 └── commit.md # 扁平形式 → Skill 名 commitSkill 名的推导规则目录形式取 frontmatter 的name字段必填见下文字段表惯例是让子目录名与name保持一致——review-pr/SKILL.md里写name: review-pr注册为review-pr。扁平形式的name可省略省略时取文件名去掉.md扩展名commit.md注册为commit。注意「去掉.md」只发生在注册后的 Skill 名上——磁盘上的文件必须带.md扩展名才会被扫描到不要真的创建一个没有扩展名的commit文件。同一目录下name/SKILL.md与name.md同时存在时以目录形式为准扁平文件被忽略。扁平形式还有两点限制只有直接放在 Skills 目录顶层的.md文件会被识别子目录里散放的.mdSKILL.md除外不会被当作 Skill。扁平 Skill 没有自己的目录${KIMI_SKILL_DIR}指向 Skills 目录本身不便携带辅助文件——需要辅助文件时请改用目录形式。这些规则在扫描实现中有清晰对应在 fileSkillDiscovery.ts 中扁平.md的注册只发生在isTopLevel分支且显式跳过名为SKILL.md的文件if (directorySkills.has(skillName)) continue这一行则实现了「目录形式优先、同名扁平文件被忽略」的规则。两个独立的扫描实现fileSkillDiscovery.ts 与 runtimeSkillDiscovery.ts都遵循相同的逻辑。文件格式与 frontmatter 字段SKILL.md由 YAML frontmatter 和 Markdown 正文两部分组成一个最小可用的示例--- name: code-style description: 项目代码风格规范定义命名、缩进、注释和文件组织 type: prompt whenToUse: 当用户让我编写、修改或审查项目源代码时 disableModelInvocation: false arguments: - target - mode --- 请按下述规范处理代码 - 缩进使用 2 空格 - 变量名使用 camelCase类型名使用 PascalCase - 公开函数必须带 TSDoc 注释 - 单行不超过 100 字符Frontmatter 字段一览字段说明nameSkill 名称大小写不敏感。目录型SKILL.md必填扁平.md省略时取文件名不含.md扩展名description一行总结模型用它判断何时使用。目录型必填扁平.md省略时取正文第一行非空内容截至 240 字符type类型prompt默认、inline同prompt、flow仅手动调用。其他值被跳过whenToUse触发场景描述也接受when-to-use、when_to_use写法disableModelInvocation设为 true 禁止模型自动调用也接受disable-model-invocation、disable_model_invocation写法arguments命名参数列表字符串数组或空白分隔字符串如arguments: target mode。声明后正文可用$name读取警告目录型SKILL.md中name和description必须显式填写省略任意一项均会导致解析失败。上述行为都能在解析器中找到源码依据parser.tsMETADATA_ALIASESparser.ts把when-to-use/when_to_use归一化为whenToUse把disable-model-invocation/disable_model_invocation归一化为disableModelInvocation对目录型 Skill若文件第一行不是---或缺失name/description会分别抛出Missing frontmatter与Missing required frontmatter field错误parser.ts扁平形式缺description时取正文第一个非空行超过 240 字符截断并追加省略号descriptionFromBodyparser.ts类型校验在 types.ts 的isSupportedSkillType中完成prompt、inline、flow以及reference被接受其余类型由UnsupportedSkillTypeError拒绝并记录为 skippedruntimeSkillDiscovery.ts 同目录的 types.ts 中isInlineSkillType将prompt/inline视为同一类。名称的大小写不敏感由normalizeSkillName统一转小写保证types.ts。正文占位符展开正文在发送给模型前会展开少量占位符实现位于 registry.ts 的expandSkillParameters$ARGUMENTS调用时附带的完整原始参数字符串$ARGUMENTS[0]、$ARGUMENTS[1]及简写$0、$1按空白分词后的位置参数从 0 开始$namearguments中声明的命名参数${KIMI_SKILL_DIR}当前 Skill 文件所在目录几个容易忽略的细节引号分词位置参数支持单双引号包裹/skill:commit fix login patch中$0展开为fix login不包含引号本身。分词器tokenizeArgs在 registry.ts 中实现支持与两种引号。追加兜底若正文不含任何参数占位符调用时附带的文本会以\n\nARGUMENTS: 文本的形式追加到正文末尾registry.ts。命名参数替换顺序命名参数$name优先于位置参数被替换避免$ARGUMENTS等被arguments中的同名项干扰registry.ts。XML 转义所有参数值在插入前都会经过escapeXmlTags转义registry.ts防止参数内容破坏后续的 XML 结构化提示词。会话占位符除文档列出的占位符外实现还支持${KIMI_SESSION_ID}会展开为当前会话 IDregistry.ts。插件上下文若 Skill 来自某个插件renderSkillPrompt会在正文前自动包裹plugin-instructions plugin...指令块registry.ts。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声明extra_skill_dirs [~/team-skills, .agents/team-skills]这是把团队级 Skill 目录如共享的 review 规范、提交规范叠加进扫描范围的标准做法。相关顶层配置还可在 docs/zh/configuration/config-files.md 中找到字段类型默认值说明extra_skill_dirsarraystring—额外 Skill 搜索目录叠加到默认目录之上merge_all_available_skillsbooleantrue是否合并所有目录中的 Agent Skillsbuiltin_product_skillsbooleantrue是否向模型提供介绍 Kimi Code 自身的内置 Skills内置 Skills随 CLI 一起分发优先级最低为常见任务提供开箱即用的工作流例如配置 MCP server、定制 TUI 主题和编辑配置文件完整列表见内置 Skill 命令。其中介绍 Kimi Code 自身的部分可以通过顶层builtin_product_skills字段关闭。扫描行为背后的实现细节从扫描器源码可以进一步确认几个行为边界扫描深度上限为 8 层MAX_SKILL_SCAN_DEPTH 8fileSkillDiscovery.tsnode_modules与以.开头的隐藏目录会被跳过isSkillScanExcludedEntryfileSkillDiscovery.ts同名的 Skill 注册采用先到先得byDiscoveryKey已存在同名键时不再覆盖fileSkillDiscovery.ts这配合四档扫描顺序共同保证了作用域优先级生效注册成功的 Skill 会按来源分组Project / User / Extra / Built-in展示给模型模型可见清单中的description会被截断到 250 字符registry.ts。调用 Skill用户通过斜杠命令主动调用/skill:code-style /skill:git-commits 修复登录接口的并发问题/skill:name是外部 Skill 的标准命名空间前缀命令后附带的文本会拼接到 Skill 提示词之后对应上文占位符展开与ARGUMENTS:追加规则。为方便输入还支持省略skill:前缀的简写形式/name前提是该名称未被系统斜杠命令占用——即/code-style会回退匹配到/skill:code-style详见 slash-commands.md。模型也可以根据description和whenToUse自动调用 Skill。disableModelInvocation设为 true 或type设为flow时不自动调用——listInvocableSkills正是按这两个条件过滤的registry.ts。关于调用层级的几个事实嵌套上限 3 层Skill 调用最多允许嵌套 3 层超过后会被终止。实现中MAX_SKILL_QUERY_DEPTH 3当前深度达到上限时抛出NestedSkillTooDeepErrortools/skill.ts深层调用会被标记为nested-skill触发类型。忙碌时排队Agent 忙碌时输入的外部 Skill 命令不会被拒绝而是排队等待当前轮次结束按Ctrl-S可让排队的命令立即插入正在运行的轮次slash-commands.md。子 Skill 的点分命名父 Skill 启用has-sub-skill元数据后其子 Skill 会以父名.子名的点分形式注册如/code-style.review子 Skill 的SKILL.md可以保留本地namefileSkillDiscovery.ts。内置 Skills内置 Skill 随 CLI 分发直接以/name形式出现在斜杠命令面板中开箱即用完整表格见 slash-commands.md命令说明/mcp-config配置 MCP server 并处理 MCP OAuth 登录/custom-theme [text]创建或编辑自定义 TUI 配色主题/update-config查看或编辑config.toml模型、供应商、权限、hooks和tui.toml主题、编辑器、通知、自动更新/check-kimi-code-docs依据官方文档回答 Kimi Code 产品问题CLI 用法、配置、会员、错误码/import-from-cc-codex从 Claude Code 和 Codex 导入 instructions、skills 和 MCP 设置/sub-skill发现并将本地 skill 库存重组为分层子 skill 包包含/sub-skill.review只读提案与/sub-skill.consolidate执行重组这些内置 Skill 本身也是标准的SKILL.md文件与用户自定义 Skill 走完全相同的解析与渲染管线。例如 mcp-config.md 展示了典型的内置 Skill 写法用 frontmatter 声明name与description正文则是一份完整的操作流程文档包括 MCP 配置文件的三级位置、OAuth 登录流程、密钥处理原则等这类「把领域知识固化成可执行流程」的写法正是 Skill 的最佳实践模板。如果你不需要这些介绍 Kimi Code 自身的内置 Skill可在config.toml顶层设置builtin_product_skills false关闭。完整实战示例PR 审查 Skill下面是一个完整的、可直接落地的 Skill 示例——按团队标准审查 PR 并输出结构化报告--- name: review-pr description: 按团队标准审查一个 Pull Request输出结构化的 review 报告 type: prompt whenToUse: 当用户让我审查 PR、检查代码变更或评估提交质量时 arguments: - pr_ref --- 请按照以下流程审查用户指定的 PR$pr_ref 1. 拉取并阅读 $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。这个示例同时演示了三个核心要点命名参数arguments声明pr_ref正文用$pr_ref读取、目录形式review-pr/SKILL.md 辅助文件references/checklist.md、团队复用文件存放在用户级目录所有项目共享。下一步Plugins — 把 Skills 打包成可安装单元与团队共享Agent 与 subagent — Skills 如何影响 subagent 的行为赞分享AI Agent代码智能体人工智能大模型CLI【免费下载链接】kimi-codeKimi Code CLI — The Starting Point for Next-Gen Agents项目地址https://gitcode.com/gh_mirrors/ki/kimi-code点击查看免费下载相关推荐Kimi Code CLI Agent Skills 完整指南用 Markdown YAML 为模型扩展可复用能力Kimi Code CLI Agent Skills 完整指南用 Markdown YAML 为模型扩展可复用能力 Agent Skills 是 KimiAI Agent代码智能体人工智能大模型CLIQwen Code 自定义斜杠命令开发实战从 /writing:polish 看扩展命令的完整实现Qwen Code 自定义斜杠命令开发实战从 /writing:polish 看扩展命令的完整实现 本篇技术指南以 Qwen Code 官方 starter人工智能AI Agent代码智能体工具调用交互助手CLIQwenProxmark3实战RDV4 闪存改装与天线调优完整教程Proxmark3实战RDV4 闪存改装与天线调优完整教程 你的 Proxmark3 跑到一半 trace 采集就提示空间不足只能中途备份、清空、重来RD渗透测试嵌入式物联网网络安全上一篇Butterfly使用全攻略如何用这款免费跨平台笔记工具提升创作效率下一篇如何在Inkscape中快速添加可编辑LaTeX公式TexText终极使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考