跳到主要内容
Agent Memory 实证审计与负结果方法论

第3章:Construction Trigger Primitive 全景——把「创新」翻译成可证伪假设

6 类 trigger primitive (input-driven / output-driven / failure-driven / scheduled / hybrid / oracle) 的工作原理、典型实现、可证伪假设模板与对应的 ablation 设计;以 H1a (ephemeral failure-triggered) 与 H1b (persistent cache) 为例展示如何把营销词写成假设

trigger primitive 可证伪 假设设计 ablation ephemeral persistent

“在低置信度时触发记忆构建”听起来很 agentic,但作为一个工程主张,它的可证伪形式应该是:在配对二元 acc 上,触发版本相对零构建版本提升 ≥ 2 pp,且 95% CI 排除 0。本章把 6 类 trigger primitive 各自翻译成这样的形式——什么时候写、写什么、写到哪——并给每类一个可证伪假设模板和对应的 ablation 设计。读完这章,你不再用”adaptive”、“intelligent”、“selective”这种营销词写论文,而是写”H_X: Δ binary acc ≥ +2 pp on n=N paired with McNemar p<0.05”。

📑 目录


1. 为什么需要把 trigger 写成假设

1.1 营销词 vs 假设

论文里的话翻成可证伪假设
”adaptive memory writing”H: 关掉自适应路由后,paired Δ binary acc 下降 ≥ 2 pp
”selective extraction”H: 写率 100% vs 当前比例的 paired Δ ≥ 2 pp
”intelligent caching”H: cache 持久化(C4)相对 ephemeral(C3)paired Δ ≥ 2 pp
”cognitive-inspired”(这不是命题,忽略)
“self-organizing structure”H: 锁定固定结构相对动态结构 paired Δ ≥ 2 pp

🍎 直觉:营销词是”某种主张”,假设是”在数据上能被证伪的具体语句”。你的论文必须能让 reviewer 用一句话回答”如果 H 错了,你应该看到什么数据”。

1.2 不可证伪的”假设”长啥样

❌ “Our system improves agent memory.” → 没有量化、没有 baseline、没有 sample size

❌ “We expect adaptive routing to help.” → “help”是什么?多少 pp?

❌ “Cache should generalize across queries.” → “generalize”怎么测?

✅ “Persistent caching (C4) improves paired binary accuracy by ≥ 2 pp over ephemeral caching (C3) on LoCoMo, with conversation-clustered McNemar p < 0.05, on n=764 paired QA.”

🌟 核心:可证伪假设 = 方向 + 大小 + benchmark + sample size + 显著性阈值 五件齐。


2. 六类 trigger primitive 总览

把 G3 时代所有 Agent Memory 系统的写触发器归为 6 类(前 5 类是显式的,第 6 类是隐藏陷阱):

2.1 Input-Driven(输入驱动)

定义:每接收一段用户/agent 输入,无条件写入 memory。 典型:Mem0、SimpleMem、LiCoMemory、EMem(gated 版属于子集) 伪代码

def on_input(message):
    facts = llm_extract(message)
    memory.add(facts)

优点:实现最简单、覆盖率最高(不会漏存信息)。 缺点:build cost 与对话长度线性增长;大量低密度内容浪费 token。

2.2 Output-Driven(输出驱动)

定义:每生成一段 agent 回答后,回看 input + output 写入 memory。 典型:A-Mem、Memori、Nemori 伪代码

def on_output(message, response):
    facts = llm_extract(message + response)
    memory.add(facts)

优点:抓住”对话中真正发生的事”(含 agent 推理);适合 reflection trigger。 缺点:build 频率仍高;推理过程可能引入幻觉进 memory。

2.3 Failure-Driven(失败驱动)

定义:仅在 retrieval 置信度低或任务失败时触发写入。 典型:本模块作者论文的 H1(被证伪) 伪代码

def on_query(question):
    chunks, conf = memory.retrieve(question)
    if conf < tau:                 # 低置信度
        artifact = llm_synth(chunks, question)
        memory.add(artifact)
    return llm.answer(chunks + [artifact], question)

优点:build cost 最低;只在”真正需要”时写。 缺点:触发信号本身要可靠(M2 AUC 决定);artifact 生成基于已经低质量的 retrieval,存在”低质量进、低质量出”的内生缺陷。

2.4 Scheduled(调度驱动)

定义:按 buffer 大小 / 时间窗 / token 预算固定触发。 典型:LightMem(512-token buffer)、MemoryOS(FIFO) 伪代码

buffer = []
def on_input(message):
    buffer.append(message)
    if total_tokens(buffer) >= 512:
        facts = llm_extract(buffer)
        memory.add(facts)
        buffer.clear()

