论文链接: arXiv:2608.05784

HTML 全文: arXiv HTML

开源代码: Schema、编译器和评估工具均已开源(论文引用 [14]),MIT 许可证,Python 包,零运行时依赖。

发表时间: 2026 年 8 月(arXiv 预印本)

作者: Nossa Iyamu(独立研究者,Independent Researcher)。本文为单一作者作品,使用作者自己的真实屏幕捕获语料库。

学科分类: cs.AI(人工智能);14 页,5 图,4 表。


一、论文背景

要理解这篇论文在做什么,我们需要先搞清楚三个层层递进的概念:计算机使用代理(Computer-Use Agent)是什么、它当前的记忆系统有什么缺陷、以及为什么"捕获已经有了,但消费方式出了问题"。

1.1 计算机使用代理:像人一样操作屏幕的 AI

计算机使用代理(Computer-Use Agent,简称 CUA)是一种特殊的 AI 代理。与传统的"调用 API 完成任务"不同,它像人类用户一样通过屏幕截图、可访问性树(Accessibility Tree)来"看"屏幕,并通过模拟鼠标点击、键盘输入来"操作"软件。它的一个完整工作循环是:

截图当前屏幕 → LLM 分析截图并决定下一步动作 → 执行动作(点击/输入/滚动)
→ 再次截图验证结果 → 重复,直到任务完成

这种模式之所以重要,是因为现实中绝大多数软件(尤其是老旧的 ERP 系统、政府门户、内部业务平台)根本没有 API,只能通过图形界面操作。CUA 用"看屏幕+操作鼠标键盘"的统一接口,理论上可以操作任何有 GUI 的软件,无需为每个应用单独开发集成。

2026 年这一方向的代表性系统包括 Anthropic 的 Computer Use、OpenAI 的 Operator、字节的 UI-TARS 等。这类代理每个"动作步"大约消耗 2,500 tokens(由截图主导,按 Anthropic 的 w*h/750 图像 token 规则,一张 1512×982 的截图约 1,979 tokens)。

1.2 代理记忆:今天记录的是"你说什么",不是"你做什么"

然而,这些代理都有一个被忽视的软肋:记忆。

论文开篇即点出核心矛盾:

“Computer-use agents pay full frontier inference to re-derive routines their user has already performed, because an agent’s memory today records what the user said, not what the user did.”

(计算机使用代理为了重新推导用户已经执行过的例程,支付了完整的尖端推理成本——因为今天代理的记忆记录的是"用户说了什么",而不是"用户做了什么"。)

情景记忆(Episodic Memory)在认知科学中指"记录在时间情境中的个人经历"。在 LLM 代理领域,立场文件(Position Paper)早已指出"情景记忆是长期 LLM 代理缺失的那一块拼图"。但目前主流的代理记忆系统——如 MemGPT(用 OS 式虚拟内存管理上下文)、Mem0(从对话中抽取显著事实)、Zep(用时序知识图谱组织记忆)——都有一个共同的根本局限:它们摄取的都是"流经代理对话的内容",而非"用户在屏幕上的实际行为"。

换句话说,即便用户已经在浏览器里反复执行过"登录某个后台→填表→提交"的动作几十次,代理对此完全无知——因为用户从没在对话里告诉过它。当用户某天说"帮我做这件事"时,代理会从零开始,一步一步截图、推理、点击,重新走完整个流程,每一步都付完整的尖端推理费。这就是论文标题所说的 “re-derive routines"(重新推导例程)。

1.3 捕获是商品,消费不是

有人会说:可现在屏幕活动捕获(Capture)已经不是问题了吧?确实如此:

  • ActivityWatch(开源时间追踪器)已经记录应用焦点十年;
  • Microsoft Recall(Copilot+ PC 的功能)周期性快照屏幕;
  • OpenAI Chronicle 从近期屏幕内容构建记忆。

捕获确实商品化了。但”消费"(Consumption)——即把这些原始数据变成代理能用、能信任、能负担的记忆——却远未解决。

一天的事件驱动捕获会产生约 2,000 条快照行(snapshot rows),每行只是断言:“在时间 t,应用 a 显示窗口 w,URL 为 u"。这种扁平、原始、未结构化的日志,无法直接喂给代理。目前有两种主导消费策略,但都有严重缺陷:

消费策略做法缺陷
原始搜索(Raw search)把扁平的行列表直接交给代理,让模型在推理时自己完成会话化、去重、持续时间计算单日成本 126,812 tokens;最忙的一天序列化后达 257k token,超出上下文窗口
LLM 摘要(LLM summarization)用 LLM 把原始行压缩成自然语言摘要每次运行都有成本;非确定性(每次生成不同文本);长输入可靠性下降;会虚构从未发生的活动

论文用一句话总结:“Neither yields memory an agent can cache, audit, or trust.”(两者都不能产生代理能够缓存、审计或信任的记忆。)

1.4 缺失的中间层:确定性编译

本文的洞察是:在"原始扁平日志"和"LLM 摘要"之间存在一个缺失的中间层——确定性编译(Deterministic Compilation)。作者借用编译器的类比:

“In the same way a compiler turns instructions into structured artifacts without opinion, we turn snapshot streams into activity frames.”

(就像编译器把指令变成结构化产物而不夹带观点一样,我们把快照流变成活动帧。)

编译器的设计哲学是:不思考,只翻译。它对相同输入永远产生相同输出,可复现、可缓存、可审计。Activity Frames 正是把这一哲学搬到屏幕活动上——用一个零模型参与的确定性管道,把捕获流编译成结构化的"活动帧”。

