Personally the term agent is too overloaded. An agent is the loop. That is it, this loop handles context management and continuity of the calls to the LLM. The LLM is a STATELESS REST API call. The harness is the tooling and ways to interact in with the local system for the model. When you start looking at the boundaries this presents, you get a more accurate reprensentation of what is happening. It also decouples the agent loop from the specific model. Model's become more interchangeable reasoning service calls.