什么时候看到消息
消息到了,它不一定马上看到。聊着的时候几乎是秒看;没在聊的时候,有时要过一两分钟才拿起手机。
三种情况
看到一条消息要多久,先看它此刻在不在聊:
- 在聊:它刚在这个对话里说过话,或者你就在「正在聊」的人里。几乎马上看到,0.3–3 秒,多数在一秒上下;你接着发,不重新计时。
- 刚看过手机:最近十分钟在别处说过话。多数十几秒以内看到,少数要等 20–90 秒。
- 醒着没在看:大约四成要过 30–120 秒才看到,其余 2–15 秒。
晚看到的那一部分偏向前半段:30–60 秒比 90–120 秒常见。
什么会让它晚一点
「醒着没在看」的四成是基准,会跟着这些浮动:
- 它的注意力:越黏手机的人格,晚看到的越少;
- 群里没点名的闲聊:乘 1.4(基准的四成变成五成多);冲着它来的(私聊、@ 它、回复它)不乘;
- 关系亲近:乘 0.9;
- 深夜(零点到六点):乘 1.2;
- 精力低,或者快到睡觉了:再乘 1.2(两样都占也只乘一次);
- 闲着发呆的时候:乘 1.1。
再怎么浮动,晚看到的比例也在 5% 到 80% 之间。
从消息到达到第一条回复发出,最长两分钟。看到这一段最多占到两分钟减十秒,留出读和打字的时间。
看到以后
看到以后先按字数把你这几条读完(默认每秒 20 个字),再想、再打字(2.8)。没看到的时候你又发了几条,看到时一起读,不会一条一条地回。
想让它快一点或慢一点:网页后台「配置管理 → 对话策略」里的「过一会儿才看到」「晚看到的比例」「粘手机程度」(1.12)。
对应的代码
- 多久才看到:
cognition/notice.py的plan_notice、late_probability;读完要多久:reading_seconds。 - 在不在聊、刚看过手机没有:
bot.py里注意到这一段的计时(没看到时推迟这一轮,到点再看)。 - 人格配置的
[conversation]一段:notice_enabled(默认开)、notice_late_probability(0.4)、notice_late_min_seconds(30)、notice_late_max_seconds(120)、notice_quick_max_seconds(15)。 - 测试:
tests/test_notice_timing.py的「醒着没在看,大约四成在 30 到 120 秒之间才看到」「在聊时三秒内看到」「刚看过手机,晚看到的少一截而且短一些」「各种情况调节晚看到的比例」「没看到时推迟这一轮,对方再发不重新计时」。
没做到的
- 「看手机」只是一个时间,它不知道自己错过了几条通知,也不会因为通知太多先划掉一部分。
- 你连着发的时候,它看到以后只等你正在输入的那几秒;你停下来想的那一会儿,它分不出来你话说完了没有。