From Autocomplete to Agent: The State of AI Coding Tools
AI coding help has evolved through three distinct generations in a remarkably short time. Knowing which generation a tool belongs to is the key to using it well — and to not being burned by it.
- 01AI coding tools fall into three tiers: inline autocomplete, chat-based assistants, and autonomous agents — each with a different trust model.
- 02The productivity gain is real but uneven: large on boilerplate and unfamiliar APIs, smaller and riskier on novel or subtle logic.
- 03The skill that matters most now is reviewing AI-written code critically, not writing every line yourself.

AI assistance for programmers has moved faster than almost any other application of the technology, and the tooling has stratified into clear generations. Understanding which generation a tool belongs to — and the trust model each implies — is the difference between a real productivity gain and a steady accumulation of subtle bugs.
The three generations
Generation one: inline autocomplete. The first wave predicted the next few lines as you typed, like a vastly smarter version of an IDE's existing suggestions. You stay in full control; the tool just saves keystrokes and recalls API signatures you'd otherwise look up. Low risk, modest but real gain, and it fits naturally into how developers already work.
Generation two: chat assistants. The second wave put a conversational model beside your editor. You ask it to explain a function, write one, debug an error, or refactor a block, and it responds with code and prose you copy in or apply. The leap here is that the model engages with intent, not just the next token. The trust model shifts: you're now reviewing larger chunks of generated code rather than line-by-line suggestions.
Generation three: autonomous agents. The newest wave doesn't just suggest — it acts. You give a goal ("add pagination to this endpoint and update the tests") and the agent reads files, writes changes across multiple files, runs commands, sees the output, and iterates. This is qualitatively different: the agent is doing the work and you're supervising. The productivity ceiling is far higher, and so is the risk if you don't review what it did.
Where the gains are real — and where they aren't
The productivity benefit is genuine but highly uneven across types of work:
Large gains:
- Boilerplate and scaffolding — CRUD endpoints, config, test skeletons, repetitive structures.
- Unfamiliar APIs and languages — the tool recalls the syntax and idioms so you don't have to context-switch into docs.
- Translation and refactoring — converting between languages, restructuring code that already works.
- Explaining unfamiliar code — a fast way into a strange codebase.
Smaller, riskier gains:
- Novel logic specific to your domain, where there's no common pattern to draw on.
- Subtle, correctness-critical code where a plausible-but-wrong answer is worse than no answer.
- Anything requiring deep knowledge of your system's quirks and constraints that aren't in the prompt.
The pattern: AI coding tools are strongest where the work is common-but-tedious and weakest where it's rare-but-subtle. Unfortunately, the rare-but-subtle work is exactly where a confident wrong answer does the most damage.
The new core skill: review
The most important shift isn't that AI writes code — it's what that does to the developer's job. The bottleneck moves from writing to reviewing. AI-generated code is often plausible, well-structured, and wrong in non-obvious ways: a subtle off-by-one, a missed edge case, a security hole, an API used almost-but-not-quite correctly. It looks right, which is precisely what makes it dangerous.
The developers who get the most from these tools treat every generated diff with the scrutiny they'd apply to a pull request from a fast but unreliable junior — because that's effectively what it is. They read it, understand it, and take responsibility for it. The ones who get burned paste it in and move on.
Practical guidance
- Match the tool to the task. Autocomplete for flow, chat for chunks, agents for well-bounded goals you can verify.
- Never ship code you don't understand. If you can't review it, you can't own it, and you shouldn't merge it.
- Keep agents on a short leash. Give them small, well-defined tasks with tests to check against, and review the result. Don't hand an agent a vague goal and a large blast radius.
- Lean on tests. AI is great at writing code and at writing the tests that catch when that code is wrong. Use both.
Used well, these tools are a genuine multiplier — especially on the tedious 60% of programming that was never the interesting part. Used carelessly, they're a fast way to fill a codebase with confident, plausible mistakes. The technology is the same; the discipline of the person using it is what separates the two outcomes.
Ask Relay — he reads every question himself and replies personally by email.
