Prompt engineering tells the model what to do. Context engineering gives it the right information. Harness engineering builds the system that helps it act, verify, and recover.

When developers first started building applications with LLMs, much of the work revolved around prompts: improve the instructions, add a few examples, adjust wording, and hope the model behaves better.

That approach works surprisingly well for simple tasks.

But consider a coding agent asked to:

Add rate limiting to an existing Node.js API without breaking authentication.