← 返回 2026-08-07

活动帧:面向智能体记忆与回放的确定性屏幕活动编译 Activity Frames: Deterministic Screen-Activity Compilation for Agent Memory and Replay

Nossa Iyamu 📅 2026-08-06 👍 24 2026-08-11 18:30
MCP 例程回放 屏幕活动捕获 情景记忆 智能体成本 智能体记忆 确定性编译 计算机使用智能体

用确定性零模型流水线把屏幕活动编译成可审计、可缓存、零成本的智能体情景记忆。

前置知识

情景记忆(Episodic Memory)

心理学中指对在特定时间与地点发生的具体事件的记忆,与「发生了什么、何时何地」绑定。在 LLM 智能体语境下,它指记录智能体(或其用户)经历过、带时间锚点的体验流,区别于「用户对模型说了什么」的对话记忆。论文引用的 Position 工作认为,情景记忆是长程 LLM 智能体缺失的关键拼图。

本文的核心论点是当前智能体记忆只记对话不记行为,而行为情景记忆正是缺失的一环,整篇论文都在构造这种记忆。

计算机使用智能体(Computer-use Agent)

指能操作桌面/GUI 的 LLM 智能体,通常通过截图、可访问性树(accessibility tree)、OCR 或视觉感知观察屏幕,再发出点击/键盘等操作。这类智能体在每一步都要消耗一次完整推理(一张截图 + 上下文读取 + 推理输出),代价高昂,论文即以此为成本基线。

论文的动机正是计算机使用智能体为重复例程付出全价推理;理解这种「每步全价」的代价结构,才能理解 Routine Overhead Ratio 的意义。

确定性编译(Deterministic Compilation)

借鉴传统编译器把指令转成结构化产物而不夹带「观点」的思路,本文用纯确定性代码(无任何学习组件)把屏幕快照流编译成「活动帧」。相同输入永远产生字节级相同的输出,因此记忆可缓存、可 diff、可机械化审计,与让 LLM 来总结形成根本对比。

确定性是本文的灵魂,它带来零模型成本、字节级可复现、可审计等全部核心优势,也是与 MIRIX、FOCAL 等「模型在环」同类工作的本质区别。

会话化与会话间隙(Sessionization & Session Gap)

源自 Web 挖掘,指用不活动超时把连续事件流切成一个个会话。本文设 300 秒(5 分钟)的会话间隙阈值:相邻帧间隔超过 300 秒就关闭当前帧并标记为覆盖缺口(gap),不在缺口之间累计驻留时间。配合驻留信贷 90 秒上限与抖动合并 20 秒阈值一起决定帧边界。

会话化是编译流水线的第一步,理解三个常数(D=90, G=300, F=20)如何决定帧边界,才能理解时间统计与碎片化分析。

驻留时间与心跳(Dwell Time & Heartbeat)

驻留指一个上下文在前台显示、屏幕唤醒状态下停留的时长。捕获引擎在约 30 秒无输入时仍发「心跳」行以保持流活跃,使阅读、观看等无输入活动也能被计入。单帧贡献的活跃时间取 $\min(\Delta t, 90\,\text{s})$,90 秒上限约等于三个心跳周期。本语料 19% 的快照行是心跳行。

所有活跃分钟数都基于驻留而非交互时间,这是定量结果与评测口径的基础;同时它也是论文诚实承认的局限——驻留≠注意力。

Agent 成本模型与 R、h 参数

现有成本框架(Cost-of-Pass、AI Agents That Matter、Holistic Agent Leaderboard 等)给出每任务摊销成本 $E[\$/\text{task}]=(1-hq)C_{\text{miss}}^p+hq(C_{\text{hit}}+C_{\text{verify}})+h(1-q)C_{\text{wrong}}+C_{\text{write}}N$,其中 $h$ 是例程复发率、$q$ 是命中正确匹配率。但无人测过「预委托被动语料」上的 $h$。$R$ 是 Routine Overhead Ratio,衡量智能体重复推导已做过例程的过度开销。

论文下半部分把编译器变成「需求侧成本仪器」,首次测出 $R$ 与 $h$ 这两个所有成本模型都假设却无人测过的参数。

