--- 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 ### 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 quick links to 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 quick links to 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 Each signed-in user writes to their own private Storage Bucket by default. The app can now check and create this private bucket for the user from the **Run storage** section before launching Jobs. The default bucket is: ```text https://huggingface.co/buckets//space-factory-runs ``` For local dev or deployment, configure only the bucket **name**; the namespace is derived from the signed-in OAuth user: ```bash SPACE_FACTORY_BUCKET_NAME=space-factory-runs SPACE_FACTORY_BUCKET_MOUNT=/output ``` Do not configure a shared owner/name bucket for a public Space. The app uses HF OAuth; no global admin token should be stored in the Space.