AI-Powered On-Call Assistant for Airflow Pipeline Debugging

wix · Tech · 2026 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Data engineering on-call and Airflow operations

Wix needed to reduce the operational load of debugging Airflow DAG failures across a large, heterogeneous data platform where generic alerts forced engineers to manually connect Airflow, Spark, Kubernetes, code, schema, and ownership context.

Constraints:

Architecture

Wix built AirBot as an AI-powered Slack on-call agent. Slack Socket Mode keeps the bot inside the private network through an outbound WebSocket, while Slack Bolt Python and FastAPI manage connectivity. The bot gathers operational context through MCP-style integrations with GitHub, Trino, Spark, OpenMetadata, DDS lineage, and ownership tags. A LangChain Chain-of-Thought flow classifies the operator and error category, analyzes code and logs, and generates a remediation plan or pull request. GPT-4o Mini handles high-volume classification, Claude 4.5 Opus handles complex root-cause analysis and PR generation, and Pydantic structured outputs make downstream automation reliable. Deployment uses Docker, serverless infrastructure, and Vault-managed secrets.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  opsgenie-airflow-alerts[opsgenie-airflow-alerts] --> slack-airbot[slack-airbot]
  slack-airbot --> socket-mode-connection[socket-mode-connection]
  socket-mode-connection --> private-wix-network[private-wix-network]
  private-wix-network --> mcp-context-tools[mcp-context-tools]
  private-wix-network --> vault-secrets[vault-secrets]
  slack-airbot --> reasoning-chains[reasoning-chains]
  mcp-context-tools --> reasoning-chains
  reasoning-chains --> model-router[model-router]
  reasoning-chains --> structured-output-model[structured-output-model]
  structured-output-model --> github-pr-workflow[github-pr-workflow]
  github-pr-workflow --> slack-airbot
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
opsgenie-airflow-alerts Generic failure alerts from Airflow Alerting or Opsgenie. slack-airbot
slack-airbot Slack-facing agent that receives alerts, presents results, and exposes review actions. opsgenie-airflow-alerts, socket-mode-connection, reasoning-chains
socket-mode-connection Outbound WebSocket connectivity that avoids public inbound endpoints. slack-airbot, private-wix-network
private-wix-network Internal network boundary where Airflow, code, logs, metadata, and secrets remain protected. socket-mode-connection, mcp-context-tools, vault-secrets
mcp-context-tools Tool integrations for GitHub, Trino, Spark, OpenMetadata, DDS lineage, and ownership routing. private-wix-network, reasoning-chains
reasoning-chains LangChain classification, analysis, and solution chains. slack-airbot, mcp-context-tools, model-router, structured-output-model
model-router Selects GPT-4o Mini for high-volume classification and Claude 4.5 Opus for complex reasoning. reasoning-chains
structured-output-model Pydantic RemediationPlan contract for parseable automation outputs. reasoning-chains, github-pr-workflow
github-pr-workflow Creates candidate pull requests and Slack review actions for remediations. structured-output-model, slack-airbot
vault-secrets Injects sensitive credentials into the deployed bot infrastructure. private-wix-network

Data flow

An Airflow/Opsgenie alert reaches AirBot in Slack over Socket Mode. AirBot gathers task, code, log, schema, lineage, ownership, and metric context from internal systems. The classification chain identifies operator and error type, the analysis chain determines root cause from logs and code, and the solution chain emits a structured remediation plan or candidate PR. For schema mismatches it can fetch SQL from GitHub and schema from OpenMetadata, open a PR, and present a review button in Slack; for upstream delays it can query internal APIs and identify the blocking upstream table.

4 supporting quotes
“Instead of waiting for inbound traffic, the bot initiates a secure, outbound WebSocket connection to Slack.”article, stated
“We deployed a Chain of Thought architecture using LangChain for the Main Automated Alert Processing Flow.”article, stated
“2. Analysis Chain: Ingests code and logs to determine the root cause.”article, stated
“AirBot fetches the SQL from GitHub and the Schema from OpenMetadata. It identifies the mismatch.”article, stated

Why this architecture

Hard-coded alert automation failed because Airflow orchestrates multiple execution systems and internal services. Wix therefore used an agentic Slack workflow that can collect context from heterogeneous tools, reason over logs and code, and produce structured remediation. Socket Mode was chosen to protect the network boundary, tiered model routing balances cost against reasoning depth, and Pydantic narrows nondeterministic LLM output into a reliable automation contract.

