title: 记忆系统与 Agent 定制完全指南(七)Agent 与工具的深度集成
date: 2026-07-10
category: AI 开发工具
tags: [Claude Code, Agent, 工具集成, MCP, 外部工具]

记忆系统与 Agent 定制完全指南(七):Agent 与工具的深度集成

Agent 的能力上限取决于它能调用的工具。本篇带你深入 Agent 的工具集成——从内置工具到 MCP 服务器、从数据库操作到外部 API,让你的 Agent 无所不能。

前言

一个 Agent 如果只能读写文件和跑命令,能力就很有限。但通过工具集成,Agent 可以:

  • 直接操作数据库
  • 调用外部 API
  • 管理 Docker 容器
  • 访问 Git 平台
  • 发送通知消息

本篇教你把这些工具集成到你的 Agent 中。

一、内置工具的深度使用

1.1 Bash 工具的进阶用法

Agent 不仅可以跑简单命令,还可以执行复杂的管道:

# 查找所有包含 TODO 的文件
grep -rn "TODO" src/ --include="*.ts" --include="*.java"

# 统计代码行数
find src/ -name "*.vue" -o -name "*.ts" -o -name "*.java" | xargs wc -l

# 查找未使用的导入
cd frontend && npx unimported

1.2 Grep 的高级搜索

# 正则搜索
grep -rn "interface\s+\w+Service" src/

# 多文件搜索 + 上下文
grep -rn -C 3 "NullPointerException" src/

# 排除特定目录
grep -rn "password" src/ --exclude-dir=node_modules --exclude-dir=target

1.3 Glob 的智能文件搜索

# 按模式搜索
Glob("**/*Controller.java")
Glob("src/**/*.{vue,ts}")
Glob(".claude/agents/*.md")

二、MCP 工具集成

2.1 什么是 MCP?

MCP(Model Context Protocol)是 Claude Code 的工具扩展协议。通过 MCP,Agent 可以调用外部的服务和工具:

Claude Code ←→ MCP Server ←→ 外部工具
                          ├── 数据库(MySQL、PostgreSQL)
                          ├── 云平台(AWS、Azure、GCP)
                          ├── 代码托管(GitHub、GitLab)
                          ├── 监控(Prometheus、Grafana)
                          └── 消息队列(RabbitMQ、Kafka)

2.2 配置 MCP 服务器

.claude/settings.json 中配置:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@host:5432/db"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "<your-token>"
      }
    }
  }
}

2.3 Agent 使用 MCP 工具

配置好 MCP 后,Agent 可以自动发现并使用这些工具:

Agent 说:"帮我查一下数据库里有多少设备记录"
→ 自动调用 PostgreSQL MCP 工具
→ 执行 SELECT COUNT(*) FROM devices
→ 返回结果:1,234 条

三、Agent 操作数据库

3.1 数据库 Agent

---
name: db-engineer
description: 负责数据库设计、SQL 编写、性能优化和数据迁移
model: opus
effort: high
tools: [Read, Write, Edit, Bash, Glob, Grep]
---

# 数据库工程师 Agent

## 角色定义

你是一个资深数据库工程师,精通 MySQL、PostgreSQL 和数据库性能优化。

## 职责

### 数据库设计
- 设计表结构、索引、约束
- 生成建表 SQL
- 设计 ER 关系图

### SQL 编写
- 编写复杂的查询、JOIN、子查询
- 生成 MyBatis-Plus 的 Mapper XML
- 优化慢查询

### 数据迁移
- 编写迁移脚本(Flyway/Liquibase)
- 生成 ALTER TABLE 语句
- 设计数据迁移方案

## 常用命令

-- 查看表结构
DESC jt_device;

-- 查看索引
SHOW INDEX FROM jt_device;

-- 查看慢查询
SELECT * FROM slow_query_log ORDER BY query_time DESC LIMIT 10;

3.2 实战:让 Agent 设计数据库

@db-engineer 为设备管理模块设计数据库表

Agent 执行:

设备管理需要以下表:

1. jt_device(设备表)
   - id BIGINT PRIMARY KEY AUTO_INCREMENT
   - device_code VARCHAR(50) UNIQUE  -- 设备编号
   - device_name VARCHAR(100)        -- 设备名称
   - device_type INT                 -- 设备类型
   - status TINYINT DEFAULT 1        -- 状态:0停用 1启用
   - install_date DATE               -- 安装日期
   - create_time DATETIME
   - update_time DATETIME

2. jt_device_log(设备日志表)
   - id BIGINT PRIMARY KEY AUTO_INCREMENT
   - device_id BIGINT FK → jt_device
   - log_type INT                    -- 日志类型
   - log_content TEXT                -- 日志内容
   - create_time DATETIME

需要我生成建表 SQL 吗?
生成建表 SQL

Agent 输出完整的 DDL 语句。

四、Agent 操作 Git 平台

4.1 GitHub Agent

---
name: github-agent
description: 管理 GitHub PR、Issue、Release、Actions
tools: [Bash, Read, Write, Edit]
---

# GitHub 管理 Agent

## 职责

- 创建、更新、合并 Pull Request
- 管理 Issues 和 Labels
- 创建 Releases
- 触发 GitHub Actions
- Code Review 评论

## 常用操作

# 创建 PR
gh pr create --base main --title "feat: ..." --body "..."

# 列出 PR
gh pr list --state open

# 合并 PR
gh pr merge <number> --squash

