一个专业的 MySQL 语句优化 Agent 智能助手,能够分析和优化 MySQL 查询语句,提供高效的执行建议和索引优化方案。需要通过 A2A 协议连接使用。
- 智能分析 MySQL 语句结构和性能瓶颈
- 提供语法和逻辑错误检查
- 生成优化后的 SQL 语句
- 推荐索引优化方案
- 支持与 MySQL 数据库实例连接获取元数据
- 完整的异常处理和资源管理
agent_mysql/
├── .env # 环境变量配置
├── .gitignore # Git 忽略文件
├── .python-version # Python 版本指定
├── README.md # 项目说明文档
├── pyproject.toml # 项目依赖配置
├── src/
│ ├── agent/
│ │ ├── controller.py # 代理控制器
│ │ └── mysql.py # MySQL 代理实现
│ ├── app/
│ │ ├── __main__.py # 应用入口
│ │ └── agent_execuor.py # 代理执行器
│ ├── mcps/
│ │ └── mysql.py # MySQL MCP 服务
│ ├── models/
│ │ └── deepseek.py # DeepSeek 模型集成
│ └── utils/
│ └── env_decorators.py # 环境变量装饰器
└── uv.lock # 依赖版本锁定
- Python 3.13+
- MySQL 5.7+
- 相关 Python 依赖(见 pyproject.toml)
- 克隆项目到本地
git clone <repository-url>
cd agent_mysql- 使用Makefile命令安装依赖
make install- 配置环境变量
复制下列配置创建为
.env文件并修改相应配置:
# MySQL 连接配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=password
MYSQL_DATABASE=test
# DeepSeek 模型配置
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_API_KEY=your_api_key
DEEPSEEK_API_BASE_URL=https://api.deepseek.com
# 调式(如果打开会将调用 MCP 工具的过程信息输出到 stdout)
DEBUG=False
- 启动应用
make run-
发送 MySQL 优化请求
# 查询 agent card
$ curl http://localhost:10011/.well-known/agent.json | python -m json.tool
# 发优化请求
$ curl -X POST \
-d '{"id": "msg-1751882717926-7ywuoqc5o","jsonrpc": "2.0","method": "message/send","params": {"configuration": {"acceptedOutputModes": ["text/plain","video/mp4"]},"message": {"contextId": "a4b4f635-730f-4189-b77e-3030412d7dcc","kind": "message","messageId": "ac55ef69-6c02-4d3f-aa55-afe6da6c2f0d","parts": [{"kind": "text","text": "优化 select * from beidou.langs"}],"role": "user"}}}' \
http://localhost:10011
# 构建镜像
make docker-build
# 推送镜像到仓库(需设置DOCKER_REGISTRY环境变量)
DOCKER_REGISTRY=your-registry make docker-push- 创建环境变量密钥
kubectl create secret generic agent-mysql-secrets \
--from-literal=mysql-host=your-mysql-host \
--from-literal=mysql-port=3306 \
--from-literal=mysql-user=your-user \
--from-literal=mysql-password=your-password \
--from-literal=mysql-database=your-db \
--from-literal=deepseek-model=deepseek-chat \
--from-literal=deepseek-api-key=your-api-key \
--from-literal=deepseek-api-base-url=https://api.deepseek.com- 部署到Kubernetes
make k8s-deploy- 删除部署
make k8s-delete- AgentExecutor: 代理执行器,处理优化请求的入口(提供 A2A 协议接口)
- mysql_agent_controller: 核心控制器,协调各组件完成优化流程
- MySQL MCP Server: 提供 MySQL 元数据查询能力
- DeepseekModelProvider: 集成 DeepSeek 模型进行智能优化分析
- 验证输入的 MySQL 语句
- 连接 MySQL 数据库获取表结构和索引信息
- 分析执行计划和性能瓶颈
- 生成优化后的 SQL 语句
- 提供索引优化建议
- 返回完整的优化报告
- 所有 DDL 操作(如创建索引)需要明确批准
- 对于系统表查询,仅提供语法优化建议
- 长查询可能需要较长处理时间,请耐心等待
- 确保网络连接正常以使用 DeepSeek API