Spaces:
Sleeping
Sleeping
File size: 3,244 Bytes
0a2f66d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | ---
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.**

*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.
|