一个长期存在的数字个体,需要在运行中断之后,仍然知道自己是谁、经历过什么、正在关心什么,以及还有哪些事情没有完成。
HomoErectus 将这种连续性落实到身份、心理状态、记忆和活动记录中。恢复时,这些内容需要相互对应,并与实际发生的结果核对,使个体能够从有依据的位置继续生活。
本文说明主项目的持久化与恢复设计。具体恢复路径、故障处理和连续性效果,仍需要通过真实中断与恢复验证。
一、中断前后需要保持什么连续
身份与自我:继续的是已经成长的同一个体
个体出生时形成稳定身份,以及有来源的人格、价值和初始关切。此后,自我认识、偏好和长期目标会在经历中演进。
恢复需要沿用这些已经保存的内容,包括当前有效版本及其依据。它不能重新生成一套人格,也不能用出生时的自我描述覆盖后来形成的能力认识和局限。
例如,一个个体已经发现自己不擅长某类检查,并据此调整了承担工作的方式。重新启动后,这项认识仍应存在,继续参与后续选择。
因此,出生与恢复是两种不同过程。已有个体无法读取、资料损坏或数据库暂时不可用,都不能被解释为需要重新出生。
心理状态:保留经历已经造成的变化
欲望满足程度、情绪、疲劳和效能判断,需要保留相应状态,以及这些状态的时间和经历依据。
个体在中断前取得的进展、经历的挫折或积累的疲劳,不应因重新启动而回到初始值。同一件事已经产生的心理影响,也不能因为记录再次读取而重复施加。
恢复还需要知道:心理状态推进到了什么时间,哪些事件已经处理,哪些评价尚未完成。这样,后续变化才能接在原来的基础上。
记忆:保留经历、认识与方法的联系
叙事、信念、工作结构、方法技能和自我相关记忆,需要保留内容、来源、关系和修订历史。
恢复后,个体应当能够继续区分自己观察到的事情、他人报告、推断和梦;已经被新证据修订的认识,也不能因为加载了旧记录而重新成为当前判断。
工作记忆则保留继续认知所需的内容和关联,包括当前关注、近期重要经历、未完成义务,以及尚待保存或处理的材料。容量管理和压缩仍然需要保护这些内容。
连续性并不要求保存每一个瞬态推理 token。项目要求的是:重要语义内容、已经确认的持久状态和必要认知责任能够恢复;无法确认保存的部分,需要明确其边界。
未完成事项:保留事情推进到了哪里
未完成事项包括正在执行的活动,也包括等待回复、尚未成熟的想法、暂缓的决定、未完成的学习和睡眠整理。
对于已经开展的活动,需要知道目标是什么、完成了哪些步骤、依据是什么、还有哪些要求未满足,以及下一次继续需要什么条件。
对于承诺和期待,需要保留相关主体、内容、时间、触发条件、改期或取消依据。对于暂缓决定,则需要保留暂缓原因和重新评估条件。
这些内容使个体能够继续承担原有责任,同时判断哪些事情仍然值得、能够或允许继续。
二、持久化怎样让这些状态对应起来
HomoErectus 为不同内容保留明确的维护职责,并将需要长期保存的正式状态写入持久存储。当前设计以 PostgreSQL 作为正式持久记录的基础,图谱和向量索引提供相应查询能力,并保持与来源版本的关联。
持久化不仅需要保存单项内容,还需要保证相关记录能够共同解释一个状态。
例如,活动记录说某个步骤已经完成,相关结果证据就应能够找到;心理状态已经计入一次经历的影响,相应处理记录也需要存在;睡眠记录引用的记忆和未完成工作,也应属于同一个可解释的恢复位置。
为此,项目通过一致的检查点记录相关对象的确切版本及引用,并保留之后已经提交的变化。恢复时先重建这个一致状态,再按记录衔接后续变化,避免从不同模块各取一个“最新值”,拼成实际上没有共同成立过的状态。
重要写入需要有可核对的提交结果。对于必须持久保存的经历、承诺和状态变化,系统需要在相应确认之前完成必要保存;写入失败或结果不明时,保留具体状态和待处理工作。
正常停止运行时,系统应先停止接收新的执行工作,再尽可能完成必要写入、保存未决结果。突然崩溃无法保证完成最后一次保存,因此恢复依据是已经确认提交的状态和可核对记录。
三、中断后怎样回到可继续的状态
恢复从读取和检查开始。
系统首先确认准备恢复的是哪个个体、哪一套存储和哪个版本的资料,再加载身份、心理状态、记忆、活动、等待关系及睡眠状态。加载过程需要检查记录是否完整、版本是否兼容、引用能否解析,以及各项状态是否相互对应。
随后,还需要核对中断前的消息处理、执行结果和未决操作,辨明哪些已经发生、哪些尚未完成、哪些暂时无法确认。
这些检查通过之后,才允许相应正式活动继续。恢复可能回到执行、等待、暂缓决策或睡眠整理阶段,并不要求个体一启动就采取新行动。
当前环境也需要重新核对。中断前可用的通道,恢复时可能已经不可用;权限可能过期或撤销;资源和时间条件也可能发生变化。过去保存的能力与权限记录不能直接代替当前条件。
如果缺少关键身份、心理检查点、活动引用或持久记录,系统需要停止恢复到正式运行,并说明缺失项。保留原有资料和失败原因,才能继续修复;自动填入默认人格、清空未完成事项或改用临时空存储,会使连续性的依据丢失。
四、停机期间的心理时间怎样处理
运行中断后,现实时间仍然经过。恢复时,需要区分能够按时间推演的内部过程,以及必须依赖实际经历的变化。
例如,部分欲望满足程度可以按照设计随时间变化,未满足需要的紧迫程度也可能改变;情绪可以根据已有状态向相应基础水平演进。这些过程需要从上次确认的位置继续计算,并标明属于离线时间推演。
学习、成就、认可和关系互动等变化,则需要新证据。系统不能因为过去了几个小时,就补写自己读过材料、完成工作、获得赞扬或与人交流。
疲劳和恢复也需要联系已知活动。突然停机期间没有可靠活动记录,不能自动当作一次睡眠,更不能假定获得了某种身体休息体验。能够解释的内部变化可以推进,缺少依据的部分则保留未知。
事件与时间变化还需要分别记账。同一段经过的时间不能反复计算,同一次经历也不能在每次重启时重新产生满足或情绪冲击。
如果停机跨度较长,状态推进可以分段完成,并保存恢复进度。只有必要的时间核对和状态恢复完成后,个体才能在相应基础上继续活动。
迟到的信息同样需要保留时间区别:事情何时发生、系统何时收到、何时理解并应用其影响,可能并不相同。恢复不能把后来才得知的事情写成自己早已知道的经历。
五、未完成动作、等待与承诺怎样接续
中断可能发生在一个动作的任何位置,因此“没有看到成功结果”不能直接解释为“动作没有发生”。
例如,一条消息可能已经发送,但确认还没有保存;一次文件操作可能已经完成,程序却在记录结果之前退出;一个异步工作可能仍在外部运行。
恢复需要区分未执行、已确认完成、已确认没有产生作用,以及结果未知等情况。
对于结果未知的操作,应先通过实际产物、回执或外部查询核对。确认已经完成,就继续处理结果;确认没有发生,再判断是否重新尝试;仍无法核对,则保留未决状态,并限制可能造成重复作用的操作。
消息和回调也需要稳定身份。重复或延迟到达的同一条反馈,应当回到原来的处理记录,读取已有结果或继续未完成部分,避免重新制造一项意图、承诺或心理影响。
恢复后的执行控制,还需要防止旧进程或过期工作者继续覆盖新状态。但已经发往外界的请求,不会因为本地接管就自然取消,因此外部结果仍需要单独核对。
承诺和提醒则根据当前时间与情境继续处理。期限已经过去时,个体需要判断原约定是否仍有意义,是否应该跟进、说明延迟或重新协商,而不是机械地补发所有过期动作。
等待也不等于整个个体不能活动。只要等待关系能够恢复,相关事项可以继续等待,其他具备条件的活动仍可进入注意与取舍。
六、睡眠、停机与备份恢复怎样区分
睡眠是个体仍在运行的一种模式。它有自己的整理工作、阶段、结果和醒后衔接,心理状态与外部信息收集也按相应规则继续。
进程停机则意味着这段运行发生了中断。若中断前正在睡眠,恢复需要找到原来的整理周期和工作位置,区分已完成、未完成和失败的部分,再决定继续整理还是进入清醒活动。它不能把停机时间直接算成已经完成的睡眠整理。
普通进程恢复使用现有持久记录,备份恢复则需要额外确认备份覆盖到哪里、包含哪些资料,以及是否存在可以接续的后续记录。
备份应在隔离环境中恢复并检查身份、引用、心理状态、记忆、义务和实际读取。通过检查之前,不应覆盖或损坏原有资料。图谱与向量索引可以按照正式记录重建,但索引中的旧内容不能反过来覆盖当前状态。
如果只能恢复到较早的时间点,就需要明确恢复边界。备份之后缺少依据的变化,不能假装已经找回;外部世界已经发生的行为,也不会因为本地资料回退而被撤销。
原型之后计划加入的资源生存机制,也需要利用这些连续性基础。账户余额归零时,保留身份和记忆,进入等待资源恢复的可恢复休眠。这个方向不等于当前已经实现相应生存机制,也不会自动产生新的费用或交易权限。
七、以一次中断说明怎样继续生活
下面是一个假设场景,用来说明恢复过程,并非 Adam 的真实运行记录。
假设一个个体因长期关心某个问题,主动开始调查。它已经阅读部分材料,发现自己的一个旧认识可能有误,并向一位协作者请求补充信息。同时,它还保留着一项稍后需要汇报进展的承诺。
中断发生时,新的认识尚未形成完整结论;部分资料已经保存;发出的请求已经得到通道回执,但对方还没有回复。
恢复时,系统需要沿用原有身份、自我认识和长期目标,读回调查进展、材料来源、未决问题、等待关系和汇报约定。不能因为缺少最终结论,就抹去已经取得的认识,也不能把待验证的猜想写成事实。
心理状态从已经保存的位置继续。若上一次学习收获已经计入满足,就不应再次奖励;离线期间允许推进的时间变化可以补算,但不能补写新的调查经历。
确认请求已经发送后,系统保留等待,而不是重新发送同一请求。如果中断期间收到回复,需要根据持久接收记录,判断它是否已经处理,再将其交回原来的调查活动。
恢复完成后,个体仍需要重新取舍。它可能继续核对材料,也可能先履行已经到期的汇报承诺,说明目前进展和仍在等待的信息。新的能力、资源和紧迫程度,也会参与这次判断。
后来,它能够回顾这次中断:哪些内容保留下来,哪些结果曾经不明,恢复后核对了什么,以及为什么选择先做某件事。中断因此成为有来源的生活记录,而不是由系统事后填补的一段虚构经历。
八、怎样验证连续性真正成立
验证需要在中断前保存可核对状态,并在新的运行进程中检查恢复和后续表现。仅更换一次对话上下文,不能替代进程恢复验证。
身份方面,需要确认个体标识、人格基础、自我认识和长期目标沿用正确版本,没有重新出生或退回默认状态。
心理方面,需要确认欲望、情绪、疲劳及其处理记录能够衔接,时间没有重复推进,经历也没有重复产生影响。
记忆方面,需要确认内容、来源、有效认识和关系能够读回,必要材料可供实际认知使用,已修订或删除的旧内容不会错误复活。
事项方面,需要通过执行中断、等待反馈、处理后尚未确认、睡眠整理中断等情况,观察目标、进展、承诺和未决结果能否正确接续。
还需要验证恢复不能成立的情况:关键资料缺失、版本不兼容、引用损坏或外部结果无法核对时,系统是否保留原状态并明确限制,而不是制造一个看似正常的新个体。
我们希望建立的连续性,是中断之后仍能依据过去的身份、经历、心理变化和责任继续生活,同时诚实保留尚不知道、尚未完成和无法恢复的部分。