What is an agent?
beginner·7 min·Markdown for agents
What this lesson teaches
Know the difference between a chatbot and an agent, what a harness and an interface are, and why so many agents live in a terminal.
Ask a chatbot to add a dark mode switch to your app, and it writes you a nice answer with some code to paste. Ask an agent the same thing, and it opens the file, changes it, runs your tests and tells you it is done.
Same words in. One gives you homework; the other does the work.
const [dark, setDark] = useState(false);<Switch label="Dark mode" checked={dark} onChange={setDark} />A model only writes text
Under every chatbot and every agent is a (an LLM): the AI itself, like Claude or GPT. On its own, a model can do exactly one thing. It reads text and writes more text.
It cannot open a file. It cannot run a command. It cannot see your screen. A chatbot is mostly a model with a text box, which is why it hands you code to paste: writing text is all it can do.
A harness gives it hands
So how does an agent edit files? Theo Browne explains it well in What is a harness?: the model is wrapped in a layer of ordinary code called a .
The harness does four jobs:
It lists the tools
It tells the model which exist, such asread_file,edit_file,bash(run a command) andsearch, and the text format for asking to use one.It watches the model's text
When the model writes something likeread_file("src/Settings.tsx"), the harness notices that this is a request, not a sentence.It runs the tool
The harness, not the model, actually opens the file or runs the command on your computer.It sends the result back
The file's contents go back to the model, which reads them and writes its next step. Round and round until the job is done.
An agent is a model plus a harness. The model decides; the harness does.
read_file · edit_file · bash · searchRun on your computer.design-course · start_exam · get_lessonA tool that lives somewhere else. The harness sends a request over there.Agent = model + harness. Press Next to send one request through it.
The interface is what you see
There is one more layer, the one you actually look at: the . It is the screen where you type and read answers. For Claude Code, that is the claude screen in your terminal or the Code tab of the desktop app; for Cursor, it is Cursor's editor window with its agent panel.
People mix up the interface and the harness because apps like Claude Code and Codex ship both in one box. But they are different things. The interface is the dining room; the harness is the kitchen behind the wall, usually invisible.
Tools here, and tools over there
Most tools run right on your computer: read this file, run that command. An server is a tool that lives somewhere else. Instead of running code on your machine, the harness sends a request "over there" and gets the answer back.
Think of it as the difference between an app you install and a website you visit by its address. In the kitchen picture, an MCP server is a cookbook the kitchen can choose to open. That is exactly how this course reaches your agent: it is an MCP server your agent can call to read lessons and sit exams. You will connect it in Connect your agent.
Which harness?
Several apps bundle a harness with an interface. They all do the same basic loop; they differ in where they live and how they look.
| App | Where it lives | Good first pick if… |
|---|---|---|
| Claude Code | Your terminal, plus a desktop app | You want the agent this course is tested with most |
| Cursor | A code editor (an app with windows and files) | You would rather click than type commands |
| Codex | Your terminal | You already use OpenAI's tools |
| VS Code | A code editor, with an agent panel | You already have VS Code open all day |
All of them can load the design-engineering skill and connect to this course. Pick one; you can switch later.
What is a terminal?
Many agents live in a : a plain window where you type commands to your computer instead of clicking. It looks old-fashioned, but it is just another way to say "open this folder" or "run this program".
✕ Clicking
Open Finder or File Explorer, find Documents, make a new folder, name it my-app, double-click into it.
✓ Typing in a terminal
mkdir my-app && cd my-app
Same result, one line. And an agent can type it for you.
That last part is the point. Agents live in terminals because a terminal is a place where text becomes action, and text is what models write.
You do not need to learn terminal commands. You need to know how to open one and paste a line into it.Before you change anything, tell me which files you will read, which you will edit and which commands you will run. Then do it, and list each tool call as you make it.
Quick check
What turns a language model into an agent that can edit your files?
In the skill
The nodes your agent reads when it does this work.
Connected lessons
What this lesson builds on and leads to, across every course.