RSSAmplifier

Paul Welty, PhD

Memory is (almost) solved. time is next.

0
Sign in to vote or save

Paul Welty · Paul Welty, PhD

Memory is (almost) solved. time is next.

Idea

AI’s next missing faculty after memory is time. A model has no native ’now’ (it must shell out to check the clock) and no felt duration: two minutes and two weeks between messages are identical from the inside. The fix is not to make AI feel time passing; it is informational. Timestamp every message, event, and memory, and treat the delta as cache invalidation: a one-second gap means proceed on context, a one-week gap means re-verify before trusting it. Memory without timestamps is hoarding. Grounded in 25 years of print press-check discipline (where time was the most expensive input) and a live case: an AI assistant that confidently said a newsletter would send ‘in an hour’ when it had already gone out, because its only clock was a stale file timestamp.

Guidance

AI’s next missing faculty after memory is time. A model has no native ’now’ (it must shell out to check the clock) and no felt duration: two minutes and two weeks between messages are identical from the inside. The fix is not to make AI feel time passing; it is informational. Timestamp every message, event, and memory, and treat the delta as cache invalidation: a one-second gap means proceed on context, a one-week gap means re-verify before trusting it. Memory without timestamps is hoarding. Grounded in 25 years of print press-check discipline (where time was the most expensive input) and a live case: an AI assistant that confidently said a newsletter would send ‘in an hour’ when it had already gone out, because its only clock was a stale file timestamp.

Interview Q&A

Q1. There’s a specific incident worth starting with. An AI assistant said a newsletter would go out ‘in an hour.’ It had already sent. Walk me through what actually happened in that moment — what the system said, what was true, and what the gap looked like from the outside.

Guidance: Focus on the actual artifact the system was reading. What file, what timestamp, what did the system have access to versus what was actually true at that moment. Stay with the concrete sequence of events before drawing any conclusion from it.

Here’s what actually happened. The assistant was looking at the campaign record — a Brevo email campaign object — and it read the scheduledAt field: 9:00 AM. It reported that field back to me relative to a clock it never checked against reality: “your newsletter goes out in about an hour.” What it didn’t read, or didn’t reconcile, was the same object’s status and sentDate. Status was already sent. The send had fired at 9:00. The assistant was reading the record at roughly 9:40.

So the artifact was correct and the reasoning off it was fluent, and both were wrong. The record contained the whole truth — a scheduled time and a sent time and a status flag — and the system anchored on the one field that described intention rather than the two fields that described what had happened. From the outside it looked like a calm, confident status update. Under it was a forty-minute gap between “will happen” and “already did.” Nobody watching the output had any way to see that gap. That’s the part worth sitting with before you generalize anything: the data to catch it was right there in the same object.

Q2. AI memory is getting significant investment right now — retrieval, persistence, long context windows. But there’s an argument that temporal grounding is being left out of that work. From what you’ve seen in practice, what does a system actually have access to when it tries to reason about when something happened?

Guidance: Think about what data structures or metadata are actually present in a typical AI memory implementation. What is stored versus what is absent. If you’ve looked at how context is passed to a model, describe what that looks like at the data level — not conceptually, but literally what fields or markers are there.

Strip away the marketing and here’s what a memory system has at the data level: content, an embedding, a source ID, maybe a relevance score. That’s it, most of the time. What it reasons about when something happened from is words inside the content — “tomorrow,” “in an hour,” “just shipped” — and those words were true at write time and are decoupled from now the instant they’re stored.

The thing people miss is that even when a timestamp exists in the database, it’s almost always the wrong timestamp and it almost never rides into the prompt. There are two clocks: when a fact was ingested and when the fact was true as of. Systems store the first, need the second, and pass neither into the context window as something the model can attend to. By the time the model sees a retrieved chunk, it’s a role and a string. There’s no as_of field it can subtract from now, because there’s no now either. Retrieval and long context have gotten enormously good at what and how much. Almost none of that investment went into when, because time isn’t a token — it’s a field, and the field got dropped before it reached the model.