优点:build 频率可预测、可控;摊薄 LLM 调用成本。 缺点:buffer 大小是 hyperparameter,跨 dataset 不可移植。

2.5 Hybrid / RL(混合或学到的触发)

定义:多信号融合或 RL 学习触发策略。 典型:D-MEM(dopamine-gated)、Selective Memory(write-time gating) 伪代码

def on_event(event):
    signals = [retrieval_conf, novelty, recency, ...]
    if rl_policy(signals) == "write":
        memory.add(llm_extract(event))

优点:理论上可学到最优策略;与 input/output/failure 不互斥。 缺点:RL 奖励信号高度任务依赖;跨任务泛化不可知。

2.6 Oracle(隐藏的”作弊”触发)

定义:用 benchmark 提供的标签(如 question_type、answer_id)决定写策略。 问题:这不是真正的 agentic,是隐藏 oracle access。论文若不声明,等于刷分。

审计提示:扫描 query / write 函数签名是否含 question_type / category / answer_id 等参数;扫描 evaluation 脚本是否把这些字段直接喂给系统。


3. 可证伪假设的三件套模板

每个 trigger primitive 对应的假设都需要三件套:

3.1 三件套结构

H_X:方向 + 大小 + 显著性
     在 N 题配对样本上
     用 [test 名称] 显著
     端点为 [endpoint 名称]

3.2 通用模板

H_X: {triggered_condition} 相对 {baseline_condition}
     在 paired binary accuracy 上提升 ≥ {delta_pp} pp,
     且在 n = {N} 题 paired 样本上,
     {test_name} p < {alpha},
     95% CI 排除 0。

3.3 实例化(按 6 类)

Trigger 类型H 实例化
Input-driven”C_IN(每输入必写)相对 C1(zero-build)paired Δ ≥ 2 pp on n=500 LongMemEval-S, McNemar p<0.05”
Output-driven”C_OUT(每输出回写)相对 C1 paired Δ ≥ 2 pp”
Failure-driven”C3(低置信度触发)相对 C1 paired Δ ≥ 2 pp”
Scheduled”C_SCH(buffer 满触发)相对 C1 paired Δ ≥ 2 pp”
Hybrid/RL”C_RL(RL 学到的策略)相对 C_SCH paired Δ ≥ 2 pp”
Oracle(揭穿)“C_ORACLE(用 question_type 路由)相对 C_BLIND(不用)paired Δ ≥ 5 pp”(这是验证 oracle 偷分多少的对照)

4. 案例:H1a 与 H1b 的写法

本模块作者论文给出的两个完整可证伪假设,可作为模板。

4.1 H1a(failure-driven, ephemeral)

H1a: ephemeral failure-triggered synthesis (C3) improves paired
     binary accuracy by ≥ 2 pp over zero-build retrieval (C1) on
     LongMemEval-S, with McNemar p < 0.05.

主端点: paired binary accuracy
secondary: token-F1
sample: n=500 (full LongMemEval-S, paired against C1)
test: McNemar exact (scipy.stats.binomtest)
SESOI: ±2 pp

结果:4 backbone 全部不达 +2 pp,方向均负。H1a 被证伪

4.2 H1b(output-driven persistent vs ephemeral)

H1b: persistent caching (C4) improves paired binary accuracy by
     ≥ 2 pp over ephemeral (C3) on LoCoMo, with conversation-
     clustered McNemar p < 0.05.

主端点: paired binary accuracy
secondary: token-F1
sample: n=764 (5 conversations × all QA, paired)
test: clustered McNemar (conversation-level resampling)
SESOI: ±2 pp

结果:Δ = +0.00 pp on binary acc, p=0.55, n=764。H1b 被证伪

🌟 关键:两个假设在跑实验前就锁死了”成功阈值”。结果失败但论文仍可发——因为预先承诺的失败仍是科学发现


5. ablation 应该排除什么变量

把 trigger primitive 当成”自变量”测它对 acc 的”因变量”影响时,必须控制混杂变量。

5.1 必须固定的变量

变量怎么固定
Backbone(LLM)主实验单一 backbone;多 backbone 仅作 sanity
Retrieval pipelineembedder + 稀疏检索 + reranker + top-K 全锁死
Judge用 benchmark 官方 prompt
Prompt 模板答题 prompt 不能因 condition 切换
τ 阈值在 dev split 上预选定,主实验不调

5.2 应该测的 ablation

Ablation 名关掉的组件测的问题
C1 zero-build关掉所有 trigger 与 cachetrigger primitive 的 baseline
C3 ephemeral关掉持久化(仅当前 query 用)持久化是否有用
C4 persistent完整版主条件
C5 separate-channel把 cache 和 raw chunks 分两个 retrieval channel是否 displacement 是问题
C6 budget-matchedC5 但总 chunks 数等于 C4是否上下文容量是问题

