Agent 链式调用多个工具构建交互应用
展示 AI Agent 自动化串联两个 Hugging Face Spaces 完成 3D 画廊构建,体现 Agent 组合工具的可能性。
完整中文译文
我让一个 coding agent 构建了一个精美的网站,用 3D Gaussian splats 展示巴黎的地标建筑。我没有打开过图像生成器,也没有接触过任何 3D 重建工具。Agent 直接调用两个 Hugging Face Spaces,生成了所有素材(包括图像和 3D splats),然后把它们接入一个富有电影感的查看器中。
这是最终成果,以静态 Space 的形式在线运行:
👉 mishig/monuments-de-paris
这篇文章要讲的是:为什么现在已经能做到这件事,以及为什么我认为,它预示着未来大量多媒体软件的构建方式。
积木经济开始席卷多媒体领域
Mitchell Hashimoto 最近描述了一种他称为「积木经济」(building block economy)的转变:构建软件最有效的方式,不再是打造一个精致的单体系统,而是提供规模小巧、文档完善的组件,让其他人——越来越多时候是 Agent——把它们组装起来。他的核心观察是:AI 从零构建一切的能力还算可以,但它非常擅长把经过验证的模块粘合在一起。
过去,人们主要通过代码库来阐述这一观点。但同样的力量也正在影响多媒体 AI。使用最先进的图像模型、视频模型、TTS 模型或 3D 重建模型时,真正困难的部分从来都不是模型本身,而是集成:SDK、权重、GPU、输入格式、轮询。如果每个模型都能变成一个有文档、可调用的模块,Agent 就可以像拼装 npm packages 一样,把它们粘合在一起。
而这正是 Hugging Face Spaces 在不知不觉中演变成的形态。
通过 agents.md,每个 Space 都是一个积木
Hub 托管着数千个最先进的模型,其中很大一部分采用 open-weights,并且多数模型都以交互式 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 "files=@file.ext"
Auth: Bearer $HF_TOKEN
不需要客户端库,也不需要硬编码集成。Agent 读完这些内容,就能端到端地驱动整个 Space。设置好 HF_TOKEN,马上就能开始。你可以通过任何 Gradio Space 上的 Agents 按钮找到这些说明:
真正带来突破的是链式调用:一个 Space 的输出,会成为下一个 Space 的输入。Prompt → 图像 → 3D。这就是这座画廊背后的完整 pipeline。
实际案例:巴黎地标 → splats
Agent 串联了两个 Spaces:
图像:一个图像生成 Space 把每座地标转换成背景干净、深色的「标本」照片(还把埃菲尔铁塔做成了一个放在基座上的小型立体模型)。输入 prompt,输出图像。
Splat:VAST-AI/TripoSplat 根据每张单独的图像,重建出一个 3D Gaussian splat(.ply)。输入图像,输出 3D。
以下是 Agent 生成的六张源图像。它们都被单独置于黑色背景上,可以直接用于单图 3D 重建:
此后,「粘合」工作也由 Agent 完成。它发现 TripoSplat 的输出采用 Y 轴向下的坐标系,于是将其翻转至正向;它自动为每座地标调整取景,将 .ply 文件压缩成 .ksplat(体积缩小约 3 倍,因此加载速度很快),构建了一个 Three.js 查看器,提供滚动切换和拖拽旋转 UI,最后把整个项目部署为静态 Space。人类提供的输入只涉及审美层面的调整:「再拉远一点」「把方尖碑换成更适合做 splatting 的东西」「转场停留得太久了」。
其中有几个步骤,是 Agent 根据现实效果作出的反应。宽大的玻璃金字塔很难生成良好的 splat;细长的方尖碑又很单调;单视角重建必须推断物体背面的形态。这恰好就是积木经济所预测的「外包 R&D、快速迭代」循环,只不过这一次,R&D 是通过对话完成的。
两条 prompt,生成一座全新画廊
检验一个积木是否真正好用,要看复用它的成本有多低。这套 pipeline 一旦建成,创建完全不同的新画廊,每个大约只需要一句话。「创建一个类似的 Space,用 splats 展示日本地标」,然后再为埃及重复一次,剩下的工作全部由 Agent 完成:每个国家生成六张地标图像、六个 splats,完成压缩、查看器构建以及 Space 部署。
🏛️ 埃及地标:吉萨大金字塔、狮身人面像、阿布辛贝神庙、图坦卡蒙面具、卡纳克神庙、门农巨像。
<video autoplay loop muted playsinline width="100%" src="
⛩️ 日本地标:东京塔、姬路城、金阁寺、大阪城、镰仓大佛、严岛神社鸟居。
<video autoplay loop muted playsinline width="100%" src="
还是相同的两个 Spaces、相同的 agents.md,只有 prompts 发生了变化。这句话就概括了积木经济:一款新多媒体应用的边际成本,正在逼近描述它所需的成本。
模型开始具备可组合性。来自不同组织的 SOTA splat 模型和 SOTA 图像模型,无须编写任何集成代码就能串联起来。Hub 上的 open-weights 模型目录,也由此变成了一个由可调用多媒体原语组成的库。
Agents 偏爱文档完善且容易访问的东西。agents.md 让 Space 变得极易访问,因此相比需要手动搭建的模型,Agent 会优先选择 Space。这与 Hashimoto 在开源库领域指出的趋势如出一辙。
过去的障碍是集成,而现在,这道障碍在很大程度上已经消失。「把一条 prompt 变成一座可旋转的 3D 地标」以前是一个完整项目,而在这里,它只是 pipeline 中的一个步骤。
让你自己的 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
把任意一个链接粘贴到你的 coding agent(Claude Code 等)中,设置 HF_TOKEN,然后让它构建点东西。这座画廊完整且可复现的 pipeline,以及调用这两个 agents.md 端点的脚本,都存放在 Space repo 中。
这些积木就摆在 Hub 上。Agents 已经知道该如何把它们粘合起来。
我让一个 coding agent 构建了一个精美的网站,用 3D Gaussian splats 展示巴黎的地标建筑。我没有打开过图像生成器,也没有接触过任何 3D 重建工具。Agent 直接调用两个 Hugging Face Spaces,生成了所有素材(包括图像和 3D splats),然后把它们接入一个富有电影感的查看器中。
这是最终成果,以静态 Space 的形式在线运行:
👉 mishig/monuments-de-paris
这篇文章要讲的是:为什么现在已经能做到这件事,以及为什么我认为,它预示着未来大量多媒体软件的构建方式。
积木经济开始席卷多媒体领域
Mitchell Hashimoto 最近描述了一种他称为「积木经济」(building block economy)的转变:构建软件最有效的方式,不再是打造一个精致的单体系统,而是提供规模小巧、文档完善的组件,让其他人——越来越多时候是 Agents——把它们组装起来。他的核心观察是:AI 从零构建一切的能力还算可以,但它非常擅长把经过验证的模块粘合在一起。
过去,人们主要通过代码库来阐述这一观点。但同样的力量也正在影响多媒体 AI。使用最先进的图像模型、视频模型、TTS 模型或 3D 重建模型时,真正困难的部分从来都不是模型本身,而是集成:SDK、权重、GPU、输入格式、轮询。如果每个模型都能变成一个有文档、可调用的模块,Agent 就可以像拼装 npm packages 一样,把它们粘合在一起。
而这正是 Hugging Face Spaces 在不知不觉中演变成的形态。
通过 agents.md,每个 Space 都是一个积木
Hub 托管着数千个最先进的模型,其中很大一部分采用 open-weights,并且多数模型都以交互式 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 "files=@file.ext"
Auth: Bearer $HF_TOKEN
不需要客户端库,也不需要硬编码集成。Agent 读完这些内容,就能端到端地驱动整个 Space。设置好 HF_TOKEN,马上就能开始。
真正带来突破的是链式调用:一个 Space 的输出,会成为下一个 Space 的输入。Prompt → 图像 → 3D。这就是这座画廊背后的完整 pipeline。
实际案例:巴黎地标 → splats
Agent 串联了两个 Spaces:
图像:ideogram-ai/ideogram4 把每座地标转换成背景干净、深色的「标本」照片(还把埃菲尔铁塔做成了一个放在基座上的小型立体模型)。输入 prompt,输出图像。
Splat:VAST-AI/TripoSplat 根据每张单独的图像,重建出一个 3D Gaussian splat(.ply)。输入图像,输出 3D。
以下是 Agent 生成的六张源图像。它们都被单独置于黑色背景上,可以直接用于单图 3D 重建:
此后,「粘合」工作也由 Agent 完成。它发现 TripoSplat 的输出采用 Y 轴向下的坐标系,于是将其翻转至正向;它自动为每座地标调整取景,将 .ply 文件压缩成 .ksplat(体积缩小约 3 倍,因此加载速度很快),构建了一个 Three.js 查看器,提供滚动切换和拖拽旋转 UI,最后把整个项目部署为静态 Space。人类提供的输入只涉及审美层面的调整:「再拉远一点」「把方尖碑换成更适合做 splatting 的东西」「转场停留得太久了」。
其中有几个步骤,是 Agent 根据现实效果作出的反应。宽大的玻璃金字塔很难生成良好的 splat;细长的方尖碑又很单调;单视角重建必须推断物体背面的形态。这恰好就是积木经济所预测的「外包 R&D、快速迭代」循环,只不过这一次,R&D 是通过对话完成的。
两条 prompt,生成一座全新画廊
检验一个积木是否真正好用,要看复用它的成本有多低。这套 pipeline 一旦建成,创建完全不同的新画廊,每个大约只需要一句话。「创建一个类似的 Space,用 splats 展示日本地标」,然后再为埃及重复一次,剩下的工作全部由 Agent 完成:每个国家生成六张地标图像、六个 splats,完成压缩、查看器构建以及 Space 部署。
🏛️ 埃及地标:吉萨大金字塔、狮身人面像、阿布辛贝神庙、图坦卡蒙面具、卡纳克神庙、门农巨像。
⛩️ 日本地标:东京塔、姬路城、金阁寺、大阪城、镰仓大佛、严岛神社鸟居。
还是相同的两个 Spaces、相同的 agents.md,只有 prompts 发生了变化。这句话就概括了积木经济:一款新多媒体应用的边际成本,正在逼近描述它所需的成本。
模型开始具备可组合性。来自不同组织的 SOTA splat 模型和 SOTA 图像模型,无须编写任何集成代码就能串联起来。Hub 上的 open-weights 模型目录,也由此变成了一个由可调用多媒体原语组成的库。
Agents 偏爱文档完善且容易访问的东西。agents.md 让 Space 变得极易访问,因此相比需要手动搭建的模型,Agent 会优先选择 Space。这与 Hashimoto 在开源库领域指出的趋势如出一辙。
过去的障碍是集成,而现在,这道障碍在很大程度上已经消失。「把一条 prompt 变成一座可旋转的 3D 地标」以前是一个完整项目,而在这里,它只是 pipeline 中的一个步骤。
让你自己的 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
把任意一个链接粘贴到你的 coding agent(Claude Code 等)中,设置 HF_TOKEN,然后让它构建点东西。这座画廊完整且可复现的 pipeline,以及调用这两个 agents.md 端点的脚本,都存放在 Space repo 中。
这些积木就摆在 Hub 上。Agents 已经知道该如何把它们粘合起来。
本文提到的 Spaces:5 个
这位作者的更多文章
无需 Photoshop,无需 Blender:由 Agent 构建多媒体内容
36 条 Prompts,一座无限城市
· 注册或登录后发表评论