为什么"确定性"这么关键?因为在 LLM 摘要中,模型坐在记忆构建循环里面——每次构建记忆都要付一次推理费,每次输出都不完全一样,还可能虚构。而确定性编译让记忆成为基础设施而非推理:68ms 编译、零 token 成本,可以每次查询时重建。


二、论文定位和关联工作

2.1 研究谱系一:LLM 代理的记忆系统

第一条相关研究线是代理记忆系统。下表汇总了代表性工作及其与本文的关键区别:

系统方法核心局限(与本文的区别)
MemGPTOS 式虚拟化上下文,通过有界窗口分页对话历史仅摄取流经代理的消息
Mem0生产层从对话中整合显著事实同上
Zep将记忆组织为时序知识图谱(bi-temporal:真实时间线 + 摄入时间线)同上
E-mem从执行轨迹重建情景上下文同上
分层程序记忆从代理轨迹蒸馏技能同上
Agent Workflow Memory从代理 rollout 归纳例程从代理活动而非人类活动归纳

这一整条线的共性问题是:它们都摄取"流经代理对话的内容",而非"用户在屏幕上做了什么"。它们解决的 是"代理记得它自己/用户说过什么",但解决不了"代理知道用户实际上怎么操作软件"。

2.2 研究谱系二:屏幕捕获作为代理记忆

2025–2026 年涌现了另一波研究,它们和本文目标相同(用屏幕捕获做代理记忆),但方法相反——都把模型放进记忆构建循环:

系统方法核心缺陷
MIRIX在连续截图上运行多代理记忆系统(调用云模型)模型在记忆构建循环内
FOCAL调用本地视觉语言模型写会话摘要(报告 60% token 削减)同上
ProAgentBench在应用切换时分割 500+ 小时捕获同上
SummAct用 LLM 摘要交互轨迹为意图同上
OmniQuery增强捕获的个人媒体用于 QA同上

论文的关键观察:“In every case a model sits inside the memory-construction loop, so the memory inherits per-run cost, non-determinism, and possible hallucinated episodes.”(每个案例中模型都坐在记忆构建循环内,因此记忆继承了每次运行的成本、非确定性和可能虚构的片段。)

Activity Frames 是这条线上的确定性对立面:编译路径中无模型、字节级一致输出、解释被隔离在单独的证据链接层中。

2.3 研究谱系三:代理技能、轨迹和成本

第三条相邻研究线是代理技能归纳与成本框架,它们各自需要一个本文才测量的参数:

研究方向代表工作数据来源缺失的参数
技能归纳Agent Workflow Memory、SkillWeaver、PreAct代理自身成功轨迹(供应侧)仅在代理已全价执行后观察例程
轨迹获取Explorer(≈$0.28)、AgentTrek(≈$0.55)、Watch & Learn合成训练数据认证/私有状态例程系统性覆盖不足
成本框架FrugalGPT、Cost-of-Pass、AI Agents That Matter、HAL(≈$1.84/task)定价其余部分未测量预委托的复发率 h

这三个方向的共同空白是:它们都没有测量"在委托给代理之前,人类被动活动中有多少是可委托的重复例程"。本文首次报告了这个值。

2.4 本论文的定位

综合三条谱系,Activity Frames 的定位可以用一张对比表概括:

维度之前的路线本论文的突破
记忆数据源对话/代理轨迹人类被动屏幕活动
记忆构建模型在循环内(摘要/归纳)零模型确定性编译
可复现性非确定性(每次不同)字节级一致
可审计性黑箱证据指针指向原始行
成本参数假设但未测量 h首次实测 R=60-343×,h=7.7%

三、问题定义

3.1 从具体场景到抽象问题

具体场景:一个用户每天在电脑上操作十几个小时,操作系统已经把这些活动记录成快照流。现在我们想让一个 LLM 代理能够回答关于"用户某天做了什么"的问题,并在未来能复用用户已执行过的操作例程。

问题的本质:如何把未结构化的时间序列快照流转化为结构化的、可被 LLM 高效消费、可被机械审计的记忆表征,同时满足三个相互制约的约束:

  • 忠实(Fidelity):不虚构、不丢失
  • 可负担(Affordable):token 成本低、编译延迟低
  • 可信任(Trustworthy):可复现、可审计

3.2 形式化问题定义

