Hugging Face 블로그에 Mishig Davaadorj가 "파리 기념물을 3D 가우시안 스플랫으로 보여주는 사이트를 만들어달라"고 코딩 에이전트에게 던졌더니, 사람이 이미지 생성기도 3D 재구성 툴도 단 한 번 열지 않은 채 mishig/monuments-de-paris라는 정적 Space가 나왔다는 글을 올렸다. 흥미로운 건 결과물이 아니라 그 사이의 호출 규약이다.
이제 모든 Gradio Space는 agents.md라는 평문 파일을 노출한다. `curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md` 한 번이면 API schema URL, call/poll 엔드포인트 템플릿, 파일 업로드 방식(`POST .../gradio_api/upload -F "files=@file.ext"`), 그리고 Bearer $HF_TOKEN 인증까지 한 페이지에 다 적혀 있다. 클라이언트 라이브러리도, 하드코딩된 SDK 바인딩도 없다. 에이전트가 텍스트만 읽고 Space를 끝까지 운전한다.
파이프라인은 두 칸이었다. ideogram-ai/ideogram4가 prompt→image로 검은 배경에 isolated된 기념물 "표본" 샷 여섯 장을 뽑고, VAST-AI/TripoSplat이 single image→3D Gaussian splat(.ply)으로 그걸 받아 재구성한다. 한쪽 출력이 곧 다른 쪽 입력이다. 그 뒤에 따라붙는 "접착제" 작업도 에이전트가 했다. TripoSplat이 Y-down 좌표로 떨어뜨리는 걸 알아채 upright로 뒤집고, 기념물별로 오토 프레이밍하고, .ply를 .ksplat으로 약 3배 압축해 로딩을 짧게 만들고, Three.js 뷰어에 스크롤로 전환·드래그로 회전하는 UI를 얹어 정적 Space로 배포했다. 사람이 댄 입력은 "좀 더 줌아웃", "오벨리스크는 single-view splat이 dull하니 다른 걸로", "전환이 너무 늘어진다" 정도였다.
진짜 시험은 재사용 비용이다. 같은 두 Space에 프롬프트만 갈아 이집트 갤러리(피라미드·스핑크스·아부심벨·투탕카멘 마스크·카르나크·멤논 거상)와 일본 갤러리(도쿄타워·히메지·금각사·오사카성·가마쿠라 대불·이쓰쿠시마 토리이)를 한 문장씩으로 복제했다. Mitchell Hashimoto가 말한 building block economy가 npm 라이브러리가 아니라 SOTA 멀티미디어 모델 단위로 재현된 셈인데, 그 결정타가 agents.md다. 모델을 가중치·GPU·input format·polling 통합 작업으로 두지 않고 "문서화된 callable block"으로 노출한 순간, 직접 셋업해야 하는 쪽은 이미 reachable한 Space에 자리를 내주기 시작한다. 멀티미디어 앱 하나의 한계 비용이 그걸 묘사하는 비용으로 수렴한다는 말이 더는 수사로 들리지 않는다.