Building an Agentic DevOps Copilot for Infrastructure Automation

qovery · Tech · 2025 · source Agentic: yes · promotional bias: high · 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: DevOps infrastructure automation

Qovery wanted a DevOps copilot that could understand infrastructure intent, automate deployments and configuration work, and move beyond brittle one-intent-one-tool mappings.

Constraints:

Architecture

Qovery evolved its copilot through four phases: hardcoded intent-to-tool mapping, dynamic agentic planning over tool invocations, resilience/retry/replanning layers, and conversation memory for session continuity. The alpha system uses Claude Sonnet 3.7, QDrant, stateless tools, validation between steps, and memory for context.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  developer[Developer] --> devops-copilot[DevOps Copilot]
  devops-copilot --> planner[Planner]
  planner --> tool-registry[Tool Registry]
  tool-registry --> infrastructure-apis[Infrastructure APIs]
  tool-registry --> resilience-layer[Resilience Layer]
  resilience-layer --> devops-copilot
  devops-copilot --> conversation-memory[Conversation Memory]
  conversation-memory --> vector-store[Vector Store]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Developer User asking for deployment, infrastructure, optimization, or configuration help. DevOps Copilot
DevOps Copilot Agentic assistant that plans, executes, recovers, and remembers infrastructure workflows. Developer, Planner, Tool Registry, Resilience Layer, Conversation Memory
Planner Analyzes user intent and produces a sequence of tool invocations. DevOps Copilot, Tool Registry
Tool Registry Versioned stateless tools with clear input/output interfaces. Planner, Resilience Layer, Infrastructure APIs
Infrastructure APIs Qovery/cloud infrastructure capabilities for deployments, environments, Dockerfiles, and configuration. Tool Registry
Resilience Layer Failure analysis, validation, retry logic, intermediate state, and replanning. Tool Registry, DevOps Copilot
Conversation Memory Session memory for references, continuity, and previous answers. DevOps Copilot
Vector Store QDrant-backed retrieval/memory support referenced by the implementation. Conversation Memory

Data flow

A user asks an infrastructure question; the copilot analyzes intent, plans a sequence of versioned stateless tool calls, validates outputs between steps, replans or retries on failure, and uses conversation memory to maintain continuity across the session.

“receives user input, analyzes it, and dynamically plans a sequence of tool invocations to fulfill the request.”article, stated
“This required tracking intermediate state, running validation between tool steps, and allowing re-planning if an execution fails.”article, stated

Why this architecture

Qovery moved from predictable hardcoded mappings to dynamic planning because real user questions required flexible tool chains, then added recovery and memory because dynamic agents fail and need context.

3 supporting quotes
“* Every new intent had to be hardcoded * Complex workflows required chaining tools manually * No flexibility for unexpected or unplanned user requests”article, stated
“This version served well for a few internal use cases. But the moment real users started asking real questions - like "How can I optimize my Dockerfile?" or "Why is my deployment time high this week?" - we hit a wall. We needed something more flexible.”article, stated
“That’s when we realized: a dynamic system needs to be able to fail gracefully and recover. That took us to phase three. ## Phase 3: Resilience and Recovery We added resiliency layers and robust retry logic into the agentic execution flow.”article, stated

Models used: Claude Sonnet 3.7 · QDrant

Scale

Alternatives considered (roads not taken)

Hardcoded intent-to-tool mapping.

Rejected because: It was predictable but inflexible and required every new intent to be manually mapped.

“We started with a simple agent architecture: detect a user’s intent, and map that intent to a tool or action. Each intent is a tool executed”article, stated
“* Every new intent had to be hardcoded * Complex workflows required chaining tools manually * No flexibility for unexpected or unplanned user requests”article, stated

Agentic planning without recovery.

Rejected because: If one tool failed or produced unexpected output, the whole plan broke.

“* If one tool fails or behaves unexpectedly, the whole plan breaks That’s when we realized: a dynamic system needs to be able to fail gracefully and recover. That took us to phase three.”article, stated

Sessionless copilot.

Rejected because: Conversation memory improved references, continuity, and deeper multi-step work.

“Without conversation memory: this was how a conversation worked before.”article, stated
“This drastically improved user experience - and opened the door to deeper, multi-step optimization and monitoring tasks.”article, stated

Patterns

tool-use-orchestration (devops-agent)

The copilot dynamically plans a sequence of tool invocations over stateless tools with clear interfaces.

"Each tool:

— article, stated

fallback-degradation (reliability)

The resilience layer analyzes failures, fixes or updates the plan, and retries with a corrected approach.

"Analyzes the failure

— article, stated

agent-memory (context)

Conversation memory lets the copilot reuse prior answers and maintain continuity in the session.

"It allows the Agentic DevOps Copilot to:

— article, stated

latency-optimization (runtime)

Planning speed is a named next improvement because 10-second planning is acceptable for testing but not production.

“It can take up to 10 seconds to plan complex tasks, which is ok in a testing phase, but not so great for production.”article, stated

Tradeoffs

Planner design

Chose Dynamic agentic tool planning over Hardcoded intent mapping.

Rationale: Dynamic planning supports unanticipated user needs and multi-step workflows.

"Far more scalable and flexible

— article, stated

Reliability layer

Chose Retry and replanning around tools over Failing the whole workflow on tool mismatch.

Rationale: Multi-step infrastructure workflows need graceful recovery.

“Without this, reliability drops fast. With it, we started seeing successful completions of multi-step workflows”article, stated

Gotchas (what bit them)

Intent-to-tool mapping does not survive real user variety.

Root cause: Users ask unexpected optimization and debugging questions outside pre-mapped intents.

Resolution: Switch to an agentic planner that chooses tool sequences dynamically.

“real users started asking real questions - like "How can I optimize my Dockerfile?" or "Why is my deployment time high this week?" - we hit a wall.”article, stated

Tool chaining is fragile.

Root cause: Outputs must match expected inputs across steps, and a single failure can break the plan.

Resolution: Track intermediate state, validate between steps, and allow replanning.

“Tool chaining is fragile - outputs must match expected inputs”article, stated

Model hosting choices affect enterprise compliance.

Root cause: Some business users want model options that fit their compliance standards.

Resolution: Plan self-hosted model options in addition to Claude Sonnet 3.7.

“Self-hosted models: We use Claude Sonnet 3.7 right now, and even if we don't send sensitive information, we are a business solution”article, stated

Evaluation

Qovery evaluates by iterating through alpha usage, tool interface behavior, validation between steps, planning latency, and successful completion of previously unanticipated workflows.

Metrics: Planning latency · Tool validation success · Retry/replan recovery · Multi-step workflow completion · User experience continuity

“tracking intermediate state, running validation between tool steps, and allowing re-planning if an execution fails.”article, stated

Outcomes

The current alpha uses Claude Sonnet 3.7, cites planning up to 10 seconds for complex tasks, and references QDrant for vector database support.

“We’re not building another chatbot. We’re building DevOps automation with a brain”article, stated