如何用两个 Hugging Face Space 让智能体搭出 3D 巴黎画廊
How an Agent Built a 3D Paris Gallery by Chaining Two Hugging Face Spaces
作者让编码智能体调用两个 Hugging Face Space,先由 ideogram-ai/ideogram4 生成六张巴黎地标图像,再由 VAST-AI/TripoSplat 从单图重建 3D Gaussian splat,最终拼成可交互的静态 Space 画廊。
一个智能体用两个 Hugging Face Spaces 搭建了一座 3D 巴黎画廊。
我让一个编程智能体搭建一个精美的网站,用 3D 高斯溅射(Gaussian splats)展示巴黎的纪念碑。我从未打开过图像生成器。我从未碰过 3D 重建工具。这个智能体通过直接调用两个 Hugging Face Spaces 生成了所有素材(图像以及 3D 溅射),然后把它们接入一个电影级的查看器。
结果如下,作为一个静态 Space 实时运行:
这篇文章讲的是这如今如何成为可能,以及为什么我认为它预示了今后大量多媒体软件的构建方式。
积木经济降临多媒体领域
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 "files=@file.ext"
Auth: Bearer $HF_TOKEN
没有客户端库。没有硬编码的集成。智能体读了它,就能端到端地驱动
这个 Space。设置一个 HF_TOKEN
就可以开始了。你可以在任何 Gradio Space 上通过它的
Agents 按钮找到这些说明:

