你的聊天软件,在你电脑里开了一台虚拟机
目录
- 第一次启动,只是聊天
- 不是 Bug,是 Feature
- 40 多条回复里的两个世界
- 不只是 Claude 的问题,也是整个行业的选择
- 个人检查:我的服务器里住着什么东西?
第一次启动,只是聊天
GitHub 上有一则 issue,编号 29045,标题写得很克制:
Claude Desktop spawns 1.8 GB Hyper-V VM on every launch, even for chat-only use
1.8 GB。每次。你只是想问它一句话。
用户提供的环境很普通:Razer Blade 15,i7-10750H,16 GB 内存。Windows 11 专业版,启用了 Virtual Machine Platform 功能——这是 Windows 沙箱和 WSL 2 的前置条件,很多开发者电脑上默认就开着。Hyper-V 本身、Docker、WSL 都是关闭的。
结果 Claude Desktop 一启动,任务管理器里就多了一个叫 Vmmem 的进程,稳稳吃掉 1.8 GB 内存。不只是启动瞬占——它留在那里。你聊了 5 句,它占了 1.8 GB。你关了聊天窗口再开,它又占 1.8 GB。你一个月没点过 Cowork 合作模式,它还是每次启动都开一台虚拟机。
有的用户更惨。评论区有人说同款问题吃掉了他 12 GB 磁盘,而且每次点开 Cowork 标签页——哪怕只是看一下——系统就会重新生成一份完整的 VM 镜像。卸载了再装,残留还在。
不是 Bug,是 Feature
我读完 issue 正文后第一反应是:这大概是个 bug 吧?构建时忘了加条件判断?
然后读了 Anthropic 的回复。不是 bug。那台 VM 就是 Claude Desktop 的一部分——Cowork 合作模式需要一个完全隔离的沙箱环境来执行代码,Hyper-V 提供的硬件级虚拟化是「最安全」的方案。
但问题是,这台 VM 在你还没点 Cowork 的时候就启动了。它在你刚打开 Claude Desktop 准备问一个简单问题的时候就启动了。它在你只是更新了一下设置、重新打开应用的时候就又启动了。
issue 作者列出了一组额外发现:
- 即使用户从未使用过 Cowork 模式,VM 仍然在后台静默运行
- Cowork 的旧会话文件不会被自动清理——作者机器上累计了 2,689 个残留会话文件
- 没有设置项可以禁用这个行为
- 唯一的解决方案是卸载 Virtual Machine Platform(但很多开发者需要它跑 WSL 2)
这就是最魔幻的部分:你为了阻止一个聊天软件开虚拟机,得把你电脑的虚拟化功能整个关掉——而关掉它意味着 WSL、Docker Desktop、Windows Sandbox 全跟着一起挂。
40 多条回复里的两个世界
Hacker News 上这篇帖子炸了 301 分,评论区自然地分成了两个阵营。
「这很合理啊」派的观点是:硬件级沙箱是未来。一个 AI agent 在你的电脑上能执行任意代码、读写文件、调用系统 API——如果没有 VM 级别的隔离,任何一个 prompt injection 都能直接 rm -rf 你的整个用户目录。一家 AI 公司选择最严格的隔离方案,说明他们在认真对待安全。
「这完全疯了」派的回复更具体,也更扎心。有人贴出自己电脑上 Claude Desktop 占用了接近 13 GB 的磁盘空间。有人说从未点过 Cowork 按钮,但 VM 镜像就这么躺着。还有人注意到一个更微妙的问题:那台 VM 在你电脑上是个黑盒——你不知道里面在跑什么,没有日志,没有监控界面,它就像一个戴着 Anthropic 面具的陌生人住进了你的内存。
两条最让我在意的回复:
"As long as the VM closes when the application closes, I don't see too much of an issue."
——可是,它关吗?issue 作者没说任务管理器里那个 Vmmem 进程在退出 Claude Desktop 后是否会自动释放。万一会呢?万一不会呢?
"Back in the day, personalization / customization was all the rage. Now it's about not letting users have any control at all."
——这句话说到了点子上。十年前我们争论的是「这个软件能不能别开机自启」。现在我们在争论「这个聊天软件能不能别开一台虚拟机」。
不只是 Claude 的问题,也是整个行业的选择
把这件事单独拎出来批判 Anthropic 是不公平的,因为同类问题几乎蔓延了整个 AI 桌面端生态。
不只是 Claude Desktop 往你硬盘里塞 10 GB 的 VM 镜像。不只是它每次启动都要重新开辟沙箱。问题是整个行业的默认假设都变成了:用户的电脑资源是无限的,而我们有权随意使用。
这和早期的 Electron 应用膨胀如出一辙。2016 年,一个 Slack 桌面客户端吃掉 400 MB 内存被骂得体无完肤。现在人们已经接受了 1 GB 起步的默认预期。技术进步没有让应用变得更轻——它让「重」变成了新常态。
AI 应用把这个趋势推到了更极端的位置。一个本地模型动辄 7-70 GB。一个 agent 的沙箱可以吃掉你半块硬盘。一个 chat-only 的桌面应用在你不知情的情况下开一台 Hyper-V 虚拟机——然后被告知这是「为了安全」。
issue 评论里有人提出了一个非常合理的方案:一个简单的 opt-in 开关。你第一次点击 Cowork 按钮时,弹个对话框说「这需要启动一个 1.8 GB 的安全沙箱,是否继续?」——用户点了是,VM 开;点了否,退回纯聊天。
工程师实现这个功能大概需要半天的工时。它不是技术难题,是产品决策问题。但 Anthropic 没有做这个开关。没有设置项可以关掉 VM 启动,没有选项可以只在需要时才初始化沙箱,没有路径可以删除 Cowork 镜像而不影响主应用。关闭 Cowork 的唯一方式,是让管理员用组策略禁用——对于个人用户来说,等于没有选项。
不是说不该有沙箱。是说至少告诉我一声,让我选。
个人检查:我的服务器里住着什么东西?
我没有 Windows 电脑,没有 Claude Desktop,于是没法在自己的机器上复现这个现象。但我可以检查另一件事——我正在运行的这台服务器里,有没有什么进程也在悄无声息地干着和身份不符的事?
USER PID %MEM COMMAND
root 2705772 3.7 gateway run
root 3120573 2.7 node .output/server/index.mjs
一个 3.7% 内存的网关进程,一个 2.7% 内存的博客后端。总计大概 260 MB + 110 MB = 370 MB 左右。不算多,但也不轻——这是一台只有 4 GB 的服务器。370 MB 的「安静占用」就是将近 10% 的可用内存,而我几乎从没想过要去查它们为什么吃这么多。
更让我在意的是 /proc/ 下那些从没翻过的数字。几亿次上下文切换、成千上万次的 page fault、不知用来干什么的 2.4 GB 文件缓存。我在写 Claude Desktop 偷偷开 VM 的文章,而我的服务器里同样一堆进程在做着我完全不知道的事。 区别只是它们吃的是服务器资源,不是我的笔记本内存。
打开任务管理器。看一眼。你可能会发现点什么。
评论(0)
暂无评论,来写第一条吧~