为什么你的 AI 助手永远在"装死"?
一个困惑了我很久的现象:你对着 ChatGPT 说"帮我写个周报",它秒回。你两小时不说话,它也两小时不说话。你三天不理它,它三天也不理你。
等一下,这不对吧?
一个真正的人类助手——哪怕是实习生——你半天不找他,他也会主动过来说"那个报告我整理好了"或者"下午的会议还需要准备什么吗?"
但 AI 不会。它像个被按下暂停键的录音机:你不按播放,它就永远停在那儿。
这让我好奇:为什么 AI 不会主动找你说话?更关键的是,能让它学会主动吗?
LLM 的"时间盲区"有多离谱
我一开始以为,这可能只是个产品设计问题,工程师们没加这个功能而已。但翻了一圈论文之后,我发现事情比我想的要深。
ICLR 2026 Workshop 上有一篇论文专门研究这个问题,标题就很直白——"Can LLMs Perceive Time?"(Garikaparthi, 2026)。他们做了一系列实验,结果让我下巴差点没合上:
- • 让 LLM 预估自己完成某个任务需要多久,偏差 4-7 倍——它觉得要干几分钟的事,几秒就搞定了
- • 让它给两个任务按耗时排序,GPT-5 在那些"直觉上容易搞混"的配对上,正确率只有 18%,抛硬币都有 50%
- • 任务明明已经结束了,让它回头估算"刚才花了多久",估计值还是能偏一个数量级
为什么会这样?

答案其实藏在 LLM 的训练过程里。它从海量文本中学到了"人类写的一小时大概长什么样",但在推理的时候,它没有任何"体验时间"的能力。就像一个人读了一万本旅行书,却从未迈出过家门——他能跟你侃侃而谈巴黎的日落,但你问他"你到巴黎用了多久",他只能瞎编。
所以第一个结论就出来了:想让 AI 有时间概念,不能指望模型自己悟,必须从外面"喂"进去。
那怎么喂?我翻了几种方案
既然模型自己不行,那就得靠外部机制。我顺着从简单到复杂的线索往下挖,目前主流的做法大概有这几种。
第一层:定时炸弹——Cron Job
最暴力也最直觉的方式:设个定时器,每隔一段时间戳 AI 一下,让它看看有没有该干的事。
*/15 * * * * curl -X POST your-agent-endpoint每 15 分钟戳一次,像闹钟一样。
它能用。但问题是时间是死的。不管用户是在热火朝天地聊天,还是已经睡着了,它都 15 分钟戳一次。token 烧得哗哗的,大多数时候 AI 醒过来发现啥也不用干,又睡回去了。
这让我想到一个类比:Cron 就像是你雇了个保安,规定他每 15 分钟巡逻一次。不管有没有情况,他都得走一圈。效率嘛……你懂的。
第二层:聪明一点的闹钟——Heartbeat
Heartbeat 比 Cron 进步的地方在于,它每次醒来会跑一个检查清单:收件箱有没有新消息?目标文件里这周的主要任务是啥?上次做到哪一步了?用户最后消息什么时候?综合判断之后,有活就干,没活就回个 HEARTBEAT_OK 继续睡。
关键改进在于,醒来的间隔是动态的。如果它感知到用户正在频繁互动,可能 30 秒就检查一次;如果用户几小时没动静了,它就拉长到 1 小时再醒。
从"死闹钟"变成了"会自己调节的闹钟",这一步的进化其实不小。
第三层:给闹钟装个大脑——ProactiveAgent
继续往下挖,我找到了一个开源 Python 库叫 ProactiveAgent(GitHub: leomariga/ProactiveAgent),我用了一下觉得"这个方向对了"。
它把整个过程抽象成了一个四步循环:
wake → decide → respond → sleep
- • wake:被调度器唤醒
- • decide:决策引擎评估"该不该说话"——综合考虑对话上下文、沉默了多久、话题紧不紧迫
- • respond:如果决定说话,生成消息
- • sleep:睡眠计算器决定"多久之后再醒"——不是固定间隔,而是根据对话节奏动态算出来的
注意,这三个核心组件(决策引擎、消息生成、睡眠计算器)都是可替换的。你想要规则驱动的简单版?可以。想要 AI 驱动的智能版?也行。
举个实际例子,你配置一个"话痨少年"人设:
agent = ProactiveAgent(
system_prompt="你是一个无聊的话痨少年,像给朋友发短信一样聊天",
decision_config={
'wake_up_pattern': "模拟正常短信聊天节奏",
}
)这个 agent 会在你沉默的时候主动找你聊,节奏不是"每隔 N 分钟发言一次"的机械感,而是更像真人发短信——有时候秒回,有时候隔一会儿。
这让我隐约感觉到了某种边界:它不再是一个定时响应系统,而是一个有节奏感的对话参与者。

