乐于分享
好东西不私藏

为什么你的 AI 助手永远在"装死"?

为什么你的 AI 助手永远在"装死"?

为什么你的 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
                 

相关学习资料