小白也能懂!Claude Code 中 Agent 和 Skill 到底有什么区别?

你用 Claude Code 的时候,一定见过这两个词:Agent 和 Skill。

它们都能让 Claude 变得更"聪明",但原理完全不同。搞混的人不在少数,包括我自己。

今天用大白话讲清楚,保证看完你就懂。

先说结论:一个字之差,天壤之别

Agent = 独立的 AI 助手(有自己的"脑子")
Skill = 一套流程模板(共用主对话的"脑子")

打个比方:

  • Agent 像你公司里的员工。你把任务交代给他,他自己想办法完成。他有独立的思考空间(上下文窗口),能理解复杂的需求,做出自己的判断。

  • Skill 像你办公桌上的流程手册。翻开手册,按照步骤一步一步做。但动脑子的人还是你自己,手册只是帮你省去"想下一步干什么"的功夫。

一张表看懂核心区别

对比项 Agent(子Agent) Skill(技能)
上下文 独立的上下文窗口 共享主对话上下文
类比 公司员工 流程手册
适用场景 多步骤复杂任务 固定流程的重复任务
配置方式 .md 文件(YAML + 提示词) .md 文件(纯提示词)
存放位置 .claude/agents/ .claude/commands/
工具权限 可精细控制 继承主对话权限
通信方式 消息传递(像 Slack) 直接在主对话中执行

什么时候用 Skill?什么时候用 Agent?

记住一句话就够了:

任务需要多步操作 + 大量上下文 = 用 Agent
任务是固定流程 = 用 Skill

举个具体例子。

适合 Skill 的场景:

  • /commit —— 格式化 git commit message
  • /review-pr —— 按 checklist 审查 PR
  • /build —— 执行构建命令

这些任务的特点是:步骤固定,输入简单,不需要"理解"太多上下文。

适合 Agent 的场景:

  • 写一篇公众号文章(搜索、写作、排版、上传、发布)
  • 重构一个模块(阅读代码、理解架构、修改、测试)
  • 安全审计(扫描依赖、检查代码模式、生成报告)

这些任务的特点是:步骤多、需要大量上下文、需要自主决策。

真实案例:wechat-publisher 的进化史

我自己的微信公众号发布工具就是一个典型例子。

最开始它是个 Skill。流程很简单:写文章、转格式、发布。三个步骤,一气呵成。

但后来需求越来越复杂:

  • 要搜索最新资料
  • 要根据不同主题调整写作风格
  • 要处理封面图、正文配图
  • 要排版成微信兼容的 HTML
  • 要上传素材到微信服务器
  • 要创建草稿或直接发布
  • 还要同步到 CSDN

一个 Skill 根本搞不定。上下文窗口会被撑爆,流程也太灵活了,没法写死。

所以我把它升级成了 Agent。现在它像一个独立的"小编",自己规划任务,自己执行,最后把结果汇报给我。

这就是从 Skill 到 Agent 的典型升级路径。

Agent 怎么配置?一个文件搞定

Agent 的配置就是一个 .md 文件,放在 .claude/agents/ 目录下。

文件结构很简单:

---
name: my-agent
description: 这是一个示例 Agent 的描述
model: claude-sonnet-4-20250514
tools:
  - Read
  - Write
  - Bash
  - Glob
  - Grep
---

你是一个专业的 XX 助手。

你的任务是:
1. 理解用户需求
2. 分析相关文件
3. 输出结果

上半部分是 YAML frontmatter,用三个短横线包裹。关键配置字段:

  • name:Agent 的唯一标识,用于触发和引用
  • description:描述 Agent 的功能,决定了什么时候自动触发
  • model:指定使用的模型(可以选便宜的模型省钱)
  • tools:工具权限列表,决定 Agent 能干什么

下半部分是系统提示词,告诉 Agent 该怎么做事。

两种触发方式

1. 自动触发(被动)

在 description 里写上 “PROACTIVELY”,Claude 会在合适的时机自动调用这个 Agent:

description: PROACTIVELY run code review on every PR

2. 手动调用(主动)

直接告诉 Claude:

用 code-reviewer agent 审查一下这个 PR

放哪里?项目级 vs 用户级

Agent 配置文件有两个存放位置:

  • 项目级 .claude/agents/:只对当前项目生效
  • 用户级 ~/.claude/agents/:对你所有项目都生效

建议:

  • 通用 Agent(如代码审查)放用户级
  • 项目特有 Agent(如 wechat-publisher)放项目级

工具权限控制:最小权限原则

给 Agent 配置工具时,遵循最小权限原则

不是所有 Agent 都需要 Write 权限。看几个实际例子:

# 代码审查员 - 只需要读权限
name: code-reviewer
tools:
  - Read
  - Glob
  - Grep
  - LSP

# 测试工程师 - 需要写和执行
name: test-engineer
tools:
  - Read
  - Write
  - Bash

# 安全审计员 - 只需要读权限
name: security-reviewer
tools:
  - Read
  - Glob
  - Grep

# 调试专家 - 需要完整的读写和执行能力
name: debugger
tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
  - LSP

安全审查员不需要 Write 权限 —— 它只看不改。这样即使 Agent 出了问题,也不会破坏你的代码。

实战 Agent 示例推荐

下面这些 Agent 类型可以直接拿来用:

code-reviewer(代码审查)

name: code-reviewer
description: PROACTIVELY review code changes for quality issues
tools:
  - Read
  - Glob
  - Grep
  - LSP

test-engineer(写测试)

name: test-engineer
description: Write comprehensive unit tests
tools:
  - Read
  - Write
  - Bash
  - Glob
  - Grep

debugger(调 Bug)

name: debugger
description: Debug issues and find root causes
tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
  - LSP

security-reviewer(安全审计)

name: security-reviewer
description: PROACTIVELY audit code for security vulnerabilities
tools:
  - Read
  - Glob
  - Grep

最后一句话总结

Skill 是给自己用的备忘录
Agent 是给另一个 AI 用的岗位说明书

简单任务用 Skill,复杂任务上 Agent。别想太多,先从 Skill 开始,做不下去再升级成 Agent。

就像这篇公众号文章,就是靠 Agent 写出来、排版、上传、保存草稿的。人力?零。


本文由 Claude Code Agent 自动写作并排版,仅保存草稿,供人工审核后发布。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