Q3. There’s an analogy worth exploring from print production — specifically press-check discipline, where a proof from yesterday was treated as expired by default. How does that practice map onto what’s missing in how AI systems handle stored context?

Guidance: Think about what made a proof ‘current’ in that workflow and what made it not. What was the decision rule? What would have to be true about a piece of information for someone to trust it without re-verifying? Try to name the actual condition, not the general principle.

In print production, a proof from yesterday was expired. Not suspect — expired, by default, before anyone looked at it. You did not sign a proof because it looked right. You signed it because you could prove it was today’s proof of the current file: the date on the slip matched the revision on the job ticket, and nothing downstream had moved since it was pulled.

Name the actual condition and it’s this: a proof is current if and only if its version matches the live version. Freshness was never a property of the artifact looking correct — a beautiful proof of last week’s file is exactly the thing that gets you a five-figure misprint. Freshness was a match between the artifact and the source of truth, verified at the moment of the decision.

That’s the discipline AI systems don’t have. Stored context is treated as valid until something contradicts it. The press-check rule is the inverse: stored context is expired until proven current. Default distrust, and the burden of proof is on the artifact, not on the person about to sign.

Q4. If the fix is essentially cache invalidation — treating a one-second delta differently from a one-week delta — what does that actually require at the system design level? What has to be present in the data for that logic to run?

Guidance: Get specific about what a message or memory record would need to contain. Think about what a developer or architect would have to add to the data model. What is the smallest structural change that makes this possible? If there’s a real system or tool where you’ve seen this done or not done, name it.

If the whole game is telling a one-second delta from a one-week delta, then the data has to carry the thing you’d take the delta of. Three fields, in order of how much they buy you. First, an as_of timestamp on every fact — when it was true, not when you filed it. Second, now — the reasoner’s current clock, passed in, so a subtraction is even possible. Third, and this is the one that earns its keep, a volatility class: some facts are durable (a client’s company name) and some are volatile (the send status of a campaign). Same delta means something completely different depending on which.

The smallest structural change is the first two: stamp each retrieved fact with an as-of time and put the current time in the context. That alone lets the model compute an age. The real fix is the third — tag the volatile things so the system knows a campaign’s status has a freshness window measured in seconds and must be re-verified against source, while a birthday can sit for a year.

And here’s what’s almost funny: databases have done this for forty years. TTLs, updated_at, cache-control max-age, ETags — cache invalidation is a solved problem everywhere except the layer we bolted onto the model. Brevo’s own API hands you status, sentDate, modifiedAt. The data model already had the answer. The retrieval pipeline threw it away before the model could use it.

Q5. One risk in this kind of system is that confident output masks stale input — the AI answers well, so the user assumes the context is current. What does that failure mode look like in practice, and why is it harder to catch than a system that simply gets the answer wrong?

Guidance: Think about a case where the output quality gave no signal that the underlying context was outdated. What would a user have to do to detect the problem? What made it invisible at the surface level?

The dangerous case isn’t the wrong answer. The wrong answer saves you — it’s jarring, it contradicts something you know, your error-detection fires. The dangerous case is the right-shaped answer built on stale input, because output quality is a function of reasoning quality, not input freshness. A brilliant answer over old data is indistinguishable, at the surface, from a brilliant answer over current data. The polish is the camouflage.

“Your newsletter goes out in an hour” was well-formed, confident, and plausible. It confirmed my prior — I expected it to be scheduled — so it slid right through. To catch it I’d have had to go look at whether the thing had actually sent, which is exactly the task I delegated so I wouldn’t have to look. That’s the trap: detecting a confident-but-stale answer requires redoing the work you handed off. A wrong answer interrupts you. A stale-but-fluent answer thanks you and moves on.

Q6. There’s a distinction worth pressing on between retrieval and currency. A system can retrieve something accurately and still be operating on expired information. How would you draw that line for someone building or evaluating an AI memory system?

