作者如何让 Agent 串联两个 Hugging Face Space 搭建 3D 巴黎画廊
How an Agent Built a 3D Paris Gallery by Chaining Two HF Mirror Spaces
作者让编程智能体调用两个 Hugging Face Space 搭建了一个展示巴黎地标的 3D 高斯泼溅画廊:ideogram4 负责由提示词生成图像,VAST-AI/TripoSplat 负责将单张图像重建成 .ply 格式的 3D 高斯泼溅。
作者以一条可复现的智能体流水线,展示如何用 agents.md 串联两个 Space 完成图像与 3D 生成。
一个 agent 用两个 Hugging Face Spaces 搭建了一座 3D 巴黎画廊。
我让一个编程 agent 构建一个漂亮的网站,用 3D Gaussian splats 展示巴黎的纪念碑。我从未打开过图像生成器。我从未碰过 3D 重建工具。这个 agent 通过直接调用两个 Hugging Face Spaces 生成了所有素材(图像和3D splats),然后把它们串接成一个电影感的查看器。
这是结果,作为一个静态 Space 上线:
这篇文章讲的是这件事如何成为可能,以及为什么我认为它预示了从现在起大量多媒体软件的构建方式。
积木经济降临多媒体领域
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 按钮找到这些说明:

真正的解锁点是链式调用:一个 Space 的输出成为下一个 Space 的输入。提示词 → 图像 → 3D。这就是这座画廊背后的整条流水线。
实操示例:巴黎纪念碑 → splats
这个 agent 链式调用了两个 Spaces:
- 图像:一个图像生成 Space 把每座纪念碑变成干净的、 深色背景的"标本"照片(还把埃菲尔铁塔变成了一座放在 基座上的小立体模型)。提示词进,图像出。
- Splat:
VAST-AI/TripoSplat从每一张单图中重建出一个 3D Gaussian splat(.ply)。图像进, 3D 出。
生成的图像
重建的 splat
这个 agent 生成的六张源图,全部孤立在黑色背景上,已为 单图 3D 重建准备就绪:
接下来,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 上线:
这篇文章讲的是 如何 现在能做到这一点,以及为什么我认为它预示了 从此以后大量多媒体软件的构建方式。
积木式经济向多媒体领域袭来
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:
- 图像:
ideogram-ai/ideogram4把每座纪念建筑变成一张干净的、 深色背景的“标本”照片(还把埃菲尔铁塔变成了一座放在 基座上的小型立体模型)。输入提示词,输出图像。 - Splat:
VAST-AI/TripoSplat从每张单幅图像重建出一个 3D 高斯 splat(.ply)。输入图像, 输出 3D。
生成的图像
重建出的 splat
智能体生成的六张源图像,全都隔离在黑色背景上,准备好用于 单图 3D 重建:
在此基础上,智能体还完成了“粘合”工作。它注意到 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




