title: 记忆系统与 Agent 定制完全指南(五)自定义 Agent 开发(二)——Agent 的工具与权限
date: 2026-07-10
category: AI 开发工具
tags: [Claude Code, Agent, 工具, 权限, 安全]

记忆系统与 Agent 定制完全指南(五):自定义 Agent 开发(二)

Agent 能做什么、不能做什么,取决于它的工具权限。本篇教你给 Agent 配置精确的工具清单,让每个 Agent 只做它该做的事。

前言

Agent 不是万能的——它需要工具来完成工作。但并不是每个 Agent 都需要所有工具:

  • 前端 Agent 不需要操作数据库
  • 后端 Agent 不需要改 CSS
  • 安全 Agent 只需要读取文件,不需要写入

本篇教你理解 Claude Code 的工具系统,给每个 Agent 配置精确的权限。

一、Claude Code 的工具体系

1.1 核心工具分类

Claude Code 提供以下几类工具:

类别 工具 说明
文件操作 Read, Write, Edit 读取、创建、修改文件
搜索 Glob, Grep 文件搜索、内容搜索
命令执行 Bash 执行 shell 命令
Agent 调度 Agent 启动子 Agent
任务管理 TaskCreate, TaskUpdate, TaskList, TaskGet 创建和管理任务
外部服务 WebFetch, WebSearch 网页抓取、搜索
通信 SendMessage Agent 间通信
调度 CronCreate, CronDelete, ScheduleWakeup 定时任务
设计系统 DesignSync 与设计系统同步

1.2 工具的权限等级

等级 说明 示例
只读 只能读取文件、搜索内容 Read, Glob, Grep
写入 可以创建和修改文件 Write, Edit
执行 可以运行命令 Bash
远程 可以访问外部服务 WebFetch, SendMessage
危险 可能破坏系统 rm, git push --force

二、Agent 的工具配置

2.1 在 Agent 定义中声明工具

Agent 文件中的 tools 字段声明了它可以使用哪些工具:

---
name: frontend-developer
tools: [Read, Write, Edit, Glob, Grep, Bash, NotebookEdit]
---

2.2 不同 Agent 的工具配置示例

前端开发 Agent
---
name: frontend-developer
tools: [Read, Write, Edit, Glob, Grep, Bash, NotebookEdit]
---

需要的工具:

  • Read/Edit/Write:修改 Vue、TS、CSS 文件
  • Glob/Grep:搜索组件和文件
  • Bash:运行 pnpm dev、pnpm build、pnpm test
  • NotebookEdit:处理 Jupyter 笔记本(如果需要)
后端开发 Agent
---
name: backend-developer
tools: [Read, Write, Edit, Glob, Grep, Bash]
---

需要的工具:

  • Read/Edit/Write:修改 Java、XML、YAML 文件
  • Glob/Grep:搜索 Controller、Service、Mapper
  • Bash:运行 mvn compile、mvn test
代码审查 Agent
---
name: code-reviewer
tools: [Read, Glob, Grep, Bash]
---

需要的工具:

  • Read:读取代码文件
  • Glob/Grep:搜索相关文件
  • Bash:运行 lint、test 命令
  • 不需要 Write/Edit:审查 Agent 只读不改
DevOps Agent
---
name: devops-engineer
tools: [Read, Write, Bash]
---

需要的工具:

  • Bash:执行 docker、kubectl、ssh 命令
  • Read:读取配置文件
  • Write:生成 Dockerfile、docker-compose.yml
文档 Agent
---
name: doc-writer
tools: [Read, Write, Glob, Grep, WebSearch]
---

需要的工具:

  • Read/Glob/Grep:读取代码和配置
  • Write:生成 Markdown 文档
  • WebSearch:搜索最新的技术文档

2.3 最小权限原则

给 Agent 最少需要的工具,不多给。

❌ 差的配置:
tools: [Read, Write, Edit, Glob, Grep, Bash, WebFetch, Agent, SendMessage]
→ 给了太多权限,不安全

✅ 好的配置:
tools: [Read, Write, Edit, Glob, Grep, Bash]
→ 只给前端开发需要的工具

三、Agent 的权限限制

3.1 禁止的危险操作

某些 Agent 应该被禁止执行危险操作:

## 禁止的操作

以下 Bash 命令严禁使用:
- rm -rf /(删除整个文件系统)
- git push --force(强制推送,可能丢失历史)
- dd if=/dev/zero(格式化磁盘)
- 任何涉及 /etc/shadow 或 passwd 的命令

3.2 文件访问限制

可以限制 Agent 只能访问特定目录:

## 文件访问范围

- 可以读写:src/、components/、api/、types/、store/、router/
- 可以读取:public/、assets/、index.html
- 禁止访问:.git/、node_modules/、dist/、.env(敏感文件)

3.3 命令执行限制

## 允许的 Bash 命令

前端相关:
- pnpm install
- pnpm dev
- pnpm build
- pnpm test
- npx eslint
- npx prettier

禁止的命令:
- sudo(特权命令)
- curl/wget 外部 URL(网络安全)
- 任何涉及数据库的直接操作

四、Agent 的模型选择

4.1 不同模型的适用场景

模型 特点 适用场景
Opus 最强推理,最贵 复杂架构设计、Code Review
Sonnet 平衡速度与质量 日常开发、页面生成
Haiku 最快最便宜 简单查询、文件搜索
Fable 创意生成 文档写作、方案设计

4.2 Agent 的模型配置

---
name: frontend-developer
model: sonnet          # 日常开发用 Sonnet,平衡速度和成本
---

---
name: code-reviewer
model: opus            # 代码审查用 Opus,需要最强推理能力
---