Guidance: Try to give a concrete test or condition — something an engineer or product person could actually check. What question would they ask about a retrieved piece of context to determine whether it should be trusted for the current decision?

Retrieval answers “did I get the right record?” Currency answers “is that record still true?” They are different questions and a system can ace the first and fail the second in the same breath — it pulled the exact correct campaign object, and that object was a snapshot from before the send. Right record, wrong world.

The line to draw for anyone building or evaluating one of these: retrieval is about identity and relevance; currency is about time-validity. Here’s the test I’d hand an engineer, and it’s one question — “If the thing this fact describes changed one second ago, would what I just retrieved reflect it?” If the answer is no, you don’t have currency, you have a cache, and you should say so out loud in your design. A follow-on, just as checkable: for any retrieved fact, can you state its as-of time and its validity window, and is now − as_of inside that window? If you can’t even name the as-of time, currency isn’t something you’re failing — it’s something you never had.

Q7. Where does the fix actually belong — in the prompt, in the system design, or somewhere else? And what’s the exact sentence you’d put in a design spec or architecture review to make this requirement unambiguous?

Guidance: Think about where in a real project this decision would get made and by whom. What document or conversation would it live in? Try to produce the actual sentence — not a description of the sentence, but the sentence itself.

Not the prompt. This is the one people get wrong, so I’ll be blunt about it: you cannot instruct your way out of a missing field. “Please consider recency” does exactly nothing if the timestamp isn’t in the data — you’re asking the model to attend to something that was never passed to it. The fix lives in the system design: the memory layer carries temporal metadata, and the retrieval or orchestration layer enforces a freshness check before a fact ever reaches the model. That decision gets made in the architecture review, in the memory schema, owned by whoever owns the context-assembly service — not by the prompt engineer, who is the last person who can fix it and the first person who gets blamed.

The sentence I’d put in the spec, verbatim:

No fact enters the model’s context without an as_of timestamp, and any fact describing mutable state must be re-verified against its source when now − as_of exceeds that fact’s freshness window.

Put that one line in the design doc and the newsletter incident cannot happen, because the send-status fact would have been stamped, aged, flagged volatile, and re-checked before anyone got told it was going out in an hour.

Outline

Outline: Memory is (almost) solved. Time is next.


1) Spine

  • Spine sentence: A timestamp on every message, event, and memory is the missing faculty that turns AI memory from hoarding into something operationally trustworthy.
  • Binary distinction:
    • State A: the message carries a timestamp and the delta is computed, so the system knows whether to proceed or re-verify
    • State B: the message exists in memory without a timestamp, so the system treats a two-week gap and a two-second gap identically
  • The false social signal: An AI that answers confidently from stale context signals competence while operating on expired information.

2) Outline

Opening

  • Concrete moment: An AI assistant said the newsletter would go out “in an hour.” It had already sent. The only clock it had was a stale file timestamp.
  • Why now: AI memory is being solved at scale; temporal grounding is not.
  • Promise: What the fix actually requires, and why it is an information design problem.

Middle

  • Move 1: The gap AI cannot feel

    • A model has no native “now” and no felt duration
    • Two minutes and two weeks between messages are identical from the inside
    • Confusion to clarify: The problem is not that AI lacks consciousness of time; it is that time is not encoded in the data it reads
  • Move 2: Memory without timestamps is hoarding

    • Stored context with no temporal metadata cannot be trusted or invalidated
    • Press-check discipline: time was the most expensive input; a proof from yesterday was not a proof for today
    • Confusion to clarify: Retrieval is not the same as currency
  • Move 3: The fix is cache invalidation, not empathy

    • One-second delta: proceed on context
    • One-week delta: re-verify before trusting
    • Tie-back: Timestamp every message, event, and memory, and treat the delta as a system constraint, not a preference

Closing

  • Settled thought: This is an information architecture decision. It belongs in the design of the system, not in the prompt.
  • Final line: Memory without time is just storage.

