We recently built a conversational agent to automate a recurring data engineering workflow: creating and modifying data pipelines.
The architecture uses a manager agent to classify user intent and route requests to two specialized agents:
Pipeline Creation Agent: inspects S3 schemas, generates PySpark jobs, creates Airflow DAGs and environment-specific policy files, and opens pull requests.
Column Addition Agent: locates existing pipelines, identifies downstream dependencies, modifies pipeline scripts, and creates pull requests.
The system is exposed through a FastAPI service, with Slack, REST API, Swagger UI, and GitHub Actions as entry points.
One architectural decision made a significant difference: knowledge-base-first generation.
Initially, we generated code and validated it against our Lake Naming Standards afterward. That resulted in corrective commits and unnecessary PR updates.
We changed the sequence: each specialist retrieves the relevant standards before generating code. This puts naming conventions, database structures, and file paths into the model's context upfront, rather than treating compliance as a post-generation check.
The workflow went from 2–4 hours of manual work to a few minutes.
A few areas worth exploring further:
How should specialist agents divide responsibilities?
How much deterministic validation should sit outside the LLM?
How do we make generated code compliant by design, rather than relying on correction loops?
Full implementation details:
https://www.godaddy.com/resources/news/building-an-ai-agent-for-data-pipeline-creation