dbt-llm-agent
用自然语言对话你的 dbt 数据仓库,无需 SQL 即可查询和分析数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用自然语言对话你的 dbt 数据仓库,无需 SQL 即可查询和分析数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Ragstar 数据分析仪表盘——用自然语言直接对话你的 dbt 模型
凌晨两点,数据工程师李明被业务方的夺命连环 call 吵醒:「DAU 报表又出问题了,为什么和上周数据对不上?」
他打开 Slack,搜索历史对话,发现三个月前有人问过类似的问题,当时给出的 SQL 已经丢失。他打开 dbt 项目,翻找 documentation,密密麻麻的 YAML 配置和 SQL 文件让人头皮发麻。最终他花了四十分钟,才定位到是某个中间模型的 join 逻辑变了。
这几乎是每个数据团队的日常。业务人员不懂 SQL,数据工程师疲于回答重复问题,而 dbt 虽然解决了代码规范问题,却没能解决「知识可发现性」的问题——你知道的模型别人不知道,你写的文档没人看,你的业务逻辑躺在 YAML 里吃灰。
Pragun Bhutani 在 LinkedIn 上分享了他的经历:「我开始做一个开源 chatbot,让你可以直接问它关于你的 dbt 项目的问题。」这个从个人痛点出发的项目,逐渐演变成了今天我们要分析的 Ragstar(项目名 dbt-llm-agent)。
Ragstar 是一个基于检索增强生成(RAG)架构的 AI 数据分析助手,专门服务于使用 dbt 管理数据代码的团队。它的核心能力是:把你的 dbt 项目变成一个可以被「对话」的知识库。
用户不需要写一行 SQL,只需要用自然语言提问:「上个月华北区域新激活用户的留存率是多少?」「我们有哪些模型和收入相关?」Ragstar 就会:
它的工作原理建立在三层技术栈上:PostgreSQL + pgvector 提供向量相似度搜索,LangChain + OpenAI/Anthropic 等 LLM 提供推理能力,Next.js 前端 + Django 后端提供友好的交互界面。
Ragstar 的部署通过 Docker Compose 一键启动,背后跑了 6 个服务:
Django 后端的依赖栈非常值得关注:
/ask 命令Ragstar 最具前瞻性的设计是内置的 MCP Server(Model Context Protocol)。MCP 是 AI 工具生态的新兴协议,允许 AI 客户端(如 Claude.ai)直接调用外部工具。
通过 OAuth 2.0(带 PKCE)认证,MCP Server 向 Claude.ai 暴露了四个核心工具:
list_dbt_models:浏览和筛选 dbt 模型search_dbt_models:语义搜索相关模型get_model_details:获取模型详细信息(SQL、血缘关系、元数据)get_project_summary:获取整个 dbt 项目的结构和概览这意味着数据工程师可以在 Claude.ai 中直接说「帮我查一下 revenue 相关模型的结构」,无需切换到 Ragstar Web 界面。这种「AI 工具生态互联」的设计思路,代表了 AI 数据助手的下一个演进方向。
不过 MCP Server 目前处于 βeta 阶段,文档中特别说明:「MCP server 在我们稳定流式输出支持期间暂时禁用。」此外由于 MCP 的 1:1 客户端-服务器关系,仅支持自托管部署。
图2:Ragstar 设置页面——连接 dbt Cloud 或 GitHub 仓库,一键同步模型知识库
Ragstar 支持三种 dbt 项目接入方式,其中 dbt Cloud 方式最为推荐:
首次配置后,Ragstar 会运行 Django 后台任务,解析 manifest.json 生成模型索引,调用 LLM 生成嵌入向量存入 pgvector。整个过程自动化,用户只需等待「知识库构建完成」的通知。
这是 Ragstar 做得最出色的地方——极低的上手门槛。
git clone https://github.com/pragunbhutani/ragstar.git && cd ragstar
cp .env.example .env
# 仅需编辑三个变量:
# NEXTAUTH_SECRET=$(openssl rand -base64 32)
# NEXTAUTH_URL=http://localhost:3000
# NEXT_PUBLIC_API_URL=http://localhost:8000
docker compose up --build -d
然后跑一下数据库迁移:
docker compose exec backend-django uv run python manage.py migrate
打开 http://localhost:3000,注册账号,连接 dbt 项目,就可以开始提问了。
部署难度评为「简单」,原因如下:
不过需要注意,生产环境部署时需要额外配置:LLM API Key(OpenAI/Anthropic/Google 三选一)、外部 PostgreSQL(如果不用 Docker 卷持久化)、SSL 证书(如果公网访问)。
客观来说,Ragstar 目前有几个明显的局限:
1. 回答质量依赖 dbt 文档质量 如果 dbt 模型的 description 字段写得敷衍或根本没有,RAG 效果会大打折扣。LangChain 的检索能力受限于输入文档的质量,这不是一个纯工程问题,而是团队文档习惯的问题。
2. SQL 生成的准确性 项目在 onboarding 流程中要求用户配置「SQL 验证模型」——说明团队也意识到 AI 生成的 SQL 可能出错,需要人工确认。生产环境中,错误 SQL 执行到数仓的后果可能很严重。
3. MCP Server 仍在 beta 文档明确说 MCP server 暂时禁用,streaming 支持还在开发中。这影响了项目的核心亮点之一的可稳定性。
4. 仅支持自托管 官方明确说明:「MCP server 只能与 Ragstar 的自托管/开源部署一起使用」,云托管版本不可用。这对于想要快速体验而不自己运维的用户是一道门槛。
Ragstar 出现在一个更大的趋势中:Text-to-SQL 从玩具走向生产。dbt Labs 官方也推出了 dbt MCP Server(2025 年博客文章),Norlys(丹麦最大综合能源集团)已经在生产中使用 MCP 技术重构了整个组织的对话式数据分析。
从 GitHub Star 增长曲线来看(growth_trend_score=14.25,monthly_trend_score=45.09),项目正处于快速成长期。176 颗 Stars 虽然不算高,但考虑到项目专注于 dbt 生态、定位清晰(不是通用的 SQL 助手)、且 MCP 集成具有前沿性,在数据工程师群体中有较强的传播潜力。
Pragun Bhutani 本人在数据工程领域有一定影响力(Bottom Line Data LLP 创始人,曾帮助多家公司建立数据基础设施),他的博客系列「Building an AI Data Analyst with LLMs」详细记录了项目的设计思路,对同领域开发者有参考价值。
总体而言,Ragstar 代表了 AI 数据分析工具的一种务实路线:不做通用 SQL 助手,而是深度集成特定生态(dbt),通过 RAG 解决「知识孤岛」问题,同时用 MCP 打通 AI 工具之间的壁垒。如果你所在团队使用 dbt 管理数据代码,这个项目值得优先关注。