54% 的公司已经被 AI Agent 咬过,我一查,自己就是那共用钥匙的多数派

cover

哈喽,我是飞飞。

这两天我刷到一份企业调查,数字挺唬人:54% 的公司,已经被自己放出去的 AI agent 咬过一口。我第一反应是想转,配一句「看吧,agent 这东西还是悬」。手指悬在半空,又缩了回来。因为我突然想拿这把尺子,量一量我自己。

前阵子我连着写了三篇,讲的都是外面的工具怎么背着你把数据传走:Grok 跑个任务就把整库打包发走,Claude Code 被扒出藏了一串域名。那几篇我盯的全是「别人的手往我这儿伸」。这份调查把我掉了个头:伸手的不一定是外人,也可能是我自己给一堆 agent 配的那串钥匙。

一份照出我毛病的调查

先说这份调查。VentureBeat 六月问了 107 家一百人以上的公司,54% 已经出过 agent 安全事件。其中 18% 是真出了事,36% 是险些酿祸、被拦下来了。

更扎心的在后面几个数。只有 32% 的公司给每个 agent 配了自己那份独立身份;去掉重复算,69% 的公司,一百家里有六十九家,是让一堆 agent 共用一套凭证在跑。真正把高危 agent 关进沙箱隔离的,只有 30%。

外面的安全大厂比谁都急。Palo Alto、CrowdStrike、Cisco 这几家,过去一年在这层砸了两百多亿美元,抢的就是给 agent 管钥匙、划边界这门新生意。钱都追到这儿了,可调查里真正把钥匙拆开、把高危关起来的公司,还是少数。

我读到这几个数,一点没幸灾乐祸。因为我一条条往自己身上对,发现我就站在那多数派里,还站得挺靠中间。

我那串 agent 一把钥匙

说说我的家底。我写文章这条流水线,挂着十几个 skill:选题的、查资料的、写稿的、润色的、配图的、发公众号的,天天串起来自动跑。听着挺唬人,像个小工厂。

问题出在钥匙上。这十几个 agent,全从仓库根目录同一个 .env.local 文件里取凭证。公众号的推送 key、搜索 API 的账号密码,全塞在那一个文件里。谁要用,谁就把整个文件读一遍。上个月给搜索多接一个渠道,我还随手往这个文件里添了一行账号密码。加的时候没多想,反正都往这一个文件塞,习惯了。

换句话说,我那个只负责拉资讯的 skill,手里其实攥着能把文章发到公众号的钥匙。它压根用不上这把钥匙,可它拿得到。照调查那把尺子一量,我就是那 69% 里的一个,半点不冤。

更要命的是,这套流水线我常常挂着让它自己跑,选完题、查完料、写完稿、配完图,一路自动往下走。真要中间哪个环节被我喂了个带毒的选题,或者哪个 skill 逻辑飘了,它手里那把万能钥匙可什么都够得着。我平时图的那点省心,背后是这么一本账。

有意思的是,我给不同 skill 单独指过模型、给子 agent 配过默认模型,参数抠得挺细。可这份「每个 agent 单独配」的心思,偏偏没延伸到钥匙这一层。方便嘛,一个文件搞定所有,改起来省心。直到外面那只手的新闻看多了,我才回过神:我防了半天别人,自己家里十几道门,配的是同一把万能钥匙。

先揪出谁能闯祸

那从哪补起?我摸索下来,头一步不急着拆钥匙,先给这一堆 agent 分个级。

你手里这些 agent,绝大多数是「只读」的:读文件、查资料、算个字数、跑个格式检查。这类就算飘了、被人拐带了,顶多帮你查错东西,闯不出大娄子。

真要盯的是那几个「能动手」的:能发布、能推代码、能删库、能碰生产数据。它们一旦出事,是不可逆的。我流水线里这种高危的,其实就一个,发公众号那个。你先花十分钟,把手里能干这类不可逆写操作的 agent 拎出来,清单往往比你以为的短。认出它,才谈得上防它。

为什么盯得这么紧?因为我这套真栽过一次。配图那个 skill,早先我没把规矩写死,它就自作主张,把图床链接直接塞进正文,还漏了一张图。那回它没碰任何凭证,只是乱写几行字,我回头手动改改就完事。可我后背当时凉了一下:这股自作主张的劲头,要是长在一个手握发布钥匙的 agent 身上呢?它能乱写正文,就能乱发东西。会飘的不只是配图这种小活。

我唯一上对的闸

这里得给自己留点面子,说件我凑巧做对的事。

我那个发公众号的 skill,是全流水线最危险的一个,一旦手滑,就是把没审的稿子推出去。我当初把它做成了「手动才触发」:默认跳过,只有我亲口说「发公众号」它才动,其余时候它就装死。

说我多有安全意识,那可不敢认,纯是被吓出来的。流水线自动跑起来那股惯性,选题、写稿、配图一路绿灯往下冲,我最怕的就是它冲到最后一步,把一篇我还没通读的稿子直接推出去。所以那一步,我从设计上就没给它自动权。

现在回头看,这其实就是给最高危的那道写操作,加了一道人工确认闸。调查里那 30% 做隔离的公司,干的是同一件事,把爆炸半径最大的那个先框住。这道闸我当初是怕误推才加的,歪打正着补在了正地方。所以动作我说清楚:你那个高危 agent,先别让它自动跑,卡一道你亲手点头的关。

钥匙别共用一把

做对一件,欠的还一堆。最该补的,是把那把万能钥匙拆开。

道理很朴素:读资讯的 skill,不该拿到能发公众号的 key。至少把「只读」和「能写能发」的凭证分成两套,让每个 agent 只揣着它干活真正用得上的那一把。这样哪天某个 agent 被拐带了,它能捅的娄子,也框在它那把小钥匙的范围里,波及不到整条流水线。

这条我还没做完,正在拆。说实话比我想的费劲,得把每个 skill 到底调哪个凭证挨个捋一遍,还得改读取的逻辑。我大致数了下,真正需要那把公众号推送 key 的,就发布那一个 skill;剩下十几个,全是白揣着一把用不上的钥匙。捋清楚这一层,就够我搭进去一两个晚上,急不来。

还有一层我干脆没做,就是把高危 agent 塞进沙箱、断网跑。调查里也只有三成公司做到。这条我欠着,写这篇正好逼自己记上一笔。

有句话得说明白:别指望模型厂商的原生方案替你把这些兜住。调查里多数公司就是这么想的,结果专门管 agent 安全的工具几乎没人用。你给每个 agent 发几把钥匙、把哪个关进笼子,这是你自己的边界,没人替你划。

你那串 agent 几把钥匙

绕了一圈我才想明白:真正难的不在拦住外面那只伸过来的手,在你敢不敢先把自己攥着的那把万能钥匙拆开。外面的手你防不胜防,手里这把,你现在就能动。

今天就能做的其实很小。把你最常用的那条 agent 流水线摊开,先揪出那个能发布、能动生产的高危家伙,给它单独一把钥匙,再卡一道你亲手点头的闸。别让读资讯的和能删库的,共用同一串。

轮到你了。你手里那串天天干活的 agent,是几把钥匙?是像我这样图省事,一把万能钥匙喂了一整套,还是早就拆开、各管各的?有没有被哪个 agent 自作主张地闯过祸?评论区聊聊。