5.2.2. Prompt Process Flow and Chat History
💡 First Principle: In a Chat conversation, each new message is combined with the relevant history to build the prompt — so the conversation has memory, and that memory is both a feature (coherent follow-ups) and a hazard (stale or off-topic history can drag responses off course).
Recall the process flow from Phase 4: your input becomes a constructed prompt, screened by the proxy, completed by the model, screened again, returned. In Chat specifically, the "input" includes prior turns. When you ask a follow-up ("now add error handling to that function"), Copilot uses the conversation history to know what "that function" refers to.
This has two practical consequences:
- Follow-ups work because history carries context forward — you don't have to re-state everything each turn.
- History can mislead — if a conversation has wandered, old or irrelevant context can steer new answers wrongly. Starting a fresh chat (or trimming the conversation) restores a clean context.
A scenario: after a long, meandering chat, Copilot keeps anchoring on an early, now-irrelevant approach. The fix is to start a new conversation so the history stops biasing the prompt — a direct application of "keep history relevant."
✅ Best Practice: Treat a Chat conversation as accumulating context. When it's helping, lean on follow-ups; when it's dragging, start fresh rather than fighting stale history.
⚠️ Exam Trap: Chat is not stateless between turns, and it's also not infinitely or perfectly contextual. History is used (so follow-ups work) but is bounded and can go stale (so a fresh chat is sometimes the fix). Both halves are tested.
Reflection Question: Why does a follow-up like "add tests for that" work at all, and when would starting a brand-new conversation produce better results than continuing?