An AI-powered agentic pipeline built with the Google ADK to refine, audit, and improve LookML files. This project uses a deterministic "Project Picker" to lock in context before engaging a Gemini-powered assistant.
lookml_llm_quality/
βββ agent.py # The Orchestrator (Pipeline definition)
βββ custom_agents/
β βββ __init__.py # Makes folder a Python package
β βββ picker.py # Custom Project Selection logic
βββ tools.yaml # MCP configuration (Templates env vars)
βββ .env # Local secrets (GIT IGNORED)
βββ .env.example # Template for secrets
βββ .gitignore # Git exclusion rules
βββ requirements.txt # Python dependencies
βββ toolbox # MCP binary (Ensure chmod +x)
##π Setup & Installation###1. Environment & DependenciesEnsure you are using Python 3.13+.
# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install requirements
pip install -r requirements.txt
###2. Configure SecretsCopy the example file and fill in your credentials.
cp .env.example .env
Open .env and add your Looker Client ID and Secret.
###3. Prepare the ToolboxThe MCP binary must be executable.
chmod +x toolbox
##π Running the AgentLaunch the terminal-based assistant:
python agent.py
###How it works:1. Selection: The script connects to Looker and lists all available projects. 2. Deterministic Input: You select a project by number in the terminal. 3. AI Handoff: The selected project is passed into the Gemini session state. 4. Chat: The AI wakes up already knowing exactly which project you are working on.
##π Security & Git* .env: Never committed. Contains raw credentials.
tools.yaml: Committed. Uses${VAR}syntax to pull secrets from the environment safely.toolbox: Generally ignored (binary), but kept in the.gitignoreto prevent bloat.
##π€ Model ConfigurationThis project is optimized for Gemini 3 Pro, which features advanced reasoning for LookML and BigQuery tool orchestration.