研究动机

现有智能体的记忆只记录「用户对模型说了什么」(对话记忆),而记录不了「用户实际做了什么」(行为情景记忆)。一个被问「今天该优先做什么」的 LLM 智能体,看不到用户上午在某 PR 里来回、午饭后切换了 40 次上下文、16:40 放弃了一封草稿邮件。后果是计算机使用智能体为重复推导用户已经执行过的例程而支付完整的边界推理成本。原始素材其实早已存在——自动时间追踪器、Microsoft Recall、OpenAI Chronicle 都在做持续屏幕捕获——但「捕获是商品,消费不是」。一天的捕获产生约两千条快照行,每条只断言「在时刻 $t$,应用 $a$ 显示窗口 $w$ 于 URL $u$」。两种主流消费策略各有硬伤:原始搜索交给智能体一个扁平结果列表,把会话化、去重、时长核算都甩给推理时模型,单日成本高达 126,812 token;LLM 总结压缩比好,却引入总结器本身的弱点——单次运行成本、非确定性、长输入上可靠性下降,以及凭空编造从未发生的活动。两者都无法产生可缓存、可审计、可信任的记忆。

本文的目标是本文的目标是为智能体提供一种「缺失的中间层」——确定性编译:像编译器把指令转成结构化产物而不夹带观点那样,把屏幕快照流转成「活动帧」。每个活动帧是一个有界片段,携带应用与站点、起止时间、基于驻留的活跃时长、带类型的页面引用、输入量,以及指回原始行的证据指针。整个过程无任何模型参与,同一数据库与窗口算法永远产生同一份文档,于是情景记忆变得可免费重建、可安全缓存、可机械化审计。此外,同一编译器还充当「需求侧成本仪器」,从被动捕获的、预委托的人类活动中读出 Agent 成本模型一直假设却从未测过的两个参数:Routine Overhead Ratio $R$ 与例程复发率 $h$,从而为技能归纳、轨迹采集渠道、成本排行榜各自预设却无人提供的输入补上缺口。

与已有工作不同的是,独特切入角度在于「确定性 + 测量/推断的硬边界」。所有 2025–2026 同类工作(MIRIX、FOCAL、ProAgentBench、SummAct、OmniQuery)都把模型放在记忆构造环内,于是记忆继承单次成本、非确定性和可能的幻觉片段。活动帧是确定性的对照面:编译路径无模型、输出字节级一致,并把解释「隔离」在第二层——第二层只接受带命名空间、带置信度标签、并链接到支持其测量证据的推断标签;剥离第二层永远留下一份合法的纯测量文档。更关键的是,技能归纳和轨迹采集渠道都只读「供给侧」(智能体自己执行时做了什么),只能在能成功的任务上、以全价观察到例程,对认证态、私有态例程系统性欠覆盖;而本文从「需求侧」被动捕获的人类真实工作出发,先于委托就测出 $h$,避开了幸存者偏差。这是首个确定性桌面实现、被情景记忆倡导者称为缺失的「采集层」。

核心方法

整体思路是「捕获是商品,消费不是」——既然原始快照流已存在,就缺一个确定性的中间层把它变成智能体能消费的记忆。直觉上:与其让昂贵的 LLM 在推理时去做会话化、去重、时长核算这些既机械又不可靠的活,不如用纯代码离线一次性算好,把结果做成一份小到能塞进每次系统提示的结构化文档。技术路线分三段:(1) 捕获层,事件驱动引擎在交互/屏幕变化时存快照行,约 30 秒无输入时发心跳行,每显示器独立记录,存入本地 SQLite;(2) 编译层,零运行时依赖、只读打开数据库,对每个显示器的流做一遍会话化 + 抖动合并,再做富化(修复陈旧归属、匿名点击坐标解析、键盘布局修复)和 URL 实体类型化,最后导出 JSON/YAML/Markdown/紧凑上下文块;(3) 消费层,手写的 MCP 服务器把六类工具暴露给任意 MCP 智能体。整条链路除了捕获时设备端 OCR 读屏文外,没有任何学习组件参与记忆构造,OCR 输出也从不离开本机。

