IvorySQL Agent 探索与实践
本文基于 HOW 2026 Oreo Yang 的演讲内容整理。 视频回放:https://www.bilibili.com/video/BV1CFLB6DEHV/
一、项目背景
1.1 什么是 IvorySQL
IvorySQL 是一个基于 PostgreSQL 并兼容 Oracle 的开源关系型数据库项目,致力于提供灵活、高性能的数据管理解决方案。其核心特性包括:
- Oracle 兼容:支持 Oracle 数据类型、PL/SQL 语法、内置函数及 Package 包,显著降低从 Oracle 迁移或混合部署的技术门槛与成本。
- 社区生态:拥有活跃的开源社区,通过社区协作持续推动产品迭代与技术创新。
- 部署灵活性:支持传统部署、容器化、云服务、在线体验、沙盒环境等多种部署方式。
1.2 项目背景与目标
数据库运维面临多重挑战:指标分散、诊断困难、人力成本高、文档查找繁琐。IvorySQL Agent 的核心理念是利用大模型技术 实现智能对话与自动化分析,构建一站式监控、诊断、运维辅助平台。项目要解决的六大核心问题包括:智能文档检索、数据库运维、性能调优、SQL 编写效率提升、企业知识管理,最终通过 AI 技术实现从"被动检索"到"主动服务"的转型。
1.3 什么是 Agent
Agent = 大模型 + 工具 + 推理。智能体将语言模型与工具能力结合,能够对任务进行推理、决定使用哪些工具,并通过迭代寻求解决方案。
IvorySQL Agent 的技术选型:
- 模型层:支持 OpenAI GPT 系列、Anthropic Claude 系列、智谱 AI 等多模型后端
- 工具层:21 个数据库工具,覆盖 7 大领域专家
- 框架层:基于 LangGraph 工作流编排,实现 ReAct 循环迭代
- 知识层:矩阵式知识库,覆盖多版本、多模式
二、系统架构
2.1 整体架构
系统采用四层架构设计:
| 层级 | 技术栈 | 职责 |
|---|---|---|
| Web 接入层 | FastAPI + 静态资源 + CORS | 用户界面交互 |
| 智能路由层 | LangGraph 工作流 + 状态管理 | 意图识别与请求分发 |
| 专家 Agent 层 | NL2SQL / Analysis / Ops / Backup / Install / Knowledge / General | 领域任务处理 |
| 工具与存储层 | 数据库工具集 + LLM 接口 + 向量存储 + 时序数据库 | 数据访问与工具执行 |
2.2 核心数据流
监控采集流:通过 Collector 设计,覆盖 50+ 监控指标(连接、缓存、锁、事务、查询、表膨胀等)。针对 IvorySQL 的 Oracle 兼容模式,动态注册自定义类型编解码器。采集数据以 JSONB 格式存储于 PostgreSQL,后台采用 APScheduler 每 30 秒执行一次采集任务,并通过 Delta 增量计算减少开销。
智能对话流:用户输入经路由分发至对应 Agent,构建上下文后调用工具链执行推理,最终生成回答并返回用户。
2.3 异常检测:规则引擎 + LLM 协同
异常检测采用规则引擎与 LLM 协同工作的双轨机制:
- 规则引擎:预定义阈值规则,命中后自动触发 LLM 分析
- LLM 分析:支持 Claude/OpenAI/智谱 AI 等多模型,对异常进行智能解读
- 向量化存储:512 维本地向量(支持 256~2048 维自定义),配合 pgvector 索引加速检索
- 历史学习:通过相似案例检索复用诊断经验