What is agentic engineering?
TL;DR Highlight
Simon Willison coins the term 'Agentic Engineering' for software development with coding agents, explaining how it's different from plain 'vibe coding' and what the developer's role looks like in this new paradigm.
Who Should Read
Developers looking to adopt coding agents like Claude Code, OpenAI Codex, or Gemini CLI in real work, and software engineers thinking through how their role changes when LLMs are generating the code.
Core Mechanics
- Agentic Engineering is defined as software development where the developer maintains full understanding of the system while delegating implementation to AI agents — in contrast to 'vibe coding' where you accept output without deep comprehension.
- The developer's role shifts from 'writing code' to 'architecture, review, and guidance.' You specify what to build, validate what the agent outputs, and course-correct when it goes wrong.
- Willison emphasizes that Agentic Engineering only works if the developer can read and understand the code the agent generates. The ability to review AI output is a core skill.
- The guide argues that context management — effectively communicating constraints, existing architecture, and requirements to the agent — is now a critical competency.
- He also warns that agents often take unexpected shortcuts or introduce technical debt, so systematic review processes and test automation are even more important in this paradigm.
Evidence
- Commenters largely agreed with Willison's framing, with many sharing their own experiences where using AI agents felt very different from vibe coding — because they still needed to understand the full system to guide the agent effectively.
- Several developers noted that 'agentic engineering' is really just 'engineering with better tools' — the fundamentals haven't changed, but the leverage has increased dramatically.
- Some pushed back, arguing the distinction between vibe coding and agentic engineering is blurry in practice. Where exactly is the line between 'fully understanding the system' and 'understanding enough'?
- The observation that junior developers doing vibe coding often create unmaintainable messes while experienced engineers using agents dramatically accelerate output resonated with many commenters.
How to Apply
- Before starting an agent session, take time to document the current system architecture and key constraints. This 'context document' becomes your primary tool for guiding the agent.
- Treat every piece of code the agent generates as code you wrote yourself — you're responsible for understanding and maintaining it. Don't merge anything you don't understand.
- Build a review checklist: security, performance, test coverage, consistency with existing patterns. Apply it systematically to agent output.
- When the agent goes in a wrong direction, don't just retry — figure out why it went wrong and revise your prompt or context document before the next attempt.
Terminology
Agentic EngineeringA development paradigm where developers maintain system understanding and direct AI coding agents to handle implementation — as opposed to vibe coding.
Vibe CodingA style of coding where you accept AI-generated output without deeply understanding or reviewing it, focusing on rapid prototyping.
Context WindowThe maximum amount of text (tokens) an LLM can process at once, which determines how much system information you can feed to an agent.