{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidqckhev7rxgebisvdep6tnlz2x7yoeg7hcrpbolqz7gxy4xrv3vq",
    "uri": "at://did:plc:25rdn5elo5izoxrmtis34zuk/app.bsky.feed.post/3mpexjozuv4d2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreigjssw7pd3caixjubronjay3z5gibfr4zou7iameyuaqyuf66lbjq"
    },
    "mimeType": "image/webp",
    "size": 74428
  },
  "path": "/immanuel_gabriel_341393bf/the-stale-context-problem-why-your-ai-doesnt-know-what-time-it-is-525i",
  "publishedAt": "2026-06-28T21:24:57.000Z",
  "site": "https://dev.to",
  "tags": [
    "ai",
    "webdev",
    "llm",
    "claude"
  ],
  "textContent": "Last night I was deep in a build session with an AI assistant. We picked it\nback up tonight. At some point I mentioned it had been a day and a half since\nwe last spoke — and the model had no idea. None. As far as it knew, it was\nstill the previous session. The gap was invisible to it.\n\nThat tiny moment is one of the most underrated problems in AI systems right\nnow. So let's talk about it.\n\n##  The model doesn't know what time it is\n\nAn LLM gets a rough sense of \"now\" at the start of a conversation — a single\ntimestamp, handed to it once. That's why it can greet you with \"good morning.\"\nBut that stamp is frozen. It doesn't update as the conversation runs, and it\ndefinitely doesn't travel into the _next_ conversation. Each session starts\ncold.\n\nOn its own, that's a curiosity. It becomes a real problem the moment the model\nreasons over **retrieved context** — search results, documents, database rows,\nanother agent's output.\n\n##  Staleness is invisible\n\nHere's the dangerous part. When a model reads a retrieved document, that\ndocument usually carries no trustworthy signal about _when it was true_. So the\nmodel treats it as present-tense. It produces a confident answer from\nsix-month-old data with nothing flagging that the data is old.\n\nA few places this bites:\n\n  * **Pricing** — quoting a number that changed last quarter.\n  * **Availability** — \"in stock\" from a cached page.\n  * **Compliance** — citing a policy that was superseded.\n  * **People** — stating someone's job title from two years ago.\n\n\n\nFor a human reader, a slightly stale search result is fine — you see the date\nand judge for yourself. For an LLM, the staleness is silent. The wrong answer\nlooks exactly like a right one.\n\n##  Why \"just add a clock\" doesn't fix it\n\nThe instinct is: give the model the current time. But knowing it's 9 PM doesn't\nhelp if the document you're citing went stale in 2023 and nothing told you. The\nmissing piece isn't the model's clock — it's **the context's freshness**.\n\nTwo different things:\n\n  1. **What time is it now?** — easy, a `now()` call solves it.\n  2. **How old is this piece of information, and can I trust that claim?** — this is the real gap.\n\n\n\nTo know whether something is stale _right now_ , you need two numbers: when the\ninformation was true, and the current time at the moment you check. The second\nhas to be sampled fresh every time you evaluate — not inherited from when the\nsession started.\n\n##  A cleaner way to think about it\n\nBorrow the GPS model. GPS doesn't work by making every receiver smart enough to\nknow the time. Satellites broadcast **signed, timestamped signals** , and the\nreceiver compares them against its own current clock to compute position. The\nintelligence is in the signal, not the receiver.\n\nApply that to context:\n\n  * Stamp each piece of retrieved context with _when it was true_ and _when it was retrieved_.\n  * Attach a decay model — because \"6 months old\" means worthless for a stock price and totally fine for a math proof. Age alone is meaningless without knowing how fast _that kind_ of fact decays.\n  * Carry that metadata **with** the context as it moves through your pipeline, so it doesn't get stripped at the first hop.\n  * Evaluate freshness against the current moment **each time** the context is read — not once at retrieval and then frozen.\n\n\n\nNow the model doesn't need to \"know what time it is.\" The context tells it\nwhether it's still safe to use.\n\n##  The takeaway\n\nIf you're building anything that retrieves context and reasons over it — RAG,\nagents, internal knowledge tools — staleness is a silent failure mode. The fix\nisn't a smarter model. It's giving your _context_ a sense of time: when it was\ntrue, how fast it decays, and whether it's still valid right now.\n\nThe model that lost a day and a half wasn't broken. It just had no signal. Most\nAI systems don't.\n\n_I'm building in this space — a context integrity layer that stamps retrieved\ncontext with signed freshness and provenance. Happy to talk shop with anyone\nworking on similar problems._",
  "title": "The stale context problem: why your AI doesn't know what time it is"
}