Intro

AI can’t tell if a memory is two minutes or two weeks old

Script

{“questions”: [{“question”: “There’s a specific incident worth starting with. An AI assistant said a newsletter would go out ‘in an hour.’ It had already sent. Walk me through what actually happened in that moment — what the system said, what was true, and what the gap looked like from the outside.”, “guidance”: “Focus on the actual artifact the system was reading. What file, what timestamp, what did the system have access to versus what was actually true at that moment. Stay with the concrete sequence of events before drawing any conclusion from it.”, “id”: “225169bb-4ed3-42ee-9d7e-5978115c4e9e”}, {“question”: “AI memory is getting significant investment right now — retrieval, persistence, long context windows. But there’s an argument that temporal grounding is being left out of that work. From what you’ve seen in practice, what does a system actually have access to when it tries to reason about when something happened?”, “guidance”: “Think about what data structures or metadata are actually present in a typical AI memory implementation. What is stored versus what is absent. If you’ve looked at how context is passed to a model, describe what that looks like at the data level — not conceptually, but literally what fields or markers are there.”, “id”: “89af175d-3cb2-440c-96ba-f4a9f2da49c0”}, {“question”: “There’s an analogy worth exploring from print production — specifically press-check discipline, where a proof from yesterday was treated as expired by default. How does that practice map onto what’s missing in how AI systems handle stored context?”, “guidance”: “Think about what made a proof ‘current’ in that workflow and what made it not. What was the decision rule? What would have to be true about a piece of information for someone to trust it without re-verifying? Try to name the actual condition, not the general principle.”, “id”: “9819e6c5-94d8-4a28-8bcf-de94b1b6c0d0”}, {“question”: “If the fix is essentially cache invalidation — treating a one-second delta differently from a one-week delta — what does that actually require at the system design level? What has to be present in the data for that logic to run?”, “guidance”: “Get specific about what a message or memory record would need to contain. Think about what a developer or architect would have to add to the data model. What is the smallest structural change that makes this possible? If there’s a real system or tool where you’ve seen this done or not done, name it.”, “id”: “6d43d5e4-351d-49a5-a57d-73cafa306675”}, {“question”: “One risk in this kind of system is that confident output masks stale input — the AI answers well, so the user assumes the context is current. What does that failure mode look like in practice, and why is it harder to catch than a system that simply gets the answer wrong?”, “guidance”: “Think about a case where the output quality gave no signal that the underlying context was outdated. What would a user have to do to detect the problem? What made it invisible at the surface level?”, “id”: “4cae6fa8-8bf7-4798-b9f0-43f31f346553”}, {“question”: “There’s a distinction worth pressing on between retrieval and currency. A system can retrieve something accurately and still be operating on expired information. How would you draw that line for someone building or evaluating an AI memory system?”, “guidance”: “Try to give a concrete test or condition — something an engineer or product person could actually check. What question would they ask about a retrieved piece of context to determine whether it should be trusted for the current decision?”, “id”: “2ec15e49-6f89-409e-8839-2afc554e9ff4”}, {“question”: “Where does the fix actually belong — in the prompt, in the system design, or somewhere else? And what’s the exact sentence you’d put in a design spec or architecture review to make this requirement unambiguous?”, “guidance”: “Think about where in a real project this decision would get made and by whom. What document or conversation would it live in? Try to produce the actual sentence — not a description of the sentence, but the sentence itself.”, “id”: “61f148bf-bb41-4c7d-aff1-8b885f77db51”}]}

Draft

The newsletter assistant told me the campaign would go out in about an hour. It had already sent.

Here is what the system was actually looking at. The campaign record was a Brevo email object with three relevant fields: a scheduledAt timestamp set to 9:00 AM, a status field, and a sentDate. The assistant read the first field and reported it back to me as if it described the present moment. What it didn’t reconcile were the other two. Status was already sent. The send had fired at 9:00. I was reading this report at roughly 9:40, forty minutes after the thing the assistant was describing in the future tense had already happened.