4 supporting quotes
“Standard automation breaks down in our heterogeneous stack. Airflow orchestrates Trino, Spark, Kubernetes, and internal services, making hard-coded, tool-specific integrations brittle”article, stated
“To solve the combinatorial complexity of our stack, we leveraged Large Language Models (LLMs) to transform alerts from static notifications into active investigations.”article, stated
“* Zero-Trust Security: Because the connection is outbound, there is no need to open inbound firewall ports.”article, stated
“Instead of requesting free-text solutions, we prompt the model to populate a specific RemediationPlan object.”article, stated

Models used: GPT-4o Mini · Claude 4.5 Opus · LangChain · Pydantic

Scale

Alternatives considered (roads not taken)

traditional Slack HTTP request endpoints

Rejected because: Public inbound endpoints would require opening the security perimeter for Slack events.

“Traditional Slack apps rely on HTTP Requests, where Slack sends POST requests to a public URL.”article, stated
“This forces the organization to "punch holes" in the firewall and expose endpoints to the public internet.”article, stated

hard-coded tool-specific integrations

Rejected because: The Airflow stack spans Trino, Spark, Kubernetes, and internal services, making brittle integrations hard to scale.

“Airflow orchestrates Trino, Spark, Kubernetes, and internal services, making hard-coded, tool-specific integrations brittle and unscalable.”article, stated

passive bot that reposts error logs

Rejected because: Wix wanted active investigations that classify, analyze, and propose fixes rather than static notifications.

“Unlike a passive bot that simply reposts error logs, we designed AirBot with three core capabilities that any SRE agent should possess”article, stated

free-text LLM remediation output

Rejected because: Automation needs parseable, typed responses that downstream code can reliably use.

“Instead of requesting free-text solutions, we prompt the model to populate a specific RemediationPlan object.”article, stated

4.4 Deployment & Infrastructure

To ensure reliability and maintainability, the application infrastructure is built on modern DevOps principles:"

— article, stated

Patterns

tool-use-orchestration (agent-architecture)

AirBot gathers context and acts across GitHub, Trino, Spark, OpenMetadata, DDS lineage, ownership tags, Slack, and PR workflows.

“* OpenMetadata: Retrieves tables & columns schemas & descriptions for business context.”article, stated
“* DDS (Data Discovery Service): Retrieves table lineage for data dependencies.”article, stated

prompt-chaining (agent-architecture)

The reasoning engine separates alert classification, root-cause analysis, and remediation generation into chained steps.