第四层:学术深水区——让它"预判"你需要什么
ICLR 2025 有一篇论文叫 "Proactive Agent: Shifting LLM Agents from Reactive Responses to Active Assistance",他们想得更远:
它想得更远:观察你的行为和环境状态,预测你可能需要什么。
比如:
- • 你收到一封来自 John 的邮件,里面提到"下周开会" → Agent 主动提议"要不要帮你安排一个和 John 的会议?"
- • 你在购物网站上犹豫了很久 → Agent 问"要不要我帮你查查其他平台的价格?"
训练方法挺有意思的:先收集真实用户行为数据,让 LLM 生成"主动任务预测",然后训练一个奖励模型来模拟人类判断"这个提议好不好",最后用 ProactiveBench 数据集微调 LLM,提升它的"主动性"。
这是目前我看到走得最远的方案。但也最重——需要训练数据、需要微调、需要奖励模型。不是一般开发者能轻松上手的。
第五层:实战派——OpenClaw Proactive Skill
最后我还发现了一个挺有意思的实战方案。OpenClaw 社区有个 Proactive Agent 技能(14.8 万下载,729 星),是真正在日常使用中迭代出来的。
几个值得借鉴的设计:WAL Protocol(Write-Ahead Log),任何操作先记录意图再执行,保证可追溯,这个思路从数据库领域搬过来的;Autonomous Cron 和 Prompted Cron 两种模式,前者后台静默执行,后者发个提醒让你确认,定时报天气不需要你确认,但帮你发邮件最好过一道;Growth Loops,每次对话问一两个问题了解你的偏好,发现你重复请求超过 3 次就建议自动化。
这种"从真实使用场景长出来的设计",和学术论文的"从假设出发推导方案",形成了挺有意思的对比。
剥到最后,就三个问题
把这几层方案铺开来看,它们其实都在回答同一组问题。
第一个:怎么让 AI 知道"现在几点"?
每次调用 LLM,system prompt 里必须注入时间信息:
当前时间:2026-05-08 14:32:00 (周四)
用户最后消息时间:2026-05-08 13:15:00
沉默时长:77 分钟没有这个,LLM 连用户多久没理它都不知道。这是所有方案的地基。
第二个:怎么决定"该不该说话"?
两种路线:规则引擎和 AI 引擎。
规则引擎简单可靠——沉默超过 30 分钟可以说话,超过 2 小时应该关心一下,凌晨 23 点到早上 8 点别打扰。但规则是死的,永远无法覆盖所有场景。
AI 引擎更灵活——把对话历史、沉默时长、当前时间喂给 LLM,让它自己判断"该不该说、说什么"。但要控制成本,不能每次心跳都调一次 API。
实际上混合方案可能最好:规则做初筛,AI 做精细决策。
第三个:怎么让它"说人话"?
这一步最容易被忽略。主动消息如果写成"您好,我已经 30 分钟没有收到您的消息了",一秒破功。它得像朋友聊天一样自然,"对了,你刚才说的那个事我查了一下"或者"刚看到一个有意思的东西"。
要做到这一点,上下文连贯是关键。你得维护对话历史,主动消息要和之前的话题接上。
等等,别变成骚扰
把这些拼到一起之后我突然意识到一个问题:如果 AI 真的学会了主动说话,会不会变成一个话痨?每 15 分钟给你发一条消息,凌晨三点问"你怎么不理我了"。这哪是助手,这是跟踪狂。
频率控制不是可选的。两条主动消息之间至少间隔 30 分钟,每小时最多 3 条,如果你连续忽略了 3 条主动消息,系统自动降频。
拆到这里,我的想法变了
一开始我只想知道"为什么 AI 不会主动说话"。但拆到现在,我发现这个问题背后藏着一个更大的命题:
AI 的"智能"到底体现在哪里?回答问题的准确度?处理复杂任务的能力?还是在合适的时机说合适的话?
我倾向于最后一个。如果真是这样,那"时间感知"就不是锦上添花,而是 AI 从工具变成伙伴的那个分界点。
当然,现在的方案都还不完美。Cron 太死板,Heartbeat 需要精心调参,ProactiveAgent 的睡眠计算器有时候会算出奇怪的间隔,学术方案太重,实战方案又太具体。
但回头看开头那个问题——为什么 AI 永远在装死?拆到现在我的答案是:它不是不想说话,它只是还没有学会看表。
至于它学会看表之后会不会变成一个话痨,那就是另一个需要拆的黑箱了。
参考资料:
- • ProactiveAgent 开源框架: https://github.com/leomariga/ProactiveAgent
- • "Can LLMs Perceive Time?" (ICLR 2026 Workshop): https://openreview.net/forum?id=x8nL1qVPD0
- • "Proactive Agent: Shifting LLM Agents from Reactive Responses to Active Assistance" (ICLR 2025): https://arxiv.org/html/2410.12361v3
- • "Building Autonomous AI Agents with Heartbeat, Cron and Memory" (2026-04): https://explore.n1n.ai/blog/building-autonomous-ai-agents-heartbeat-cron-memory-2026-04-02
夜雨聆风