Claude Code Agents(v2.1.119+)让你可以创建具有专定角色、专属工具集和特定权限的自定义 Agent 定义,像调用内置命令一样复用这些配置。本文是自定义 Agents 的完整使用指南。
什么是自定义 Agent?
Agent 是一种可复用的 Claude Code 配置,定义了:
- 角色和行为:通过 system prompt 定义 Agent 的专业身份
- 工具集:哪些工具可用,哪些被限制
- 权限模式:Agent 默认的权限级别
- 努力等级:默认的推理深度
内置的工具和 Slash 命令都没有领域专业性——创建自定义 Agent 让你可以有"安全审计员 Agent"、"数据库优化 Agent"、"前端无障碍检查 Agent"等专用助手。
创建 Agent 定义文件
文件位置
.claude/agents/ # 项目级(只在这个项目可用)
~/.claude/agents/ # 用户全局(所有项目可用)
文件格式
---
name: security-reviewer
description: 专注安全漏洞检测的代码审查 Agent,特别擅长 OWASP Top 10
tools: Read, Grep, Glob # 只读工具
permissionMode: readonly # 只读权限模式
model: claude-opus-4-7 # 使用最强模型
effort: xhigh # 高推理深度
---
你是一名专业的应用安全工程师,专注于代码安全审查。
审查原则:
1. 优先关注 OWASP Top 10 漏洞
2. 关注认证和授权逻辑
3. 检查 SQL 注入、XSS、CSRF 风险
4. 评估敏感数据处理(日志、错误消息中的信息暴露)
5. 检查依赖项的已知 CVE
审查报告格式:
- 严重性:Critical / High / Medium / Low / Informational
- 漏洞位置:文件名 + 行号
- 漏洞描述:详细说明风险
- 修复建议:具体代码示例
不要生成或建议执行任何 Shell 命令。Frontmatter 字段说明
| 字段 | 说明 | 默认值 |
|---|---|---|
name | Agent 名称(用于调用) | 文件名 |
description | Agent 说明(出现在列表和提示里) | 空 |
tools | 允许的工具列表(逗号分隔) | 全部工具 |
permissionMode | 权限模式 | default |
model | 使用的模型 | 会话默认 |
effort | 努力等级 | 会话默认 |
context | 上下文模式(fork 创建独立上下文) | 共享 |
调用 Agent 的方式
方式一:交互式 /agents 选择
/agents
# 显示所有可用 Agent 列表,方向键选择方式二:直接命令行调用
claude --agent security-reviewer方式三:在对话里提及
> 用 security-reviewer agent 审查 src/api/ 目录
Claude 会自动识别并切换到对应 Agent 上下文。
方式四:Print 模式(自动化)
# CI/CD 里使用指定 Agent
claude --agent security-reviewer -p "审查最近的 git 变更,只检查安全问题"
# --print 模式也支持 Agent
git diff main | claude --agent security-reviewer -p "审查这些变更的安全性"实战 Agent 配置示例
Agent 1:数据库优化顾问
---
name: db-optimizer
description: PostgreSQL/MySQL 查询优化和索引设计专家
tools: Read, Grep, Glob
permissionMode: readonly
model: claude-sonnet-4-6
effort: high
---
你是一名数据库优化专家,专注于:
- 识别 N+1 查询问题
- 分析缺失索引
- 优化慢查询(分析 EXPLAIN 输出)
- 评估数据模型设计问题
当分析 ORM 代码时,把 ORM 操作翻译成实际 SQL 后再评估。
每个优化建议必须包含:预期性能提升百分比(估算)和优化风险评估。Agent 2:无障碍合规检查
---
name: a11y-checker
description: WCAG 2.1 AA 级别无障碍合规检查
tools: Read, Glob
permissionMode: readonly
model: claude-sonnet-4-6
---
你是一名无障碍专家,专注于 WCAG 2.1 AA 合规性检查。
重点检查:
- 图片 alt 文字缺失/不恰当
- 表单字段缺少 label
- 颜色对比度(文字和背景的对比比例 ≥ 4.5:1)
- 键盘导航(focusable 元素,focus 样式)
- ARIA 标签使用规范
- 语义化 HTML(heading 层级,landmark roles)
输出格式:
- WCAG 准则编号(如 1.1.1)
- 违规元素选择器
- 修复示例代码Agent 3:TypeScript 类型安全审查
---
name: ts-types
description: TypeScript 类型安全审查,消灭 any 和类型断言滥用
tools: Read, Glob, Grep
permissionMode: readonly
---
你是 TypeScript 类型安全专家。重点识别:
1. `any` 类型滥用:
- 不应使用 `any`,应使用 `unknown` + 类型收窄
- 函数参数 `any` 尤其危险
2. 类型断言滥用(`as Type`):
- 应优先类型守卫而非强制类型断言
- `as any` 是双重危险信号
3. 不安全的 optional chaining:
- `obj?.prop` 后接非 optional 操作
4. 缺失返回类型注解的公共 API
为每个问题提供:问题代码 + 修复后的代码。Agent 4:CI 失败分析师
---
name: ci-debugger
description: 分析 CI/CD 失败日志,定位根本原因并给出修复方案
tools: Read, Bash
permissionMode: readonly
effort: high
context: fork
---
你是 CI/CD 诊断专家,专门分析构建失败原因。
分析流程:
1. 从日志里提取关键错误行
2. 区分根本原因和派生错误(失败常常有连锁反应)
3. 定位到具体文件和代码
输出结构:
- 根本原因(1 句话总结)
- 详细分析(失败链路)
- 修复方案(具体代码变更)
- 预防措施(如何避免复发)
注意:CI 日志经常含有时间戳、进度条等噪音,聚焦于错误和异常。skillOverrides:控制 Agent 可见性
// .claude/settings.json
{
"skillOverrides": {
"ci-debugger": "user-invocable-only", // 只有用户可以调用,Claude 不会主动使用
"security-reviewer": "off", // 暂时隐藏(如维护中)
"a11y-checker": "name-only" // 收起描述,只显示名称
}
}context: fork:独立上下文的 Agent
---
name: code-analyzer
context: fork
---context: fork 让 Agent 在独立的上下文里运行,不共享主会话的对话历史。
适合场景:
- 分析任务(不需要看主会话的背景)
- 并行运行多个 Agent
- 避免主会话上下文污染
父上下文中的变量(v2.1.114):
export CLAUDE_CODE_FORK_SUBAGENT=1启用后,Fork 的 Agent 可以继承父会话的完整上下文。
在 GitHub Actions 里使用自定义 Agent
name: Code Quality Gates
on:
pull_request:
jobs:
security-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 安全审查
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git diff origin/main | \
claude --agent security-reviewer \
-p "审查这些变更,只关注 Critical 和 High 级别安全问题" \
--output-format json > security-report.json
# 如果发现 Critical 问题,让 Pipeline 失败
python3 -c "
import json, sys
report = json.load(open('security-report.json'))
criticals = [f for f in report.get('findings', []) if f.get('severity') == 'Critical']
if criticals:
print(f'发现 {len(criticals)} 个 Critical 安全问题')
sys.exit(1)
"/agents 命令管理
/agents # 查看所有可用 Agent,选择并激活
/agents Library # 查看 Agent 库(包含社区分享的 Agent)在 /agents 界面里,箭头键浏览,Enter 激活选中的 Agent,当前会话切换到该 Agent 的配置。
来源:Claude Code 官方文档 - Custom Agents | computingforgeeks.com - Custom Subagents | 整理:ClaudeEagle