“1. Classification Chain: Identifies the Operator (e.g., Spark vs.”article, stated
“3. Solution Chain: Generates a remediation plan or PR.”article, stated

model-routing (model-operations)

AirBot uses cheaper GPT-4o Mini for high-volume classification and Claude 4.5 Opus for complex root-cause reasoning and PR generation.

3 supporting quotes
“To balance cost and intelligence, we dynamically select models”article, stated
“GPT-4o Mini (The Sprinter): Used for high-volume tasks like log classification”article, stated
“Claude 4.5 Opus (The Thinker): Used for complex root cause analysis requiring large context windows and deep reasoning”article, stated

structured-output-contract (integration)

Pydantic models force model responses into typed remediation objects for downstream automation.

“To bridge this gap, AirBot utilizes Pydantic output models to enforce strictly typed JSON responses.”article, stated

human-in-the-loop-gate (operations)

Even when AirBot creates a PR, engineers review candidate fixes through Slack/GitHub before merging unless fully automated fixes are accepted.

"It identifies the mismatch.

“many unmerged PRs still provided value by acting as a "Blueprint", helping engineers visualize the solution faster”article, stated

cost-aware-routing (model-operations)

The model-selection split and reported $0.30 average workflow cost keep operational automation economically attractive.

“To balance cost and intelligence, we dynamically select models”article, stated
“An average AirBot AI interaction workflow costs ~$0.30.”article, stated

Tradeoffs

Use Slack Socket Mode for connectivity.

Chose outbound WebSocket from inside the private network over public inbound Slack HTTP endpoint.

Rationale: Socket Mode preserves interaction with Slack without opening inbound firewall ports.

“* Zero-Trust Security: Because the connection is outbound, there is no need to open inbound firewall ports.”article, stated
“The bot sits safely inside the private network, completely invisible to the public internet yet fully interactive.”article, stated

Split reasoning by chain stage.

Chose classification, analysis, and solution chains over one monolithic model call.

Rationale: The workflow needs to identify the failing operator, inspect code/log context, and generate a remediation plan as separate reasoning tasks.

“1. Classification Chain: Identifies the Operator (e.g., Spark vs.”article, stated
“2. Analysis Chain: Ingests code and logs to determine the root cause.”article, stated

Route models by task complexity.

Chose GPT-4o Mini for classification and Claude 4.5 Opus for deep reasoning over using the same expensive model for every step.

Rationale: This keeps common classification fast and cheap while reserving stronger reasoning for larger-context root-cause and PR-generation tasks.

“To balance cost and intelligence, we dynamically select models”article, stated
“Claude 4.5 Opus (The Thinker): Used for complex root cause analysis requiring large context windows and deep reasoning”article, stated

Generate PRs as candidate blueprints.

Chose candidate pull requests with human review affordances over always-auto-merge remediation.

Rationale: Only a subset of fixes merged directly; many PRs still helped engineers reason faster even when they chose manual implementation.

“While 28 were merged directly without human code changes (a 15% fully automated fix rate), many unmerged PRs still provided value by acting as a "Blueprint"”article, stated

Gotchas (what bit them)

Traditional alerting leaves engineers as cross-system error parsers.

Root cause: Airflow failures require connecting generic alerts, UIs, distributed logs, code changes, and ownership context.

Resolution: Have the agent collect context from internal tools and synthesize root cause before handing engineers a fix path.

“Engineers acted as "human error parsers," jumping between Airflow, Spark, and Kubernetes logs to locate root causes.”article, stated
“* The Synthesis (🤔 Cognitive Load):  Mapping the error back to recent code changes.”article, stated

Internal chat agents can accidentally weaken the network perimeter.

Root cause: Standard Slack event delivery sends public HTTP requests to an exposed URL.

Resolution: Use Socket Mode so the bot initiates outbound WebSocket connectivity from inside the private network.

“This forces the organization to "punch holes" in the firewall and expose endpoints to the public internet.”article, stated
“Instead of waiting for inbound traffic, the bot initiates a secure, outbound WebSocket connection to Slack.”article, stated

LLM free text is too unreliable for SRE remediation automation.

Root cause: LLMs are nondeterministic, while downstream systems need predictable fields.

Resolution: Use Pydantic output models and a remediation-plan schema.

“LLMs are inherently non-deterministic, but SRE automation demands reliability.”article, stated
“To bridge this gap, AirBot utilizes Pydantic output models to enforce strictly typed JSON responses.”article, stated

One model cannot economically handle every SRE subtask.

Root cause: Log classification is high-volume and simple, while root-cause analysis and PR generation require deeper reasoning and larger context.

Resolution: Route high-volume classification to GPT-4o Mini and complex analysis to Claude 4.5 Opus.

“GPT-4o Mini (The Sprinter): Used for high-volume tasks like log classification (e.g classify the log error type). Fast and cheap.”article, stated
“Claude 4.5 Opus (The Thinker): Used for complex root cause analysis requiring large context windows and deep reasoning”article, stated

Evaluation

Wix evaluates AirBot with operational metrics over team-channel usage, pull-request generation and merge rates, incident time saved, user feedback, monthly engineering-hours saved, and per-interaction cost.

Metrics: 180 candidate pull requests · 28 direct merges · 15% fully automated fix rate · 4,200 successful flows · 66% positive feedback rate · 675 engineering hours saved per month · $0.30 average workflow cost

3 supporting quotes
“AirBot generated 180 candidate Pull Requests across our main repositories. While 28 were merged directly without human code changes”article, implied
“* The Math: Based on 4,200 successful flows and a 66% positive feedback rate, we calculate ~2,700 impactful interventions.”article, implied
“An average AirBot AI interaction workflow costs ~$0.30.”article, implied

Outcomes

The source provides unusually concrete production scale: 250 million users, 4 billion daily HTTP transactions, a 7PB data lake, 3,500 DAGs, 30 team channels, 60 data engineers, 4,200 successful flows, and 675 monthly hours saved.

3 supporting quotes
“At the scale of thousands of pipelines, manual intervention inevitably becomes a bottleneck.”article, stated
“* Total Savings: 2,700 × 0.25 hours = 675 engineering hours saved per month.”article, stated
“By adopting patterns like Socket Mode for security, MCP for context, and tiered reasoning for cost control”article, stated