A
Agent
A system that picks its own next step and keeps calling tools in a loop until the goal is met, rather than following a chain a developer fixed in advance.
There is no industry-agreed test for “agent,” which is how a five-line script with one API call and a genuinely autonomous multi-day coding run end up sold with the same word. The dividing line most engineers actually use is who picks the next step: a fixed chain is a workflow, deciding for itself is an agent. Plenty of shipped products stretch the word well past that.
Anthropic: building effective agentsC
Chain of thought
Having a model write out its intermediate steps before the answer, which makes it markedly better at multi-step problems. Reasoning models are trained to do this by default.
A model has no scratchpad other than its own output: each token gets a fixed amount of computation, and the only way to get more thinking is to write more tokens. Written-out steps are those tokens, and they stay in the context for what follows. Reasoning models are trained to do this before answering, which is what the reasoning effort setting on those models controls. A caution: the visible steps are not always a faithful account of what produced the answer.
E
Embedding
A list of numbers that represents the meaning of a piece of text, so that texts meaning similar things end up close together and can be found by distance.
A model turns the text into a long list of numbers, 1,536 for OpenAI’s text-embedding-3-small and 3,072 for the large one, the same length for a word or a page, placed so that similar meanings land close together. Closeness measures meaning, not shared words: “invoice overdue” sits near “payment reminder” and far from “invoice template”. No single number means anything on its own, and embeddings from different models cannot be compared. It is what makes search by meaning, and with it RAG, possible.
OpenAI: vector embeddingsEvals
A fixed set of test cases, scored the same way every time, that shows whether a change to a prompt, model or harness made your system better or worse.
Output varies from run to run, so three good-looking tries is an anecdote. Evals are unit tests for behaviour: cases collected from real failures, graded by code, by humans, or by another model. A public benchmark tells you about the model in general, never about your use of it. Teams that ship AI features reliably tend to have these before they have fancy prompts.
Anthropic: define success criteria and build evaluationsF
Few-shot prompting
Showing a model a few worked examples inside the prompt so that it copies the pattern, with no training involved and nothing remembered afterwards.
The weights never move. The examples are tokens in the context window, and the model, whose whole job is to continue text plausibly, continues the pattern it was just shown. Gone with the window, re-sent and paid for on every call. Examples are copied faithfully, flaws included: a typo in one example becomes a typo in the output. Pick them like test data, covering the awkward cases too.
Anthropic: use examples (multishot prompting)H
Hallucination
A confident, plausible-sounding output that is simply untrue, and a consequence of producing likely text rather than a bug waiting for a patch.
A model holds no separate store of facts to check itself against. It is producing likely text, and a fabricated citation looks exactly like a real one: same shape, same confidence. That is why hallucination is a property of the mechanism rather than a bug awaiting a patch, and why grounding an answer in retrieved documents with a link back beats asking the model to be careful.
Hallucination (artificial intelligence)Harness
The software wrapped around a model (the system prompt, tool definitions, loop control and sandboxing) that turns raw weights into something able to act, as opposed to the model’s own reasoning.
A model on its own only produces text. The harness, sometimes called the scaffold, is everything wrapped around it: which tools it may call, how errors get fed back, when it summarises or clears context, what stops it looping forever. “Agent equals model plus harness” is the shorthand: same weights, very different results, because the harness decides what the model is allowed to see, do and retry.
Agent harnessM
MCP
The Model Context Protocol: an open standard for exposing tools and data to models, so one server written once works with any client that speaks it.
Before MCP, every integration was written against one vendor’s tool-use format. MCP turns n × m into n + m: write one server for your issue tracker and any MCP-speaking client can use it. Note the flip side. An MCP server you connect is somebody else’s code, which you are trusting with your data.
modelcontextprotocol.ioP
Prompt caching
Letting the provider keep its work on the unchanged start of a prompt, such as instructions and documents, so repeated requests only process what is new, cheaper and faster.
A model re-reads everything from the very top on every turn, so a long, unchanging start is paid for again and again. Caching is like a bookmark: the provider keeps its work on the part that has not changed and only reads on from where the new text begins. It only works while the start is identical, so what never changes (instructions, documents) goes first and what varies goes last. Change one word at the top and the bookmark is lost. The bookmark is also temporary: minutes, not days.
Anthropic: prompt cachingPrompt injection
Text in the data a model reads that gets obeyed as if it were an instruction, because the model cannot reliably tell the two apart.
SQL injection was fixed by keeping code and data apart (parameterised queries). A model has no such separation: your instruction and the email body are the same kind of tokens, and anything it reads can steer it. Training helps and never closes it. So the defence is the design: limit what tools can do, ask a human before anything irreversible, and be wary of any agent that combines private data, untrusted content and a way to send things out.
Simon Willison: the lethal trifecta for AI agentsR
RAG
Retrieval-augmented generation: searching your own documents at question time and pasting the passages that look relevant into the prompt.
Retrieve first, then generate. The model never learns your documents; it is handed the three passages that looked relevant and told to answer from them. Hence a RAG system can cite its sources, and yesterday’s document is available immediately. Its weakest link is retrieval: if the search misses the right passage, no amount of model quality rescues the answer.
Retrieval-augmented generationS
Subagent
An agent started by another agent to do one job in its own fresh context window, handing back only a short result instead of everything it read.
The point of a subagent is not a smarter helper but a separate window: it can read fifty files, and only its conclusion lands in the main context, which keeps the main agent in the smart zone. It knows only what the brief tells it, so a vague brief gets a vague answer. Token use runs far higher than a single agent, so use them where the clean context is worth the bill.
Anthropic: how we built our multi-agent research systemSystem prompt
The standing instructions an operator places ahead of every conversation (tone, rules, role) which the user never types and usually never sees.
The system prompt is ordinary text that sits first in the context window, ahead of your message, on every single turn. The model has no separate channel for “rules”: it just reads them first. Two consequences: it costs tokens every request, and it is a request rather than a guarantee, so a determined user can often talk a model into repeating it or ignoring it. Never put a secret in one. Products give it other names, with ChatGPT calling it “Custom Instructions” and Copilot “agent instructions”, but it is the same idea: standing text read before your message.
Anthropic: giving Claude a role with a system promptT
Tool use
Giving a model tools, meaning functions such as a search or a calculator that it can choose to call by itself, so it can fetch data or take actions instead of only writing text.
A tool is just a function the model is told about: a name, a description of what it does. When the model decides it needs one, it asks for it, the app runs it and hands the result back, and the model writes its answer from that. The model never does the work itself; it only asks. That gap between “asks” and “does” is where permissions, confirmations and logging live, so it is also where safety is won or lost.
Anthropic: tool use overviewV
Vibe coding
Building software by prompting an AI and accepting what it writes without reading the code. A phrase coined by Andrej Karpathy in 2025.
Karpathy meant it as a description of weekend projects: you stop reading the diffs and keep going on feel. The word then spread to cover any AI-assisted coding, which is where the argument starts. The sharpest objection is that once you read and understand the code, it is simply software engineering with a good tool. Where you place yourself says more about what you ship than about the tools you use.
Vibe coding