给定:

  • 一段被动捕获的屏幕活动快照流 $f_1, f_2, ..., f_n$(每个 $f_i$ 包含时间戳 $t(f_i)$、应用 $app(f_i)$、站点 $site(f_i)$、窗口标题、URL、输入事件等)
  • 一组关于活动的查询 $Q$(如"哪个应用占主导"“是否访问了某域名"“某例程的执行步骤”)
  • 一个独立真值 oracle $\mathcal{O}$

求:一个编译函数 $\mathcal{C}$,将快照流映射为结构化文档 $\mathcal{D} = \mathcal{C}(f_1, ..., f_n)$,满足:

  1. 确定性:$\mathcal{C}$ 是纯函数(相同输入→相同输出),且 $\mathcal{C}$ 内部无模型参与
  2. 压缩性:$|\mathcal{D}_{\text{prompt}}| \ll |\mathcal{D}_{\text{raw}}|$(token 数)
  3. 忠实性:对任意查询 $q \in Q$,LLM 基于 $\mathcal{D}$ 给出的答案准确率 $\text{Acc}(\text{LLM}(\mathcal{D}), q) \approx \text{Acc}(\mathcal{O}, q)$
  4. 可审计性:$\mathcal{D}$ 中每个断言可通过指针回溯到原始行 $f_i$

约束:编译延迟 $|\mathcal{C}|$ 应低到允许"每次查询时重建”(< 100ms 量级)。

3.3 这个抽象的精妙之处

这个抽象的精妙在于把"测量"(Measurement)和"解释"(Interpretation)严格分离:

  • 测量层只回答"发生了什么"——应用、站点、时间、输入量。每一字段都可以由确定性代码从捕获数据推导,不夹带任何观点。
  • 解释层回答"为什么发生"——比如把两次 profile 查看解释为"搜寻客户"。它是可选的,必须命名空间化、置信度标记、证据关联。

这种分离让记忆的信任属性成为可能:即使解释层被污染或粗心,消费者也可随时剥离至测量核心,得到一个仍然有效的纯测量文档。这是论文后面"对抗记忆投毒攻击"的结构性基础。


四、问题解法

Activity Frames 的解法是一个三层管道:会话化分割 → 丰富化 → 实体类型化。我们逐层拆解。

4.1 核心数据结构:Activity Frame

一个 Activity Frame 是一个有界片段,携带以下字段(YAML 示例,来自论文 Figure 2):

id: f-0007
app: "Google Chrome"
site: "linkedin.com"
start: "20:24:04"
end: "20:42:11"
duration_min: 18.0
wall_min: 21.5
pages:
  - {kind: people_search, entity: "cto paris", count: 2}
  - {kind: profile, entity: "jane-doe"}
  - {kind: company, entity: "acme"}
input: {keys: 214, clicks: 31}
interruptions: [{app: "Slack", seconds: 12}]
evidence: {frame_ids: "99871..100147"}

理解每个字段:

  • 键(key):(application, site) 对,决定分段。浏览器活动用 URL 主机作为 site;非浏览器活动 site 不存在。
  • duration_min / wall_min:活跃时长 vs 墙钟时长。活跃时长剔除了空闲和中断。
  • pages:类型化页面引用(Typed Page References),从 URL 路径和查询解析而来,标注 kind(profile/search/email 等)和 entity。
  • input:输入量(按键数、点击数),不是输入内容。
  • interruptions:合并进来的短暂跳转(见 4.3 闪烁合并)。
  • evidence:证据指针,指向编译该帧所用的原始快照行范围(99871..100147),允许机械审计。

隐私规则:输入量是标准文档的一部分;输入内容(键入的文本)默认排除,仅在操作者明确选择加入时才包含。

4.2 第一层:会话化分割——三个确定性常数

分割算法(Algorithm 1)的输入是一条显示器上的快照流(按时间排序),输出是帧序列。它只使用三个常数,这些常数从捕获节拍选择,不是基于结果调优的:

常数值直觉作用
驻留 D(Dwell)90 秒约三个"心跳周期"一帧对相邻快照间贡献的活跃时间上限为 $\min(\Delta t, 90s)$,防止长时间无操作仍累计活跃时间
会话间隙 G(Session Gap)300 秒5 分钟无活动视为会话结束超过此间隙关闭当前帧,并标记为候选覆盖间隙
闪烁合并 F(Flicker Merge)20 秒短暂跳转不算真正切换A→B→A 模式(B 的墙钟时长 ≤ 20 秒)合并为单个 A 帧

为什么选这三个常数?作者强调它们是从捕获节拍推导的先验(prior),不是在结果上反拟合(fitting)的超参数。这是"确定性"哲学的一部分:所有选择都在数据看到之前声明,避免"调参戏法"。

4.3 第二层:丰富化——修复三个可靠性缺陷

光分割还不够,原始捕获有三个会让后续记忆不可靠的缺陷,丰富化逐一修复:

缺陷是什么修复方法
陈旧归因(Stale attribution)输入事件被归因到过时的快照(比如用户切窗后才触发的点击)每个事件重新归因到时间上最近的快照(二分搜索),以毫秒级精度保留归因距离
匿名点击(Anonymous clicks)点击只有坐标,不知道点的是哪个 UI 元素三级解析:精确包含 → ±40px 容差环 → 粗粒度屏幕区域回退;每步标注 exact/tolerance/zone
键盘布局不匹配不同键盘布局下相同按键产生不同字符操作者提供显式翻译映射;默认恒等映射,永不推断

4.4 第三层:实体类型化——URL 的纯函数

实体类型化(Entity Typing)把 URL 转换成类型化页面引用。标准类型包括:profile, company, people_search, search, repo, pull_request, issue, doc, email, video, post, ai_chat, local_dev 等。

关键约束:

  • 只做路径和查询的解析,不获取页面,不调用模型。
  • 分层解析:定制解析器(>20 个)→ 通用搜索参数检测器 → 子域名和路径启发式 → 完全回退。
  • 每一层都是 URL 的纯函数,因此添加覆盖是可逐行审查的贡献。
  • 映射是完全的(total):任何无法被解析器匹配的 URL 回退到带域名的通用引用,因此类型化永不丢失数据。

实证覆盖:语料库 5,120 个不同 URL 中,81.3% 获得非通用类型引用(46 种类型),剩余 18.7% 回退到通用引用。

4.5 两层架构:测量与推断的严格分离

整个系统的架构(Figure 1)是两层:

层级产出方包含内容规则
Tier 1 测量层(蓝色)确定性代码完全产出应用、站点、时间、活跃时长、类型化页面引用、输入量、证据指针无意图标签;每字段可由捕获数据机械推导
Tier 2 推断层(橙色)可选扩展意图解释、任务归纳必须命名空间化、置信度标记、证据关联;剥离后始终留下有效的 Tier 1 文档

四项设计原则:

  1. 测量的,非猜测的(Measured, not guessed)
  2. 可复现的(Reproducible):相同输入→相同输出
  3. 有证据的(Evidenced):每帧携带原始行指针
  4. 诚实对待缺失(Honest about absence):无捕获期间报告为间隙;每个文档携带 blind_spots 列表

4.6 参考实现:开源 Python 包

参考实现是 MIT 许可的 Python 包,三部分组成:

  1. 捕获引擎(aframes record):记录应用焦点、窗口标题、URL、可访问性树、输入事件到本地 SQLite 数据库,完全设备端。
  2. 编译器:零运行时依赖,只读打开数据库,支持 JSON/YAML/Markdown 和紧凑上下文块四种输出。
  3. MCP 服务器:手写 stdio JSON-RPC,向任何 MCP 客户端暴露六种工具(get_context、get_activity、get_day_summary、get_patterns、get_communications、get_steps)。

4.7 全景:管道一图概览

阶段输入处理输出
① 捕获屏幕活动OS 级监听SQLite 快照行
② 会话化分割快照行D=90/G=300/F=20 规则帧序列
③ 丰富化帧序列归因/坐标解析/翻译可靠帧
④ 实体类型化帧+URL纯函数解析类型化页面引用
⑤ 输出完整帧序列化JSON/YAML/紧凑块

五、评估指标与实验证据

论文用一组严密的实验来证明其核心主张。我们按"指标体系→数据集→实验结果"的顺序梳理。

5.1 语料库:作者自己的真实屏幕活动

所有实验基于作者自己的语料库(单用户、一台机器)。语料库有两个冻结点:

  • 系统部分用 2026-07-10 冻结:61 日历日 / 46 活动日
  • 开销测量用 2026-07-22 冻结:51 活动日,128,756 帧

表 2:语料库特征

指标值
日历跨度61 天
有活动天数46 天
快照行109,735
带 URL 的行59,458
空闲心跳行20,429(19%)
输入事件214,360
元素树行8,395,885
中位监控内间隙6.1 秒
90 百分位间隙30.7 秒
不同应用数54

单用户语料是明确的局限,作者在 Threats to Validity 中多次声明。语料库已冻结(记录器迁移到新数据库),所有数字可在不可变文件上重现。

5.2 主指标一:上下文压缩比

以一个代表性全天(2,066 个快照行)为例,用 cl100k_base 编码比较三种表示:

表示方式Token 数压缩比
原始行(JSON)126,812基线
编译 schema-v1 文档(222 帧)34,8153.6×
紧凑上下文块1,46986×

这个指标衡量的是"记忆的可负担性":86× 压缩意味着原本塞不进上下文窗口的一天数据,现在只需 ~1.5k token 就能完整表示。两种编译形式均无需任何模型调用即可生成。

5.3 主指标二:下游问答准确率

这是论文最核心的实验,衡量的是"记忆的忠实性"。

实验设计:

  • 8 天评估(7 个最近连续活动日 + 1 个原始序列化超过上下文窗口的前置日)
  • 真值来源:独立 SQL oracle(使用文档化的不活动超时驻留,每帧信用为到下一帧的间隙,上限 60 秒)
  • 64 个问题,分五类:主导应用、活跃分钟数、不同应用数、成对时间排名、域名访问 + 起始时间;外加 16 个"缺失事实探测"(如"用户是否打开了 Photoshop / 访问了 netflix.com?")
  • 评分容差:数值 30% 以内,时间 45 分钟以内
  • 两个模型层级:Claude Sonnet 4.5(中端)和 Claude Opus 4.5(尖端)

Oracle 验证:在用于评分前,编译器先与 oracle 验证——在 7 个捕获完整的天数上,编译器覆盖活跃分钟数与 oracle 总驻留时间中位差异仅 0.9 分钟(全部在 2.3 以内)。

表 3:下游 QA 准确率(8 天 × 64 问 × 2 模型层级)

表示方式Sonnet 4.5 准确率Sonnet 时长误差Opus 4.5 准确率Opus 时长误差
原始行82.1%39.7%91.1%25.7%
LLM 摘要66.1%135.7%80.4%25.2%
活动帧98.4%7.3%98.4%7.3%

Wilson 95% 置信区间为 91.7–99.7%。在更严格的容差带(10% / 15 分钟)下,三者在 Sonnet 层级分别为 95.3% / 80.4% / 66.1%。

5.4 四个关键发现

发现一:差距是定量的,不是分类的。 两个模型层级、所有三种表示在"缺失事实探测"上均完美——幻觉率 0%。摘要不是凭空发明应用,而是在幅度上失败:Sonnet 摘要在时间问题上的准确率仅 7.1%,主导应用活跃分钟误差均值高达 135.7%(活动帧仅 7.3%)。

具体案例(2026-07-05):实测记录 Chrome 第一(161.6 分钟),Cursor 第二(143.9 分钟)。Sonnet 摘要将 Cursor 命名为主应用 “~7 hours”(膨胀 2.9×),并编造了 “6:40 PM–5:26 AM” 的夜间会话——这是典型的 LLM 摘要幻觉。

发现二:更强的模型缩小但不消除差距。 Opus 摘要将时长误差降到 25.2%,但仍是活动帧的 3.5×。最 striking 的发现:读取活动帧块时,Sonnet 4.5 和 Opus 4.5 完全不可区分(均 98.4%)——确定性编译的收益恰好在计算最便宜部署的地方最大。

发现三:摘要的非确定性。 每天重新生成 3 次摘要,每天每个层级都产生三个不同文本。活动帧块三次重新生成字节完全一致。

发现四:基线并非总能运行。 最忙的一天序列化为 257k 原始 token,超出上下文窗口。原始行和摘要消费都不可行;~2k token 的块不受影响,是唯一能在所有 8 天上报告的表示。

5.5 主指标三:编译延迟与可复现性

指标值
全天编译中位时间68 ms
五次运行范围65–72 ms
平台消费级笔记本
可复现性排除生成时间戳后,两次独立编译产生字节完全一致的文档

作者据此宣称:“在此成本下,情景记忆可以在每次查询时直接重建。"——记忆成为免费的基础设施,而不是昂贵的推理。

5.6 辅助指标:碎片化分析

论文还回答了"一天有多碎片化"这个问题:

指标值
产出帧的编译天数43 天
总帧数17,514
每天中位帧数361
中位活跃时长0.5 分钟
1 分钟以下帧占比68%

但这不是简单的"人类注意力碎片化"证据。作者诚实地分解了这个数字:

  • 52% 的亚分钟帧(6,177 个)是单快照过渡(中位 6.1 秒)——用户经过的应用,不是注意力片段
  • 20%(2,361 个)位于双显示器段内(27% 的捕获分钟有两个显示器活跃)
  • 排除单快照过渡后,中位数升至 0.9 分钟

这个 0.9 分钟与中断科学文献一致(“3 分钟工作圈”,75% 笔记本内容段在 1 分钟以下)。作者明确指出:“我们刻意不将原始直方图呈现为独立复制:分段方法的变更会将中位数从 0.3 推到 0.9 分钟。”

5.7 辅助指标:实体类型化覆盖

指标值
语料库中不同 URL5,120
非泛型类型化引用81.3%
覆盖种类数46 种

最频繁类型:profile(1,106)、search(397)、email(278)、event(209)、messaging(200)。

5.8 成本侧指标:Routine Overhead Ratio R

同一编译器还兼作需求侧成本工具。它定义例程(Routine)为频繁的 UI 动作 n-gram(3≤k≤60,至少重现 3 次,至少命名两个不同目标,会话在间隙>90s 处切断)。

分子(建模上界):无记忆代理重新推导的成本

$$C_{\text{agent}}(k) = k\left(\frac{w \cdot h}{750} + 350 + 180\right)$$

三项:截图(按 w*h/750 规则)+ 350 token 上下文读取 + 180 token 推理输出。典型 1512×982 下约 2,500 token/步。

分母(测量):重放成本 $C_{\text{replay}}(k) = |\text{tiktoken}(\cdot)|$

两个梯级:

  • $R_{\text{inject}}$(操作性,保守):带守卫的技能计划(每步携带 expected-element、expected-role、expected-application 守卫)。中位 60×(IQR 59–62)。
  • $R_{\text{info}}$(信息上限):最小重放脚本(剥离守卫至裸信息内容)。中位 343×(IQR 297–390)。

分辨率鲁棒性:重新定价分子在三种屏幕配置下,$R_{\text{info}}$ 仅在 259×(1280×800)到 425×(1728×1117 retina)范围内移动。

恢复率上限:$1 - 1/R \approx 99\%$(在 $R_{\text{info}}=343$ 时精确为 99.7%)——这是每覆盖步的上限,非全舰队节省。

5.9 成本侧指标:复发率 h

度量值含义
$h_{\text{raw}}$83.1%任何重现 n-gram 内的动作步比例(被输入的通用微结构主导)
$h_{\text{specific}}$(动作粒度)9.0%≥2 命名目标例程内的步比例(可委托的任务)
$h_{\text{specific}}$(URL 粒度)13.1%URL 粒度的同上
样本内8.6%训练窗口 40 天上的递归率
样本外7.7%最后 11 天的动作步落入已知例程的比例

样本外 7.7% 是论文唯一的预测性声明——前 40 天拟合例程表(4,847 个例程签名),后 11 天保留测试。

关键区分:83.1% → 9.0% 的差距是”键盘重复“和”工作重复“的区别,只有后者是委托候选。作者明确不把"Web 页面重访率 40-58%“当作 h——因为页面重访不等于可委托任务(返回按钮噪音、重新检查 feed、重开标签页)。

5.10 三臂比较(建模)

在 Sonnet 类别列表费率($3/$15 per Mtok,输出比例 0.07)下定价 20 个最频繁例程:

臂描述Token成本节省
A无记忆代理重新推导32.8 Mtok$125.81基线
B注入编译计划后在上下文中使用—$20.9683.3%(6.0×/次)
C确定性本地回放—$74.4640.8%(1.7×)

全舰队诚实天花板:$h(1-1/R_{\text{info}}) \approx 7.7\%$——即所有代理工作流中,至多约 8% 的 token 可以通过这种方式恢复。这是一个比单例程 99% 保守得多的数字。

5.11 指标如何证明论点

至此我们可以把指标和论点的对应关系梳理清楚:

论文主张证明它的指标/实验证据强度
编译产生的记忆可负担86× 压缩,68ms 延迟强(实测)
编译产生的记忆忠实98.4% 准确率,0% 幻觉率,7.3% 时长误差强(实测,对比 LLM 摘要)
确定性是结构属性,不是工程糖三次重新编译字节一致;与 oracle 中位差异 0.9 分钟强
编译抹平模型层级差异Sonnet 4.5 = Opus 4.5 = 98.4%强
首次测量成本参数R=60-343×,h=7.7%(样本外)中(分子是建模上界)

六、效果优势的根源解释

为什么 Activity Frames 在所有指标上都碾压 LLM 摘要和原始行?这不是"凑巧好”,而是结构上必然更好。我们从因果链追溯。

6.1 对比对象:LLM 摘要曾经为什么有效

LLM 摘要之所以曾经被视为可行方案,是因为它确实解决了原始行的一个核心问题:压缩。把 126k token 压成更短的自然语言摘要,看起来既降低了成本,又更适合 LLM 阅读。在短输入、简单查询的场景下,它能工作。

6.2 LLM 摘要的根本局限:模型在循环内

但 LLM 摘要的根本问题是:模型坐在记忆构建循环的内部。这带来了四个不可逾越的障碍:

障碍一:非确定性是结构性的。 LLM 解码本质是概率采样。即使 temperature=0,不同硬件、不同批处理顺序也可能产生不同输出。论文实测:每天重新生成 3 次摘要,每天每个层级都产生三个不同文本。

障碍二:幅度幻觉无法消除。 LLM 是流畅的语言模型,不是计数器。当它说"Cursor 约 7 小时"时,它在做的是"生成看起来合理的自然语言”,而不是"从原始数据精确求和"。论文实测 Sonnet 摘要将 143.9 分钟膨胀为 “~7 hours”(2.9× 膨胀),并编造了不存在的 “6:40 PM–5:26 AM” 夜间会话。更糟的是时长误差均值 135.7%——这不是偶尔出错,是系统性地在幅度上不可靠。

障碍三:长输入可靠性下降。 这就是 “Lost in the Middle” 效应:当关键信息位于长上下文中间时,LLM 的检索准确率呈 U 型下降——开头和结尾好,中间差。这个效应在 Liu et al.(Stanford, TACL 2024)中被系统记录,最近的 ICML 2025 理论工作甚至证明它是因果解码器+残差连接的架构必然属性,而非训练缺陷。把 126k token 的原始行喂给摘要器,关键数据大概率落在"死区"里。

障碍四:每次查询都要付费。 摘要每次生成都消耗 tokens。如果记忆需要更新或重建,每次都要付一次推理费。这违背了"记忆应该是基础设施"的诉求。

6.3 Activity Frames 的根本改变:把模型赶出循环

Activity Frames 做的根本改变不是"用了一个更好的模型"或"用了一个更聪明的 prompt"——它做的 是把模型从记忆构建循环中彻底移除。

机制变化一:测量与推断分离。 所有 Tier-1 字段都是确定性代码对捕获数据的纯函数。求和、归因、分段、类型化——每一步都是可逐行审计的代码。没有任何一步说"我觉得这是 X"。

机制变化二:证据指针让每个断言可验证。 每个帧携带 evidence: {frame_ids: "99871..100147"}——验证者可以重新读取这些原始行并重新计算帧。这是对抗记忆投毒的结构性屏障。

机制变化三:会话化常数的先验声明。 D=90/G=300/F=20 不是在结果上调优的,而是在看到数据前从捕获节拍推导的。这消除了"超参戏法"的可能性。

机制变化四:幅度由算术决定,不由语言生成。 duration_min 是 min(Δt, 90s) 的求和——这是算术,不是生成。所以时长误差是 7.3% 而不是 135.7%。

6.4 因果链:从方法差异到指标提升

把因果链完整建立起来:

方法差异机制变化缓解的瓶颈体现在哪个指标
模型出循环确定性纯函数非确定性字节级一致(vs 摘要三次都不同)
算术代替生成求和代替叙述幅度幻觉时长误差 7.3%(vs 135.7%)
结构化代替扁平帧+类型化页面Lost-in-the-middle98.4% 准确率(vs 66-80%)
证据指针可回溯原始行不可审计记忆投毒门槛提高
先验常数无超参拟合过拟合风险跨日稳定性

6.5 反事实推理:去掉关键设计会怎样

我们可以做几个反事实推理来验证各设计的必要性:

反事实一:如果把实体类型化换成 LLM 标注? 那模型就回到了循环内——非确定性、每次成本、可能虚构类型。而且 81.3% 的 URL 覆盖率会变得不可复现。这正是 FOCAL、MIRIX 等 工作的问题。

反事实二:如果去掉证据指针? 准确率可能不会变(因为编译逻辑不变),但可审计性消失。记忆投毒攻击将无法机械检测。这削弱了论文的信任属性主张。

反事实三:如果去掉闪烁合并? 那么 A→B→A(B ≤ 20s)会被切成三个帧,中间多出大量"过渡帧"。Figure 5 的碎片化分析显示,52% 的亚分钟帧是单快照过渡——闪烁合并正是处理这些过渡的机制。去掉它,下游 QA 会被噪音淹没。

6.6 为什么 Sonnet = Opus:一个深层的结构性发现

Sonnet 4.5 和 Opus 4.5 在编译块上完全不可区分(均 98.4%),这看似意外,实则是结构必然:

当输入是结构化、紧凑、关键信息在边缘的上下文块(~1.5k token),它完全避开了 Lost-in-the-middle 死区。此时模型要做的只是读出已结构化的信息,而非从噪音中推断。这是一个"已对模型友好的输入"——任何足够强的模型都能读对。

但读 LLM 摘要时,模型要做的是"从一个可能已经失真的叙述中猜测真相"——这恰好是更强的模型更擅长的事。所以 Opus 在摘要上追赶了一些(25.2% vs 135.7%),但仍达不到编译块的水平。

**这就是论文的深层洞察:通过把工作从"推理时"挪到"编译时",你可以让中端模型达到尖端模型的表现。**这正好是计算最便宜部署的地方——你不需要部署 Opus 来读 1.5k token 的结构化块。


七、必要知识反推

假设找一个完全没有知识和信息的人去做这个工作,他必须掌握哪些知识?以及这些知识如何在关键节点上融合?

7.1 领域知识层:研究对象的基本运作机制

7.1.1 计算机使用代理的工作循环

不理解 CUA 的"截图→推理→动作"循环,就无法理解方程(2)中分子 $C_{\text{agent}}$ 的三项构成(截图 token + 上下文读取 + 推理输出),也就无法理解为什么 R 的分母(重放)能省掉的是"每步截图"这一大头。

7.1.2 屏幕捕获的实际数据形态

不理解"一天约 2,000 条快照行,每行只是 (t, app, window, url)“这种扁平形态,就无法理解为什么原始行不可直接消费,也无法理解会话化为什么是必要的。

7.1.3 操作系统的可访问性树与输入事件机制

不理解可访问性树(Accessibility Tree)和输入事件机制,就无法设计丰富化层的归因和坐标解析,也无法理解为什么 18.5% 的帧没有结构化目标(无可访问性树)。

7.1.4 中断科学与人类注意力碎片化

不理解"3 分钟工作圈"等中断科学文献,就无法选择合理的会话化常数,也无法在碎片化分析中正确区分"记录器节拍"和"人类切换率”。

7.2 方法论知识层:研究脉络与优化理论

7.2.1 LLM 代理记忆系统的演进谱系

不理解 MemGPT/Mem0/Zep 的"摄取流经代理对话内容"局限,就无法定位"从人类被动活动构建记忆"这个空白。

7.2.2 Lost-in-the-Middle 效应

不理解这个效应,就无法解释为什么 126k token 的原始行喂给模型反而比 1.5k token 的编译块更差——也无法理解为什么编译块的"紧凑+结构化"恰好绕开了这个陷阱。

7.2.3 确定性系统与增量视图维护(IVM)

作者明确引用 DBSP 等增量视图维护理论。“编译成本不随历史增长”(O(|Δ|))这个可复现性认证属性,正是 IVM 的直接应用。不理解 IVM,就无法设计出"后半段均值 0.86× 前半段"的自证机制。

7.2.4 编译器设计哲学

“编译器对输入无观点"这个类比是整个方法的认识论基础。不理解编译器的"纯翻译、不思考"哲学,就会自然地滑回"让 LLM 来摘要"的思路。

7.2.5 流程挖掘与机器人流程挖掘(RPA)

流程挖掘的事件抽象、机器人流程挖掘的 UI 日志例程识别——这些是"从 UI 日志中识别例程"方法论的直接前驱。R 和 h 的定义建立在这套方法之上。

7.3 工程知识层:系统实现与评估设计

7.3.1 SQLite 只读访问与零依赖设计

“编译器以只读方式打开数据库"和"零运行时依赖"不是偶然——它们是"确定性"的工程保障。任何隐式状态都会破坏可复现性。

7.3.2 独立 oracle 的评估设计

不理解为什么需要一个独立的 SQL oracle(使用与编译器不同的不活动超时驻留),就无法理解"98.4% 准确率"这个数字的可信度——oracle 与编译器的方法独立,差异仅 0.9 分钟,这才有意义。

7.3.3 Wilson 置信区间与小样本评估

64 个问题、8 天的评估是小样本。不理解 Wilson 95% CI(91.7–99.7%),就无法正确报告这个 98.4% 的统计意义。

7.3.4 时间留出的预测性验证

样本内 8.6% vs 样本外 7.7% 的对比,是论文唯一的预测性声明。不理解时间留出(temporal holdout)的必要性,就会把样本内数字误当作可泛化的预测。

7.4 知识融合的关键节点

融合节点一:编译器哲学 × 屏幕活动捕获

把"编译器对指令无观点"的哲学,与"屏幕活动已被商品化捕获但未被结构化消费"的现实结合起来,产生了"用确定性代码编译屏幕活动"这个核心洞察。这是论文最关键的创造性节点。

融合节点二:确定性编译 × 记忆信任属性

把"确定性输出"与"代理记忆是攻击面"这两个看似不相关的观察结合,产生了"证据指针+测量/推断边界"的双层信任架构。这是对抗记忆投毒的结构性解。

融合节点三:编译器同时作为供给工具与需求工具

同一个编译器既能供给记忆(供给侧:压缩成上下文块),又能读取需求参数(需求侧:R 和 h)。这个"同一管道双重用途"的洞察,让一篇关于记忆系统的论文同时贡献了成本建模的首批实测参数。


八、论文中可以提取的通用性灵感

8.1 灵感一:把模型从构建循环中赶出去

核心思想:当一个管道的输出需要可复现、可审计、可缓存时,不要在管道内部调用概率模型。让模型只出现在"消费输出"的末端,而非"构建输出"的中间。

论文证据:Activity Frames 的编译路径中无模型,输出字节级一致;而 LLM 摘要每次运行都产生不同文本,且幅度幻觉率高达 135.7%。

推广场景:

  • 数据管道:ETL 过程中不要用 LLM 做数据清洗,改用确定性规则;只在最终查询时让 LLM 解读结果。
  • 代码生成:模板/骨架用确定性代码生成,LLM 只填关键逻辑。
  • 日志分析:异常检测规则用确定性正则/统计,LLM 只做异常根因解释。
  • 知识图谱构建:实体抽取用确定性规则+词典,LLM 只做关系推断的辅助。
  • 合规审计:审计规则必须确定性,LLM 的解释只作为辅助层而非判定层。

8.2 灵感二:测量与推断的严格分层

核心思想:在需要可信度的系统中,把”发生了什么"(测量)和”为什么发生"(推断)严格分层。测量层必须是纯函数,推断层必须可剥离。

论文证据:Tier 1(测量层)和 Tier 2(推断层)的分离,让"剥离推断层后始终留下有效测量文档"成为可能——这是对抗污染的结构性保障。

推广场景:

  • 监控告警系统:原始指标(CPU、延迟、错误率)是测量层;根因推断是推断层。告警必须基于测量,推断只用于展示。
  • 科学实验记录:原始观测数据 vs 理论解释。论文应明确区分两者。
  • 新闻业:事实陈述 vs 评论。可靠的新闻产品把两者清晰分层。
  • 司法证据:物证/书证(测量)vs 证人推断(推断)。推断必须可被剥离至证据核心。
  • 医疗诊断:检验结果(测量)vs 医生解读(推断)。电子病历应保留可剥离结构。

8.3 灵感三:先验声明的常数优于反拟合的超参

核心思想:当系统需要可复现性和可信度时,所有阈值/常数应在看到数据前从第一性原理推导,而非在结果上调优。

论文证据:D=90/G=300/F=20 三个常数"从捕获节拍选择,非基于结果调优"。作者明确强调这不是 fitting。这让跨日稳定性、跨用户可推广性有了结构性基础。

推广场景:

  • 机器学习超参选择:优先从问题结构推导(如图像 kernel 大小从目标特征尺度推导),而非网格搜索。
  • 产品策略阈值:从业务第一性原理设定阈值,而非 A/B 测试反拟合——后者会导致过拟合特定人群。
  • 安全边界:工程安全系数从物理常数推导,而非事故后调整。
  • 算法交易参数:从市场微观结构推导参数,而非历史回测反拟合——回测过拟合是量化交易的头号陷阱。

8.4 灵感四:证据指针作为信任的基础设施

核心思想:任何需要被信任的输出,都应携带指向其原始依据的指针。信任不是被声明的,而是被机械验证的。

论文证据:每个 Activity Frame 携带 evidence: {frame_ids: "99871..100147"}。验证者可重新读取这些原始行并重新计算帧——这让记忆投毒的门槛从"信任声明者"提高到"必须伪造原始数据库"。

推广场景:

  • RAG 系统:每个生成的答案必须携带指向源文档段落的指针,允许用户一键跳转验证。
  • 数据分析报告:每个数字应链接到底层查询和数据源。
  • AI 生成内容:AI 生成的图像/文本应携带 provenance 链,可追溯到训练数据或种子。
  • 学术写作:每个论断应有可点击的引用,引用应指向可验证的原始来源(而非二转手)。
  • 供应链溯源:每个产品应携带原材料来源指针,支持可信审计。

8.5 灵感五:同一管道的供给侧与需求侧双重用途

核心思想:设计良好的管道往往能同时服务多个看似无关的目标。在交付前思考"这个管道还能读取什么"。

论文证据:同一编译器既是记忆的供给工具(把活动编译成上下文块),又是成本的需求工具(读取 R 和 h 两个成本模型参数)。这让一篇关于记忆的论文同时贡献了成本建模的首批实测值。

推广场景:

  • 日志系统:同一日志管道既服务运维监控(供给侧),又服务容量规划(需求侧)。
  • 推荐系统:同一用户行为管道既服务个性化推荐(供给侧),又服务广告主需求预估(需求侧)。
  • 编译器:同一编译器既产出可执行码(供给),又通过优化报告反馈程序瓶颈(需求侧)。
  • 教学评估:同一评估管道既给学生反馈(供给),又给课程设计者需求信号(需求侧)。

8.6 灵感六:让中端模型达到尖端模型表现——把工作前移

核心思想:当你能用结构化、紧凑、关键信息在边缘的输入喂给模型时,中端模型可以达到尖端模型的表现。关键不是用更强的模型,而是把工作从推理时挪到预处理时。

论文证据:Sonnet 4.5 和 Opus 4.5 在编译块上完全不可区分(均 98.4%)。这正是计算最便宜部署的地方——你不需要为读 1.5k token 的结构化块部署尖端模型。

推广场景:

  • 客服系统:用确定性预处理把工单结构化,中端模型即可处理,无需尖端模型。
  • 代码审查:先用 linter/formatter 确定性处理,LLM 只审查核心逻辑——中端模型够用。
  • 文档问答:先把文档结构化为知识图谱,查询时中端模型即可高准确率回答。
  • 搜索排序:先用确定性规则过滤+结构化,再用轻量模型打分,无需大模型做全量排序。

附录:核心术语速查表

术语简称定义
Activity Frame活动帧有界片段,携带应用、站点、时序、输入量和证据指针
Computer-Use AgentCUA通过截图/可访问性树感知、通过模拟输入操作的 LLM 代理
Routine Overhead RatioR无记忆代理重新推导例程的成本 / 确定性重放的成本
Recurrence Rateh动作步中落入已知例程的比例(可委托的上限)
DwellD驻留常数,一帧对相邻快照贡献的活跃时间上限(90s)
Session GapG会话间隙常数,超过则关闭帧(300s)
Flicker MergeF闪烁合并常数,A→B→A 中 B≤此值则合并(20s)
Wilson CI—小样本二项分布的置信区间,比正态近似更保守
Lost-in-the-Middle—LLM 对长上下文中段信息检索准确率 U 型下降的现象

写在最后:这篇论文给我们的最大启示,不是某个具体算法或某个具体数字,而是一种方法论态度——在面对"让 AI 理解人类行为"这种看似天然需要 AI 的任务时,作者选择用"最无趣的确定性代码"来做核心工作,把 AI 只放在末端消费。这种"把无趣的事做得无可挑剔"的工程态度,在当下"万物皆 LLM"的潮流中,是一剂冷静的解毒剂。论文的 Schema、编译规则和实现全部开源——作者希望格式比参考代码寿命更长,“期望捕获系统、记忆层和代理收敛于对人实际做了什么的共享、诚实表示”。