OpenAI 新功能 "Computer History" 通过无加密本地数据库记录用户所有操作以实现 Agent 记忆,引发安全争议。
Agent 正在离开聊天窗口,进入操作系统。OpenAI 为 ChatGPT macOS 应用推出的全新「Computer History」功能,通过追踪点击和按键记录创建一个可搜索的时间线,从而为 Agent 提供代你行事的上下文。但其实现方式——一个本地的、未加密的、记录你所有操作的明文数据库——是每一个开发者都应该停下来认真思考的安全权衡。
Computer History 使用 macOS 无障碍框架来创建你操作行为的持久记忆。一位 OpenAI 产品和工程经理将其描述为让 ChatGPT「从你在电脑上做的一切中学习」。在实践中,这意味着记录点击、按键和应用切换等事件,以构建你的工作时间线。一个演示展示了 Agent 通过搜索这段历史,正确识别出用户上次查看的 Google Doc。
控制权是这一功能的核心卖点。它是可选开启的,而非默认启用。据报道,它会忽略隐私浏览标签页中的活动,你也可以手动将特定应用拉入黑名单不进行追踪。用户可以查看记忆数据库并删除特定条目。对于企业账户,管理员必须先启用该功能,个人用户才能选择加入。
对于任何构建或使用开发者工具的人来说,这里的设计变得耐人寻味。Computer History 创建的记忆文件以未加密的明文 Markdown 形式存储在本地。任何以相同用户账户运行的应用程序或进程都可能读取它们。
这一设计选择将简单性置于安全之上。虽然本地存储避免了将你的每一个动作的原始、实时数据流发送到云端,但缺乏加密是一个不可忽视的细节。想一想那些经过你屏幕的敏感信息:API 密钥、私人消息、客户数据、未推送的代码。这些信息周围的本地明文日志是一个有价值的目标。
以下是基于该功能的描述,一个记忆文件片段可能看起来的样子:
# Session: 2026-08-19 14:30:00 UTC
## 14:30:05 - App Switch: Google Chrome
- **Action**: Viewed URL `https://console.aws.amazon.com/billing/home`
- **Keystrokes**: `[CMD+L]`, `billing`, `[ENTER]`
## 14:31:12 - App Switch: Slack
- **Action**: Viewed Channel `#dev-prod-alerts`
- **Context**: Read messages from @JaneDoe about deployment failure.
- **Keystrokes**: `[CMD+K]`, `prod-alerts`, `[ENTER]`
## 14:32:45 - App Switch: iTerm2
- **Action**: Executed command
- **Keystrokes**: `kubectl get pods -n customer-xyz-prod`
看到这个结构会让风险变得具体可感。它不仅仅是聊天历史,而是一份详细的工作日志,任何具有用户级权限的其他进程都可以读取它。
当 Agent 能够将你的整个数字生活作为上下文访问时,prompt 注入的爆炸半径大幅扩大。据报道,OpenAI 自己的文档也承认了更高的风险。该功能设计为将你活动中的上下文拉取到未来的对话中。如果这些对话随后被用作训练数据(取决于你的设置),恶意行为者理论上可以向 Slack 消息或文档中注入指令,而未来版本的模型可能会执行这些指令。
用户数据和模型指令之间的界限正在模糊。一个能读取你私人 Slack 私信的 Agent,可能会被来自被入侵账户发送的消息所操纵。这将安全边界从开发者的机器扩展到他们与之交互的每一个人和每一个系统。
这不仅仅是一个功能。它是持久化、操作系统集成 Agent 的真实部署,为 Agentic 系统的设计提供了关键教训。在给予 Agent 足够上下文以发挥作用和防止这些上下文成为安全漏洞之间的权衡,现在是一个实际问题,而非理论假设。
目前,这种架构的安全负担落在了用户身上。你必须信任你机器上的其他进程不会读取记忆文件,并且生产力提升的价值值得承担这个新的、强大的攻击面带来的风险。当我们构建和部署更有能力的 Agent 时,我们需要为记忆和上下文找到更好的原语——那些不会强迫你在能力和安全之间做出这种选择的原语。