核心创新点是两层 schema 与「测量/推断硬边界」,以及与之配套的全套确定性编译规则。两层 schema 强制把「代码能从捕获数据确定性推导出的测量事实」与「模型推断的标签」彻底分开:第一层每个字段都是纯代码可算的,没有意图标签(因为代码观察不到意图);第二层是可选的推断扩展,必须满足三条强制规则——放在命名空间的 inferred 块里、带 high/medium/speculative 置信度标签、并指名支撑它的测量字段或原始行。消费者随时可以剥掉第二层,得到一份纯测量文档。这套边界让被投毒或粗心的第二层工具无法把解释伪装成观察。配合的编译规则(驻留信贷、会话间隙、抖动合并、最近帧归属、坐标点击解析、总 URL 实体类型化)全部无学习组件。本质区别在于:同类工作把模型放进环里、用模型的不确定性去承担记忆的可靠性;本文把模型完全踢出编译路径,用代码的确定性把可靠性变成可证书化的属性,再把推断关进有边界的隔离区。

方法步骤详情

编译对查询窗口产出含覆盖段、帧列表、blind_spots 与出处的文档(Algorithm 1):(1) 会话化——对每个显示器流按时间排序的快照做一遍扫描;当前帧为空或键 $k_i=(app,site)$ 变化时开新段;每帧累加 $active\mathrel{+}=\min(\Delta t,90)$;若 $\Delta t>300$ 则关闭当前帧并标记候选覆盖缺口。(2) 抖动合并——第二遍扫描 $A\to B\to A$:若 $B$ 墙钟 $\le 20$ 秒且其间无会话断裂,则把 $A'$ 并入 $A$ 并把 $B$ 记为 $A$ 的中断,$B$ 时间不计入 $A$ 活跃时长。(3) 富化——修复三类缺陷:二分查找把事件重新归属到最近快照;匿名点击按精确包含→$\pm 40$ px 容差环→屏幕区域三级回退并标注精确度;用算子翻译表修复 QWERTY 误码(默认恒等、绝不推断)。(4) 实体类型化——纯路径解析按层(专用站点→搜索参数→子域→兜底),保证「永不丢数据」。(5) 导出 JSON/YAML/Markdown/上下文块,代表日 68 ms。

技术新颖性

技术新颖性四方面。第一,首个确定性桌面版的情景记忆「采集层」:桌面活动、GUI 智能体、记忆信任三领域此前各自推进,但无工作用零模型纯代码把捕获流转成智能体可消费的带类型记忆;方法谱系可溯至 lifelogging 阈值分割、Web 会话化、过程挖掘、robotic process mining 与 data-to-text 忠实性传统,但那些管线终点是给人看的散文或过程模型,本文终点是给智能体用的带类型记忆。第二,把硬边界做成结构性属性:每帧带 evidence 指针指回原始行,盲点与覆盖缺口被强制列为文档元素,消费者须把未覆盖时间当「未知」而非「不活跃」。第三,同一编译器既当记忆构造器又当「需求侧成本仪器」——从被动捕获的人类活动(而非幸存者偏差的 rollout)测出 $R$ 和 $h$,这是成本模型一直假设却无人测过的输入。第四,可证书化的可复现:certify_ivm.py 在 51 活跃日检三条件(字节级一致、全量重建等于增量、编译成本不随历史增长即 $O(|\Delta|)$)返回 pass,把可复现从「希望的行为」升级成「可测属性」。

The two-tier architecture
Figure 1: The two-tier architecture
A single activity frame (YAML, entities anonymized)
Figure 2: A single activity frame (YAML, entities anonymized)
Segmentation on one timeline
Figure 3: Segmentation on one timeline

实验结果

