@ClementDelangue:令牌成本决定了不会有SaaS末日——优秀的开发工具是代理的缓存智能!流行的观…
摘要
Hugging Face的hf CLI被证明远比手写原始API调用更高效、更成功,AI代理使用后基准测试显示令牌消耗减少多达6倍,任务成功率从84%提升至94%,这表明良好的抽象是代理的缓存智能。
查看缓存全文
缓存时间: 2026/06/06 01:22
Token成本决定了不会有SaaS末日 / 好的开发工具是代理的缓存智能!流行的理论认为:代理能写代码,所以它们会从零开始重建每一个工具,直接调用原始API。不再有开发工具,不再有CLI,不再有软件层。只有代理和端点!我们刚刚测试了这个假设,数据给出了相反的结果。我们在真实的Hugging Face Hub任务(约1000次评分运行)上对Claude Code和Codex进行了基准测试,设置了两组:代理优化的hf CLI vs 代理手动编写curl或SDK调用。手动编写在多步骤任务上消耗最多6倍的Token,且失败率更高(84% vs 94%任务成功率)。这还只是去除了一层抽象。显然,如果代理试图完全绕过HF,从零开始重建模型托管、版本管理和分发,Token消耗将高出几个数量级,失败率也会显著升高。每次代理从原始API调用重新推导工作流时,你都要为这种推理支付Token。每一次运行都是如此。一个好的CLI将整个链条压缩成几个高级命令,代理不会出错。在一个所有人都抱怨Token太贵的世界里,抽象就是杠杆:数千小时的设计决策,你的代理在推理时无需重新思考。好的工具是代理的缓存智能!所以不会,代理不会从零开始重建一切。它们会倾向于Token效率最高的工具,因为这是它们的拥有者付费的原因。存活下来的软件不仅要对代理可访问,还要对它们来说准确且便宜。我们在HF上看到了这种情况,它正在成为代理使用AI的平台:仅两个月就收到约4900万次请求,并且还在快速增长!https://huggingface.co/blog/hf-cli-for-agents…
将hf CLI设计为代理优化的Hub交互方式
来源:https://huggingface.co/blog/hf-cli-for-agents 返回文章列表 (https://huggingface.co/blog) Célina Hanouti的头像 (https://huggingface.co/celinah) Lucain Pouget的头像 (https://huggingface.co/Wauplin)
- Hub上的AI代理流量 (https://huggingface.co/blog/hf-cli-for-agents#ai-agent-traffic-on-the-hub)
- 为人类和代理而建 (https://huggingface.co/blog/hf-cli-for-agents#built-for-humans-and-agents)
- 一个命令,多种呈现 (https://huggingface.co/blog/hf-cli-for-agents#one-command-multiple-renderings)
- 下一步命令提示 (https://huggingface.co/blog/hf-cli-for-agents#next-command-hints)
- 非阻塞且安全可重试 (https://huggingface.co/blog/hf-cli-for-agents#non-blocking-and-safe-to-retry)
- 可发现、可预测的命令 (https://huggingface.co/blog/hf-cli-for-agents#discoverable-predictable-commands)
- 为编码代理基准测试hf CLI (https://huggingface.co/blog/hf-cli-for-agents#benchmarking-the-hf-cli-for-coding-agents)
- 设置 (https://huggingface.co/blog/hf-cli-for-agents#the-setup)
- 结果 (https://huggingface.co/blog/hf-cli-for-agents#the-results)
- 关键发现 (https://huggingface.co/blog/hf-cli-for-agents#key-findings)
- hf-cli技能 (https://huggingface.co/blog/hf-cli-for-agents#the-hf-cli-skill)
- 亲自尝试 (https://huggingface.co/blog/hf-cli-for-agents#try-it-yourself)
- 注册一个代理框架 (https://huggingface.co/blog/hf-cli-for-agents#register-an-agent-harness)
hf是Hugging Face Hub的官方命令行入口。任何你在Hub上通过Python SDK能做的事情,都能在终端完成:下载和上传模型、数据集和Spaces;创建和管理仓库、分支、标签和拉取请求;在HF基础设施上运行Jobs;管理Buckets、Collections、webhooks和推理端点。hf CLI多年来主要为我们的人类用户构建。但现在它越来越多地被编码代理使用:Claude Code、Codex、Cursor等。因此我们对其进行了重构,使其能同时服务于这两类受众。这篇博文总结了我们做了什么,以及如何进行基准测试。我们发现,在复杂的多步骤任务上,无CLI基准(代理手动编写curl或Python SDK)消耗的Token量最高可达hf CLI的6倍。
https://huggingface.co/blog/hf-cli-for-agents#ai-agent-traffic-on-the-hub Hub上的AI代理流量
我们从2026年4月开始追踪代理对Hub的使用情况。hf CLI(以及构建于其上的huggingface_hub Python SDK)通过读取代理设置的环境变量来检测是否有编码代理在驱动它:CLAUDECODE / CLAUDE_CODE 对应Claude Code,CODEX_SANDBOX对应Codex,还有Cursor、Gemini、Pi以及通用的AI_AGENT。这个单一信号完成两项工作:调整CLI的输出格式(详见下文),并为每个Hub请求标记一个 agent/ 用户代理字符串,从而我们可以将流量归因于驱动它的代理。按不同用户数计算,最大的两个是Claude Code和Codex,遥遥领先于其他代理,也就是我们稍后将在本文中基准测试的两个代理。
自2026年4月以来,按编码代理划分的Hugging Face Hub不同用户数。Claude Code以39.5k用户和4860万次请求领先,其次是Codex,有34.8k用户和3640万次请求,随后是antigravity、cursor-cli、openclaw、cursor、gemini和pi。 自2026年4月以来,按编码代理划分的Hugging Face Hub不同用户数。Claude Code以39.5k用户和4860万次请求领先,其次是Codex,有34.8k用户和3640万次请求,随后是antigravity、cursor-cli、openclaw、cursor、gemini和pi。 柱状图显示每个代理的不同用户数;请求量作为子标签显示。仅Claude Code就有约4万用户和近4900万次请求,Codex紧随其后。这些是早期数据(我们从2026年4月才开始归因代理流量),但规模已经相当可观,我们预计随着编码代理成为与Hub交互的标准方式,这一数字将继续增长。
https://huggingface.co/blog/hf-cli-for-agents#built-for-humans-and-agents 为人类和代理而建
人类和编码代理对相同的hf命令期望不同的输出。人类希望看到丰富的终端输出:ANSI颜色、适合屏幕的填充表格、成功时的绿色✅、布尔值的✔、进度条、散文式提示。代理则希望相反:无ANSI、不截断、所有值完整显示(因为代理能处理远比人类更密集的输出)、保持紧凑和结构化以节省Token。代理也无法响应CLI提示,并且会在超时后愉快地重新运行命令。本节的其余部分将介绍hf如何为双方提供各自所需。
我们在hf v1.9.0中引入了代理模式输出,并在后续版本中逐步将CLI其余部分迁移至该模式。
https://huggingface.co/blog/hf-cli-for-agents#one-command-multiple-renderings 一个命令,多种呈现
当hf自动检测到代理使用(通过上述环境变量)时,它会以不同方式呈现同一命令。它优化输出格式以适应人类或代理,无需传递标志:
# 人类(终端默认):对齐的表格,截断以适应,带提示
> hf models ls --author Qwen --sort downloads --limit 3
ID CREATED_AT DOWNLOADS LIBRARY_NAME LIKES PIPELINE_TAG PRIVATE TAGS
------------------------ ---------- --------- ------------ ----- --------------- ------- -------------------------
Qwen/Qwen3-0.6B 2025-04-27 21156913 transformers 1285 text-generation transformers, safetens...
Qwen/Qwen2.5-1.5B-Ins... 2024-09-17 15143953 transformers 725 text-generation transformers, safetens...
Qwen/Qwen3-4B 2025-04-27 14808352 transformers 625 text-generation transformers, safetens...
提示:使用 `--no-truncate` 或 `--format json` 显示完整值。
# 代理(自动检测):TSV,完整ID + ISO时间戳 + 每个标签,不截断
$ hf models ls --author Qwen --sort downloads --limit 3
id created_at downloads library_name likes pipeline_tag private tags
Qwen/Qwen3-0.6B 2025-04-27T03:40:08+00:00 21156913 transformers 1285 text-generation False ['transformers', 'safetensors', 'qwen3', 'text-generation', 'conversational', 'arxiv:2505.09388', 'base_model:Qwen/Qwen3-0.6B-Base', 'base_model:finetune:Qwen/Qwen3-0.6B-Base', 'license:apache-2.0', 'text-generation-inference', 'endpoints_compatible', 'deploy:azure', 'region:us']
Qwen/Qwen2.5-1.5B-Instruct 2024-09-17T14:10:29+00:00 15143953 transformers 725 text-generation False ['transformers', 'safetensors', 'qwen2', 'text-generation', 'chat', 'conversational', 'en', 'arxiv:2407.10671', 'base_model:Qwen/Qwen2.5-1.5B', 'base_model:finetune:Qwen/Qwen2.5-1.5B', 'license:apache-2.0', 'text-generation-inference', 'endpoints_compatible', 'deploy:azure', 'region:us']
Qwen/Qwen3-4B 2025-04-27T03:41:29+00:00 14808352 transformers 625 text-generation False ['transformers', 'safetensors', 'text-generation', 'arxiv:2309.00071', 'arxiv:2505.09388', 'base_model:Qwen/Qwen3-4B-Base', 'base_model:finetune:Qwen/Qwen3-4B-Base', 'license:apache-2.0', 'endpoints_compatible', 'deploy:azure', 'region:us']
人类获得对齐的表格,截断以适应终端,并附有如何查看更多信息的提示,状态有颜色提示(成功时绿色✓,错误时红色)。代理获得完整的TSV记录:完整的仓库ID、完整的ISO时间戳、每个标签、无ANSI代码、不截断、易于解析且Token消耗少。在实践中,我们实现了诸如 .table(...)、.result(...)、.json() 等日志方法,它们接收原始数据并处理格式化。除了人类和代理模式外,我们还引入了 --json 和 --quiet 选项,便于命令管道连接。默认模式根据上下文自动选择,但用户始终可以使用 --format human | agent | json | quiet 强制选择自己想要的格式。
https://huggingface.co/blog/hf-cli-for-agents#next-command-hints 下一步命令提示
CLI命令很少孤立运行:一个步骤通常暗示下一个(git add,然后 git commit)。许多 hf 命令现在以一个提示结尾:确切的下一步命令,预填充了你刚刚使用的ID,因此用户或代理可以直接进入下一步,而不是从头开始推导。在后台启动作业,它会指向日志;创建Space,它会指向启动状态:
$ hf jobs run --detach python:3.12 python train.py
✓ Job started
id: 6f3a1c2e9b
url: https://huggingface.co/jobs/celinah/6f3a1c2e9b
提示:使用 `hf jobs logs 6f3a1c2e9b` 获取日志。
对人类来说,这是一个便利。对代理来说,这是一个轨道:下一个动作已被命名,用正确的ID参数化,并且可以立即运行,因此解决下一步需要更少的步骤。错误也以相同方式处理,指出修复方法而不是仅仅失败:
错误:未登录。请先运行 `hf auth login`。
提示、警告和错误全部输出到stderr,而数据输出到stdout,因此这些指导信息不会污染代理正在解析的输出。
https://huggingface.co/blog/hf-cli-for-agents#non-blocking-and-safe-to-retry 非阻塞且安全可重试
hf 从不停留在交互式提示上等待一个代理无法按下的键。破坏性命令仍然要求人类确认,但在代理模式下,它会快速失败,并在消息中给出修复方法(使用 --yes 跳过确认。),而 -y / --yes 可以跳过确认。由于代理会在超时和上下文丢失时重试,操作被设计为安全可重复:hf repos create --exist-ok 在仓库已存在时是空操作,重新运行上传会干净地重新提交。另外,移动真实数据的命令接受 --dry-run 选项,该选项在运行前精确显示它们将传输的内容,这对人类和代理都很方便,因为两者都不必承诺执行长时间下载或盲目同步:
# 代理模式:不带 --yes 的破坏性命令会拒绝,消息中包含修复方法
$ hf repos delete my-org/old-model
错误:你将永久删除模型 'my-org/old-model'。是否继续?使用 --yes 跳过确认。
# 移动数据的命令接受 --dry-run 预览传输
$ hf download deepseek-ai/DeepSeek-V4-Pro config.json --dry-run
[dry-run] 将下载 1 个文件(共 1 个),总计 1.8K。
文件 大小
config.json 1.8K
https://huggingface.co/blog/hf-cli-for-agents#discoverable-predictable-commands 可发现、可预测的命令
hf 被设计为可探索:运行 hf 查看资源组,在需要的资源组上运行 --help,每个 --help 都以真实、可复制粘贴的示例结尾(代理匹配这些示例比解析描述快得多):
$ hf models ls --help
...
示例
$ hf models ls --sort downloads --limit 10
$ hf models ls --search "qwen" --author Qwen
$ hf models ls Qwen/Qwen3-4B --tree
命令树是一致的,资源 + 动词,带有明显的别名(hf models ls、hf repos create、hf jobs ps、hf collections delete;list/ls、remove/rm),因此代理学会一个命令后可以猜测其余命令。输出是可组合的:-q 每行列出一个ID以管道传递到下一个命令,--json 给你一个可以传给 jq 的东西 (https://jqlang.org/)。
$ hf models ls --author Qwen -q | head -3
Qwen/Qwen3-0.6B
Qwen/Qwen2.5-1.5B-Instruct
Qwen/Qwen3-4B
https://huggingface.co/blog/hf-cli-for-agents#benchmarking-the-hf-cli-for-coding-agents 为编码代理基准测试hf CLI
为了找出 hf CLI 对代理是否真的更高效,我们进行了测量。我们构建了一个小型评估框架,多次运行相同的一组Hub任务,通过每种驱动Hub的方式,并在实时Hub上对每次运行进行评分。在方法论之前先给出结论:在两个代理上,hf CLI 都表现更好,在复杂、多步骤任务上最为明显,因为它使用的Token更少。
| 代理 | 工具 | 成功率 | Token使用量 | 自报错误 |
|---|---|---|---|---|
| Claude Code (Sonnet 4.6) | hf CLI | 0.94 | 基准 | 2 / 163 |
| curl / Python SDK | 0.84 | 1.3-1.6× Token | 11 / 163 | |
| Codex (GPT-5.5) | hf CLI | 0.93 | 基准 | 3 / 163 |
| curl / Python SDK | 0.92 | 1.6-1.8× Token | 10 / 163 |
(自报错误 = 代理在17个可解任务上报告成功,但Hub显示相反。hf CLI 行是指安装了该技能的CLI;该技能在裸CLI之上增加的内容(主要是更少的工具调用)在下面的技能部分中详细说明 (https://huggingface.co/blog/hf-cli-for-agents#the-hf-cli-skill)。代表性会话记录已发布在此存储桶中 (https://huggingface.co/buckets/celinah/hf-cli-agent-benchmark)。)
https://huggingface.co/blog/hf-cli-for-agents#the-setup 设置
我们定义了18个非平凡的Hub任务。不是“下载一个文件”,而是你实际会要求的那种:汇总一个热门组织的模型、检查仓库的文件及其大小、使用包含/排除规则上传文件夹、删除文件、跨仓库复制文件、打开一个添加许可证的PR、创建一个带分支和标签的仓库、同步并修剪一个存储桶、构建一个集合。每个任务都会被提交给一个全新的编码代理,该代理只能以一种方式与Hub通信:
hfCLI,或- curl / Python SDK:完全不使用
hfCLI,因此代理退回到使用curl调用REST API或huggingface_hubPython库。
我们以两种配置运行 hf CLI,一种带有其技能(一个生成的命令参考,我们将在自己的部分中回顾 (https://huggingface.co/blog/hf-cli-for-agents#the-hf-cli-skill))。但下面的主要对比仅仅是 hf CLI vs curl / SDK;技能的增量效果足够小,我们将其单独列出,而不是挤入主要结果。配置故意保持简洁:每次运行全新实例,没有自定义MCP服务器,没有 CLAUDE.md 或 AGENTS.md,上下文中没有任何东西来影响行为。任务和工具放在一个提示中,代理以 TASK_COMPLETE 或 TASK_FAILED 标记结束,但我们不信任这个标记(代理会在从未实际落地的任务上报告成功),因此我们通过**重新查询实
相似文章
@ClementDelangue:HF 正成为智能体(在人类辅助下)使用并构建 AI 的平台,而不仅仅是调用 API!
Hugging Face 正在将自己定位为智能体(及其人类助手)构建和使用 AI 的核心平台,超越简单的 API 调用。
将 hf CLI 设计为适合 Hub 使用的 Agent 优化工具
Hugging Face 重新设计了其 `hf` CLI,使其同时面向人类用户和 Claude Code、Codex 等 AI 编程 Agent 进行优化,具备 Agent 感知的输出渲染能力,基准测试显示在复杂任务上相比不使用 CLI 的方案最高可节省 6 倍的 token 消耗。
@akshay_pachaar: https://x.com/akshay_pachaar/status/2053166970166772052
The article discusses a shift in AI agent tool usage from the 'MCP vs CLI' debate to 'Code Mode,' where agents write code to dynamically import tools, significantly reducing context window usage. It highlights Anthropic's approach and Cloudflare's implementation, demonstrating a 98.7% reduction in token consumption for specific tasks.
AI代理让代币化平台比我预想的更易用
一位开发者分享了AI代理如何通过人类与系统的智能编排(而非完全自主)来改进代币化平台。
@_avichawla: 更聪明的 Claude 模型消耗的 tokens 更多,而不是更少!而且这不是 3-5% 的微小差异,而是高出 54% 的 token 使用量。…
本文分析了为何像 Claude 这样更智能的 AI Agent 在与 Supabase 等以人类为中心的后端交互时会消耗更多 Token,主要原因在于上下文发现效率低下。文章引入了 InsForge,这是一款专为 Agent 设计的开源后端工具,通过提供结构化的上下文来显著降低 Token 用量和人工干预。