I often hear people use the words agent and model interchangeably, referring to Claude as either one. So I thought it would be useful to write a quick reference on the terminology we use here, to help us have more precise conversations.
Let’s start with a graphic that shows where we are headed.
The Agent System
Harness Inference service Model
An agent system is made up of several layers. At its core is a model. Things like Sonnet, Opus, or Gemini. These are trained on vast amounts of text and data, and in the end, they are essentially big collections of floating point numbers wired together in a particular way.
Frontier models are far too computationally expensive for most of us to run locally at full scale. They need way more RAM than most of us have on our local machines. So we need somewhere else to run them. That somewhere is an inference service. Services like AWS Bedrock or Anthropic’s API. The inference service takes your API calls, feeds them into the model, and also tracks pricing as you go.
The service runs the model in an inference engine, but it is still pretty basic. Text in, text out. Think of how ChatGPT worked when it first launched. That interaction layer, the thing that gives you a nice way to talk to the API, is called a harness. In its simplest form, it is just a lightweight wrapper. Other harnesses you might know are Claude Desktop or Claude CLI.
And this is where things get interesting. Features like MCP and Skills? They are primarily part of the harness layer. The model doesn’t inherently know about an MCP server or a Skill; the harness decides what context and tools to expose to it.
So if you put all that together, an agent system is a harness, a set of tools and logic for processing inputs, that calls an inference service, which runs a model. That is it. That is the whole stack.
Real world examples
... continue reading