
作者:从筠
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. 这个工具解决了什么问题?
-
可同时管理多个数据库,相比常规 Chatbot 更贴合数据库使用习惯。
-
那我自己写一个 web 项目将这些 SQL 存储起来 ,调用后结果展示在页面不是一样可以达到效果吗?在大部分情况下,每个 SQL 的返回字段名称和数量都是不同的 ,web 页面的表格一般是固定的,无法很好地展示。大模型擅长处理文本,可以帮你总结,还可以动态展示。
-
很多时候我们不仅仅是要结果,还希望有初步的分析,SQL执行完之后,将你的问题告诉大模型,大模型就可以直接给你回答啦。
04. 怎么用起来?
直接执行下面的 docker 命令就可以了
docker run -d \
--name ob-agent \
--env CUSTOM_BASE_URL='' \
--env CUSTOM_API_KEY='' \
--env CUSTOM_CHAT_MODEL_NAME='' \
-p 8000:8000 \
davidzhangbj/oceanbaseagent:latest
其中的 CUSTOM_BASE_URL、CUSTOM_API_KEY、CUSTOM_CHAT_MODEL_NAME 必须配置为自己用的大模型 API 地址、KEY 和模型名称。
CUSTOM_BASE_URL、CUSTOM_API_KEY、CUSTOM_CHAT_MODEL_NAME的配置示例:
docker run -d \
–name ob-agent \
–env CUSTOM_BASE_URL='https://dashscope.aliyuncs.com/compatible-mode/v1' \
–env CUSTOM_API_KEY='sk-xxx' \
–env CUSTOM_CHAT_MODEL_NAME='qwen-max-latest' \
-p 8000:8000 \davidzhangbj/oceanbaseagent:latest
启动后的访问方式:http://ip:8000,可以在 docker 启动命令中调整默认端口,如-p 9000:8000
️注意:启动之后要先配置 OceanBase 的连接;最好以系统租户的 root 用户登录,因为很多 SQL 只有在这个租户下才可以执行
对源码感兴趣的可以访问 https://github.com/davidzhangbj/agent
,oceanbase 分支
最后为大家推荐这个 OceanBase 开源负责人老纪的公众号「老纪的技术唠嗑局」,会持续更新和 #数据库、#AI、#技术架构 相关的各种技术内容。欢迎感兴趣的朋友们关注!
「老纪的技术唠嗑局」不仅希望能持续给大家带来有价值的技术分享,也希望能和大家一起为开源社区贡献一份力量。如果你对 OceanBase 开源社区认可,点亮一颗小星星吧!你的每一个Star,都是我们努力的动力。