dbt智能代理

一个基于Google Agent Development Kit (ADK)构建的AI代理,为dbt项目提供智能辅助,结合本地dbt编译能力和云端dbt平台集成。

  • by StephenR-DBT
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 StephenR-DBT/dbt-gemini-agent-starter

使用说明

dbt-gemini代理

一个强大的人工智能代理,使用谷歌的代理开发工具包(ADK)构建,为dbt(数据构建工具)项目提供智能帮助。该代理通过MCP(模型上下文协议)工具将本地dbt编译功能与基于云的dbt平台集成相结合。

🚀 特性

核心能力

  • dbt编译与分析:在本地编译dbt项目,并分析JSON日志中的错误和问题
  • dbt平台集成:通过MCP连接到dbt云/平台进行高级操作
  • 智能问题检测:自动识别dbt编译错误并提出修复建议
  • 数据建模分析:分析数据建模模式并提出改进建议
  • 多LLM支持:通过LiteLLM与Gemini、OpenAI、Claude和其他LLM提供商合作

工具和子代理

  • dbt_compile:本地dbt编译,带有详细的JSON日志分析
  • dbt_mcp-toolset:通过MCP进行基于云的dbt平台操作
  • dbt_model_analyzer:数据建模分析的专业子代理

📋 先决条件

  • Python 3.10+
  • dbt CLI已安装并配置
  • 谷歌云项目(适用于ADK)

🛠️ 安装

  1. 克隆仓库:

    git clone <repository-url>
    cd dbt-gemini-agent
    
  2. 创建虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 设置环境变量:

    cp .env.example .env
    # Edit .env with your configuration
    
  5. 跑:

    adk web # will load at localhost:8000 by default
    

🏗️ 项目结构

dbt-gemini-agent/
├── dbt_data_scientist/           # Main agent package
│   ├── agent.py                  # Root agent configuration
│   ├── prompts.py               # Agent instructions and prompts
│   ├── tools/                   # Agent tools
│   │   ├── dbt_compile.py       # Local dbt compilation tool
│   │   └── dbt_mcp.py          # MCP toolset for dbt platform
│   ├── sub_agents/              # Specialized subagents
│   │   └── dbt_model_analyzer.py # Data modeling analysis agent
│   ├── test_all_tools.py        # Comprehensive test suite
│   └── quick_mcp_test.py        # MCP connection test
├── requirements.txt             # Python dependencies
└── README.md                   # This file

🚀 用法

基本用法

测试设置

  1. 测试MCP连接:

    python dbt_data_scientist/quick_mcp_test.py
    
  2. 运行综合测试:

    python dbt_data_scientist/test_all_tools.py
    

交互示例

编译和分析dbt项目

User: "Compile my dbt project and find any issues"
Agent: 
1. Runs dbt compile --log-format json
2. Analyzes JSON logs for errors
3. Provides specific error locations and suggested fixes

dbt平台操作

User: "Show me my dbt Cloud jobs"
Agent: Uses MCP tools to query dbt Cloud API and display job information

数据建模分析

User: "Analyze my data modeling approach"
Agent: Delegates to dbt_model_analyzer subagent for specialized analysis

🔧 工具参考

dbt_compile工具

  • 目的:在本地编译dbt项目并返回结构化JSON日志
  • 输入:任何字符串(触发编译)
  • 输出:带返回码和解析日志的字典
  • 特性:
    • 自动错误检测
    • 结构化日志解析
    • 环境变量配置

dbt_mcp-toolset

  • 目的:通过MCP提供对dbt云/平台的访问
  • 特性:
    • 作业管理
    • 环境操作
    • 项目元数据访问
    • 实时监控

dbt_model_分析器子代理

  • 目的:数据建模模式的专业分析
  • 能力:
    • 模式检测
    • 建模最佳实践分析
    • 业绩建议

🧪 测试

该项目包括全面的测试工具:

快速MCP测试

python dbt_data_scientist/quick_mcp_test.py
  • 测试MCP连接
  • 验证身份验证
  • 列出可用工具

完整测试套件

python dbt_data_scientist/test_all_tools.py
  • 测试所有工具和子代理
  • 验证环境配置
  • 确保适当的清理

🔍 故障排除

常见问题

  1. “无模块提示”错误:

    • 确保从正确的目录运行
    • 检查所有导入是否使用相对路径
  2. MCP连接错误:

    • 验证环境变量是否设置正确
    • 检查dbt云/平台凭据
    • 确保网络连接
  3. dbt编译错误:

    • 验证DBT_PROJECT_LOCATION指向有效的DBT项目
    • 检查DBT_EXPECUTABLE路径
    • 确保dbt项目配置正确
  4. 异步生成器清理警告:

    • 测试套件包括适当的清理
    • 这些警告通常是无害的,但表示存在连接清理问题

🤝 贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。


用AI进行数据建模快乐! 🚀📊