What agents and harnesses actually are
An AI agent is a language model running in a loop with access to tools. A harness is the program that runs that loop. Claude Code, Cursor, and Cline are harnesses. That distinction explains most of what confuses people when they start.
The model on its own does nothing
A language model takes text in and produces text out. That is the whole of it. It cannot read your files, run a command, or search the web. It has no memory between requests, and it does not know what today's date is.
When you use ChatGPT or Claude in a browser, you are the tool layer. You paste in an error, read the answer, copy the suggested code into your editor, run it, and paste the new error back. The model produces text, and you do everything else.
An agent closes that loop
An agent is what you get when a program does your part automatically. The loop is:
- Send the model the task and a list of tools it can use
- The model responds asking to use a tool, for example "read the file
src/auth.js" - The program runs that tool and sends the result back
- Repeat until the model says it is done
The model still only produces text. The difference is that some of its text is now a structured request that a program acts on. That is the entire trick. Everything else is detail.
This is why agents can do things that feel far beyond what a chat model does. The model has not become smarter. It has been given hands.
The harness is the program running the loop
The harness handles everything that is not the model:
- Deciding which tools exist and what they do
- Actually executing tool calls, and asking your permission when needed
- Managing what goes into the context window and what gets dropped
- Keeping track of the conversation across many turns
Different harnesses make different choices here, which is why the same underlying model feels quite different in Claude Code than it does in Cursor.
Common harnesses you will run into:
- Claude Code, a terminal based agent from Anthropic
- Cursor, an editor built around agent workflows
- Cline and Continue, extensions that add agents to VS Code
- Codex, OpenAI's coding agent
- Aider, a terminal agent that works directly against git
Where skills and MCP fit
Two terms you will meet immediately, and they solve different problems.
Skills are instructions. A skill is a markdown file that tells the agent how to do a particular task well, loaded only when relevant. It adds knowledge, not capability.
MCP is the Model Context Protocol, an open standard for connecting agents to external systems. An MCP server exposes tools, and any agent that speaks MCP can use them. It adds capability, not knowledge.
Put simply: a skill teaches the agent how to write a good changelog, and an MCP server gives the agent access to your GitHub issues. You often want both.
The part that surprises people
Agents are not reliable in the way ordinary software is reliable. The same request can produce different results twice. The model can misread your intent, take a confident wrong turn, or claim something worked when it did not.
This is not a bug that gets patched. It is what these systems are. The productive response is to treat the agent as a fast, capable assistant whose work you check, rather than as a machine that produces correct output.
That framing determines everything practical: why permissions matter, why you keep changes small and reviewable, and why you never let an agent run something destructive without looking.