跳到正文
原文
Hugging Face Blog·· 2026-06-09精选AI 评分61

作者如何让 Agent 串联两个 Hugging Face Space 搭建 3D 巴黎画廊

How an Agent Built a 3D Paris Gallery by Chaining Two HF Mirror Spaces

AI 导读

作者让编程智能体调用两个 Hugging Face Space 搭建了一个展示巴黎地标的 3D 高斯泼溅画廊:ideogram4 负责由提示词生成图像,VAST-AI/TripoSplat 负责将单张图像重建成 .ply 格式的 3D 高斯泼溅。

推荐理由

作者以一条可复现的智能体流水线,展示如何用 agents.md 串联两个 Space 完成图像与 3D 生成。

正文 · AI 翻译

一个 agent 用两个 Hugging Face Spaces 搭建了一座 3D 巴黎画廊。

我让一个编程 agent 构建一个漂亮的网站,用 3D Gaussian splats 展示巴黎的纪念碑。我从未打开过图像生成器。我从未碰过 3D 重建工具。这个 agent 通过直接调用两个 Hugging Face Spaces 生成了所有素材(图像和3D splats),然后把它们串接成一个电影感的查看器。

这是结果,作为一个静态 Space 上线:

👉 mishig/monuments-de-paris

这篇文章讲的是这件事如何成为可能,以及为什么我认为它预示了从现在起大量多媒体软件的构建方式。

积木经济降临多媒体领域

Mitchell Hashimoto 最近描述了一种他称之为 积木经济的转变: 通往软件的最有效路径不再是一个打磨精良的单体,而是小巧、文档完善、可供他人(越来越多是 agent)组装的组件。 他的关键观察是:AI 从零构建一切还算可以,但它 真正擅长的是把久经考验的部件粘合在一起。

这一论点主要是用代码库来讲的。但同样的力量正在冲击多媒体 AI。使用最先进的图像模型、视频模型、TTS 模型或 3D 重建模型的难点从来都不是模型本身。而是集成:SDK、权重、GPU、输入格式、轮询。如果每个模型反而都是一个有文档、可调用的积木,agent 就能像拼装 npm 包一样把它们粘合起来。

这正是 Hugging Face Spaces 悄然变成的样子。

借助 agents.md,每个 Space 都是一块积木

Hub 上托管着数千个最先进的模型(其中很大一部分是 开放权重),而且大多数都以交互式 Spaces 的形式部署。截至目前, 每个 Gradio Space 还会公开一份纯文本 agents.md,告诉 agent 确切地如何调用它:

curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

一次性返回所需的一切:schema URL、调用和轮询模板、 如何上传文件,以及认证提示:

API schema:   GET  .../gradio_api/info
Call endpoint: POST .../gradio_api/call/v2/{endpoint} {"param_name": value, ...}
Poll result:  GET  .../gradio_api/call/{endpoint}/{event_id}
File inputs:  POST .../gradio_api/upload -F "[email protected]"
Auth:         Bearer $HF_TOKEN

没有客户端库。没有硬编码的集成。agent 读到这些,就能端到端地驱动 这个 Space。设置一个 HF_TOKEN 就可以开始了。你可以在任何 Gradio Space 上通过它的 Agents 按钮找到这些说明:

The Agents button on a Hugging Face Space

真正的解锁点是链式调用:一个 Space 的输出成为下一个 Space 的输入。提示词 → 图像 → 3D。这就是这座画廊背后的整条流水线。

实操示例:巴黎纪念碑 → splats

这个 agent 链式调用了两个 Spaces:

  1. 图像:一个图像生成 Space 把每座纪念碑变成干净的、 深色背景的"标本"照片(还把埃菲尔铁塔变成了一座放在 基座上的小立体模型)。提示词进,图像出。
  2. Splat:VAST-AI/TripoSplat 从每一张单图中重建出一个 3D Gaussian splat(.ply)。图像进, 3D 出。

生成的图像

Generated Panthéon

重建的 splat

这个 agent 生成的六张源图,全部孤立在黑色背景上,已为 单图 3D 重建准备就绪:

Generated monument images Generated Arc de Triomphe Generated Sacré-Cœur Generated Eiffel diorama

接下来,agent 还做了“胶水”工作。它注意到 TripoSplat 的输出是 Y 向下的,于是将它们翻转正立,自动为每座纪念碑取景,把 .ply 文件压缩为 .ksplat(约缩小 3 倍,因此加载很快),构建了一个带 滚动切换和拖拽旋转 UI 的 Three.js 查看器,并将整个东西部署为一个静态 Space。唯一的人类输入都是口味层面的:“把它拉远一点”“把 方尖碑换成更适合 splatting 的东西”“过渡停留太久了。”

