Harness engineering is a confusing term
The AI hype has introduced a lot of terms pretty quickly, most of them are self-explanatory, but some are not, and Harness Engineering is one of them.
So I'm creating this post to understand better this term and some others that came before it.
Prompt Engineering - ChatGPT had just came out and studying how to create better prompts was the way to get the most out of the LLM.
Context Engineering / Agent Engineering - A step further from prompt engineering, as the context window grew larger, we could start doing something more interesting with it, since it would be left empty for simpler tasks. That's when terms like Tool Calling, MCP and RAG appeared, which would say to the LLM "Hey, I have this nice tool you can ask for, if you find it useful". If the LLM asks for the tool, the Agent would run it and return back to the LLM with the result, so that it can continue its task.
Harness Engineering - Even with larger and larger context windows, the LLM still loses a lot of information when it recycles the context, specially for long tasks. Harnessing the LLM comes with the idea of having some level of orchestration of the LLM while prompting it for each step, one at a time, until everything is done.
A important remark here is that Prompt / Context engineering didn't get obsolete. In fact, Harness engineering uses both to give the instructions to the LLM.
The harness actually adds some (or lot, depending on which harness) overhead in each prompt. This overhead comes as extense guidelines and tools' information.
It's common to hear that the harness is everything "around" the Model, or the "enviroment" of the Model. But I find it too abstract, so let's be more specific. We can think of the Harness as the tools that will interact with the Model, built by the User in his own project (Skills, Agents.md, Rules, Hooks) or built-in the coding agent (orchestration, code search tools). What fits in the Harness category? Claude Code, Hermes, Cursor, Codex, OpenClaw are all harnesses.
A example to help identify each type of LLM usage:
1. Prompt: "How many sandwiches we can fit between the Earth and the Moon?" - Prompt engineering is enough as the LLM can reason to create the answer.
2. Prompt: "What is the latest news from NASA?" - Context Engineering, as it needs to call a tool (Web Search) to find the answer.
3. Prompt: "Clone the NASA website" - Harness Engineering, as a simple context engineering would start losing too much information on the task as it needs to recycle the context window. The key factor here is a external mechanism that helps to manage the context.
Loop Engineering - The next evolution? i'm not sure, we will have to see in the future.
Graph Engineering - Already another term? AI is evolving really fast, isn't it?