# 创建 Issue
gh issue create --title "Bug: ..." --body "..."

4.2 实战:Agent 管理 Issue

@github-agent 创建一个 Issue:用户列表搜索功能性能问题

Agent 执行:

gh issue create \
  --title "perf: 用户列表搜索功能在高并发下响应慢" \
  --label "performance,frontend" \
  --body "## 问题描述
用户列表页在使用搜索功能时,当数据量超过 1000 条,响应时间超过 3 秒。

## 复现步骤
1. 打开用户列表页
2. 输入搜索关键词
3. 观察响应时间

## 预期行为
响应时间应在 500ms 以内

## 实际行为
响应时间 3-5 秒
"

五、Agent 操作 Docker

5.1 DevOps Agent

---
name: devops-agent
description: 负责 Docker 容器管理、Kubernetes 部署、CI/CD 配置
tools: [Bash, Read, Write, Edit]
---

# DevOps 工程师 Agent

## 职责

### Docker 管理
- 编写 Dockerfile
- 管理 docker-compose
- 容器健康检查

### Kubernetes
- 生成 Deployment/Service/Ingress YAML
- 管理 ConfigMap 和 Secret
- 滚动更新和回滚

### CI/CD
- 配置 GitHub Actions / GitLab CI
- 配置 Jenkins Pipeline
- 部署脚本编写

## 常用命令

# Docker
docker build -t my-app:latest .
docker-compose up -d
docker logs -f <container>

# Kubernetes
kubectl get pods
kubectl rollout status deployment/my-app
kubectl describe pod <pod-name>

5.2 实战:Agent 生成 Docker 配置

@devops-agent 为我们的项目生成 Dockerfile 和 docker-compose

Agent 生成:

# frontend/Dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build

FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
# docker-compose.yml
version: '3.8'
services:
  frontend:
    build: ./frontend
    ports:
      - "80:80"
    depends_on:
      - backend

  backend:
    build: ./asset-server
    ports:
      - "8080:8080"
    depends_on:
      - mysql
      - redis

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: zkhz-asset
    ports:
      - "13306:3306"

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

六、Agent 集成消息通知

6.1 通知 Agent

---
name: notifier-agent
description: 发送项目通知:钉钉、飞书、Slack、邮件
tools: [Bash, Read]
---

# 通知 Agent

## 职责

- 发送部署通知
- 发送构建结果通知
- 发送 Issue 更新通知
- 发送告警通知

## 支持的渠道

| 渠道 | 配置 | 用途 |
|------|------|------|
| 钉钉 | webhook URL | 国内团队 |
| 飞书 | webhook URL | 国内团队 |
| Slack | webhook URL | 海外团队 |
| 邮件 | SMTP 配置 | 正式通知 |

6.2 实战:Agent 发送部署通知

部署完成后发送通知到钉钉群

Agent 执行:

curl -X POST "$DINGTALK_WEBHOOK" \
  -H 'Content-Type: application/json' \
  -d '{
    "msgtype": "markdown",
    "markdown": {
      "title": "部署通知",
      "text": "## 🚀 部署成功\n\n**环境**:测试环境\n**分支**:develop\n**提交**:a1b2c3d\n**提交人**:张三\n**时间**:2026-07-10 14:30\n\n[查看详情](http://...) "
    }
  }'

七、Agent 集成测试工具

7.1 测试 Agent

---
name: tester-agent
description: 负责编写和运行测试:单元测试、集成测试、E2E 测试
tools: [Bash, Read, Write, Edit, Glob, Grep]
---

# 测试工程师 Agent

## 职责

### 单元测试
- 前端:Vitest / Jest
- 后端:JUnit 5 / Mockito

### 集成测试
- API 测试(RestAssured / supertest)
- 数据库集成测试

### E2E 测试
- Cypress / Playwright

## 常用命令

# 前端测试
pnpm test              # 运行所有测试
pnpm test -- --coverage  # 带覆盖率
pnpm test -- --watch   # 监听模式

# 后端测试
mvn test               # 运行所有测试
mvn test -Dtest=UserServiceTest  # 运行指定测试

# E2E 测试
npx cypress run
npx playwright test

7.2 实战:Agent 生成测试

@tester-agent 为 UserService 生成单元测试

Agent 执行:

# 1. 读取 UserService.java
Read src/main/java/.../UserService.java

# 2. 分析需要测试的方法
#    - getUserById()
#    - createUser()
#    - updateUser()
#    - deleteUser()
#    - searchUsers()

# 3. 生成测试文件
Write src/test/java/.../UserServiceTest.java

八、这一章的核心心得

  1. 内置工具是基础——Bash、Grep、Glob、Read/Write 是 Agent 的标配
  2. MCP 是扩展利器——通过 MCP 可以接入数据库、云服务等外部工具
  3. Agent 可以操作数据库——设计表结构、写 SQL、做迁移
  4. Agent 可以管理 Git 平台——创建 PR、管理 Issue、触发 CI
  5. Agent 可以做 DevOps——Dockerfile、docker-compose、K8s 配置
  6. Agent 可以发通知——钉钉、飞书、Slack、邮件
  7. Agent 可以写测试——单元测试、集成测试、E2E 测试

九、下一步

Agent 的工具集成搞清楚了。最后一篇,我们把记忆系统和 Agent 结合起来,构建一个真正的智能开发助手


系列目录:

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

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

更多推荐