外观
02. Tick、决策轮与一天
本章回答什么
角色不是在同一个频率下完成所有工作。
如果每个画面 Tick 都重新思考人生,行为会抖动、成本会爆炸;如果一天只决定一次,角色又无法处理饥饿、失败、火灾或玩家干预。
《模拟人生 4》最重要的时间结构,可以在设计层拆成三层:
text
快速模拟 Tick
推进时间、数值、身体动作和事件
↓ 到了选择点
自主决策轮
选“下一件值得做的交互”并放入队列
↓ 行为开始、结束或失败
交互反馈轮
把真实结果写回角色与世界
一天 / 更长时间
由日程、场景与宏观故事系统施加结构
不是 Sim 自己生成一份完整日计划1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
这三层共同构成生命循环。单独实现其中一层都不够。
一、快速模拟 Tick:世界继续走
Tick 的任务不是从所有行为中做复杂选择,而是让已经存在的状态继续变化。
高阶上,它负责:
- 推进游戏时间;
- 推进活动交互及其内部阶段;
- 更新 Needs / Commodities 的衰减或恢复;
- 更新 Buff、Moodlet、Cooldown 和临时状态的计时;
- 更新移动、姿态、手持、动画与对象使用;
- 送达已经排定的事件和警报;
- 检查交互是否完成、失败、被取消或需要转场;
- 在必要时把角色交回“需要下一项工作”的状态。
社区对模拟端的整理显示,Game Clock 表示玩家看到的时间,TimeService 驱动按顺序运行的全局时间线;当待处理元素堆积、模拟时间追不上游戏时,就会表现为 simulation lag。S12
Tick 应当保持机械与诚实
Tick 层只回答事实问题:
- 手是否已经碰到杯子?
- 精力在这段睡眠中恢复了多少?
- 路径是否仍可用?
- 对话对象是否还在?
- 计时是否结束?
它不应让语言模型凭一句“我拿到了”就改写杯子位置,也不应因为高层目标很重要而跳过身体约束。
二、自主决策轮:选择下一件事
原版首席 AI 程序员把核心描述为:Sim 按某种 cadence 运行 AI,依据 motives、traits、mood 等重新问“下一件想做什么”。S02
公开补充说明给出了一个很清楚的高阶顺序:S03
text
1. 决定当前要解决哪些 Motive
2. 从世界物体中找出能满足它们的交互
3. 给这些交互评分
4. 从高分候选中做加权随机选择
5. 把选中的交互推入队列1
2
3
4
5
2
3
4
5
这不是严格逐字的现代源码流程,但足以建立设计模型。
第 1 步:建立本轮上下文
一次自主请求至少要知道:
- 谁在请求;
- 请求来自自主、玩家、反应、Situation 还是某个系统;
- 允许考虑哪些 Motives 或行为域;
- 哪些对象在本轮搜索范围;
- 当前活动交互、队列和身体状态;
- 本轮优先级和性能预算。
高可信的反向工程与开发者说明表明,运行时状态由 Sim 上的 AutonomyComponent 持有,实际计算由 AutonomyService 接收 AutonomyRequest 统一处理,并通过时间切片分散性能成本。S03
设计含义是:角色拥有状态,但不必每个角色各自运行一份完全独立的重型“大脑”。
第 2 步:从压力或欲望找到相关候选
若角色刚吃饱,就没有必要扫描每一种食物行为。系列设计很早就使用 Commodity → Interaction 的索引降低搜索量;《模拟人生 4》的开发者说明也明确先选 Motive,再寻找相关物体交互。S03 S11
候选可能来自:
- 物体提供的 Super Interactions;
- 当前交互允许的 Mixer / Subaction;
- Trait、Buff、Emotion 或 Situation 临时加入的交互;
- 系统性反应;
- 玩家直接选择的交互。
第 3 步:先淘汰,再评分
不可能做的事不该靠“分数很低”来阻止,而应直接淘汰:
- 年龄、生命形态或技能不允许;
- 当前 Situation / Role 禁止;
- 物体坏了、被占用、没有所有权或目标不存在;
- 自主性被关闭,只允许玩家下令;
- 冷却尚未结束;
- 身体约束或路线根本无解;
- 社交关系、隐私或短期语境不满足测试。
把资格判断与偏好评分分开,能防止“只要饿得足够厉害,就穿墙去吃不存在的食物”这种错误。
单房间项目不能用世界真值替 Agent 偷看
上面是对结构化游戏 AI 的说明。有眼睛的 Agent 必须把检查拆成三层:
| 检查层 | 可读取什么 | 失败怎样返回 |
|---|---|---|
| 认识空间 Test | Agent 当前信念、已知 Affordance、来源和不确定度 | 决定“我认为可否尝试” |
| Safety / 产品硬禁令 | 独立安全监督器与不可授权的系统边界 | 明确阻止,不进入普通随机 |
| 权威执行 Test | 开始前读取世界真值、对象版本、预约和身体状态 | 只返回身体或感官可获得的失败证据 |
社会规范不与物理不可能放在同一层。forbidden 可以生成询问许可、援引紧急例外、协商或承担代价后违反;真正的产品安全禁令才不可越过。
人类在视野外锁住杯柜时,认识空间仍可能认为 OpenCabinet 可行。执行前世界 Test 可以阻止动作,但只能反馈“把手受阻/柜门打不开”等合法证据,不能把隐藏锁状态和幕后操作者直接写进记忆。
第 4 步:比较预期吸引力
完整公式未公开。面向设计师,可以安全地把一次评分理解为:
text
行为吸引力
= 当前需要的紧迫度 × 行为宣称能带来的改善
+ Trait / Preference / Emotion / Relationship / Situation 修正
- 距离、时间、风险、资源占用与近期重复成本1
2
3
4
2
3
4
这是高阶重建,不是源码公式。
真正重要的不是加号还是乘号,而是以下关系:
- Need 越危险,相关行为应更有吸引力;
- 同样的物体对不同 Trait / Preference 的角色价值不同;
- 场景可以让平时普通的行为变得特别合适;
- 距离和准备成本会让“最好但很远”输给“足够好且就在身边”;
- 刚做过的行为应因 Cooldown 或重复惩罚暂时退场;
- 预期收益只用于选择,真实收益必须等执行结果。
单房间项目使用分层仲裁,不把一切硬压成一个总分
游戏实现假设:
text
Tier 0 Safety Supervisor 指定的避险 / 恢复
Tier 1 有最晚服务期限的身体调节
Tier 2 已接受义务、当前承诺与 Prospective Cue
Tier 3 Habit 快速路径与普通 Utility 候选
Tier 4 Idle / Wait / 无害探索1
2
3
4
5
2
3
4
5
- 高层 Tier 未满足时,低层不能靠随机越级;
- Trait、偏好、情绪和文化脚本只能在允许的层内改变候选或有限权重,不能压过 Safety;
- Tier 1 按危险期限与可控性优先,而不是一直贴着阈值竞争;
- Tier 2 的当前意图有最小驻留时间和切换滞回,只有失效、期限、明确更高层事件或新候选超过切换边际才改变;
- Tier 3 才使用归一化评分与高分候选随机;
- 已入队恢复的
pending_effect保存保证效果、成功概率、预计开始/完成、失败发现、备用 WCET、对象版本和失效条件;Tier 1 只计成功概率 1 的保证效果。可失败主路径必须同时为失败发现与备用完成留出 20% 裕量,否则提前判不可控。第一项结算后重验剩余项。
普通 Utility 的每项贡献都要能指出唯一来源。对物体的期望另存为 效果价值 × 实现概率 - 时间/风险成本,由能归因的 Outcome 有界更新;关系、情绪等派生状态不能把同一事件重复加回分数。
第 5 步:不要永远选唯一最高分
如果每次都选最高分,完全相同的房间与状态会产生完全相同的生活,微小调参还会让某个行为永久垄断。
《模拟人生 4》的公开说明支持从高分候选中做加权随机;社交子行为也使用较简单的 weighted random。S03
合理的随机性应满足:
- 极差候选没有机会;
- 明显紧急的行为基本不被随机击败;
- 多个“都说得通”的候选之间保留变化;
- 玩家能够事后从状态和环境解释选择;
- 同一行为不会因随机连续命中而无限重复。
这不是让角色随机乱来,而是在合理范围内避免机械最优。
第 6 步:入队,不是瞬间完成
自主选择得到的只是一个待执行交互。它以较低优先级进入队列,随后还要面对身体约束、当前活动、转场、目标占用与失败。S01
这是语言 Agent 最容易犯错的一步:
text
“我决定拿杯子” ≠ “杯子已经在手上”
“动作入队” ≠ “动作已经开始”
“动作开始” ≠ “动作成功完成”1
2
3
2
3
三、玩家指令怎样进入同一个循环
GDC 讲义把交互优先级概括为:玩家指令高、自主行为低、已经完成但仍占用的 Idle 交互更低。S01
玩家并不绕过身体系统。玩家点击“读书”之后,系统仍需:
- 判断交互能否运行;
- 等待必要条件;
- 取消与高优先级新行为不兼容的活动交互;
- 找到书、位置和姿态;
- 腾出双手;
- 执行并确认结果。
所以玩家控制的正确高阶模型是:
text
玩家改变“想做什么”的优先级
而不是直接修改“世界已经发生什么”1
2
2
这给单房间项目提供了很好的干预原则:人类可以影响意图,也可以亲手改变环境,但二者必须通过不同入口进入系统。
但《模拟人生 4》的“玩家指令高”不能直接当作研究 Agent 的完整权力模型。自然语言中的祈使句仍是房间内社会行为;只有操作者明确进入非具身直控,才取得身体控制租约。外部强制产生的 Outcome 必须标记 decision_owner=operator,不能伪装成 Agent 同意或用于推断人格。
四、交互反馈轮:真实结果闭合循环
一次行为结束后,至少有四种结果:
| 结果 | 含义 | 后续 |
|---|---|---|
| 完成 | 核心结束条件满足 | 写入真实收益、关系/物体变化、冷却和记忆 |
| 部分完成 | 做了部分步骤,但目标未完全满足 | 保留进度或生成下一意图 |
| 失败 | 路径、目标、技能、资源或世界状态阻止完成 | 记录失败原因,重新观察或换方法 |
| 取消 / 中断 | 更高优先级事件或玩家改变意图 | 处理清理、恢复、重排或放弃 |
Tuning 中的 Loot 可在交互结束时改变统计、关系、Traits、Buff、对象和其他系统,被社区文档概括为一次行为循环的结果出口。S12
单房间项目的 Outcome 先进入唯一 Event Reducer。它按照失败原因和证据只更新直接相关状态:
| Outcome / 证据 | 默认恢复 | 允许直接更新 | 不允许自动更新 |
|---|---|---|---|
| 感知与目标不符 | 重新观察、标记未知 | 当前信念、不确定度 | Trust、Trait |
| 短暂手部资源冲突 | 等待或释放资源 | Queue / 身体状态 | Self-efficacy |
| 路径阻断 | 重路由或等待 | 路径预期成本 | 关系温暖 |
| 技能不足 | 降级、练习或求助 | 相关 Skill 证据、Self-efficacy | 全局 Competence、Trait |
| 对象失效 | 换对象、修理或放弃 | 对该对象的成功概率 | 人类善意 |
| 人类拒绝 | 协商或重议 | 相应承诺、关系 episode | 信息可靠性 |
| 原因未知 | 保持未知、有限搜索 | 候选因果与置信度 | 确定责任、人格或 Trust |
相同失败只有采用改变前提的新方法,才算新策略。局部版本预算之上还有 (目标、对象族、扰动类别) 总预算;时间、跨日和普通 object_version 变化都不重置。“目标再次在接近期间移动”仍是同一扰动,不是恢复证据。只有能诊断性证明旧前提解除的稳定证据,或有总上限的显式重议,才增加一次预算。
选择看预期,反馈看事实
text
选择前:这件事看起来能解决多少问题?
执行后:这件事实际上解决了多少问题?
差值:是否需要修正认识、产生情绪或换策略?1
2
3
2
3
现有 AI Autonomy Mod 把这个边界做得很明确:只有游戏确认动作完成后,语言层才报告完成;不能执行则报告失败。S19
这是任何带 LLM 的房间 Agent 都应保留的硬规则。
五、交互队列与活动集合:为什么一轮可以持续很久
每个 Sim 高阶上有:
- 一组正在活动的 Interactions;
- 一个有顺序的待执行 Queue。S01
队列处理可简化为:
text
查看队首交互
↓
现在能运行吗?
├─ 不能 → 等待,或在条件已不可能时失败
└─ 能 → 找出不兼容的活动交互
↓
按优先级取消或保留
↓
生成所需身体转场
↓
开始运行1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
一个自主决策轮选出的行为,可能在队列中等待;一个交互也可能包含许多子行为。因此“决策频率”不能等同于“动画频率”或“世界 Tick 频率”。
v0 先取消通用多任务,保证活性
《模拟人生 4》的并发交互是重要研究结论,但单房间 v0 只允许:
- 一个活动身体 Interaction;
- 一只抽象手;
- 被动感知事件流;
- 最多三个近期 Queue 项;
- 明确任务图,不实现通用 GOAP。
每个 Queue 项有最大等待、状态版本与过期时间;队首若阻塞,可在不破坏顺序承诺的条件下进入 BLOCKED 并让安全或可独立执行项旁路。全局 progress watchdog 在无进展达到界限时强制进入清理或恢复。只有新验收场景证明单活动模型无法表达目标体验,才白名单加入特定兼容并发。
六、什么时候需要重新决策
公开资料没有给出一个适用于所有版本和交互的固定秒数,因此不应伪造“每 N 秒思考一次”。更可靠的设计是把重新决策理解成节奏 + 事件共同触发。
合理的选择点包括:
- 当前交互自然完成;
- 队列出现空位且角色需要新工作;
- 交互失败或目标失效;
- 更高优先级玩家指令到来;
- 紧急反应被触发;
- Need 进入危险带;
- Situation / Role / 日程改变;
- 关键物体状态或关系语境改变;
- 角色持续 Idle,到了下一次自主 cadence。
不合理的做法是:
- 每 Tick 对所有物体重新做完整评分;
- 每次看见任何微小变化都清空当前意图;
- 行为尚未给出结果就再次询问大模型;
- 只靠固定定时器,不响应失败或紧急事件;
- 同一事件在多个系统中重复触发多次决策。
七、一天怎样运行:循环存在,但“日计划”不存在
《模拟人生 4》拥有日常时间结构
角色会受到:
- Needs 随时间变化;
- 睡眠和清醒;
- 工作、学校与其他固定日程;
- 预定的 Drama Nodes、电话、消息或场景事件;
- Situation 阶段与角色职责;
- Wants 的刷新与情境触发;
- 玩家安排的队列;
- 世界时间和场所开放状态。
这些机制足以让一天“有形状”。
但角色不会自己排一份多步日程
开发者给出的例子非常明确:Sim 不会因为明早想锻炼,就今晚提前睡觉;它可能一直玩到很晚,因为每轮只在解决当下下一件事。S02
所以:
text
有时钟 ≠ 有日计划
有工作日程 ≠ 自己形成承诺
有 Aspirations ≠ 自己拆解长期目标
有队列 ≠ 预测未来冲突1
2
3
4
2
3
4
《模拟人生 4》有意保留这种反应式设计,因为复杂未来意图难以向玩家传达,也可能让玩家失去叙事主导权。S02
这不是单纯技术不足,而是玩家—角色权力关系的设计选择。
八、宏观层面:不是一个更大的单体大脑
1. Situation:给局部场景加目的和规则
聚会、拜访、餐厅、健身房员工、服务 NPC 等可由 Situation 组织。Situation:
- 招募或生成符合过滤条件的 Sims;
- 给他们分配 Jobs;
- 让 Jobs 进入不同 Role States;
- 通过 Buffs、允许区域和自主修正约束“此处该做什么”;
- 随阶段、目标和时间结束。S03 S12
Situation 像一个局部导演:不需要替每个人写脚本,而是改变每个人的候选空间与权重。
2. 活跃地段与低 LOD
开发者说明中,可实际互动的在场 Sim 会被完整模拟;低 LOD 的场外模拟非常轻,进入地段时可用 auto-satisfy curves 推定起始 Needs。S03
设计原则是:
玩家看得见、能干预的地方,运行可观察的细循环;看不见的地方,只维持能支撑连续性的摘要状态。
3. Neighborhood Stories:低频人生变化
Neighborhood Stories 可让非活跃家庭就业、离职、搬家、生育、收养或发生死亡等变化;Traits 会提高、降低或禁止某些结果,玩家可以按家庭和事件类型配置。S08
这是“宏观规划”的近邻,但它更准确地说是:
text
低频检查世界与家庭条件
→ 从允许的人生变化中做带偏置选择
→ 直接更新摘要状态1
2
3
2
3
它不需要完整演出某个 NPC 每天怎样一步步得到新工作。
4. 全局 AutonomyService 不是宏观意图
AutonomyService 统一排队并时间切片多个角色的决策请求,是性能与调度结构;它不代表世界拥有一个“今天要制造三段爱情故事”的叙事大脑。
不要把计算调度误读成故事规划。
九、用控制论读这些循环
1. Needs 是负反馈
| 环节 | 设计对应 |
|---|---|
| 被控制量 | Energy、Hunger 等 |
| 舒适范围 | 不需要立即处理的区间 |
| 误差 | 当前值偏离舒适范围的程度 |
| 控制器 | 效用评分与候选选择 |
| 执行器 | 交互与身体系统 |
| 反馈 | 行为真实改变 Need |
如果行为有效,偏差缩小,相关行为自然降权,这是稳定的负反馈。
2. Cooldown 是防振荡与防垄断
没有 Cooldown 时,一个高收益、近距离行为可能:
text
得高分 → 被选择 → 很快结束 → 仍得高分 → 再次被选择1
Cooldown、满足后的边际收益下降和重复惩罚,让系统给其他行为机会。官方 2026 更新大量采用这一手段,说明问题不是理论假设,而是真实内容规模下的常见故障。S09
3. Priority 是共享控制仲裁
玩家、自主系统、紧急反应和正在运行的行为会争夺同一个身体。优先级、可打断性与清理规则决定谁让路。没有这层,玩家和 Agent 会不断互相取消。
4. Situation 是外部设定点
在聚会、工作或访问中,角色的“合适行为范围”由场景临时改变。控制论上,它相当于改变目标区间与约束,而不是永久改写人格。
5. 长期计划是前馈,而原作较弱
负反馈要等偏差出现才行动;前馈会依据未来事件提前准备。为明早工作提前睡觉,就是前馈。
《模拟人生 4》核心自主性偏向反应式负反馈,长期前馈被有意限制。S02 单房间 Agent 若想表现“预见”,只需增加很薄的一层未来承诺,不必替换底层效用循环。
十、主要反馈循环与失控方式
| 循环 | 正常效果 | 可能失控 | 需要的制衡 |
|---|---|---|---|
| Need → 满足行为 → Need 恢复 | 维持生命 | 一个 Need 永远压过其他内容 | 舒适带、饱和、替代行为 |
| 偏好 → 更多相关行为 → 更高技能 | 个性逐渐显现 | 单一爱好垄断生活 | 疲劳、重复惩罚、其他承诺 |
| 成功 → 信心 → 接受更难任务 | 形成成长 | 成功滚雪球,其他路径消失 | 难度、风险、边际收益下降 |
| 友好互动 → 好关系 → 更易友好 | 关系稳定 | 关系永远只向一边强化 | 冲突、差异、关系需求与衰减 |
| 失败 → 挫败 → 表现变差 → 再失败 | 可形成戏剧 | 陷入无法恢复的崩溃 | 冷静、求助、降级目标、休息 |
| 玩家打断 → 目标未完成 → 再次尝试 | 保持意图 | 玩家与 Agent 争夺身体 | 玩家优先锁、显式恢复/放弃 |
| 新奇物体 → 高吸引力 → 重复使用 | 展示新内容 | “新玩具综合征” | Cooldown、熟悉度、边际下降 |
任何正反馈都必须有:
- 上限;
- 衰减或反向证据;
- 机会成本;
- 替代行为;
- 可恢复的失败出口。
十一、单房间项目的三层循环与时标契约
具体秒数属于待实验调参,但相对时标和最坏情况必须先写清:
- 世界 Tick 远快于一个身体 Interaction;
- Safety 最坏响应时间短于当前最短致害时间;
- 当前意图最小驻留时间长于普通传感抖动周期;
- Affect 更新快于 Trust、Habit、Self-efficacy 和 Trait;
- 慢学习更新远慢于单次 Outcome,且单次增益有上限;
- 任何等待、推理、清理和不可中断阶段都有最大时限。
每个 Interaction 阶段还声明最坏执行时间、最坏安全中断延迟和清理时长。开始非 Safety 阶段前做可调度性准入:
text
检测最坏延迟 + 当前阶段最坏中断延迟 + 保护动作完成时间
< 最短致害时间
且
当前阶段最坏占用 + 身体恢复动作时间
< 最近 Tier 1 服务截止期1
2
3
4
5
6
7
2
3
4
5
6
7
不满足就不得开始该阶段;若环境变化快到任何现有执行器都无法满足不等式,进入 UNCONTROLLABLE。Safety 的保证是“致害前进入安全集合或完成有效保护”,不是只把 Evacuate 放进 Queue。
A. 每个世界 Tick:不调用大模型
text
按同一个世界命令序列处理 Agent 与人类操作
→ 推进时钟与唯一活动身体 Interaction
→ 更新调节量、Affect 动态、计时与物体状态
→ 生成带 ID 的视觉 / 听觉 / 触觉事件
→ Safety Supervisor 检查危险
→ 检查动作进度、提交、失败、中断与清理1
2
3
4
5
6
2
3
4
5
6
B. 每个决策轮:一个 Agent 只允许一个决策事务
同一时间窗中的触发先批处理并按因果 ID 去重,确定顺序为:
text
Safety
→ 控制权变化
→ 已确认 Outcome / Interaction 状态变化
→ 生存服务期限
→ Prospective Cue / 承诺
→ 普通机会与 Idle cadence1
2
3
4
5
6
2
3
4
5
6
然后只运行一次事务:
text
取得状态版本 v
→ 检查当前意图是否继续、暂停、阻塞或结束
→ 从 Needs、角色义务、承诺、Habit、环境机会和人类请求产生候选
→ 认识空间 Tests
→ 分层仲裁与普通 Utility
→ 必要时启动带 v、TTL、取消令牌的慢推理
→ 提案返回后重验版本、控制权、Safety 和对象状态
→ 合法才提交一个 Queue 变化1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
决策进行中出现的新事件可以使提案失效,但不能并发写 Queue。LLM 超时、结构非法、证据引用缺失或服务不可用时,直接走无 LLM 确定性降级;底层循环绝不等待它。
v0 允许 LLM 只在系统枚举的合法 AppraisalID / IntentID / TaskGraphID 中提案。不同模型可以产生不同的合法高层轨迹;它们不能改变事实、证据集合、Tier、Tests、Safety、权限、允许转换或 Event Reducer。责任置信度和直接状态增量仍由确定性规则决定。
C. 每日边界:不依赖是否睡觉
固定日历边界负责一次:
- 处理完成、延期、阻塞、过期和需重议的承诺;
- 从未完成承诺、长期项目下一阶段、已知未来事件和一个当前缺口生成候选;
- 在容量与生存预算内接受最多三个;
- 压缩有证据的重要事件并清理短期噪声;
- 更新慢速状态,但限制单日最大变化。
承诺准入不是逐项检查。整个 accepted set 的最坏剩余成本、截止窗口、不可抢占段,加上 Safety 与身体调节保留预算必须联合可调度;否则拒绝、降范围或明确取代旧承诺,不能靠滚动延期维持全部“已接受”。
睡眠可以提前触发一次回顾或恢复,但不是唯一入口。任何承诺还可以由 time-based、event-based 或 activity-based cue 在日内重新唤起;完成或取消后必须去活,防止旧线索再次执行。S33
不要生成几十条精确到分钟的计划。单房间环境变化快,详细日程只会制造频繁失败和重规划。
十二、Safety Supervisor:在 Utility 之外闭合
Safety 使用五个明确模式:
text
CLEAR
└─ 可信危险超过进入阈值 → ALERT / EVACUATING
ALERT / EVACUATING
└─ 已离开危险且低于更低的退出阈值,并连续保持清除时间 → RECOVERY
RECOVERY
├─ 危险反弹 → ALERT / EVACUATING
└─ 身体合法、旧危险命令作废、恢复检查完成 → CLEAR1
2
3
4
5
6
7
2
3
4
5
6
7
游戏实现假设:
- 进入阈值高于退出阈值,避免边界抖动;
- Safety 动作绕过普通随机、Cooldown、Trait 和承诺加成;
- 避险关键阶段可不可中断,但必须有很短的最大时限;
- 导致危险的旧 Queue 项和直控租约失效,不能在恢复后自动复活;
- 感知不确定但潜在后果高时,可以先采取低代价保护或主动确认;
- 若所有避险执行器不可用,进入显式
UNCONTROLLABLE,有限告警、降低其他负载并停止无穷重试。
Safety 有两条信息路径:
- Agent 可感知危险:由视觉、听觉、触觉或合法内部信号形成信念,Agent 可以知道并解释;
- 产品 Safety Override:为防不可逆伤害,可以读取权威风险并强制保护身体,但
decision_owner=Safety;它不能把隐藏危险的类型、位置或幕后原因写进 Agent 认识。Normal UI 只显示外部 Safety 接管,不泄露原因;详细原因仅在 Lab Overlay。
这不是 Maslow 推导出的心理事实,而是产品安全与系统稳定的设计规则。
十三、Failure Recovery:普通 Utility 之外的受保护恢复
当同一失败 cluster 达到预算、长时间无进展,或任务级 Self-efficacy 低于冻结阈值时,进入 FAILURE_RECOVERY:
text
NORMAL
→ FAILURE_RECOVERY
├─ 休息 / 降难 / 求助 / 一个低风险可成功任务
├─ 成功且稳定观察窗通过 → NORMAL
├─ 所有恢复执行器不可用 → UNCONTROLLABLE
└─ 最大驻留到期 → 明确终止 / 实验失败1
2
3
4
5
6
2
3
4
5
6
- 原失败前提暂停,不能在恢复中偷跑;
- 恢复集合由确定性规则按可行性选择,不与 Tier 3 随机竞争;
- 恢复行为自身失败只更新同一恢复 episode,不递归生成新的 Recovery;
- 成功后保留一个复发观察窗,不因一次小成功立即回到原高难失败;
- 它不是 Safety:没有生命危险时才使用,且不能压过 Tier 0/1。
十四、共享控制状态机:任一时刻只有一个身体控制所有者
text
AUTONOMOUS
↔ NEGOTIATING 房间内请求、权限和承诺协商
↔ OPERATOR_LEASE 明确非具身直控租约
任意模式 → EMERGENCY Safety 抢占
EMERGENCY → RECOVERY 清理与失效旧命令
RECOVERY → AUTONOMOUS / 新租约1
2
3
4
5
6
2
3
4
5
6
身份与责任
InWorldHuman:只能通过环境和社会行为影响 Agent;祈使句仍是请求;Player/Operator:可以在明确 UI 中取得有期限的身体租约;Researcher/System:可重置实验,但必须经过静止屏障或原子失效全部活动动作;- 每个 Queue 项与 Outcome 保存
initiator、decision_owner、consent、coercion、recognized_authority_scope、agency_attribution。
会话开始前固定一种模式:
- Coexistence Mode:核心体验;不提供普通 Operator Lease,只允许一次性、不可续租的紧急辅助窗口。Tier 1 身体服务拥有不可被房间请求或辅助窗口占用的保护预算;
- Lab Mode:允许连续直控、传送和故障注入,但整段会话不进入人格/核心体验盲测,所有动作外部署名。
同一运行中不能为了方便悄悄切换模式;切换需明确结束会话或重置实验边界。
防止人—Agent 振荡
- 输入有命令 ID,重复传输只算一次;
- 同一来源的快速相反命令合并或背压,不无限排队;
- 新租约只有在安全中断点接管;不可中断阶段有最大时限;
- 强制干预的关系影响有上限、衰减和修复路径,网络重复不算多次伤害;
- 租约结束后按 reference-profile 在 30 ticks 内回到自主或明确等待,不留半动作;
- 最小受保护行为和 Safety 边界不能被普通操作者租约取消。
十五、一个可读的日循环示例
text
日界线:保留昨日未完成的一个承诺,生成今天的一个项目下一步
→ 醒来:晨间线索触发已形成但仍需重验的日常 Habit
→ 观察房间,不直接读取全部世界事实
→ 在身体服务期限与项目承诺之间分层仲裁
→ 执行后由真实 Outcome 更新预期,不由解释文本改写事实
→ 人类敲桌子:听觉事件竞争注意,但不是命令
→ 人类提出请求:进入 NEGOTIATING,检查角色、权威、容量和期限
→ 已接受请求获得 prospective cue;未接受请求不占承诺
→ 中途危险:EMERGENCY 抢占,旧致险命令失效,项目进入 SUSPENDED
→ RECOVERY 后由恢复线索继续项目或明确重议
→ 日界线:幂等压缩证据,完成意图去活,处理过期与反证1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
这具备一天的连续性,但没有沉重的全日计划器;关闭 LLM 时仍能完全运行。
本章设计检查
- 每个 Tick 是否只推进事实,而不是重做高层选择?
- Safety 是否在普通 Utility 之外,并有迟滞、响应时限和不可控状态?
- 同一时间窗的触发是否去重、串行化为一个决策事务?
- 决策是否先用认识空间 Tests,执行前才读世界真值?
- 社会规范是否能产生协商/例外,而不是与物理不可能一起硬删?
- 高分随机是否只发生在 Tier 3 的合理候选之间?
- 生存调节是否有最晚服务期限与 pending effect,避免饥饿和陈旧连排?
- 自主选择是否只是入队,而非宣告成功?
- 每次完成、失败、取消是否只经一个 Reducer 产生有归因反馈?
- 慢推理是否带版本、TTL、取消和确定性降级?
- 任一时刻是否只有一个身体控制所有者,强制 Outcome 是否正确归责?
- Queue 等待、清理和不可中断阶段是否都有最大时限?
- 一天是否由少量承诺和线索塑形,且不依赖睡眠触发?
- 场外宏观变化是否使用摘要模拟,而不是假装完整 Tick?
- 每个正反馈是否有上限、衰减、反证和受保护恢复出口?