--- title: Agentic Space Factory sdk: gradio app_file: app.py hf_oauth: true hf_oauth_expiration_minutes: 480 hf_oauth_scopes: - read-repos - write-repos - manage-repos - gated-repos - inference-api - jobs - read-billing --- # Agentic Space Factory Agentic Space Factory turns a Hugging Face model card into a **private, testable Gradio Space** using a Hugging Face Job, Pi, a coding model through Hugging Face Inference Providers, and a private Storage Bucket for run state, traces, reports, generated files, and validation artifacts. It is designed as a Hugging Face-native version of the local agent workflow described in the ZeroGPU Spaces article: ```text model card → agentic job → generated private Space → hardware if available → live validation → report ``` ## Main workflow The public UI is intentionally compact: Build and Validate are the only product workflows, with inputs grouped into two-column cards and advanced settings separated from the primary fields. ### 1. Build from model card Paste a Hugging Face model ID or model-card URL. The app launches an HF Job that: - fetches model metadata and repo information; - asks Pi + Qwen Coder to build a Gradio app; - creates a private Space under your namespace; - uploads the generated workspace; - attempts ZeroGPU first, then fixed-GPU fallback if enabled; - validates `/health` or Gradio API availability; - classifies the result honestly; - returns native Gradio buttons to open the Job page, generated Space, Space settings, and run artifacts. ### 2. Validate existing Space If automatic hardware assignment fails, set the hardware manually in the generated Space settings, then run validation. The validation job: - waits for the existing Space; - calls the configured generation endpoint; - checks the returned output type; - stores returned artifacts in the Bucket; - measures latency; - recommends a conservative ZeroGPU duration; - returns native Gradio buttons to open the validation Job, target Space, Space settings, and run artifacts. ## Result statuses - `full_inference_success`: a live generation smoke test returned the expected output type. - `manual_hardware_required`: the Space was generated but automatic ZeroGPU/fixed-GPU assignment failed; set hardware manually, then validate. - `full_inference_candidate_health_passed`: the Space boots and contains inference signals, but generation was not smoke-tested yet. - `health_only`: the Space boots, but no real inference path was validated. - `technical_blocker`: the agent found concrete blockers such as multi-GPU requirements, missing licenses, custom CUDA, or unclear usage. - `failed`: the build, runtime, or validation job failed. ## What this app guarantees - Generated Spaces are private by default. - Nothing is published automatically. - Runs are persisted in the configured Storage Bucket. - The app distinguishes bootability from real inference. - Hardware assignment is treated as best effort, not as an assumed capability. ## What this app does not guarantee It does not guarantee that every model card becomes a working Space. Some models require multi-GPU execution, Docker, unavailable CUDA extensions, external services, accepted licenses, very large hardware, or manual fixes. ## Required environment Set the bucket configuration in the Space environment or in `.env` for local dev: ```bash BUCKET_SOURCE=your-username/space-factory-runs BUCKET_URI=hf://buckets/your-username/space-factory-runs ``` The app uses HF OAuth; no global admin token should be stored in the Space.