记忆系统与 Agent 定制完全指南(七):Agent 与工具的深度集成
·
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
八、这一章的核心心得
- 内置工具是基础——Bash、Grep、Glob、Read/Write 是 Agent 的标配
- MCP 是扩展利器——通过 MCP 可以接入数据库、云服务等外部工具
- Agent 可以操作数据库——设计表结构、写 SQL、做迁移
- Agent 可以管理 Git 平台——创建 PR、管理 Issue、触发 CI
- Agent 可以做 DevOps——Dockerfile、docker-compose、K8s 配置
- Agent 可以发通知——钉钉、飞书、Slack、邮件
- Agent 可以写测试——单元测试、集成测试、E2E 测试
九、下一步
Agent 的工具集成搞清楚了。最后一篇,我们把记忆系统和 Agent 结合起来,构建一个真正的智能开发助手。
系列目录:
初识记忆系统——什么是记忆?为什么需要记忆?记忆文件编写规范——怎么写一条好的记忆记忆的检索与使用——Claude 如何在对话中调用记忆自定义 Agent 开发(一)——Agent 的定义与结构自定义 Agent 开发(二)——Agent 的工具与权限Agent 编排与调度Agent 与工具的深度集成← 本篇- 记忆系统与 Agent 配合——构建智能开发助手(待写)
更多推荐



所有评论(0)