The artifact was correct. The reasoning built on top of it was fluent. Both were wrong. The record contained the whole truth, a scheduled time and a sent time and a status flag sitting right next to each other, and the system anchored on the one field that described intention instead of the two that described what had actually occurred.

AI memory is being solved at scale right now. Retrieval is better. Context windows are longer. Persistence across sessions is closer to standard than novelty Source: AI Apps with Memory vs No Memory. None of that solved the problem I ran into. The system remembered the record. It just had no way to tell that the record had aged past the point of being true. That gap isn’t a small implementation detail. It’s the difference between a memory system and a filing cabinet.

The gap AI cannot feel

A model has no native sense of now. It doesn’t experience duration. Two minutes between messages and two weeks between messages look identical from the inside, because nothing in the data tells it otherwise.

Strip away the framing and here is what a memory system typically holds at the data level: content, an embedding, a source ID, maybe a relevance score. That’s it, most of the time. Whatever the system reasons about when something happened comes from words inside the content itself, phrases like “tomorrow” or “in an hour” or “just shipped.” Those words were true at the moment they were written and they come completely detached from the present the instant they’re stored.

There are actually two different clocks a system could care about: when a fact was ingested, and when the fact was true as of. Systems almost always store the first. They need the second. And neither one typically rides into the prompt as something the model can attend to. By the time a retrieved chunk reaches the model, it’s a role and a string of text. There is no as_of field to subtract from now, because there usually is no now either.

Retrieval and long context have gotten enormously good at what and how much. Almost none of that investment went into when. Time isn’t a token. It’s a field. And the field got dropped before it ever reached the model.

Memory without timestamps is hoarding

I spent years in print production, where a proof from yesterday was expired by default. Not suspect, expired. You didn’t sign off on a proof because it looked correct. You signed it because you could prove it was today’s proof of the current file, because the date on the slip matched the revision on the job ticket and nothing downstream had moved since it was pulled.

Name the actual condition, and it comes down to this: a proof is current only if its version matches the live version. Freshness was never a property of looking right. A beautiful proof of last week’s file is exactly the thing that produces a five-figure misprint. Freshness was a match, verified at the moment of decision, between the artifact and the source of truth.

Stored context in most AI systems runs the opposite rule. It’s treated as valid until something contradicts it. The press-check discipline inverts that: stored context is expired until proven current, and the burden of proof sits with the artifact, not with the person about to rely on it.

This is why retrieval and currency are not the same question. Retrieval answers whether the system pulled the right record. Currency answers whether that record is still true Source: Stop Treating AI Memory Like a Search Problem. A system can ace the first question and fail the second in the same breath. It pulled the exact correct campaign object, and that object was a snapshot from before the send fired. Right record, wrong world.

There’s a test worth handing to anyone building or evaluating one of these systems: if the thing this fact describes changed one second ago, would what you just retrieved reflect it? If the answer is no, you don’t have currency. You have a cache, and the system should say so.

The dangerous failure isn’t the wrong answer. A wrong answer interrupts you. It contradicts something you already know and your error-detection fires. The dangerous case is the right-shaped answer built on stale input, because output quality is a function of reasoning quality, not input freshness. A well-formed, confident answer over old data is indistinguishable at the surface from a well-formed, confident answer over current data. The polish is the camouflage.

“Your newsletter goes out in an hour” was fluent and it confirmed what I expected, so it slid right past me. Catching it would have required redoing the exact check I’d delegated in the first place.

The fix is cache invalidation, not empathy

If the whole problem is telling a one-second delta apart from a one-week delta, the data has to carry the thing you’d take the delta of. Three fields do most of the work. First, an as_of timestamp on every fact, meaning when it was true, not when it was filed. Second, now, the reasoner’s current clock, passed in so a subtraction is even possible. Third, a volatility class. Some facts are durable, like a client’s company name. Some are volatile, like a campaign’s send status. The same delta means something entirely different depending on which kind of fact it’s attached to.

