--- title: DIY Creator emoji: ๐Ÿ› ๏ธ colorFrom: gray colorTo: red sdk: docker app_port: 7860 pinned: false --- # DIY Creator ๐Ÿ› ๏ธ โ€” a multi-agent team you can watch work Name something you want to build. A **team of three agents** hands off to each other to produce a vetted, step-by-step build guide โ€” and you watch them do it in real time. > Project **#17** of the *"30 AI Projects in 15 Days"* challenge. Focus: **multi-agent orchestration.** ![Demo: the Researcher gathers a brief, the Writer drafts a guide, the Critic scores it and sends it back to revise](demo.gif) *Above (local model): ๐Ÿ” Researcher gathers the brief โ†’ โœ๏ธ Writer drafts a guide โ†’ ๐Ÿง Critic scores it **5/10 and sends it back** with concrete fixes โ†’ Writer revises โ†’ the guide ships (honestly noting any minor items that remain). On a stronger backend it converges to a clean pass.* ## The team | Agent | Role | |-------|------| | ๐Ÿ” **Researcher** | Gathers a practical brief: materials (with quantities), tools, techniques, safety hazards, common mistakes, and honest difficulty/time/cost. | | โœ๏ธ **Writer** | Turns the brief into a clear, start-to-finish guide a beginner could actually follow. | | ๐Ÿง **Critic** | An **independent reviewer** โ€” scores the draft, flags issues by severity, and **sends it back**. The writer revises; the critic re-checks. The loop runs until the guide passes (or hits the round cap). | ## The lesson: roles, handoffs, and an honest gate A multi-agent "team" is three things done well: 1. **Role-specialized agents** โ€” each one has a single job and a prompt tuned for it. 2. **Explicit handoffs** โ€” the researcher's brief feeds the writer; the writer's draft feeds the critic. 3. **A critique โ†’ revise loop** โ€” nobody ships their own first draft. Two design choices worth calling out: - **The critic is independent (the "diamond").** It reviews the writer's work, ideally as a *different* model, so the review isn't the author grading itself. Set `DIY_CRITIC_MODEL` to a second local model for a sharper, more independent review. - **The gate is honest-by-construction.** The critic *finds* issues (what LLMs are good at), but the pass/revise decision is made in **code** from issue severity โ€” a guide passes only when no high- or medium-severity issues remain. The model can't rubber-stamp its own work. ## Run it ```bash pip install -r requirements.txt python app.py # http://127.0.0.1:7860 # Local Ollama by default (free/private). For the cloud model instead: # DIY_LLM_BACKEND=claude ANTHROPIC_API_KEY=sk-... python app.py ``` **Config (env):** `DIY_LLM_BACKEND` (`ollama`|`claude`) ยท `DIY_OLLAMA_URL` ยท `DIY_OLLAMA_MODEL` (default `qwen2.5:7b`) ยท `DIY_CRITIC_MODEL` (optional independent critic) ยท `ANTHROPIC_API_KEY` / `ANTHROPIC_MODEL` for the Claude backend. > Note on models: a small local model self-critiquing is genuinely noisy โ€” it will sometimes ship > "after review, minor notes remain" rather than a clean pass. That's honest. A stronger model (or a > `DIY_CRITIC_MODEL` diamond) converges to a clean pass more often. --- Built by **Robert Lucyk** ยท [GritAI Solutions](https://gritai.solutions) ยท part of the 30-in-15 challenge.