---
name: doc-writer
model: fable           # 文档写作用 Fable,创意生成能力强
---

4.3 推理强度配置

---
name: frontend-developer
effort: medium         # 中等推理,适合常规开发
---

---
name: backend-developer
effort: high           # 高推理,后端逻辑复杂
---

---
name: code-reviewer
effort: xhigh          # 超高推理,全面审查需要深度分析
---

五、Agent 的权限管理

5.1 项目级权限

.claude/settings.json 中配置 Agent 的权限:

{
  "agents": {
    "frontend-developer": {
      "allowedBashCommands": ["pnpm*", "npx*", "tsc*"],
      "deniedBashCommands": ["sudo*", "rm -rf*", "curl*", "wget*"],
      "readPaths": ["src/", "public/", "index.html"],
      "writePaths": ["src/"]
    },
    "backend-developer": {
      "allowedBashCommands": ["mvn*", "java*"],
      "deniedBashCommands": ["sudo*", "rm -rf*"],
      "readPaths": ["src/main/java/", "src/main/resources/"],
      "writePaths": ["src/main/java/", "src/main/resources/"]
    }
  }
}

5.2 权限验证

Claude Code 在执行 Agent 操作时会进行权限验证:

Agent 请求:Write src/views/UserList.vue
权限检查:
  ✅ src/views/ 在 writePaths 范围内
  ✅ Write 工具在允许列表中
  → 允许执行

Agent 请求:Bash "rm -rf node_modules"
权限检查:
  ❌ rm -rf 在 deniedBashCommands 中
  → 拒绝执行,返回错误

5.3 运行时权限提升

某些操作可能需要临时提升权限:

Agent 请求:运行 pnpm build
权限检查:
  ✅ pnpm* 在 allowedBashCommands 中
  → 允许执行

Agent 请求:运行 sudo systemctl restart nginx
权限检查:
  ❌ sudo* 在 deniedBashCommands 中
  → 拒绝执行

用户干预:
  "这个操作需要 sudo 权限,要我帮你执行吗?"
  [是] [否]

六、实战:配置一个安全的 Code Review Agent

6.1 场景

Code Review Agent 只需要读取代码、运行测试、生成报告。它不应该:

  • 修改任何文件
  • 执行可能破坏系统的命令
  • 访问外部网络

6.2 Agent 定义

---
name: code-reviewer
description: 专业的代码审查 Agent,多维度审查代码质量
model: opus
effort: xhigh
tools: [Read, Glob, Grep, Bash]
---

# 代码审查 Agent

## 角色定义

你是一个严格的代码审查专家。你的职责是发现代码中的问题,
但不修改任何代码。

## 审查范围

- 安全性:SQL 注入、XSS、权限校验
- 性能:N+1 查询、不必要的重渲染
- 代码质量:命名、重复、注释
- 测试覆盖:边界情况、异常处理

## 允许的操作

- 读取文件(Read)
- 搜索文件(Glob)
- 搜索内容(Grep)
- 运行只读命令(Bash):
  - git diff
  - git log
  - pnpm exec eslint
  - pnpm test
  - npx tsc --noEmit

## 禁止的操作

- 修改任何文件(无 Write/Edit 权限)
- 执行 git commit / git push
- 执行 rm / mv / cp 等文件操作
- 访问外部网络(无 WebFetch 权限)

## 输出格式

按以下格式输出审查报告:
1. 问题列表(文件、行号、问题描述、严重程度)
2. 修复建议
3. 评分(1-100)

6.3 使用

@code-reviewer 审查当前分支的所有改动

Claude 会以 code-reviewer Agent 的身份执行审查,严格遵守权限限制——只读不写。

七、Agent 权限的调试

7.1 查看 Agent 权限

@frontend-developer 你的权限是什么?

Agent 回答:

我的工具权限:
- Read ✅ 读取文件
- Write ✅ 创建/覆盖文件
- Edit ✅ 修改文件
- Glob ✅ 文件搜索
- Grep ✅ 内容搜索
- Bash ✅ 命令执行
- NotebookEdit ✅ Jupyter 编辑

禁止的操作:
- 无(前端开发需要完整文件操作权限)

7.2 权限被拒绝时

如果 Agent 尝试执行超出权限的操作:

Agent 尝试:Write .git/config
结果:权限拒绝 — .git/ 在禁止访问范围内

Agent 会自动报告错误,并建议替代方案。

八、这一章的核心心得

  1. 工具决定能力——Agent 能做什么,取决于它有哪些工具
  2. 最小权限原则——只给 Agent 它需要的工具
  3. 模型要匹配任务——Opus 用于审查,Sonnet 用于开发,Fable 用于文档
  4. 推理强度分级——简单任务 low,复杂任务 high/xhigh
  5. 运行时验证——Claude Code 在执行时验证权限,越权操作会被拒绝
  6. 禁止危险操作——明确列出 denied 命令,防止意外破坏

九、下一步

Agent 的定义、工具、权限都搞清楚了。但一个 Agent 只做一件事是不够的——复杂任务需要多个 Agent 协作

下一篇我们学习 Agent 的编排与调度。


系列目录:

  1. 初识记忆系统——什么是记忆?为什么需要记忆?
  2. 记忆文件编写规范——怎么写一条好的记忆
  3. 记忆的检索与使用——Claude 如何在对话中调用记忆
  4. 自定义 Agent 开发(一)——Agent 的定义与结构
  5. 自定义 Agent 开发(二)——Agent 的工具与权限 ← 本篇
  6. Agent 编排与调度(待写)
  7. Agent 与工具的深度集成(待写)
  8. 记忆系统与 Agent 配合——构建智能开发助手(待写)
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