编程 Agent 怎么自己造技能?Claude Code 的 Skills 与子智能体手把手教学
编程 Agent 怎么自己造技能?Claude Code 的 Skills 与子智能体手把手教学
(说明:本文综合 Claude Code、Codex CLI、Gemini CLI 的官方文档与公开教程整理,均为第三方公开信息,非本人逐条真跑;文中命令与机制都可在对应官方文档复现。承接本刊前两篇热点:《本周 GitHub 热榜:AI 编程助手生态集中爆发》与《编程 Agent 本周变天》。)
上一波热点里,GitHub 热榜被 AI 编程助手霸屏,Claude Code 2.1 又把「技能(Skill)」和「子智能体(subagent)」做成了一等公民。但大多数教程停在「怎么装、怎么聊」,没讲透一件事:这些工具不止能写代码,你还能给它「装技能、派手下」——把它从聊天框变成一套可组装的自动化系统。
这篇是教学式:带你从零写一个自己的 Skill,理解子智能体怎么派活,再横评 5 类能自定义 Agent 的工具怎么选。
一、先搞懂:Skill 和 Agent 到底是什么关系
两个词老被混用,拆开就清楚:
- Skill(技能) = 一个可复用的能力包。本质是一个
SKILL.md文件(YAML 前置配置 + Markdown 正文),描述「什么时候用、怎么干」。它按需激活——模型判断任务匹配时才加载,不一直占着主对话的上下文。 - 子智能体(subagent) = 一个独立的「手下」。它有自己的上下文窗口、可限定工具权限、可跑在后台,主 Agent 把任务派给它,它干完只把结论交回来。
为什么这俩是编程 Agent 从「玩具」变「生产工具」的分水岭?因为光靠一个会聊天的模型,长任务会把上下文撑爆、权限也收不住。而 Skill 解决「能力复用」,子智能体解决「隔离与并行」——这正是一周前 Codex 松额度、Claude 加护栏那篇里说的「能力放开 ↔ 风险收口」的落地形态。
二、动手造第一个 Skill(以 Claude Code 2.1 为例)
Claude Code 的文档最开放、纯 Markdown 即可,适合当教学主线。一个 Skill 就是一个 SKILL.md:
---
name: explain-code
description: 用通俗语言解释选中代码。当用户说"解释这段代码""这段代码干嘛的"时调用。
---
# Explain Code
向中级工程师解释这段代码,重点讲行为和取舍:
- 它解决什么问题
- 关键分支和边界在哪
- 有没有明显坑
放哪? 两个位置二选一:
- 用户级(所有项目通用):
~/.claude/skills/explain-code/SKILL.md - 项目级(团队共享、可进 git):
<你的项目>/.claude/skills/explain-code/SKILL.md
怎么生效? Claude Code 2.1 起支持技能热重载:编辑保存后,当前会话直接生效,不用重启、不用重置。在对话框里输入 /explain-code 就能调用;更常见的是你直接说「解释这段代码」,模型看到 description 会自动匹配调用。
description 是整件事的灵魂——写得越清楚,模型越知道什么时候该用这个技能。模糊的 description 会导致要么不调用、要么乱调用。
三、进阶:派一个「手下」——子智能体
Skill 是「指令集」,子智能体是「独立进程」。当你想让某个角色长期带着自己的工具限制和规则去干活,就写一个子智能体,放在 .claude/agents/ 下:
---
name: code-reviewer
description: 带代码检查的代码评审。当需要审查 diff、找 bug 和风格问题时使用。
model: sonnet
tools: Read, Grep, Edit
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/validate-command.sh"
---
你是严格的代码评审员,只输出可执行的发现,不写客套话。
几个关键点:
description同样决定模型何时自动委派给它。model可以降档(比如用 sonnet/haiku)省钱——路由简单任务给便宜模型是子智能体的标准省钱法。tools限制它能用哪些工具;配合hooks还能在它每次调 Bash 前跑一道校验脚本——这就是「运行时强制约束」,比靠提示词管用。- 技能还能加
context: fork,把它变成一个后台子进程:主对话不污染上下文,它跑完只回总结。Claude Code 2.1.212(7/17)还把每会话子智能体派发上限默认设到 200,防止失控递归。
四、对照:Codex CLI 怎么玩(OpenAI 系)
Codex CLI 的玩法高度相似,只是格式换成 TOML。自定义 agent 放在 ~/.codex/agents/(个人)或 .codex/agents/(项目):
name = "reviewer"
description = "审查代码 diff,列出安全和质量问题"
developer_instructions = "你是资深评审员,逐条给出 文件:行号:问题,并给修复建议。"
model = "gpt-5.5"
sandbox_mode = "read-only"
调用方式是在会话里 /spawn "审查当前 PR 的 security 问题",Codex 会派生一个独立上下文的 agent,结果回流父会话。几个 Codex 特有件:
- AGENTS.md:项目级记忆文件(类比 Claude 的
CLAUDE.md、Gemini 的GEMINI.md),/init一键生成骨架。 .codex/hooks.toml:生命周期钩子(pre-commit/post-edit/pre-push/pre-spawn),提交前自动 lint、改完自动跑相关测试。- auto_review:开一个第二 agent 审每个 diff,再决定能不能 staged/push。
- Codex Cloud:把长任务丢到 OpenAI 的隔离沙箱里跑,返回一个任务 URL,你本地不用一直开着终端。
五、Gemini CLI:Extensions + Agent Skills(范式正在趋同)
Gemini CLI 的自定义走「扩展(extensions)」——一个可版本化、可发布的包,里面能装 MCP 服务器、自定义斜杠命令、GEMINI.md 上下文,以及 Agent Skills:
---
name: security-audit
description: 安全代码审计专家。当用户要求"检查安全问题"或"代码审计"时激活。
---
# Security Auditor
你是一名资深安全研究员。审计时请:
1. 查 OWASP Top 10 常见漏洞
2. 扫描硬编码密钥和 API Key
3. 对每个发现给修复建议
注意到了吗?Gemini CLI 的 SKILL.md 和 Claude Code 的几乎一模一样(都是 name + description + Markdown 正文)。这不是巧合——三家(Claude / Codex 也支持 skills 概念 / Gemini)正在把「Skill 文件格式」收敛成事实标准。对你意味着:现在花十分钟写的技能,未来大概率能跨工具复用,而不是锁死在某一家。
六、横评:5 类能自定义 Agent 的工具
| 工具 | 自定义方式 | 隔离 / 编排 | 上手成本 | 适合谁 |
|---|---|---|---|---|
| Claude Code | SKILL.md + .claude/agents/ 子智能体 + 钩子 + context: fork | 强(独立上下文、可后台、可限定工具) | 低,纯 Markdown | 想在自己仓库装技能、派手下的个人 / 团队 |
| Codex CLI | /spawn 子 agent + .codex/agents/*.toml + AGENTS.md + hooks.toml + auto_review + Cloud | 强(支持云端长跑) | 低–中 | OpenAI 生态、要云端跑长任务的人 |
| Gemini CLI | extensions(gemini-extension.json)+ commands/ + skills/ + GEMINI.md | 中(扩展打包,需 Node 写 MCP 时偏重) | 中 | Google 生态、开源控 |
| Cursor | .cursor/rules + Commands + Background Agents | 弱(偏 IDE 内辅助,自定义子 Agent 生态较弱) | 低 | 主要在编辑器里写码、要规则约束的人 |
| 通用框架(OpenAI Agents SDK / Claude Agent SDK / LangGraph) | 代码定义多智能体 | 最强(完全可控、可产品化) | 高(要写代码) | 做产品级多智能体系统的人 |
七、选型建议
- 想在自有仓库里「装技能、派手下」最顺手 → Claude Code 2.1。纯 Markdown、热重载、文档开放,个人和团队都能立刻上手。
- 已经在 ChatGPT / OpenAI 体系,且有长任务要云端跑 → Codex CLI + Codex Cloud,AGENTS.md 与钩子能直接接入你现有工作流。
- Google 生态 / 开源偏好 → Gemini CLI extensions,且它的 Skill 格式和别家趋同,迁移成本低。
- 主要在 IDE 里写码、要的是规则约束而非自定义 Agent → Cursor 足够,但别指望它的自定义子 Agent 生态有前两家那么活。
- 要做产品级、可控的多智能体系统 → 上 OpenAI Agents SDK / Claude Agent SDK / LangGraph,用代码定义编排,灵活度最高但代价是你要自己写。
八、热点意义:编程 Agent 进入了「可组装」阶段
回到开头的那波热点——GitHub 热榜被 AI 编程助手霸屏、Claude Code 2.1 把 Skills/子智能体做成一等公民、Codex 松额度、Claude 加护栏。把这些拼起来看:编程 Agent 不再是一个「会写代码的聊天框」,而是一套你能往里装技能、派手下、加护栏的可组装运行时。
而三家 Skill 格式趋同,是这个拐点的标志性信号:当「怎么写一个技能」开始跨工具通用,开发者沉淀的自动化资产才真正有了复利。这才是比任何单次功能更新都更值得盯的线。
数据来源:Claude Code 官方文档与 2.1.212 更新页、Codex CLI 官方文档与功能页、Gemini CLI 官方扩展文档,及公开教程(2026-07 整理)。命令与机制时效性强,以各产品官方文档最新版本为准。