In thinking about how to approach this post, I was conscious that it’s been quite some time since the last post in the series. The primary reason for this has been my attention being locked in with another project that I’ve been building - related to a custom neural network model that is now in test phase. More about that, should the testing work out!
So, how to start this post? Well, the idea that I had was easy to consider in relation to what we have been discussing about LLMs, so far. We’ve talked about context windows, and how they work, and we can look at the posts on this site as a kind of context window.
If you have been reading along, and waiting for this post; you’ve experienced the gap in the post routine. However, if you are new to the site (or started reading after this post went up), you may not have realised that there was a gap in the post timeline.
It’s this second situation that we are going to dive into with respect to understanding more about LLM models and how they respond to inputs. We have spoke about how when you ask a series of questions, the LLM harness that you are using (the wrapper that OpenAI has on ChatGPT, or perhaps the Cursor wrapper around the LLM of your choice) is simply sending the ENTIRE chat history each time. This is why your context window fills up faster and faster when you are chatting back and forth.
First off; let me show you how to prove that an LLM only has the context that you give it in the window.
First, go to a commercial chatbot of your choice and ask something simple, like “Can you briefly tell me about the water/rain cycle? Just two paragraphs at most”. Once you have the output, open another connection to another company’s chatbot (so if you used Gemini, open Grok, for example). We then need to essentially trick the second LLM into continuing the conversation; we are going to do this with double angle brackets and command type words. Structure your prompt to (in our example) Grok like this: « user prompt » paste your original question to the first LLM here « chatbot response» paste the answer that the first chatbot gave you, here « user prompt » now add a clarifying question, asking the second chatbot to expand on the points in the second paragraph
Done correctly, you will see that the second chatbot LLM will just take the context window that is essentially from a different LLM model, not care in the slightest that the answer in the context window wasn’t from itself, and then expand on the second paragraph.
So why is this? Well, this is because LLMs are predicting the next tokens, given the context window. When the LLM is a “thinking” or “reasoning” model, all that happens is that the harness has a particular prompt to have the LLM predict tokens to the input, simulating what tokens might be output, for someone thinking about the thing you wrote. Then the harness takes that additional output, and combines it with the original context window, and then re-prompts the model again.
You could take any standard off-the-shelf open source LLM model (Gemma 4, or Qwen 3.5, for example) and build two different harnesses to interact with it. One would be the “standard” one, then the other can be the “thinking” or “reasoning” model. The underlying LLM model doesn’t actually have to change, it’s the harness that drives the model that is giving the illusion of a differentiation to the way that the model operates.
When we have RAG as a tool in a harness (for Grounding, for example), that tool is just a function that collects data, and shoves that string into the context window as well.
You now should understand, through all the posts, the basics of how an LLM model is trained, what it’s actually doing under the hood, what an agentic harness is, and how it just responds to input (they don’t do things unprompted - pun unintended).
So where does this leave us? Do we just stop here with the posts?
No, not at all. I have lots of things that I want to go into more detail about, so that we can learn together about things that I’m keen to explained more and share.
This was never just going to be about LLMs, and I hope that you’ll hang around, and learn more about machine learning, how they can be useful in the modern world, and also that they aren’t really as scary to build as some people might make out.