前一个 Lab 里,我们给 AI 的每一个重要 claim 建立了 evidence lineage:
Claim
↓. Χ
Evidence
↓.
Source
↓
Verification. From 1point 3acres bbs
↓
Decision.
. .и这样,当 Runtime 做出 ALLOW、REVIEW 或 DENY 时,我们终于可以回答:. 1point3acres.com
这个决定是根据什么做出来的?
但这里还有一个隐藏的问题。. 1point3acres
Evidence 曾经是正确的,不代表它现在仍然有效。
. 1point3acres.com
一份政策可能昨天刚刚被替换。
客户的账户状态可能十分钟前发生变化。.
库存可能在 Agent 思考的几秒钟里被其他交易占用。
退款可能已经由另一名客服完成。
权限可能刚刚被撤销。
如果 Runtime 只验证 evidence 的内容,却不验证 evidence 的时间状态,那么一个完全有证据支持的决定,仍然可能在执行时变成错误。
⸻
一个完全正确,但已经过期的答案
. Χ
继续使用 Shipment 8842。
Agent 在上午 10:02 查询退款状态:
{
"shipment_id": "8842", ..
"refund_count": 0,
"refundable_balance": 1240,
"checked_at": "10:02:11"
}
Policy verification 也通过:
Refund eligibility
SUPPORTED
于是 Runtime 构建:
PROPOSAL
Refund $1,240
Evidence. check 1point3acres for more.
✓ Shipment verified
✓ Policy verified
✓ Refund count = 0
✓ Refundable balance = $1,240
.1point3acres
如果我们停在这里,这看起来是一个非常健康的 deployment。
但在 10:03,另一名客服处理了退款。
10:03:04
Refund issued. From 1point 3acres bbs
$1,240
Agent 的 workflow 在 10:04 才执行:
. Χ10:04:17
execute_refund($1,240)
问题出现了。
10:02 的 evidence 没有 hallucinate。
模型也没有 hallucinate。. check 1point3acres for more.
Verification 完全正确。
但执行仍然错了。
.google и
因为:
. 1point3acres.com
Evidence was valid.--
↓.1point3acres
Time passed
↓. Χ
World changed. ----
↓
Evidence became stale
这是一类非常重要的 production failure。
. .и
⸻
Correct Evidence ≠ Current Evidence. 1point 3acres
很多 AI 系统会记录:
Source: Billing API-baidu 1point3acres
Status: VERIFIED
但生产系统还应该问:
Verified when?-baidu 1point3acres
甚至进一步问:
Valid until when?
所以 evidence record 不应该只有:
{
"value": 1240,
"status": "SUPPORTED"
}. 1point 3acres
更完整的结构可能是:
{
"value": 1240,
"source": "billing_api",
"observed_at": "2026-08-25T10:02:11",
"verification": "SUPPORTED",
"freshness_requirement": "30_seconds"
}
现在 Runtime 才有能力判断:
Evidence exists
↓
Evidence supports claim. ----
↓
Evidence is fresh enough
↓
Action may continue. 1point3acres
⸻
不同 Evidence 有不同的寿命
. .и
并不是所有 evidence 都需要每几秒刷新。
例如公司注册地址:
Company headquarters
可能几个月检查一次就足够。
但是:. From 1point 3acres bbs
.
Available inventory
.
可能几秒钟就会变化。. 1point3acres.com
再比如:
Payment captured?
Refund already issued?.google и
Account locked?
User still authorized?
Inventory available?
Order cancelled?
. From 1point 3acres bbs
这些状态都可能快速变化。
所以我们不能给整个 Agent 设置一个统一的:
CACHE TTL = 1 hour.--
.google и
然后认为问题解决了。
真正需要考虑的是:
Claim
↓
Business consequence.--
↓
Rate of change
↓
Freshness requirement
例如:
Company refund policy
Freshness:-baidu 1point3acres
hours / days.
但:
Refund already issued?
Freshness:
seconds
这两者不应该共享相同的 freshness policy。.1point3acres
⸻. 1point 3 acres
. ----
Evidence Versioning
时间还不是唯一的问题。
政策本身也可能发生版本变化。
假设 Agent 使用:.--
. Waral dи,
Refund Policy
. 1point3acres.com Version 4.2
. 1point 3 acres. check 1point3acres for more.
并且 Policy 4.2 明确允许某类退款。
.--
但公司当天发布:
Refund Policy
Version 4.3
新的规则改变了 eligibility。
如果 Runtime 只记录:
source:
. 1point3acresrefund-policy.pdf. From 1point 3acres bbs
我们以后甚至无法确定 Agent 当时看到的是哪一版。
更好的 evidence record 应该保存:
{
"source": "refund_policy",
"version": "4.2",
"effective_from": "2026-07-01",
"retrieved_at": "2026-08-25T10:02:11"
}
这样 incident review 才能回答:
Agent 当时究竟依据了哪一版规则?
⸻
. .и
Retrieval Time 和 Effective Time 不是一回事
这里还有一个更容易被忽略的问题。
. ----
一份文档可能今天才被系统读取:. 1point3acres.com
retrieved_at:
August 25
但它可能已经失效:
effective_until:
August 20
.--
所以:
. 1point 3 acres
Recently retrieved
并不意味着:
Currently valid
Runtime 最好区分:
Observed / retrieved time
和:. check 1point3acres for more.
Effective time
例如:
{
"policy_version": "4.2",
"retrieved_at": "2026-08-25T10:02:11",
"effective_from": "2026-07-01",
"effective_until": "2026-08-20".google и
}
这个 evidence 是刚刚拿到的。
但它已经过期。 ..
⸻
. .и
Freshness 应该成为 Verification 的一部分
现在我们的 verification pipeline 可以升级:
Claim
↓
Evidence exists?
↓
Evidence supports claim?
↓. Waral dи,
Source authoritative?
↓
Correct version? ..
↓.google и
Fresh enough?
↓
SUPPORTED
任何一层失败,都可能改变 deployment decision。
例如:
Evidence supports claim
✓
Source authoritative
✓
Freshness
✕
────────────────
.1point3acresStatus:
STALE
Runtime 不应该把 STALE 当成 SUPPORTED。
⸻
UNKNOWN 比猜测更安全. 1point3acres.com
假设 Billing API 暂时不可用。
. Waral dи,
Runtime 无法重新确认:
refund_count = 0
旧 evidence 是:
refund_count = 0
observed:. 1point3acres.com
7 minutes ago
但这类 claim 的 freshness requirement 是:
30 seconds
Agent 可能仍然非常有信心。.--
它甚至可能说:
Based on the available evidence, no prior refund has been issued.
从语言上看没有什么问题。
但 Runtime 应该产生:
CLAIM
No prior refund exists
STATUS
STALE
. ----
然后:
. 1point3acres.com
DECISION
REVIEW. Χ
或者:
RETRY VERIFICATION
而不是让模型自己推测:
-baidu 1point3acres
Probably still zero.
⸻
Read-Time Verification 还不够. Waral dи,
到这里,我们又会发现一个更深的问题。
即使 Runtime 在 10:04:00 重新查询:
refund_count = 0
然后 10:04:01 执行退款,
. Χ
另一个 worker 仍然可能在两者之间完成退款。
这就是经典的:
Check. 1point 3 acres
↓
World changes-baidu 1point3acres
↓
Act
也就是 TOCTOU:
.
Time Of Check
↓
Time Of Use
因此,高 consequence action 不能只依赖:
“我们刚刚检查过。”.--
有些状态必须在 execution boundary 再次验证,甚至通过数据库 constraint、transaction、idempotency key 或 atomic operation 来保证。
例如:
Agent Proposal
↓
Verification
↓
ALLOW
↓
Execution Gate
↓
RE-CHECK
refund_count = 0. 1point 3 acres
↓. .и
Atomic refund operation
↓
Commit
这就是为什么 hallucination containment 最终会进入普通 distributed systems engineering。
AI 并没有让这些问题消失。
.1point3acres
它只是让更多 probabilistic decisions 开始接触这些系统。
⸻. .и
Evidence Freshness 和 Action Severity
我们还可以进一步建立规则:
. 1point 3 acres
Low consequence action
↓
Older evidence acceptable
High consequence action
↓
Fresh evidence required
Irreversible action
↓
Verify again at execution ..
例如:
Recommend help article
Evidence freshness:
24 hours
Send customer notification
Evidence freshness:
5 minutes.google и
Issue $1,240 refund
Evidence freshness:. 1point 3 acres
30 seconds
+
execution-time recheck
Transfer $80,000. ----
Evidence freshness:
immediate
+
authoritative verification-baidu 1point3acres
+
transactional guard.google и
+
human authority
这样 freshness 不再只是 cache optimization。
它成为:
deployment policy。
⸻
Lab 23 — The Stale Truth
.google и
现在轮到你。
Refund Agent 已经完成 Lab 20–22 的所有控制。
它有:
. 1point3acres
Proposal boundary
Authoritative sources
Claim verification
Evidence lineage
上午 10:02,它得到:. 1point 3acres
{
"shipment_id": "8842",
"refund_count": 0,
"refundable_balance": 1240,
"policy_version": "4.3"
}
所有 claims 都通过 verification。
Runtime 给出:
ALLOW. check 1point3acres for more.
但是 action queue 延迟了两分钟。. 1point 3acres
10:03:
Human support agent
issued refund. Χ
$1,240
10:04:
AI workflow 准备执行。 ..
⸻
Your Mission
你不能修改模型。
模型没有做错。. 1point3acres
你的任务是设计:
Evidence Freshness Policy
首先,把 evidence 分成不同类型。
例如:. 1point 3 acres
Refund policy
Customer identity
Refund count
Refundable balance. 1point 3 acres
Shipment status
Authorization
然后为每一种 evidence 定义:
Source
Version
Observed time
Effective time
Freshness requirement
Recheck requirement
⸻
设计你的 Evidence Record
例如:
{
"claim": "No prior refund exists",
"source": "refund_ledger",
"value": 0,
"observed_at": "10:02:11",
"max_age_seconds": 30,
"recheck_before_execution": true
}
然后 Runtime 在 10:04 检查:
Current time:
. check 1point3acres for more.10:04:17. check 1point3acres for more.
Observed:
10:02:11-baidu 1point3acres
Evidence age:. From 1point 3acres bbs
126 seconds
Allowed:
30 seconds. check 1point3acres for more.
. ----
结果:
FRESHNESS
FAILED
STATUS. 1point 3acres
STALE.
因此原来的:
ALLOW
必须失效。
.google и
⸻
ALLOW 也应该 Expire
这是这一 Lab 很重要的一点。
很多系统把:
ALLOW
看成永久决定。. 1point3acres.com
但如果 ALLOW 是根据动态 evidence 做出的,那么它本身也应该有生命周期。
例如:
{
"decision": "ALLOW",
"issued_at": "10:02:15",
"valid_until": "10:02:45"
}
到了:
10:04
这个 decision 已经不能继续执行。
Runtime 必须:
REVERIFY
⸻
Execution-Time Gate
现在把 architecture 改成:
Agent
↓
Proposal
↓
Evidence
↓
Verification.1point3acres
↓
ALLOW
↓
Queue
↓. .и
Freshness Gate
↓
Execution-Time Verification
↓
Atomic Action
这样,即使模型完全正确,系统仍然可以阻止 stale decision。
⸻. 1point 3acres
Self-Review Gate
检查你的设计:
* Evidence 保存 observed/retrieved time
* Versioned evidence 保存具体版本
* Policy effective time 与 retrieval time 被区分. 1point3acres.com
* 不同 claim 可以拥有不同 freshness requirement
* Dynamic business state 使用更短 TTL
* STALE 不会被当成 SUPPORTED
* 高 consequence action 在执行前重新验证
* ALLOW decision 本身可以 expire.google и
* Execution boundary 有 duplicate / concurrency protection.--
* Verification service failure 不会自动使用过期 evidence
. check 1point3acres for more.
如果你的系统只能回答:
Was this evidence correct?
还不够。 ..
它还必须回答:
Is this evidence still valid now?
⸻
What You Just Built. ----
到现在,我们的 Runtime 已经开始拥有四个不同层次:
GROUNDING
Where did the information come from?
↓
VERIFICATION
Does the evidence support the claim?
↓
LINEAGE
How did the evidence produce the decision?
↓
FRESHNESS
Is that evidence still valid now?
这已经开始接近真正的 production control。
. 1point3acres
但下一个问题会更有意思。
. check 1point3acres for more.
假设所有 evidence 都是最新的。
-baidu 1point3acres
没有 hallucination。
没有 stale data。
每一个 claim 也都通过 verification。
Agent 提议:
Refund $1,240
按照公司政策,这个退款完全合法。. 1point3acres.com
但是这个客户账户正在接受 fraud investigation。
另一个系统规定: ..
Do not issue refunds
while fraud review is active.
现在我们第一次遇到:
. ----
两个都正确的事实,却导向相互冲突的行动。
这不再是 hallucination。
这是 policy reconciliation。
Lab 24 — When Correct Evidence Conflicts — 敬请期待
deploytovalue.com |