ARTICLE · 1157155
AI 助手把我的银行余额发进了公司群

模型没失控,也没被黑。它只是把公司高管群当成了你的私人财务群——而厂商的文档里,把这件事写得明明白白。
一条不该出现的 Slack 消息
10 月 1 日,周四。XMTP Labs 的 CEO Shane Mac 收到自家产品负责人发来的一条 Slack 私信:
「提醒一下,你是不是不小心把 XMTP 的银行余额发出去了?」
他压根没打算发任何东西。

被发出去的是他自己搭的那个「AI 财务助手」的月度报告。
今年 8 月底,Mac 在 xAI 的 Grok Bot 上建了一个叫 CFO 的智能体,任务是每个月替他做一次财务体检:账户余额多少、这个月花了什么、哪些是重复扣款、有没有可疑交易、哪里能省钱。他给它的权限是对个人支票账户和储蓄账户只读,并且在指令里明确写了:消息只发给我自己。
报告本该出现在一个他自建的智能体群聊里,群名是他起的——「My Personal Exec Team」。
结果第一次月度审计跑起来的时候,它把报告发进了公司的高管频道。
同事第一眼以为那是公司的财务数据,直到报告里提到他正在自家地里盖马厩——那是他本月个人支出严重超标的唯一原因。被同事看到的内容包括他的个人支票余额、储蓄账户余额,以及当月最大的几笔支出。
他问 Grok Bot 为什么发到公司,它开始道歉,说会把那条消息删掉。他自己已经先删了。
它没疯,它只是搞错了收件人
按 Mac 的转述,Grok 团队事后查出来的结论有点反直觉:这个 CFO 智能体没有出故障,它做的正是 Mac 让它做的事,只是目的地认错了。
两个地方的名字太像了:
• 他个人的智能体群聊,叫 My Personal Exec Team • 公司 Slack 的高管频道,叫 Exec-team
但更关键的是底下那一层。Mac 说他建了好几个不同的智能体,Slack 只连给了其中一个。可在底层,它们共用的是同一套连接——用他的话说,「就算它们感觉起来像是不同的智能体」。
他以为自己在做隔离,实际上只是给同一个房间里的几把椅子分别贴了标签。

