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

发布时间:2026/7/22 13:04:34
记忆系统与 Agent 定制完全指南(五):自定义 Agent 开发(二) title: 记忆系统与 Agent 定制完全指南五自定义 Agent 开发二——Agent 的工具与权限date: 2026-07-10category: 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网页抓取、搜索通信SendMessageAgent 间通信调度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 testNotebookEdit处理 Jupyter 笔记本如果需要后端开发 Agent--- name: backend-developer tools: [Read, Write, Edit, Glob, Grep, Bash] ---需要的工具Read/Edit/Write修改 Java、XML、YAML 文件Glob/Grep搜索 Controller、Service、MapperBash运行 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 ReviewSonnet平衡速度与质量日常开发、页面生成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 Agent6.1 场景Code Review Agent 只需要读取代码、运行测试、生成报告。它不应该修改任何文件执行可能破坏系统的命令访问外部网络6.2 Agent 定义--- name: code-reviewer description: 专业的代码审查 Agent多维度审查代码质量 model: opus effort: xhigh tools: [Read, Glob, Grep, Bash] --- # 代码审查 Agent ## 角色定义 你是一个严格的代码审查专家。你的职责是发现代码中的问题 但不修改任何代码。 ## 审查范围 - 安全性SQL 注入、XSS、权限校验 - 性能N1 查询、不必要的重渲染 - 代码质量命名、重复、注释 - 测试覆盖边界情况、异常处理 ## 允许的操作 - 读取文件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-1006.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 会自动报告错误并建议替代方案。八、这一章的核心心得工具决定能力——Agent 能做什么取决于它有哪些工具最小权限原则——只给 Agent 它需要的工具模型要匹配任务——Opus 用于审查Sonnet 用于开发Fable 用于文档推理强度分级——简单任务 low复杂任务 high/xhigh运行时验证——Claude Code 在执行时验证权限越权操作会被拒绝禁止危险操作——明确列出 denied 命令防止意外破坏九、下一步Agent 的定义、工具、权限都搞清楚了。但一个 Agent 只做一件事是不够的——复杂任务需要多个 Agent 协作。下一篇我们学习 Agent 的编排与调度。系列目录初识记忆系统——什么是记忆为什么需要记忆记忆文件编写规范——怎么写一条好的记忆记忆的检索与使用——Claude 如何在对话中调用记忆自定义 Agent 开发一——Agent 的定义与结构自定义 Agent 开发二——Agent 的工具与权限← 本篇Agent 编排与调度待写Agent 与工具的深度集成待写记忆系统与 Agent 配合——构建智能开发助手待写