Core Concepts
Reasoning
Memory & Retrieval
Agent Types
Design Patterns
Training & Alignment
Frameworks
Tools
Safety & Security
Evaluation
Meta
Core Concepts
Reasoning
Memory & Retrieval
Agent Types
Design Patterns
Training & Alignment
Frameworks
Tools
Safety & Security
Evaluation
Meta
Agentic engineering is Simon Willison's term for the practice of developing software with the assistance of coding agents – tools like Claude Code, OpenAI Codex, and Gemini CLI that can both generate and execute code, enabling them to test and iterate independently of turn-by-turn human guidance1).
It represents the disciplined, professional end of the AI-assisted development spectrum, distinct from vibe coding where developers pay no attention to the code at all.
Willison defines the core concept through the lens of what makes coding agents different from standard LLM tools: “Agents run tools in a loop to achieve a goal.” The defining capability is code execution – the agent generates code, runs it, observes results, and iterates until the goal is met. Without execution, LLM output is of limited value; with it, agents can converge on working software2).
Agentic engineering is explicitly professional: “professional software engineers using coding agents to improve and accelerate their work by amplifying their existing expertise.”3)
Willison draws a clear line: “I think of vibe coding using its original definition of coding where you pay no attention to the code at all, which today is often associated with non-programmers using LLMs to write code. Agentic Engineering represents the other end of the scale.”4)
The key differences:
Willison's Agentic Engineering Patterns guide, launched February 23, 2026 and modeled on the classic 1994 Design Patterns book, documents evolving best practices5):
“The biggest challenge in adopting agentic engineering practices is getting comfortable with the consequences of the fact that writing code is cheap now.” Code has always been expensive – producing a few hundred lines of clean, tested code takes most developers a full day. Coding agents disrupt this, but good code (tested, documented, handles errors, simple) still has a cost. The drop in writing cost enables a “zero tolerance attitude to minor code smells”6).
Test-driven development pairs exceptionally well with coding agents. Write failing tests first (red), then let the agent implement until tests pass (green). Willison became an advocate for TDD with agents despite disliking it throughout his career: “agents absorb the tedium of writing failing tests first, and tests are now effectively free and therefore non-optional”7).
Always execute agent-generated code to verify it works. Never assume LLM output is correct without running it. The execution feedback loop is what makes coding agents dramatically more reliable than simple code generation8).
Have agents produce narrative walkthroughs of complex code to help developers rebuild understanding and combat cognitive debt. Part of the “Understanding code” section of the patterns guide9).
When developers lose track of how agent-written code works, they take on cognitive debt. Interactive explanations – artifacts built by agents that help developers explore and understand code behavior – are a mitigation strategy10).
“Shipping worse code with agents is a choice. We can choose to ship code that is better instead.” Willison identifies four types of technical debt that agents can eliminate: API design flaws requiring dozens of changes, poor naming choices baked into codebases, duplicate functionality that drifted apart, and single files that ballooned to thousands of lines. All are conceptually simple but time-consuming for humans – ideal for agents running in background branches11).
The Agentic Engineering Patterns guide is organized into sections12):