【OceanBase Agent】告别繁琐手动分析,OceanBase Agent 助力轻松运维数据库!

作者:从筠
01. 简介
OceanBase Agent 是一款开发者基于学习目的面向 OceanBase 的 AI 产品,主要目的是借助大模型的能力,简化日常运维场景的繁琐操作,令 DBA 同学无需写一行代码仅靠编写 SQL 就能构建自己的 Agent。
具备以下的能力:
面向数据库设计的 Chatbot,相比其他通用型 Chatbot 更适合数据库;
内置 70+ 使用 SQL 作为 Tool,可以直接调用;
支持自定义增加 SQL 作为 Tool;
支持编写 Playbook 以调用多个 Tool 完成复杂的运维任务;
支持 MCP 协议以扩展外部 Tool。
项目地址:
https://github.com/davidzhangbj/agent
是基于上游项目(专注 PG): GitHub - xataio/agent: AI agent expert in PostgreSQL 修改而来。
02. 概念介绍
Tools:配置常用 SQL 作为工具
内置了 72 个常用工具 SQL,可以添加自己的 SQL,使用的时候点击运行按钮可一键执行并结合大模型分析返回结果。
Playbooks:Agent 任务流定义
日常任务通常不是查询单一 SQL 可以解决的,Playbook 允许你以自然语言的方式描述整个任务过程,大模型可根据工作流描述调用相应的 Tool 进行分析,并决定任务走向。
内置的 Playbook 的示例,在此示例中我使用了较为严谨的方式,将每个步骤需要调用的工具名称均一一写明,以提高成功率。
实际上显式写出工具名称并非必要,大模型会根据任务需要和工具描述选择合适的工具,但由于大模型自身能力的限制可能会出现选错的情况,因此是否详细写明可基于复杂度和模型能力自行评估。

Chat:对话
类似常见的 SQL Client,对话的范围可以选择某个 Database,因此可以很方便的支持添加多个数据库并互相隔离。
支持在 Chat 中通过自然语言运行 tool, 和在 Tools 界面点击运行的效果是相同的,比如输入“运行 tool getClusterCharsets”。
MCP:通过 MCP 添加额外的工具
支持添加 MCP Server(仅支持 SSE),以扩展更多的 Tool。MCP Tool 和 SQL Tool 是平级的,因此大模型在执行任务时将同等对待,选择合适的 Tool 执行。
03. 这个工具解决了什么问题?
1. 可同时管理多个数据库,相比常规 Chatbot 更贴合数据库使用习惯。
2. 那我自己写一个 web 项目将这些 SQL 存储起来 ,调用后结果展示在页面不是一样可以达到效果吗?在大部分情况下,每个 SQL 的返回字段名称和数量都是不同的 ,web 页面的表格一般是固定的,无法很好地展示。大模型擅长处理文本,可以帮你总结,还可以动态展示。
3. 很多时候我们不仅仅是要结果,还希望有初步的分析,SQL 执行完之后,将你的问题告诉大模型,大模型就可以直接给你回答啦。
04. 怎么用起来?
直接执行下面的 docker 命令就可以了
其中的 CUSTOM_BASE_URL、CUSTOM_API_KEY、CUSTOM_CHAT_MODEL_NAME 必须配置为自己用的大模型 API 地址、KEY 和模型名称。CUSTOM_BASE_URL、CUSTOM_API_KEY、CUSTOM_CHAT_MODEL_NAME 的配置示例:
启动后的访问方式:http://ip:8000,可以在 docker 启动命令中调整默认端口,如-p 9000:8000
⚠️注意:启动之后要先配置 OceanBase 的连接;最好以系统租户的 root 用户登录,因为很多 SQL 只有在这个租户下才可以执行
对源码感兴趣的可以访问
https://github.com/davidzhangbj/agent
,oceanbase 分支
评论