
Agentic Engineering vs. Vibe Coding: Simon Willison's Line That Matters
Agentic AISimon Willison has published a concise definition of agentic engineering that cuts through the hype: it’s the practice of developing software with the assistance of coding agents — and it’s categorically different from vibe coding. The distinction matters if you’re building anything that has to work in production.
Context
The term “agentic engineering” has accumulated a lot of definitional noise over the past year. Used loosely, it can mean anything from “using Copilot to autocomplete” to “deploying fully autonomous software agents that run unsupervised.” The vagueness is a practical problem: teams adopting AI-assisted development need clear mental models for what they’re actually doing, what humans are responsible for, and where the capability limits are.
Willison, whose writing on LLMs and developer tools has become a reliable reference for practitioners, published a guide that provides the cleaner framing the space needs.
The Detail
The core definition is simple: agentic engineering is developing software with coding agents — software systems that can both write and execute code. Examples include Claude Code, OpenAI Codex, and Gemini CLI. The capability that distinguishes these tools from earlier AI assistants is execution: the ability to run the code they produce and iterate based on actual output, not just generate text and stop.
Willison’s definition of an agent follows from this: “Agents run tools in a loop to achieve a goal.” An agent calls an LLM with a prompt and tool definitions, executes the tools the model requests, feeds the results back into the next LLM call, and repeats until the goal is reached. Code execution is the critical tool. Without it, an LLM generating code is just producing text that a human has to run and interpret. With it, the system can iterate toward demonstrably working software on its own.
The human role in this framework is more specific than the “AI replaces developers” framing suggests. Humans remain essential for determining what code to write, navigating the tradeoffs between solutions, providing agents with appropriate tools, specifying problems at the right level of detail, verifying outputs, and updating instructions based on what the agent learns. The skill shift is from writing code to directing an agent that writes code — which requires understanding what good code looks like and where agents fail.
The vibe coding distinction is where the framework gets practically useful. Vibe coding — Willison’s term for accepting unreviewed, prototype-quality LLM-generated code — produces output that looks functional but hasn’t been verified. It’s appropriate for throwaway scripts and personal experiments. Agentic engineering applies deliberate verification, iteration, and quality gates to bring agent-generated code to production-ready standards. The difference is the human loop: present and critical in agentic engineering, absent or passive in vibe coding.
The So What
The practical implication is that agentic engineering is a discipline, not a tool. The tools — coding agents — are available to anyone. What separates engineers using them effectively from those generating technical debt is the verification and iteration practice that turns agent output into production software. For teams currently navigating AI access restrictions, tooling evaluations, or internal debates about how to adopt AI in software development, Willison’s framework is a useful anchor: the question isn’t whether to use coding agents, but whether the verification discipline is in place to use them well.
Photo by Daniil Komov on Pexels
Content created with AI assistance and reviewed for accuracy.
Join the conversation
Stack Insiders is our free community for readers who want to go deeper — share resources, ask questions, and connect with others across every vertical we cover.
Join Stack Insiders →