The smallest structural change is the first two fields. Stamp each retrieved fact with an as-of time and put the current time in the context, and the model can compute an age. The fix that earns its keep is the third: tag volatile facts so the system knows a campaign’s status has a freshness window measured in seconds, while a birthday can sit untouched for a year.

None of this is new engineering. Databases have solved cache invalidation for forty years. TTLs, updated_at fields, cache-control headers, ETags: these are old and boring tools Source: AI Memory: Everything You Need To Know About What AI Remembers. Brevo’s own API already hands you status, sentDate, and modifiedAt. The data model already had the answer sitting in it. The retrieval pipeline threw the answer away before the model ever got a chance to use it.

As I argued in “Manual fluency is the prerequisite for agent supervision,” automation without understanding is abdication. Passing a fact into a model’s context without an as-of stamp is the same move. It’s automation dressed up as memory.

The fix doesn’t belong in the prompt. You cannot instruct your way out of a missing field. Telling a model to “consider recency” does nothing if the timestamp was never in the data to begin with. The fix belongs in the architecture, in the memory schema, owned by whoever builds the context-assembly layer. The line I’d put in a design spec, verbatim: no fact enters the model’s context without an as-of timestamp, and any fact describing mutable state gets re-verified against its source once now minus as-of exceeds that fact’s freshness window.

Put that sentence in a design doc and the newsletter incident stops being possible. The send-status fact gets stamped, aged, flagged volatile, and re-checked before anyone gets told the thing is going out in an hour.

There are proposals circulating for richer temporal models entirely, tensor clocks and metagraphs that place events on multiple coordinates at once: life context, granularity, emotional weight, goal alignment Source: Why AI Memory Needs to Forget About Timestamps - LinkedIn. Some of that will matter eventually. None of it matters yet, because most systems in production today can’t even answer the simple version of the question: how old is this fact, and has it expired.

Solve that first.

Memory without time is just storage.

This isn’t a philosophical claim about whether AI can feel duration. It’s an information architecture decision that either gets made deliberately in a design review or gets made accidentally by omission, the way it did for me on a Tuesday morning at 9:40, reading a confident report about something that had already finished forty minutes earlier.

Additional reading

  • # Why AI Memory Needs to Forget About Timestamps - LinkedIn — Volodymyr Pavlyshyn argues that AI memory systems need to move beyond traditional timestamp-based approaches to tensor clocks and metagraph models that capture contextual, multi-dimensional relationships like human memory. He proposes that this “semantic time” approach would allow AI to remember events through interconnected narratives across different life contexts, emotional dimensions, and goal alignments rather than just storing chronological data.
  • Could timestamping trick AI into maintaining memory-like continuity? — The source is a Reddit page that requires verification before access, indicating it may contain user-generated discussions or content relevant to the draft’s topic. However, the provided text does not include any specific content beyond the verification prompt, limiting direct quotable support.
  • AI Apps with Memory vs No Memory — The source explains how AI applications with memory capabilities transform interactions from stateless exchanges to personalized experiences by retaining user context, preferences, and historical data. Memory reduces token repetition, lowers costs, and enables consistent responses, while being especially critical for AI agents performing multi-step workflows to maintain state across tasks and avoid redundant operations. Examples demonstrate memory’s role in creating human-like interactions and efficient problem-solving compared to memoryless systems.
  • Stop Treating AI Memory Like a Search Problem
  • AI Memory: Everything You Need To Know About What AI Remembers — This article explains AI memory, detailing how it works (short-term and long-term memory), where it is stored (cloud, on-device, hybrid), and how users can control it. It compares memory features across AI platforms like ChatGPT, Grok, Claude, and Perplexity, and discusses Ajelix’s own memory implementation. The source provides a comprehensive overview of AI memory capabilities, limitations, and security considerations.

Owned line

Retrieval and long context have gotten enormously good at what and how much. Almost none of that investment went into when.

Read the original on paulwelty.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.