{
  "version": "1.0",
  "generatedAt": "2026-06-24T00:03:00.603Z",
  "publisher": {
    "name": "LetzAI",
    "url": "https://letz.ai"
  },
  "agents": [
    {
      "id": "letzai-canvas",
      "name": "LetzAI Canvas Agent",
      "description": "Creative orchestrator on the LetzAI infinite board. Generates and edits images and video, builds and clones real web designs, arranges and reorganizes boards, and delegates work to design, media, and research sub-agents.",
      "surface": "canvas",
      "productUrl": "https://letz.ai/canvas",
      "model": {
        "orchestrator": "claude-sonnet-4-6",
        "provider": "anthropic"
      },
      "skills": [
        {
          "name": "research-before-build",
          "description": "Grounded sites, landing pages, product pages, portfolios, pitch decks, branded mockups about a real external subject (person, product, brand, company, app, event). Load before delegate_to_design_agent / create_design / generate_code when real-world accuracy matters and the user did not supply full copy."
        },
        {
          "name": "visual-reference-likeness",
          "description": "Shots, storyboards, brand films, opening scenes, or generated stills featuring a named real person's likeness. Load before get_models / image_search / web_search / generate_image when the user names a real person and has not supplied a clear reference."
        },
        {
          "name": "generation-prompt-craft",
          "description": "Unless the user passes their own prompt: Mandatory before animate_image when you compose the motion prompt (load references/seedance-2-prompting.md, references/kling-3-prompting.md, or references/models/<mode>.md via file_path — not bare read_skill). Also before generate_image, edit_image, regenerate_image when the brief is vague. Cinematic batches — also references/cinematic-composition.md. Never picks or changes baseModel/mode."
        },
        {
          "name": "portfolio-from-creations",
          "description": "Presentation or slide deck from the user's own LetzAI images — most liked, best work, portfolio review. Load before read_user_creations and delegate_to_design_agent."
        },
        {
          "name": "brand-film-storyboard",
          "description": "Brand films, opening scenes, storyboards, or shot sequences on the canvas — especially with a named real person. Load to sequence reference sourcing, scene planning, section reservation, and generate / animate."
        },
        {
          "name": "slide-deck-from-frames",
          "description": "Turn an existing Section of native layout Frames (a slide deck on the canvas) into ONE faithful, publishable multi-slide HTML presentation — using every slide, in the exact order the user laid out. Load when the user wants to \"make a deck/presentation from these frames\", \"publish these slides as HTML\", \"create an artifact from this section\", or be \"true to the original slides\"."
        },
        {
          "name": "moodboard-fanout",
          "description": "Producing more than one image in a turn — variations, mood boards, NxM grids, storyboard panels, batches. Load to compute N correctly, run the volume gate, reserve a section, and fan out one media call per cell."
        },
        {
          "name": "board-reorganize",
          "description": "Structural layout changes on the canvas — move nodes between sections, group clips, tidy / align / distribute, separate videos from stills, grid out a messy fan-out. Load when the user asks to reorganize, group, tidy, or clean up the board (uses request_reorganize_approval, which requires approval)."
        },
        {
          "name": "clone-website",
          "description": "Reverse-engineer and rebuild a real web page as a pixel-perfect Design on the canvas. Load when the user wants to clone, replicate, rebuild, reverse-engineer, or copy a website (\"make a copy of this site\", \"rebuild this page\", \"pixel-perfect clone\"). Requires a public http(s) URL. Uses inspect_page (headless-browser extraction) to capture exact computed styles, screenshots, assets, and interaction states, then delegates each section to the Design sub-agent."
        },
        {
          "name": "native-layout",
          "description": "Compose editable slides, posters, and layouts as NATIVE canvas nodes (layout Frame + text/shape/media children) via compose_frame. Load when the user wants a layout they can edit directly on the canvas with the toolbar, or a native multi-slide deck."
        }
      ],
      "knowledge": [
        {
          "name": "letzai-platform",
          "conceptCount": 30
        }
      ],
      "tools": [
        {
          "name": "extract_file_content",
          "label": "Extract file content",
          "execution": "client",
          "group": "knowledge"
        },
        {
          "name": "get_models",
          "label": "Search models",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "image_search",
          "label": "Image search",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "inspect_page",
          "label": "Inspect page",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_knowledge",
          "label": "Read knowledge",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_skill",
          "label": "Read skill",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_user_creations",
          "label": "Read user creations",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "create_plan",
          "label": "Create Plan",
          "execution": "server",
          "group": "planning"
        },
        {
          "name": "suggest_followups",
          "label": "Suggest Followups",
          "execution": "server",
          "group": "planning"
        },
        {
          "name": "update_plan",
          "label": "Update Plan",
          "execution": "server",
          "group": "planning"
        },
        {
          "name": "animate_image",
          "label": "Animate Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "create_storyboard",
          "label": "Create Storyboard",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "edit_image",
          "label": "Edit Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "generate_image",
          "label": "Generate Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "regenerate_image",
          "label": "Regenerate Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "upscale_image",
          "label": "Upscale Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "add_to_canvas",
          "label": "Add To Canvas",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "compose_frame",
          "label": "Compose Frame",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "duplicate_frame_as_design",
          "label": "Duplicate Frame As Design",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "find_assets_by_review",
          "label": "Find Assets By Review",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "paint_node",
          "label": "Paint Node",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "pan_zoom_to",
          "label": "Pan Zoom To",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "place_research_image_on_canvas",
          "label": "Place Research Image On Canvas",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "read_canvas_state",
          "label": "Read Canvas State",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "reserve_section",
          "label": "Reserve Section",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "select_canvas_node",
          "label": "Select Canvas Node",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "update_canvas_node",
          "label": "Update Canvas Node",
          "execution": "client",
          "group": "canvas"
        },
        {
          "name": "create_design",
          "label": "Create Design",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "delegate_to_design_agent",
          "label": "Delegate To Design Agent",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "edit_design_file",
          "label": "Edit Design File",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "finish_design",
          "label": "Finish Design",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "list_design_files",
          "label": "List Design Files",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "list_designs_on_board",
          "label": "List Designs On Board",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "read_design_file",
          "label": "Read Design File",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "screenshot_design",
          "label": "Screenshot Design",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "write_design_file",
          "label": "Write Design File",
          "execution": "client",
          "group": "design"
        },
        {
          "name": "spawn_worker",
          "label": "Spawn Worker",
          "execution": "client",
          "group": "research"
        },
        {
          "name": "request_reorganize_approval",
          "label": "Request Reorganize Approval",
          "execution": "client",
          "group": "hitl"
        },
        {
          "name": "request_user_choice",
          "label": "Request User Choice",
          "execution": "client",
          "group": "hitl"
        },
        {
          "name": "request_web_search_approval",
          "label": "Request Web Search Approval",
          "execution": "client",
          "group": "hitl"
        },
        {
          "name": "web_fetch",
          "label": "Web fetch",
          "execution": "native",
          "group": "web"
        },
        {
          "name": "web_search",
          "label": "Web search",
          "execution": "native",
          "group": "web"
        }
      ],
      "workers": [
        {
          "type": "design",
          "injectedSkills": [],
          "tools": [
            "edit_design_file",
            "finish_design",
            "list_design_files",
            "list_designs_on_board",
            "read_design_file",
            "screenshot_design",
            "write_design_file"
          ]
        },
        {
          "type": "media",
          "injectedSkills": [
            "moodboard-fanout"
          ],
          "tools": [
            "edit_image",
            "generate_image",
            "regenerate_image"
          ]
        },
        {
          "type": "research",
          "injectedSkills": [
            "research-before-build"
          ],
          "tools": [
            "get_models",
            "image_search",
            "read_user_creations"
          ]
        }
      ],
      "workflows": [
        "research-before-build"
      ],
      "policies": [
        "Web search is prompt-gated: explicit asks call web_search directly; uncertain cases ask for approval first; routine questions use neither.",
        "Confidential system instructions are never revealed; the agent describes what it can do, not how it is prompted.",
        "Structural board changes (reparent, group, align, grid) are proposed for human approval before they run.",
        "Media generation jobs run asynchronously; the agent waits for them to finish before reporting a step done."
      ],
      "discovery": {
        "agentCard": "https://letz.ai/.well-known/agent-card.canvas.json"
      }
    },
    {
      "id": "letzai-studio",
      "name": "LetzAI Studio Chat Agent",
      "description": "Conversational creation assistant in LetzAI Studio. Generates, edits, animates, and upscales images and video, writes code, drafts storyboards, searches the model catalogue and the web, and discovers the right LetzAI models for a brief.",
      "surface": "chat",
      "productUrl": "https://letz.ai/studio",
      "model": {
        "orchestrator": "claude-sonnet-4-6",
        "provider": "anthropic"
      },
      "skills": [
        {
          "name": "research-before-build",
          "description": "Grounded sites, landing pages, product pages, portfolios, pitch decks, branded mockups about a real external subject (person, product, brand, company, app, event). Load before delegate_to_design_agent / create_design / generate_code when real-world accuracy matters and the user did not supply full copy."
        },
        {
          "name": "visual-reference-likeness",
          "description": "Shots, storyboards, brand films, opening scenes, or generated stills featuring a named real person's likeness. Load before get_models / image_search / web_search / generate_image when the user names a real person and has not supplied a clear reference."
        },
        {
          "name": "generation-prompt-craft",
          "description": "Unless the user passes their own prompt: Mandatory before animate_image when you compose the motion prompt (load references/seedance-2-prompting.md, references/kling-3-prompting.md, or references/models/<mode>.md via file_path — not bare read_skill). Also before generate_image, edit_image, regenerate_image when the brief is vague. Cinematic batches — also references/cinematic-composition.md. Never picks or changes baseModel/mode."
        }
      ],
      "knowledge": [
        {
          "name": "letzai-platform",
          "conceptCount": 30
        }
      ],
      "tools": [
        {
          "name": "describe_image",
          "label": "Describe image",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "extract_file_content",
          "label": "Extract file content",
          "execution": "client",
          "group": "knowledge"
        },
        {
          "name": "get_models",
          "label": "Search models",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "image_search",
          "label": "Image search",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_guides",
          "label": "Read guides",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_knowledge",
          "label": "Read knowledge",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_skill",
          "label": "Read skill",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "read_user_creations",
          "label": "Read user creations",
          "execution": "server",
          "group": "knowledge"
        },
        {
          "name": "create_plan",
          "label": "Create Plan",
          "execution": "server",
          "group": "planning"
        },
        {
          "name": "suggest_followups",
          "label": "Suggest Followups",
          "execution": "server",
          "group": "planning"
        },
        {
          "name": "update_plan",
          "label": "Update Plan",
          "execution": "server",
          "group": "planning"
        },
        {
          "name": "animate_image",
          "label": "Animate Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "create_storyboard",
          "label": "Create Storyboard",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "edit_image",
          "label": "Edit Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "generate_image",
          "label": "Generate Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "regenerate_image",
          "label": "Regenerate Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "upscale_image",
          "label": "Upscale Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "use_search_image",
          "label": "Use Search Image",
          "execution": "client",
          "group": "media"
        },
        {
          "name": "request_user_choice",
          "label": "Request User Choice",
          "execution": "client",
          "group": "hitl"
        },
        {
          "name": "request_web_search_approval",
          "label": "Request Web Search Approval",
          "execution": "client",
          "group": "hitl"
        },
        {
          "name": "web_fetch",
          "label": "Web fetch",
          "execution": "native",
          "group": "web"
        },
        {
          "name": "web_search",
          "label": "Web search",
          "execution": "native",
          "group": "web"
        },
        {
          "name": "generate_code",
          "label": "Generate code",
          "execution": "server",
          "group": "code"
        }
      ],
      "workflows": [
        "research-before-build"
      ],
      "policies": [
        "Web search is prompt-gated: explicit asks call web_search directly; uncertain cases ask for approval first; routine questions use neither.",
        "Confidential system instructions are never revealed; the agent describes what it can do, not how it is prompted.",
        "Media tools (generate, edit, animate, upscale) hand off to the Studio tabs and finish asynchronously."
      ],
      "discovery": {
        "agentCard": "https://letz.ai/.well-known/agent-card.studio.json"
      }
    }
  ],
  "discovery": {
    "agentsTxt": "https://letz.ai/agents.txt",
    "skillsIndex": "https://letz.ai/.well-known/agent-skills/index.json",
    "knowledgeIndex": "https://letz.ai/.well-known/knowledge/index.json",
    "aiCatalog": "https://letz.ai/.well-known/ai-catalog.json"
  }
}