AI coding tools have evolved from simply suggesting code to handling entire development tasks.
With traditional AI coding assistants, you describe what you need, and the AI generates a code snippet or function. You still have to figure out where it belongs, integrate it into the codebase, run tests, and fix any issues.
Agentic coding takes this a step further.
Instead of asking AI to generate individual pieces of code, you give it a goal, like adding CSV export to an existing dashboard.
The AI can then explore the repository, understand the existing code, modify multiple files, run tests, identify issues, and attempt to fix them, all with much less manual guidance.
That's the idea behind agentic coding: AI doesn't just help you write code. It can work through an entire development task.
AI coding tools have come a long way in just a few years.
It started with AI-powered autocomplete. As you wrote code, the assistant suggested the next line or function. You were still doing the actual development, but the tool helped you write code faster.
Then came chat-based coding assistants. Instead of just predicting code, they could answer questions, explain errors, generate functions, and suggest solutions. But you still had to integrate the generated code into your project, run tests, and fix any issues.
Now we have coding agents, which take things a step further.
Instead of asking AI to generate code, you can give it a complete development task. The agent can explore your codebase, make changes across multiple files, run commands, test its changes, and fix problems along the way.
The key difference isn't how much code the AI can generate. It's that coding agents can take actions, observe the results, and decide what to do next.
This changes the developer's role. Instead of writing every line or manually coordinating every step, you spend more time defining requirements, making technical decisions, reviewing changes, and ensuring the final result is correct.
So, how does a coding agent actually work?
It starts by understanding your request, exploring the codebase, and deciding how to approach the task. It then uses its tools to make changes and runs tests or other checks to see if everything works.
If something fails, it investigates the issue, makes adjustments, and tries again.
This repeated process of planning, acting, observing, and improving is called the agent loop.
The key idea is that the agent doesn't need to get everything right on the first attempt. It learns from the results of its actions and uses that feedback to decide what to do next.
Behind the scenes, a large language model decides what actions to take, while an agent harness connects it to tools, executes those actions within its permissions, and returns the results.
The loop continues until the task is complete, the agent reaches a limitation, or it needs your input.
At that point, it should report what it accomplished, what it verified, and anything that remains unresolved.
Coding agents come in different forms.
Some work directly inside your code editor, where you can review changes as they're made. Others run from the terminal, while some operate in isolated cloud environments and return a branch or pull request for review.
Popular examples include Claude Code, OpenAI Codex, Cursor, and GitHub Copilot.
These tools also offer different levels of autonomy, depending on how much control you want to give the agent.
| Autonomy Level | How It Works | Best For |
|---|---|---|
| Supervised | You approve commands and sensitive actions | Unfamiliar codebases or risky changes |
| Sandboxed | Agent makes changes and runs tests in an isolated environment | Routine development tasks |
| Delegated | Agent works independently and returns changes for review | Well-defined tasks with clear requirements |
More autonomy doesn't always mean better results.
The right level depends on the complexity and risk of the task, what the agent can access, and how easily you can verify its work.
Coding agents work best on tasks that involve multiple steps and have clear, verifiable outcomes.
Some common use cases include:
They're also great for exploring unfamiliar codebases. For example, you can ask an agent to trace what happens when a user submits a form, and it can follow the relevant code paths to explain how everything connects.
Coding agents can handle larger tasks too, but those require clearer requirements, tighter boundaries, and more careful review.
The important thing is knowing what to delegate and how much oversight it needs. Fixing a small bug and redesigning an authentication system are very different levels of risk.
If coding agents can write code, what's left for you to do?
Your role shifts from writing every line of code to making the engineering decisions that matter.
You define the requirements, make architectural decisions, evaluate trade-offs, review the implementation, and decide when it's ready to ship.
The agent can handle much of the execution, like exploring the codebase, editing files, and running tests. But you're still responsible for the outcome.
Think of a coding agent as a capable teammate that works quickly but doesn't fully understand your system or business.
Just as you wouldn't merge a teammate's pull request without reviewing it, you shouldn't blindly trust an agent's changes simply because the tests pass.
To recap, agentic coding is an approach to software development where you give an AI agent a goal, and it uses tools to explore the codebase, make changes, run tests, and improve its work based on feedback.
AI coding tools have evolved from autocomplete to chat assistants and now coding agents. The biggest shift is from asking AI to generate code to having it work through entire development tasks.
Behind the scenes, a language model decides what to do next, while an agent harness connects it to tools and manages execution, context, and permissions.
The agent follows a continuous loop of understanding the task, gathering context, planning, taking action, and verifying results until it finishes or reaches a stopping condition.
Coding agents can work in editors, terminals, or cloud environments, with different levels of autonomy. They're especially useful for well-defined tasks with clear, verifiable outcomes.
But engineering judgment remains essential. You're still responsible for defining requirements, making architectural decisions, reviewing changes, and deciding what gets shipped.
In the next lessons, we'll build on these fundamentals and learn how to set up coding agents, provide the right context, structure tasks, guide their execution, and verify their work so you can move faster without compromising code quality.