在作者本人 61 自然日(46 活跃日)、109,735 快照行、54 应用的语料上评测。(1) Token 成本:代表日原始行 JSON 126,812 token;schema-v1 文档 34,815 token(3.6×);紧凑上下文块仅 1,469 token,即 86× 压缩,可塞进每次系统提示且零模型调用。(2) 下游 QA:8 天 64 题由独立 SQL 预言机(用与编译器不同的 60 秒驻留上限、刻意避免循环)出题,分 Claude Sonnet 4.5 与 Opus 4.5 两档。活动帧两档都得 98.4% 准确率(Wilson 95% CI 91.7–99.7%)、时长误差 7.3%;原始行 82.1%/91.1%、误差 39.7%/25.7%;LLM 总结仅 66.1%/80.4%、误差高达 135.7%/25.2%。差距是量级而非类别:探针上 100% 零幻觉,总结输在量级(如把 Cursor 实测 144 分钟夸成「约 7 小时」);中端模型读活动帧即追平边界模型。(3) 延迟与可复现:全日编译中位 68 ms,两次独立编译除时间戳外字节级一致。

Live capture corpus used throughout Section 6
Table 2: Live capture corpus used throughout Section 6
Downstream QA across two model tiers (8 days, 64 ground-truth questions, graded against the independent SQL oracle)
Table 3: Downstream QA across two model tiers (8 days, 64 ground-truth questions, graded against the independent SQL oracle)
The denominator ladder for R = Cagent/Creplay (numerator modeled; denominators measured with cl100k_base)
Table 4: The denominator ladder for R = Cagent/Creplay (numerator modeled; denominators measured with cl100k_base)
Token cost of one full day under three representations (cl100k_base)
Figure 4: Token cost of one full day under three representations (cl100k_base)
Active-duration distribution of all 17,514 frames across 43 days
Figure 5: Active-duration distribution of all 17,514 frames across 43 days
查看结构化数据
任务指标本文基线提升
全日记忆表示的 token 成本 token 数(cl100k_base 编码) 1,469(紧凑上下文块)/ 34,815(schema-v1 JSON),零模型调用 126,812(原始行 JSON 序列化) 紧凑块 86× 压缩、可塞进每次系统提示、零推理成本
下游日级 QA(8 天 64 题,对独立 SQL 预言机) 准确率 / 主导应用活跃时长平均绝对误差 98.4% / 7.3%(Sonnet 与 Opus 两档同分) 原始行 Sonnet 82.1%·误差 39.7%、Opus 91.1%·25.7%;LLM 总结 Sonnet 66.1%·135.7%、Opus 80.4%·25.2% 准确率最高、误差最低,且中端模型读活动帧追平边界模型;最忙日两基线上下文溢出不可行,仅活动帧能报全 8 天
全日端到端编译延迟 毫秒(消费级 Apple Silicon 笔记本,5 次中位) 68 ms(范围 65–72 ms) 无直接基线(对比点是 LLM 总结的每次运行成本与非确定性) 情景记忆可在每次查询时免费重建;零模型参与使延迟可忽略
例程重推导过度开销 R Routine Overhead Ratio $R=C_{agent}/C_{replay}$ $R_{inject}=60\times$(操作档,带守卫技能计划);$R_{info}=343\times$(信息上限,最小脚本);URL 档 198× 1×(每次都从截图重新推导) 命中时确定性本地回放近乎免费;唯一一次活体两步回放执行零 model token
桌面例程复发率 h 可委托步数占全部动作步数的比例 $h_{specific}=9.0%$(样本内)、$7.7%$(时间留出、样本外,论文唯一一条预测性主张) $h_{raw}=83.1%$(原始 n-gram,含无意义键盘重复,被特异性规则剔除) 全队 token 上限 $h(1-1/R_{info})\approx 8%$,给出诚实的可委托比例而非夸大的 40–58% 网页重访率

局限与改进

作者坦承的局限加上我的观察主要有这些。第一,全部为单用户语料(一名专业人士、一台机器、61 天),节奏、碎片化、实体覆盖随角色平台而变,多用户复制是明确未来工作而非本文主张。第二,参考实现只读一种捕获引擎的数据库布局,schema 引擎无关但每个新源需写适配器。第三,测量层在意图上结构性沉默——报「两次 profile 浏览 + 一次 people_search」却永远不报「在物色人选」。第四,屏幕在场≠注意力:以心跳续命的无输入段贡献 45% 活跃时间、无中断心跳可达 42 分钟,90 秒上限只约束捕获停顿、不约束「在场但不在」误差。第五,多显示器反向放大误差——每显示器独立计流,双显示器分钟在每应用账本里被计两次(本语料 27%)。第六,下游基准只评两模型档、每档一次回答、温度种子未固定,非确定基线随重跑变化。第七,下半部分分子与三臂美元是「建模」非「实付」:唯一活体执行(两步例程)只确认回放侧零 token,把模型留环只用计划做上下文只省约 14%,远低于建模 83.3%。第八,OCR 是模型,确定性只前向到存储文本。第九,类型化约 82% 准确,误标传染匹配精度 $q<1$。

