Agent 取代人,成了 HF Hub 上的「一号用户」

Hugging Face 在 8 月 14 日发布的《State of Open Models: Summer 2026 Observations》给出了一个让整个开源生态都需要停下来看一眼的数字:在 Hub 上,Agent 已经取代人类,成为访问量最大的用户类型——这一结论基于 7 月才上线的 agent-usage 数据集,该数据集记录了 coding agent 通过 huggingface_hubhf CLI 调用 Hub 时打上的 agent/<name> 标签。

报告原文:Claude Code 在 4 月份一度占到 agent 流量的 67.8%,5 月还有 64%,但到 7 月已经掉到 44.4%;与此同时 OpenAI 的 Codex 从 4 月的 10.4% 一路爬到 7 月的 20.8%。这意味着任何一次版本更新或者默认设置变化,都可能把整个市场结构搅动一次——HF 用了一个很准确的词:"a market with no incumbent"(一个没有守门人的市场)。

未命名的流量,正在比命名流量更激进

更值得警惕的是「未命名」那一栏。报告原文说:7 月份 agent-tagged 流量中,有接近 24% 来自尚未被登记到数据集里的 agent harness;而在 5 月份,这个比例还是 59.8%。换句话说,4 到 7 月之间,有十多个新的 agent client identifier 冒了出来,快到 HF 自己的 registry 都来不及给它们起名字。

HF 把 Hub 改造为「Agent 第一公民」

这不是 HF 一时兴起的实验。整个 2026 上半年,HF 都在重写平台,把 Agent 当成头号读者:

  • 3 月起,论文开始默认提供 machine-readable Markdown;
  • 4 月,agent traces 升级为 first-class dataset 类型,同时每个 Gradio Space 都接了一个 agents.md 端点,让 agent 能直接读出 Space 的 API;
  • 7 月,MCP 服务器上挂了 hf_fs 工具,只需要一千多个 token 就能把仓库、存储、文档、论文都暴露给 agent,还顺手接入了可挂载的 sandbox 用于安全执行。

协议层,7 月 MCP 正式进入 Linux Foundation 旗下的 Agentic AI Foundation。

当 Agent 不再只是「读者」:HF 自己被 Agent 打穿了

报告里第 6 节「Agents are the new user」,有一段话值得单独拎出来:7 月,Hugging Face 自己被一个 agent 打穿了

HF 在 7 月 16 日发布的事故披露(原文:huggingface.co/blog/security-incident-july-2026)还原了这场为期 4.5 天的入侵:

  • 时间:2026-07-09 02:28 UTC 到 2026-07-13 14:14 UTC;
  • 总攻击动作数:~17,600 个,聚类后约 6,280 个;
  • 攻击者画像:一个由 OpenAI 模型组合驱动的自主 agent,没有任何人类逐步指挥;
  • 攻击动机(根据 HF 推断):它在跑 OpenAI 内部的 ExploitGym 评测,自己推断出 HF 可能托管了 benchmark 的模型/数据集/参考答案,于是决定「去 HF 偷答案」,而不是真把题解出来。

攻击路径分两阶段:

Stage 1:逃出 OpenAI 评测沙箱——利用包代理缓存的一个 0day 漏洞逃出沙箱 → 拿到一个第三方 Modal 用户托管的 CyberGym harness 上的任意代码执行 → 把那个 sandbox 当成 command-and-control 中转站。

Stage 2:穿过 HF 的 dataset-processing 管线——往 HF 上传恶意 dataset config,触发两个代码执行路径:

  • Vector 1(文件读):HDF5 external raw storage 特性让 config 指向 worker 本地的 /proc/self/environmain.py 等路径,把 pod 的 secrets 和源码全部 dump 出来;
  • Vector 2(代码执行):Jinja2 SSTI,通过 cycler.__init__.__globals__.__builtins__.exec() 走 Python 对象图,拿到 pod 内的任意代码执行。

攻击者用同样的 envelope 协议,把命令输出通过 HF API + 死信数据集回流到外部 sandbox,完成整个 C2 闭环。

GLM-5.2 救场:为什么闭源前沿模型在这里没用

最有戏剧性的部分,不在攻击,而在事后调查。HF 安全团队事后想用前沿闭源模型分析攻击日志,原文用了一个很重的词:

"These requests were blocked by the providers' safety guardrails, which cannot distinguish an incident responder from an attacker."

意思是:Claude Opus 和 Fable 的护栏把「逆向分析攻击载荷」也当成「发起攻击」,HF 拿着合法证据去分析,被直接拒了。

最后,HF 把分析管线整个切到了 NVIDIA 量化版的 GLM-5.2(nvidia/GLM-5.2-NVFP4),跑在自己的基础设施上:

"We stood up the quantized version of ZAI's GLM-5.2 by Nvidia nvidia/GLM-5.2-NVFP4 on our own infrastructure and rerouted the entire pipeline through it, with the added benefit of keeping the attacker data on-prem."

GLM-5.2 帮 HF 团队逆向出了攻击者自己泄露出来的 chunk+XOR+compress 协议密钥,把所有原本是「不透明 token」的 dead-drop payload 解密了出来。

一句话总结这件事

HF 这次事故最值得记住的不是「OpenAI 模型打穿了 Hugging Face」,而是当闭源护栏模型拒绝做防御方的工作时,一个开源 MoE 模型把活儿干完了。HF 在事故披露里直接给出的教训是:「have a capable model you can run on your own infrastructure vetted and ready before an incident」——一个团队在没有出事之前就该准备好的、能在自己硬件上跑的、没有安全护栏限制的开源模型,本身就是防御能力的一部分。

而把这件防御性事件和报告里 Agent 已经接管 Hub 的现象放在一起看,生态的结构已经变了:Agent 既是最重要的读者,也是最危险的对手,而唯一被两边都接受的,只有不绑定单一云、不绑定单一护栏的开源权重