← Blog

Engineering · · 4 min read

Your agent joined two correct facts from different moments

Avoid misleading cross-system answers by recording source times, effective periods, and the decision deadline.

Deixic

The account brief says the customer has renewed and also has a renewal negotiation scheduled. Both statements have valid citations: one from the CRM after the agreement was signed, the other from a calendar snapshot collected before the signature.

Neither source is false, yet the combined answer misleads. Multi-system work often fails at the join between observation times. A LangChain issue about time-weighted retrieval shows a narrower problem: timestamp metadata lost in a storage integration. Cross-system answers also need a decision: which moment does the answer describe?

Name the relevant clocks#

Keep four times apart: when an event happened, the period a rule applies, when a source was modified, and when your connector observed it. A document edited yesterday can describe a policy effective next month, and a transaction recorded today can belong to last week's period.

Store the distinctions the job needs instead of treating updated_at as the freshness field. If the source gives no effective period, leave it unknown or ask an authorized owner. Never infer an effective date from a modification timestamp.

Microsoft Graph's delta query documentation describes change tracking for synchronized data. A completed sync position describes ingestion progress and gives multiple providers no single transaction or observation time.

Choose a question-specific consistency rule#

An account briefing tolerates calendar lag if the answer explains it. An access change based on employment status needs a direct current check. A historical financial comparison needs records for the requested period, even when newer ones exist.

Write the rule with the business owner, since "use current data" is too vague: which source controls the decision, how fresh the essential fields must be, and what to do when sources disagree.

Question Time that matters Safe response to a gap
What happened last quarter? Event and reporting period Retrieve historical records explicitly
Who owns this account now? Current authoritative ownership Recheck the source if stale
Which policy applies next week? Effective interval Select the approved future version
Can this action proceed? State at decision time Revalidate essential prerequisites
Why did yesterday's answer differ? Observation time and source version Compare retained evidence

Resolve the renewal brief#

In the example, keep the signed agreement and current CRM status as evidence that renewal completed. Present the calendar entry as a scheduled event whose purpose is possibly outdated. The agent can suggest reviewing or canceling it, and does not cancel because two sources disagree.

Record the source times next to the conflict. If the next action depends on the meeting's current state, fetch that event directly by its identifier instead of running a broad search.

If the direct read shows the meeting was canceled, the conflict was ingestion lag. If it is still scheduled, it is a real follow-up or an unprocessed administrative task. The agent keeps that uncertainty and does not invent what the account team intended.

Avoid the freshness treadmill#

Rechecking every source after every other never ends, because the CRM changes while the agent reads the calendar. Set a decision cutoff and fixed revalidation policy:

  • Recheck the fields that affect the requested outcome.
  • Attach the observation interval to the result.
  • Flag changes needing later review.
  • For higher-consequence writes, use the target system's concurrency or precondition mechanism if it has one.

If the systems cannot provide a perfect snapshot, state the temporal scope: what was known during collection and which source controls each conclusion.

Preserve enough evidence to explain a later change#

Keep source identifiers, versions or timestamps, and the rule used to resolve conflicts. Retain the references needed to reconstruct the decision under your retention policy, without copying every document into the answer.

Test with a source updated during collection, a future-effective policy, and two systems that disagree. The expected result shows correct conflict treatment, not the latest timestamp in every field.

The guide to account identity covers joining the right customer across systems, and time is the next join condition. With your existing agent, use connection health to find ingestion gaps and action evidence to inspect why a later answer differs.