Weekend deep-dive into multi-agent systems after years of building single-agent LLM applications.
This is a learning project that turns a natural-language app request into a structured plan, an implementation plan, and generated files.
User prompt → Planner/UX → Architect → Coder loop → 3 reviewers → Aggregator/Repair → generated_project/
- Planner/UX creates a structured product brief, user flows, and visual system.
- Architect turns that plan into ordered file-level tasks.
- Coder reads and writes files through constrained tools while preserving one selected stack.
- UI/UX Reviewer checks hierarchy, responsiveness, visual completeness, and accessibility.
- Functionality Reviewer checks user flows, state, persistence, and feedback.
- Integration Reviewer checks file contracts, syntax, references, and stack consistency.
- Review Aggregator deduplicates findings into one coordinated cross-file repair task.
- LangGraph carries the workflow state and controls the loop.
I have been working extensively with AI since 2023: provider APIs, long prompts, context engineering, guardrails, latency, and custom MCP tools. Most of that work focused on single-agent systems. This project is my first practical exploration of how multi-agent frameworks model specialized roles, state, tool use, and observability.
The most interesting idea for me is treating state as a first-class design unit instead of putting the entire workflow into one enormous prompt.
git clone https://github.com/iamuv2000/langgraph-app-builder.git
cd langgraph-app-builder
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .envAdd GROQ_API_KEY to .env for the default provider. Add LangSmith variables if you want tracing. Then run:
python scripts/run_example.py "create a simple calculator web application"To use the OpenAI API instead, set these values in .env:
LLM_PROVIDER=openai
OPENAI_API_KEY=your-key
OPENAI_MODEL=gpt-4o-miniThen run the same command. Set LLM_PROVIDER=groq to switch back.
Generated files are written below generated_project/. A curated calculator output is available in examples/calculator.
Generated from the compiled graph with LangGraph's draw_mermaid_png() — prepare → planner → architect → coder loop → parallel UI/UX, functionality, and integration reviewers → aggregator (repair or end).
Regenerate after graph changes:
python scripts/export_graph.pySee docs/architecture.md and docs/langsmith.md.
- State can make agent workflows easier to inspect and extend.
- Specialized roles can replace part of a monolithic prompt.
- Tool boundaries matter when an agent writes files.
- Latency, token limits, and truncation are practical design constraints.
- LangSmith makes model behavior and tool loops much easier to investigate.
This is a learning project, not a production code-generation sandbox. It does not execute generated code safely or provide browser-based visual QA yet. The Groq token-budget workaround, architect JSON mode, read truncation, and reviewer/repair loop are intentionally retained as lessons from running the project.
See CREDITS.md for tutorial attribution.
The project write-up will be published on Tech With Yuvi.
MIT. See LICENSE.
