Runtime-Independent Persistent Agents: Preserving Identity, Memory, and Code Across Models, Harnesses, and Servers
Zhenyu Zhao, Roy Zhao
Independent Researcher / Paul G. Allen School of Computer Science & Engineering, University of Washington
cs.SE, cs.AI
2026-09-01
华盛顿大学与独立研究者用 Enoch 把身份记忆代码做成可迁移基板,833 项核心测试通过,换模型与主机可续但不证明行为不变。
现在说「一个 Agent」,多半指当前那套模型加 harness。这个定义够用一次对话,不够用一辈子。个人助手可以从 Telegram 迁到 Slack,从笔记本迁到服务器,中途换推理模型,再换编排框架,用户仍然当它是同一个。持久记忆、可恢复会话、provider 适配器和版本化代码都已经存在,但这些零件没有合在一起回答:两次执行算不算同一个 Agent。
换模型是迁移还是死亡?同一份记忆拷到两台机器,谁才是正身?聊天会话重置,算不算新建了一个?这篇把这些问题当成系统边界和生命周期来写,不是 prompt 工程。
持久 Agent 被定义成连续性基板 P = (I, M, B)。I 是架构身份记录,M 是私有耐久记忆和相关工作流状态,B 是版本化软件体:代码、prompt、工具、策略、测试、provider 契约都在这里。模型、harness、主机组成可替换执行基板 E = (R, H, D)。聊天账号、API、邮件、UI 是可替换交互面 S。一次部署执行是 A = P ▹ (E, S)。换 E 或 S 叫迁移,不叫新建,前提是授权协议保住可追溯谱系,并在受治理的部署边界内移交续行权。
连续性不是字节不变。记忆可以增长,代码可以走评审后的版本,身份也可以按治理规则改。纯运行时迁移要求身份版本不变、记忆谱系可审计地延续、软件体版本不变。UUID 不够:目录拷到两台服务器,两边都有同一个标识符,没有权威租约或 fencing epoch,就不能两边都当唯一续行。
授权迁移走六步:静默并栅栏旧执行、检查点、校验、绑定目标 provider、再水化、验证后恢复。源端在目标验证成功前一直是权威;失败则回滚检查点。目标拿到续行权之后,源端即使重新连上也保持被栅栏。协议钉六条不变量:身份谱系、记忆祖先、软件体版本、同一边界内最多一个合作执行持有续行权、能力变化必须显式、执行与交互面标签不得覆盖已安装身份。
参考实现是开源软件体 Enoch,不是某个已安装身份。body.yaml 描述软件体,self.json 存已安装身份,两者每次会话分开加载。应用核心依赖五类 provider:Chat(Telegram、Slack)、Runtime(快照里只有 Codex 作为捆绑的实推理运行时)、VCS(Git)、Review(GitHub 与本地)、Service(launchd、systemd)。
证据冻结在 2026 年 8 月 31 日的公开提交 c8013ed。干净环境用 CPython 3.12.13 跑过 833 项核心测试,另有 92 项 provider 与库测试与核心套件分开执行。
| 主张 | 证据强度 |
| 身份与软件体分离 | 已演示:self.json 与 body.yaml 独立校验 |
| 状态迁移与回滚 | 已演示:备份、幂等、manifest 最后提交、失败还原 |
| 聊天面替换 | 两个参考实现:Telegram、Slack |
| 主机服务替换 | 两个参考实现:launchd、systemd |
| 推理运行时替换 | 仅契约级:可选 registry、假运行时切换 |
| 权威移交与过期执行栅栏 | 已演示:daemon epoch、过期 token 拒绝 |
| 单轴替换 | 运维观察:换过推理模型版本、交互面、主机 |
作者自己把边界写清楚了:这支撑机械可替换性和授权系统连续性,不支撑行为不变、任务表现相等,也没有做全组合迁移评测。第 6 节给了完整评测协议,这篇没有跑。
做长期个人 Agent 的人,迟早会撞上「换模型之后还是不是它」。这篇给了一个可执行的切法:把「此刻谁在产生行为」和「纵向上谁还是同一个」拆开。前者可以变,后者走检查点、谱系和唯一续行权。
对工程的直接含义是:聊天记录不是脑子;会话连续性不是 Agent 连续性。新 harness 会话是迁移后的预期状态,上下文要从身份、记忆、软件体和耐久任务记录重建。拷贝记忆不等于拷贝权威。
这是一篇架构论文加一份参考实现,不是把「换 Claude 成 GPT 之后人设还在」测出来的实验。读完能拿走的是边界定义和迁移事务语义,不是一份行为保真度数字。
作者承认:架构来自一条年轻的开源谱系;快照里还没有第二个捆绑的实推理 harness;没有受控的全轴矩阵,也没有测行为连续性、停机时间、成本和操作负担。provider 一致性测试能抓接口和生命周期违规,不能证明外部实现语义等价或安全。
权威不变量只约束共享或遵守权威存储的合作执行。带着未撤销凭证的游离拷贝,协议管不住。更强的执行需要凭证轮换、provider 侧租约,或外部权威服务。单权威协议把多体并发、分叉记忆合并、不可逆外部效应之后的恢复都留给后续。
单轴替换的证据是「运维观察」,不是对照实验。833 项测试证明的是机制可运行,不是换模型后它还认得你。