真正的解锁点是链式调用:一个 Space 的输出成为下一个 Space 的输入。提示词 → 图像 → 3D。这就是这座画廊背后的完整流水线。
实战示例:巴黎纪念碑 → 溅射
这个智能体链式调用了两个 Spaces:
- 图像:一个图像生成 Space 把每座纪念碑变成一张干净的、 深色背景的“标本”照(并把埃菲尔铁塔变成放在 基座上的一个小立体模型)。输入提示词,输出图像。
- 溅射:
VAST-AI/TripoSplat从每张单图重建出一个 3D 高斯溅射(.ply)。输入图像, 输出 3D。
生成的图像
重建的溅射
智能体生成的六张源图像,全部孤立在黑色背景上,准备好用于 单图 3D 重建:
随后,智能体也完成了“粘合”工作。它注意到 TripoSplat 的输出是 Y 轴向下,于是将它们翻转朝上,自动为每座纪念碑取景,把 .ply 文件压缩为 .ksplat(约小 3 倍,因此加载很快),构建了一个带滚动切换和拖拽旋转 UI 的 Three.js 查看器,并将整个项目部署为一个静态 Space。唯一的人工输入都是品味层面的:“把它拉远一点”、“把方尖碑换成更适合 splatting 的东西”、“过渡停留太久了”。
其中几个步骤是智能体在对现实做出反应。宽大的玻璃金字塔 splat 效果很差。细长的方尖碑很无趣。单视图重建会推断背面。这正是“外包研发、快速迭代”循环——积木经济所预测的模式,只不过这里的研发是一场对话。
两个提示词,一个全新的画廊
积木的真正考验在于你能以多低的成本复用它。一旦这条流水线存在,搭建全新的画廊每个只需大约一句话。“创建一个类似的 Space,用 splats 展示日本,”然后对埃及同样操作,剩下的智能体都做了:每个国家六张纪念碑图片、六个 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 的开源权重目录变成了一库可调用的多媒体原语。
- 智能体偏好有文档且可触达的东西。
agents.md让一个 Space 变得极易触达,因此智能体会选择它,而不是一个需要手动设置的模型。这与 Hashimoto 指出的开源库动态相同。 - 障碍曾是集成,而它基本消失了。“把提示词变成旋转的 3D 纪念碑”过去是一个项目。在这里,它只是流水线中的一步。
自己试试
把你自己的智能体指向某个 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
把任一链接粘贴到你的编码智能体(Claude Code 等)中,设置你的 HF_TOKEN,然后让它构建点什么。这个画廊完整、可复现的流水线,即调用那两个 agents.md 端点的脚本,位于 Space 仓库。
积木就摆在 Hub 上。智能体已经知道怎么粘合。
我让一个编码智能体构建一个漂亮的网站,以 3D 高斯 splats 展示巴黎的纪念碑。我从未打开过图像生成器。我从未碰过 3D 重建工具。智能体通过直接调用两个 Hugging Face Spaces 生成了每一个资产(图像和3D splats),然后把它们接入一个电影般的查看器。
结果如下,作为一个静态 Space 上线:
这篇文章讲的是这现在如何成为可能,以及为什么我认为它预示了今后大量多媒体软件的构建方式。
积木经济席卷多媒体
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 "files=@file.ext"
Auth: Bearer $HF_TOKEN
没有客户端库。没有硬编码集成。智能体读取它,就能端到端地驱动
Space。设置一个 HF_TOKEN
就可以开始了。
真正的解锁是链式调用:一个 Space 的输出成为下一个 Space 的 输入。提示词 → 图像 → 3D。这就是这个画廊背后的完整流水线。
完整示例:巴黎纪念碑 → splats
智能体链式调用了两个 Space:
- 图像:
ideogram-ai/ideogram4把每个纪念碑变成干净的、 深色背景的“标本”照片(并把埃菲尔铁塔变成基座上的小 立体模型)。输入提示词,输出图像。 - Splat:
VAST-AI/TripoSplat从每张单图重建了一个 3D 高斯 splat(.ply)。输入图像, 输出 3D。
生成的图像
重建的 splat
智能体生成的六张源图像,全部孤立在黑色背景上,准备好用于 单图 3D 重建:
从那里开始,智能体也做了“粘合”工作。它注意到 TripoSplat 的输出是
Y 轴向下,于是把它们翻转直立,自动为每个纪念碑取景,把 .ply
文件压缩为 .ksplat(约小 3 倍,因此加载很快),构建了一个带
滚动切换和拖拽旋转 UI 的 Three.js 查看器,并把整个东西部署为一个静态
Space。唯一的人类输入是品味层面的:“把它拉远一点,”“把
方尖碑换成更适合 splatting 的东西,”“过渡停留太久。”
其中几个步骤是智能体对现实做出反应。宽大的玻璃金字塔 splat 效果很差。细长的方尖碑很乏味。单视图重建会推断 背面。这正是积木经济所预测的“外包 R&D、快速迭代”循环, 只不过 R&D 变成了一场对话。
两个提示词,一个全新的画廊
对一个构建模块的真正考验,是你能以多低的成本复用它。一旦这条流水线存在,从零搭建全新的画廊大约只需一句话。"为日本创建一个类似的、带 splats 的 Space",然后埃及也同样来一句,剩下的智能体全包了:每个国家六张古迹图片、六个 splats、压缩、一个查看器,以及一个已部署的 Space。
- 🏛️ 埃及古迹:大金字塔、狮身人面像、阿布辛贝神庙、图坦卡蒙面具、卡纳克神庙、门农巨像。
- ⛩️ 日本古迹:东京塔、姬路城、金阁寺、大阪城、镰仓大佛、严岛鸟居。
同样的两个 Space,同样的 agents.md,只是提示词变了。这就是一句话概括的构建模块经济学:一个新的多媒体应用的边际成本,正趋近于描述它的成本。
为什么这很重要
- 模型变得可组合。一个 SOTA splat 模型和一个 SOTA 图像模型,来自不同的组织,以零集成代码串联起来。Hub 的开源权重目录变成了一库可调用的多媒体原语。
- 智能体偏爱有文档且易于访问的东西。
agents.md让一个 Space 变得触手可及,因此智能体会选择它,而不是一个需要手动设置的模型。这与 Hashimoto 针对开源库所指出的动态如出一辙。 - 障碍曾是集成,而它如今基本消失了。"把一句提示词变成一座旋转的 3D 古迹"过去是一个项目。在这里,它只是流水线中的一步。
自己试试
把你自己的智能体指向某个 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
把任一链接粘贴进你的编程智能体(Claude Code 等),设置好你的 HF_TOKEN,然后让它构建点什么。这个画廊完整、可复现的流水线,即那些调用这两个 agents.md 端点的脚本,就在 Space 仓库 里。
构建模块就摆在 Hub 上。智能体早已懂得如何把它们粘合起来。
来源:Hugging Face Blog · huggingface.co