🌟 本模块作者论文 P2:C4 / C5 / C6 paired bootstrap 95% CI 全部跨过 0 → “no design knob 解决问题”。

5.3 不应该当 ablation 的”创新”

❌ “我们换了 RL 算法 PPO → SAC,看 acc”——这是 RL 内部对比,不是 trigger primitive 的 ablation ❌ “我们把 LLM 从 GPT-4 换成 Claude 3.5,看 acc”——这是 backbone robustness,不是 ablation ❌ “我们换了 embedder MiniLM → bge-large”——这是 retrieval 强度,应固定


6. SESOI(最小关心效应)的取值

6.1 SESOI 是什么

Smallest Effect Size of Interest:你认为”小到什么程度的效应可以被忽略”。

🍎 直觉:你不会因为 +0.1 pp 就上线一个新算法(运维成本远大于收益)。SESOI = 你愿意为之上线的最小提升。

6.2 SESOI 怎么选

场景建议 SESOI
学术 paired-internal 研究±2 pp(同本模块作者论文)
工业生产部署±5 pp(考虑运维成本)
跨 backbone 普适性主张±1 pp(要求严苛)
探索性研究±3 pp

6.3 SESOI 的两个用途

  1. 设定 H 阈值:H 写”Δ ≥ SESOI” → +2 pp 是 SESOI,对应 “H 通过”
  2. TOST 等价检验:90% CI 完全在 [-SESOI, +SESOI] 内 → 接受等价

预注册铁律:SESOI 跑实验前定,跑完不能改。如果跑出 +1.5 pp 就把 SESOI 调到 1.0 pp 让 H 通过——这是 cherry-pick。


7. 把营销词翻成假设:实操练习

下面 5 个真实论文里出现过的句子,你来翻成可证伪假设。答案在表格右列。

营销词原句翻成假设
”Our system uses adaptive memory routing.”H: 关掉路由(单一 channel)相对原版 paired Δ binary acc 下降 ≥ 2 pp on n=500
”We propose selective fact extraction.”H: 写率 100%(全写)相对当前选择性写率 paired Δ ≥ 2 pp(方向不限)
“Memory is consolidated through reflection.”H: 关掉 reflection consolidation 后 paired Δ ≥ 2 pp
”Self-organizing memory structure.”H: 用固定 chunk 结构(K=3 turns)相对动态结构 paired Δ ≥ 2 pp(方向不限)
“Cognitive-inspired three-layer architecture.”(cognitive-inspired 是叙事 hook,不是假设;真正的假设是”三层 vs 单层” paired Δ ≥ 2 pp)

🌟 练习收获:每个营销词都有对应的 ablation——把 ablation 写成假设,论文从”展示新方法”升级成”测试可证伪命题”。


✅ 自我检验清单

  • 6 类命名:能列出 input-driven / output-driven / failure-driven / scheduled / hybrid / oracle 并各举一例
  • 三件套模板:能写出”effect direction + magnitude + 显著性 + sample size”齐全的假设
  • SESOI:能为自己的 pipeline 选一个合理的 SESOI 值并解释为什么
  • ablation 排除变量:知道在测试 trigger primitive 时应该控住 retrieval / judge / prompt 哪些变量
  • “adaptive” 翻译:能把任何论文里的”adaptive memory”翻译成可证伪形式
  • 6 类对应 ablation:能为每类 trigger 设计对应的 C_X ablation 条件
  • oracle 识别:能在一段代码里识别 question_type oracle 路由

📚 参考资料

概念入门

  • 本模块第 2 章 §3 atlas —— 6 类 trigger 在 11 系统中的分布
  • 本模块第 4 章 —— 假设写完后跑统计三件套的工具

关键论文

  • 本模块作者论文 EXPERIMENTS_PREREG.md —— H1a / H1b 完整可证伪假设的真实样本
  • A-Mem(Xu et al., NeurIPS 2025)arXiv 2502.12110 —— output-driven 代表
  • Mem0(Chhikara et al., 2025)arXiv 2504.19413 —— input-driven 代表
  • LightMem(Fang et al., ICLR 2026)arXiv 2510.18866 —— scheduled 代表
  • D-MEM(Song & Xin, 2026)arXiv 2603.14597 —— RL trigger 代表
  • Selective Memory(Zahn & Chana, 2026)arXiv 2603.15994 —— hybrid trigger 代表

行业讨论

  • “Falsifiability in NLP” 讨论 —— ACL 2024-2026 多个 panel 关于 NLP 实证研究可证伪性的讨论

框架文档(如适用)

  • 本模块作者论文 motivation/persistence_ablation.py —— C1/C3/C4/C5 6 类 trigger 的真实 Python 实现