其中好几步都是 agent 在对现实做出反应。宽大的玻璃金字塔 splat 效果很差。细长的方尖碑很无趣。单视角重建会推断背面。 这正是积木经济所预测的“外包 R&D、快速迭代”循环,只不过这里的 R&D 是一次对话。

两个提示词,一整个新画廊

积木的真正考验是你能多便宜地复用它。一旦这套 流程存在,搭建全新的画廊每座只需大约一句话。 “创建一个类似的 Space,放日本的 splats”,然后对埃及也一样, agent 做了剩下的事:每个国家六张纪念碑图片、六个 splats、压缩、一个查看器,以及 一个部署好的 Space。

  • 🏛️ 埃及的纪念碑: 大金字塔、狮身人面像、阿布辛贝神庙、图坦卡蒙面具、卡纳克神庙、 门农巨像。

<video autoplay loop muted playsinline width="100%" src="

">

  • ⛩️ 日本的纪念碑: 东京塔、姬路城、金阁寺、大阪城、镰仓大佛、 严岛鸟居。

<video autoplay loop muted playsinline width="100%" src="

">

同样的两个 Space,同样的 agents.md,只是提示词变了。这就是 积木经济的一句话概括:一个新的多媒体应用的边际成本 正趋近于描述它的成本。

为什么这很重要

  • 模型变得可组合。一个 SOTA splat 模型和一个 SOTA 图像模型,来自 不同组织,零集成代码就能串联起来。Hub 的开源权重 目录变成了一库可调用的多媒体原语。
  • agent 更偏好有文档且易于访问的东西。agents.md 让一个 Space 变得轻而易举地可访问,所以 agent 会选它,而不是一个需要手动 设置的模型。这与 Hashimoto 指出的开源库的动态如出一辙。
  • 障碍曾是集成,而它基本上已经消失了。“把一个提示词变成 旋转的 3D 纪念碑”过去是一个项目。在这里,它只是流程中的一步。

自己试试

把你自己的 agent 指向某个 Space 的 agents.md,让它自己发挥:

# image generation
curl https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md
# single-image to 3D gaussian splat
curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

把任一链接粘贴到你的编码 agent(Claude Code 等)中,设置你的 HF_TOKEN,然后让它构建一些东西。这个画廊的完整、可复现流程, 即那些调用这两个 agents.md 端点的脚本,位于 Space 仓库。

积木就在 Hub 上摆着。agent 们早就知道 怎么粘合了。

我让一个编码 agent 构建一个漂亮的网站,以 3D 高斯 splats 展示 巴黎的纪念碑。我从未打开过图像生成器。我从未碰过 3D 重建工具。agent 直接调用两个 Hugging Face Spaces 就产出了每一个素材(图像 和 3D splats),然后把它们接入一个 电影感的查看器。

结果如下,作为一个静态 Space 上线:

👉 mishig/monuments-de-paris

这篇文章讲的是 如何 现在能做到这一点,以及为什么我认为它预示了 从此以后大量多媒体软件的构建方式。

积木式经济向多媒体领域袭来

Mitchell Hashimoto 最近描述了一种他称之为 积木式经济的转变: 通往软件的最有效路径不再是一个打磨完善的整体式庞然大物,而是小巧、 文档完善的组件,让其他人(越来越多地是智能体)能够组装起来。 他的关键观察是:AI 从零构建一切还算可以,但它 非常擅长把经过验证的部件粘合在一起。

这一论点此前大多是以代码库为例来阐述的。但同样的力量正在 冲击多媒体 AI。使用最先进的图像模型、 视频模型、TTS 模型或 3D 重建模型的难点从来都不在模型本身。难点 在于集成:SDK、权重、GPU、输入格式、轮询。如果每个模型 都成为一个有文档、可调用的积木,智能体就能像拼接 npm 包一样把它们粘合在一起。

这正是 Hugging Face Spaces 悄然成为的样子。

每个 Space 都是一块积木,通过 agents.md

Hub 上托管着数千个最先进的模型(其中很大一部分是 开放权重的),而且大多数都以交互式 Spaces 的形式部署。截至目前, 每个 Gradio Space 还会公开一份纯文本的 agents.md,告诉智能体 确切地如何调用它:

curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

