AI开发入门:Agent与Skill体系详解,附可复制的自定义样例
前言
用 Claude Code 干活一段时间之后,慢慢摸清了 Agent 和 Skill 这两个概念的门道。Agent 解决「谁来干、怎么干」,Skill 解决「会不会这一行」。这篇整理两者的原理,配上两个我自己在用的自定义样例,可以直接抄走改。
1、先分清三个词
| 概念 | 本质 | 打个比方 |
|---|---|---|
| 模型(LLM) | 会推理的「大脑」,只能输入文本输出文本 | 一个聪明但没有手脚的顾问 |
| Agent | 模型 + 工具调用 + 自主循环:能读文件、执行命令、改代码、自己验收 | 授权完整的员工:自己查资料、自己动手、自己检查 |
| Skill | 预先打包的领域知识和流程,按需加载 | 员工手册里的 SOP:平时不占脑子,干到对应活时翻出来照做 |
Agent 是干活的,Skill 是干活的技能包,就这么简单。
2、Agent 是怎么干活的
每次回合都在跑这个循环:
目标 → [感知] 读代码/终端输出 → [规划] 决定下一步 → [行动] 调工具执行
↑ │
└────────────── 观察结果,修正计划 ←────────────┘
直到完成或需要用户输入
两个边界要心里有数:工具层决定能力边界(能读、能写、能执行、能搜索哪些),权限系统决定安全边界(哪些操作要人确认)。
子 Agent(subagent) 是隔离上下文的执行单元。主 Agent 把独立的子任务(比如全局搜一遍用法、跑测试分析失败原因)派给子 Agent,子 Agent 有自己的上下文窗口,干完只把结论带回来,中间过程不会把主对话撑爆。
3、Skill 机制
传统 prompt 库有两个毛病:要么全量塞进上下文浪费 token,要么靠人手动复制粘贴。Skill 把这两个都解决了:
- 结构:一个 Skill 就是一个目录,核心是
SKILL.md(YAML 头 + 正文指令),可以挂脚本和模板文件 - 触发:YAML 头里的
description参与语义匹配,用户请求跟描述相关时,正文才被加载进上下文。平时不占地方 - 可执行:正文可以让 Agent 调用目录下的脚本,知识和工具打包在一起
目录结构:
.claude/
├── agents/ # 自定义子 Agent
│ └── code-reviewer.md
└── skills/ # 自定义 Skill
└── sql-optimizer/
├── SKILL.md # 核心:元数据+指令
└── scripts/
└── explain.sh # 配套脚本(可选)
项目级放 .claude/(进 git 随仓库共享),个人全局的放 ~/.claude/。
4、样例一:代码审查 Agent
.claude/agents/code-reviewer.md:
|
|
几个设计点:
description里的触发词决定主 Agent 什么时候把任务派给它tools只给了读类工具,不给写权限,审查员就不该改代码- 正文就是岗位说明书,清单化、规定输出格式,输出质量会稳定很多
对话里说一句「帮我 review 这次改动」,主 Agent 就会派它出场。
5、样例二:SQL 优化 Skill
.claude/skills/sql-optimizer/SKILL.md:
|
|
配套脚本 scripts/explain.sh(可选,固定动作脚本化更稳):
|
|
Skill 真正的价值在把 SOP 固化下来:团队里最会调 SQL 的人把经验写成流程,其他人的 Agent 都按同一套水准执行。「先要上下文再下结论」「一切以 EXPLAIN 为准」这种约束,专治 AI 张口就来。
6、Agent、Skill、MCP 什么关系
| 维度 | Skill | MCP(Model Context Protocol) | 子 Agent |
|---|---|---|---|
| 解决什么 | 知识/流程注入 | 标准化的外部工具接入协议 | 上下文隔离的并行执行 |
| 形态 | Markdown + 脚本 | JSON-RPC 服务(数据库/浏览器/Jira…) | Markdown 定义 + 工具白名单 |
| 打个比方 | 员工的 SOP 手册 | USB 接口标准 | 外聘专家 |
串起来用:主 Agent 派出 SQL 优化子 Agent → 子 Agent 按 sql-optimizer 的 SOP 干活 → 通过 MCP 的数据库工具真连库跑 EXPLAIN → 回传诊断报告。
7、几点建议
- 从 Skill 起步,把团队里反复被问的活(发布流程、SQL 规范、日志排查路径)写成 Skill,见效最快
- 子 Agent 按「最小工具集」给权限,审查类只读、生成类才给写
description写清楚「什么时候用我 + 触发词」,匹配不上等于白写- SKILL.md 进 git 仓库,跟代码一起评审、一起版本化,这是团队资产,不是个人本地配置
- 定期用
/skills、/agents盘点(命令见 Claude Code常用命令速查),不用的删掉
总结
Agent 把「目标到结果」的执行交给 AI,Skill 把「怎么干才专业」固化下来给它随取随用。从一份 SKILL.md 开始写起,把团队里重复的活慢慢沉淀进去,比一次性搞一套大而全的体系实际得多。
相关阅读
- 原文作者:Anttu
- 原文链接:https://anTtutu.github.io/post/2026-03-20-ai-agent-and-skill/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。