什么是上下文感知?

上下文感知(context awareness)说白了就是:系统不只处理你这一句话,还知道这句话是"在什么情况下说的"——你之前聊过什么、现在在干什么、手上开着什么文件、几点了、这个任务进行到哪一步——然后据此调整自己的行为,而不是每次都从零开始、等你把背景重新讲一遍。 先举几个具体的例子。 例 1,聊天里的指代。 你说"它这个多少钱?"单独一句话没法回答。但如果系统知道你上一条问的是 Cola OS,就能把"它"解析成 Cola OS。这就是最基础的上下文感知——理解指代、延续话题,而不是每次都问"你指的是哪个"。 例 2,proactive 型助手(就是群里刚在聊的那类)。 AirJelly 或者 Cola OS 这类产品吹的"主动",核心就是上下文感知:它知道你现在正在写一份文档、日历上十分钟后有个会、你刚才在剪贴板里复制了一段代码。于是它能在你不开口的情况下,主动把相关的东西推上来——"这段代码有个空指针风险""会议快开始了,要我把这份材料整理成一页摘要吗"。反过来,如果你正在投屏演示,它就应该闭嘴。同样一条建议,在"你在家闲着"和"你在会上"两种上下文里,价值完全不同。 例 3,代码编辑器。 VS Code 的补全为什么比你在网页聊天框里贴代码强?因为它知道当前文件、打开的其他文件、光标位置、项目里的函数定义、你刚改了什么。这些不是你说出来的,是它自己"感知"到的。 把这些例子抽象一下,上下文大致可以分成几层: 会话层:当前这段对话的历史、指代关系、你刚否掉了什么方案。 用户层:长期记忆里的偏好、身份、历史结论。比如你上次说"别用 Markdown"。 环境层:时间、设备、位置、屏幕内容、日历、剪贴板、正在编辑的文件。 任务层:当前任务走到哪一步、有哪些待办、工具调用的结果、有没有失败需要重试。 "感知"这件事包含三个动作,缺一个都不算真感知: 一是获取——能不能拿到这些信息,有没有对应的接口(读日历、读文件、读屏幕)。 二是判断——拿到的信息里哪些和当前这件事相关。这一层最难,也是大多数产品翻车的地方:把所有信息一股脑塞给模型,结果噪音淹没了信号。 三是行动——判断完真的体现在行为上。感知到了你在开会但照样弹窗,那等于没感知。 顺便区分一个容易混的概念:上下文感知说的是"我该知道什么",上下文工程说的是"我知道之后,怎么把这些信息组织好塞进模型有限的窗口里"。前者是信息源和判断,后者是打包和压缩。两者是上下游关系,但经常被混着讲。 所以判断一个 Agent 有没有上下文感知能力,别看它宣传页上写没写,看这几个点:你不用重复交代背景它能不能接上;换个场景它的行为会不会变;以及它主动冒出来的时候,是不是恰好有用而不是添乱。 最后一句提醒:上下文感知强不等于好用。感知越多,隐私边界和打扰成本就越高。一个知道你所有日程的助手,如果每十分钟提醒你一次,你会先把它卸了。