一次性返回所需的一切:schema URL、调用和轮询模板、 如何上传文件,以及认证提示:

API schema:   GET  .../gradio_api/info
Call endpoint: POST .../gradio_api/call/v2/{endpoint} {"param_name": value, ...}
Poll result:  GET  .../gradio_api/call/{endpoint}/{event_id}
File inputs:  POST .../gradio_api/upload -F "[email protected]"
Auth:         Bearer $HF_TOKEN

无需客户端库。无需硬编码集成。智能体读取它,就能端到端地驱动 这个 Space。设置一个 HF_TOKEN, 你就可以开始了。

真正的解锁点是链式调用:一个 Space 的输出成为下一个 Space 的 输入。提示词 → 图像 → 3D。这就是这个画廊背后的完整流水线。

实战示例:巴黎纪念建筑 → splats

该智能体链式调用了两个 Space:

  1. 图像: ideogram-ai/ideogram4 把每座纪念建筑变成一张干净的、 深色背景的“标本”照片(还把埃菲尔铁塔变成了一座放在 基座上的小型立体模型)。输入提示词,输出图像。
  2. Splat: VAST-AI/TripoSplat 从每张单幅图像重建出一个 3D 高斯 splat(.ply)。输入图像, 输出 3D。

生成的图像

Generated Panthéon

重建出的 splat

智能体生成的六张源图像,全都隔离在黑色背景上,准备好用于 单图 3D 重建:

Generated monument images Generated Arc de Triomphe Generated Sacré-Cœur Generated Eiffel diorama

在此基础上,智能体还完成了“粘合”工作。它注意到 TripoSplat 的输出是 Y 轴朝下的,于是把它们翻转正立,自动为每座纪念建筑取景,把 .ply 文件压缩成 .ksplat(体积约小 3 倍,因此加载更快),用 Three.js 构建了一个具有 滚动切换和拖拽旋转界面的查看器,并把整个东西部署为一个静态 Space。唯一的人类输入是审美层面的:“把它拉远一点,”“把 方尖碑换成更适合 splatting 的东西,”“过渡停留太久了。”

其中好几个步骤是智能体在对现实做出反应。宽大的玻璃金字塔 splat 效果很差。细长的方尖碑则很乏味。单视图重建会推断出 背面。这正是积木式经济所预言的“外包研发、快速迭代”循环, 只不过研发变成了一场对话。

两个提示词,一整个新画廊

对构建块真正的考验,在于你能以多低的成本复用它。一旦这条流水线存在,创建一个全新的画廊大约只需一句话。"为日本创建一个类似的 Space,包含 splats,"然后埃及也照做,剩下的交给 agent:每个国家六张古迹图片、六个 splats、压缩、一个查看器,以及一个部署好的 Space。

  • 🏛️ 埃及古迹:大金字塔、狮身人面像、阿布辛贝神庙、图坦卡蒙黄金面具、卡纳克神庙、门农巨像。
  • ⛩️ 日本古迹:东京塔、姬路城、金阁寺、大阪城、镰仓大佛、严岛神社鸟居。

同样两个 Space,同样的 agents.md,只是改了提示词。这就是一句话概括的构建块经济学:一个新的多媒体应用的边际成本,正朝着描述它的成本下降。

为什么这很重要

  • 模型变得可组合。一个 SOTA splat 模型和一个 SOTA 图像模型,来自不同的组织,以零集成代码串联起来。Hub 的开源权重目录,变成了一库可调用的多媒体原语。
  • Agent 更青睐有文档、可触及的东西。agents.md让一个 Space 变得轻而易举地可触及,因此 agent 会选它,而不是一个需要手动配置的模型。这与 Hashimoto 指出的开源库动态如出一辙。
  • 障碍曾是集成,而它现在基本消失了。"把一句提示词变成一个旋转的 3D 古迹"曾是一个项目。而在这里,它只是流水线中的一步。

自己动手试试

把你自己的 agent 指向某个 Space 的 agents.md,让它开始折腾:

# image generation
curl https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md
# single-image to 3D gaussian splat
curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

把这两个链接中的任意一个粘贴到你的编程 agent(Claude Code 等)里,设置好你的 HF_TOKEN,然后让它构建点什么。这个画廊完整、可复现的流水线——也就是命中那两个 agents.md 端点的脚本——就在这个 Space 仓库里。

构建块就摆在 Hub 上。Agent 们早就知道怎么把它们粘起来。

来源:Hugging Face Blog · hf-mirror.com