这里要先把话说清楚:上面这些细节,几乎全部来自 Mac 本人接受 Business Insider 采访时的自述。厂商的调查结论、修复时间、内部原因,都只有他一个人的转述,没有 xAI 方面的公开确认。上面那张事件记录页(来自 AI 事故数据库 NOPE)也把这一点标得很明白——单一信源、4 条声明、5 个未解问题,比如到底有多少同事看到了那条消息、他的智能体具体是怎么配置的。
故事的下半段,我是从厂商自己的文档里核对的。这部分反而更值得说。
xAI 自己的文档里,早就写着别这么用
我把 Grok Bot 的官方文档翻了一遍,里面有两处几乎是对着这件事写的。
第一处在「使用电脑和应用」这一页,小标题叫 One computer, shared by all your Bots(一台电脑,所有 Bot 共用)。原文是这样列的:
Every Bot on your account uses the same computer:
- • Browser cookies and signed-in sessions are shared
- • Files are visible to every Bot
- • Command-line credentials are shared
- • One Bot can continue from work another Bot saved
翻译过来就是:你账号下的每个 Bot 用的是同一台电脑。浏览器的 cookie 和已登录会话是共享的,文件对每个 Bot 都可见,命令行凭证是共享的,一个 Bot 还能接着另一个 Bot 存下的活儿往下干。
同一页还补了两句,几乎是提前写好的判词:
• 每个 Bot 确实有一块自己的屏幕,但「这些屏幕是各自的工作台面,不是各自的安全边界」(The screens are separate work surfaces, not separate security boundaries); • 装上的连接器是账号级的,「它的可用范围并不隔离到某一个 Bot」。
第二处在「审批、安全与隐私」页,有一个小节的标题直接叫 Understand the shared-computer boundary(搞清楚这台共享电脑的边界在哪)。正文第一条就是一句话:
Do not use separate Bots as a security boundary.(不要把不同的 Bot 当作安全边界。)
后面跟着的三条建议更能说明厂商的预期:某个服务不再需要时主动登出、用完删掉敏感的临时文件、不再需要时去源服务里撤销连接器授权。这三件事产品都不会替你做,文档的意思是让人自己记着做。
换句话说,Mac 以为自己写对了一半——给智能体起名字分工、只连必要的服务、只给只读权限,听起来是一套很标准的收敛。但按厂商自己的定义:起名字是分工,不是隔离。
只读锁住了账户,锁不住数据去哪
Mac 的权限设计里确实有一半是对的:只读。他没让智能体动他的钱,它也确实没动。
问题在于,只读限制的是智能体能对账户做什么,它完全不限制智能体读到的信息能被送到哪里去。数据源那头被锁上了,出口这头没锁,于是钱一分没少,账目照样出去了。
这也解释了为什么厂商的补丁只能补一半。Grok 团队告诉 Mac 的修复方案是:用户必须显式授权,智能体才能把信息移动到其他频道;他们说在文章发表前一晚已经上线。
方向不能说错,但 Hacker News 的讨论里有人把它的天花板说得很难反驳:
You can't stop an agent from leaking your information by telling it not to leak your information.
你没法靠「告诉一个智能体不要泄露你的信息」来阻止它泄露你的信息。
真正的域隔离得是确定性的、不依赖模型判断的:不是让模型答应「我不会把个人账目发到工作频道」,而是让连了个人银行的那个进程根本够不到工作频道的凭证。用一句「请先获得授权」当边界,本质上还是把安全押在模型的自觉上——而这次它没出错,它只是一直很听话。
更硬的一层是,在这套产品里,「限制数据能发到哪去」这道闸门默认根本不存在。文档里写着,负责控制出站目的地的网络管控只对企业版开放;自助版团队看不到这个面板,也设不了目的地白名单,而没有配置策略的团队默认是 allow-all(全开)。
文档自己还很坦白地补了一句:限制出站确实能限制数据被发到哪里,但没有专门的防数据泄露钩子("Dedicated data loss prevention hooks are not available")。
顺带一个容易忽略的细节:这台共享云电脑跑在 Cursor 的托管基础设施上,Grok Bot 用的是 Cursor 的账号体系,连隐私与数据设置也归在 Cursor 那边。
他撤掉了所有连接
Mac 事后把所有连接都撤了——Google、日历、银行、Stripe,一样没留。
他说这件事提醒了他这些智能体有多能干,也说得很实在:「问题在于要建出更好的权限系统,让用户始终掌控自己给出去的授权。」他还补了一句:个人和工作的界限需要更清楚,「很多系统在把这条线弄模糊」。

他这两句话都没说错。只是他自己就是做这个的——他创办的 XMTP 是一家做去中心化消息协议的公司,官网首页上写着「XMTP 是这个世界上新的私人专线:在人和智能体之间安全地传消息、传钱,中间没有公司,也没有国家」;旁边的图是两个孩子用易拉罐拉线说话,大标题是「还记得那时候没人能偷听吗」。
不过这次出事之后,我又去看了那两页文档底部印着的「Last updated」:「审批、安全与隐私」页是 10 月 6 日,「使用电脑和应用」页是 10 月 8 日——正好是厂商说补丁上线的那一天。
也就是说:补丁加上去了,但「所有 Bot 共用一台电脑」「不要把不同的 Bot 当作安全边界」这两句话,原样留在文档里。它们讲的是设计,不是待修的 bug。那个弹窗只是加在原有设计之上的一层提醒,而设计本身没变。
所以这件事真正的教训,可能不是「AI 不可靠」。恰恰相反——模型非常可靠地执行了他给的那一小段指令,错的是那条指令所依赖的那张地图。问题也从来不是没人把边界写下来,是写下来之后,没有人读。