独立分析的弱点

独立分析的弱点及改进方向。第一,驻留≠注意力的根本缺陷:90 秒上限挡不住「用户已离座但屏幕仍亮」,45% 活跃时间来自无输入心跳段。改进方向是引入交互门控——用每帧报告的输入量派生「交互活跃分钟」,或让 tier-2 工具标注 presence-only 段并带置信度,仍守硬边界。第二,多显示器双计:27% 分钟有两个显示器同时活跃被计两次,应提供「每用户去重活跃分钟」视图,按显示器并集而非简单相加。第三,意图结构性缺失:测量层只报行为不报意图,可设计受信任的确定性「意图提示词模板」(如基于页面 kind 的弱规则)把候选意图挂到 tier-2 仍守硬边界。第四,类型化准确率约 82% 传染 $q$:误标会错配或漏配例程,应对类型化做确定性单测集、把每站点解析器做成可贡献审查的纯函数、报告每 kind 的 $q$ 贡献。第五,参考实现只读一种捕获引擎:应抽象「捕获源适配器」接口接 ActivityWatch、Recall、Chronicle。第六,确定性只前向到 OCR 文本:可把「OCR 置信度与版本」进 provenance,让消费者区分「代码确定」与「OCR 可能变」。

未来方向

作者明确提出的未来工作:(1) 多用户复制与公开数据集第二受试者——$R$ 和 $h$ 是该用户工作的属性而非总体,需更多人和平台验证;(2) 活体三臂计费——把当前「建模」的美元节省用真实 usage JSON 落地,因为唯一活体对比(把模型留环、只用计划做上下文)只省约 14%,远低于建模 83.3%;(3) 补上 click 级 grounding 验证;(4) 把下游基准扩展到 GPT、Gemini 等模型族并加置信区间与多次回答。基于成果可延伸:把确定性编译从桌面推广到移动端捕获;把活动帧作为「技能归纳」预语料,为 Agent Workflow Memory 这类「从 rollout 学技能」的方法补上认证态、私有态例程供给盲区;把 evidence 指针 + 测量/推断边界与 membership-inference 防御结合做可证明的记忆完整性;把 $R$ 和 $h$ 接进 Holistic Agent Leaderboard 经济学模型,给排行榜补一列「预委托复发率」;探索 DBSP 式自动增量视图维护把「$O(|\Delta|)$ 编译」升级为持续维护保证。

复现评估

复现评估很高。代码以 MIT 协议开源(github.com/nossa-y/activity-frames),含三部分:按需配给的捕获引擎(记录应用聚焦/标题/URL/可访问性树/输入到本地 SQLite,默认关音频)、零运行时依赖的编译器(只读打开数据库,导出 JSON/YAML/Markdown/上下文块)、手写的零依赖 MCP 服务器(stdio JSON-RPC,暴露六个工具)。还发布模式检测器、回放执行器 compile_replay.py、证书化测试 certify_ivm.py(51 活跃日检三条件返回 pass)。下游评测的预言机、出题器、评分器全套放出,可对任意语料和模型重跑。算力门槛极低:全日编译 68 ms、计划编译 0.5 ms、CPU-only,单台消费级笔记本即可。语料本身(9.5 GB、约 0.19 GB/活跃日)是作者隐私不便公开,但已「冻结」——记录器迁库后所有数字可对不可变文件复现,并分两冻结点(2026-07-10 系统、2026-07-22 开销)标注。主要不确定项是单用户语料无法由他人独立复现结论,且 OCR 是模型使确定性止于存储文本。