Skills
Skills 是 Agent 打包好的专家级工作流。每个 skill 定义了一套完整的执行策略——使用哪些工具、按什么顺序、产出什么结果——让 AI 能够稳定地处理某一类任务,而不是每次都临场发挥。
Skills 如何工作
Agent 启动时会加载所有可用的 skill,并把每个 skill 的名称与描述注入系统 prompt。当你发出请求时,AI 通过语义匹配判断是否应当激活某个 skill,然后通过工具调用加载完整指令并按其执行。
整个过程是自动的。你不需要记忆命令,也不需要手动选择模式——只要自然地描述你想做的事即可。
用户:"帮我提交一下这些修改"
→ AI 识别出 `commit` skill 相关
→ 加载完整指令(`read_skill`)
→ 按工作流检查变更、生成 commit message、执行 `git commit`
内置 Skills
Agent 内置三个用于工程工作流的核心 skill:
commit——智能提交助手
安全地执行 git commit,提交前会自动扫描大文件与二进制产物。
工作流:
- 检查 Git 仓库状态与当前分支
- 扫描所有未跟踪的新文件,检查文件大小(>1MB 警告,>10MB 阻断)以及风险类型(构建产物、依赖目录、媒体文件等)
- 若发现问题,立即停止、报告问题并建议合适的
.gitignore规则 - 若检查通过,展示变更摘要并生成 Conventional Commits 风格的 message
- 执行
git add与git commit
典型触发: "提交代码"、"帮我提交"、"准备一次提交"
code-reviewer——代码审查助手
分析代码质量、安全问题与最佳实践,支持两种模式:
- 本地审查:审查 git diff、特定 commit 或分支差异
- 远程审查:直接审查 GitLab merge request
典型触发: "审查这些改动"、"检查代码质量"、"review 这个 MR"
serena——LSP 编码助手
通过 Language Server Protocol(LSP)提供符号级代码分析与精准编辑,特别适合大型代码库。
核心能力:
- 通过符号索引快速找到函数、类与变量
- 精准替换符号定义,无需读取整文件
- 查找引用、跳转定义、重命名符号
- 支持 Go、TypeScript、Python、Rust 等主流语言
典型触发: "分析这个模块"、"重构这个类"、"找出这个函数的所有调用点"
Skill 加载规则
Skill 从两个位置加载,用户 skill 的优先级高于 同名内置 skill:
1. <可执行文件目录>/builtin-skills/ ← 随 App 分发的内置 skill
2. ~/.aiagent/skills/ ← 用户自定义 skill(可覆盖内置)
每个 skill 都是一个独立目录,以 SKILL.md 作为主指令文件:
~/.aiagent/skills/
my-skill/
SKILL.md ← 必需,主 skill 指令
reference.md ← 可选辅助文件(AI 可按需读取)
examples/
sample.json ← 可选,支持任意嵌套文件结构
AI 可以使用 list_skill_files 查看 skill 目录下的所有辅助文件,并使用 read_skill_file 读取具体某个文件。这样可以把大型参考资料、示例数据与核心指令分开维护。
典型 Skill 用例
Skill 在以下场景特别有用:
| 场景 | 收益 |
|---|---|
| 团队标准化工作流 | 所有人按同一流程执行,结果可预期 |
| 重复性任务自动化 | 代码审查、提交、文档生成无需反复重写 prompt |
| 沉淀领域知识 | 把最佳实践转化为可复用的操作指令 |
| 多步流程控制 | 按正确顺序调用工具并妥善处理异常分支 |
团队协作模式
把 skill 文件纳入仓库版本管理是一种良好实践:
# 把团队 skill 放在项目仓库内
project-repo/
.aiagent-skills/
release-checklist/
SKILL.md
pr-review/
SKILL.md
review-standards.md
这样 skill 就能与代码库一同演进,并通过常规的代码审查流程进行评审,把 AI 的行为变成可维护的工程资产。