Supervised by Prof. Kayvan Karim (Heriot-Watt University Dubai).
MASON stands for Multi-Agent System for Open No-code development. I built it to test one question: if you split a coding task across several LLM agents, each with one job, do you get better code than from a single LLM? And can small models running on a laptop do the job, or does it need the big paid APIs? The short answer: a small, consistent gain in stability for some models, at the cost of speed, and small local models could not do it at all.
The problem
No-code platforms let people build software without writing code. They work well for simple apps but struggle once the work spans many connected steps. LLMs can write code from plain language, but a single model tends to lose the thread on long, multi-step tasks and can hallucinate. Multi-agent systems split the work into roles, but most published ones assume large proprietary models behind an API. That rules them out where data has to stay on the device or the internet is unreliable.
The idea
Give each step of the job to its own agent, run them in a fixed order, and pass each one's output to the next. Then measure it honestly: the same four models, run alone and inside MASON, on the same tasks.
I compared three orchestration frameworks before picking one. AutoGen was powerful but heavy to configure. LangChain is strong at tool use but not built for multi-agent coordination. CrewAI won for its simple YAML setup, clear task order and stable repeated runs.
How it works
Five agents, defined in YAML, run in sequence:
| Agent | Job |
|---|---|
| Input Parser | Pulls the actionable details out of the request |
| Requirements Analyzer | Turns those details into a structured spec |
| Code Generator | Writes Python code that matches the spec |
| Code Validator | Checks the code for errors and against the unit tests |
| File Output Specialist | Saves the result as output.py |
Agents can re-check their own output in a short feedback loop when something looks wrong. Early versions merged roles, such as parsing and analysis, but that blurred responsibilities and made coordination worse. Five roles gave the most consistent results in pilot tests.
A Python harness drives the evaluation. It samples tasks with a fixed seed,
runs the crew, imports the generated output.py, runs the benchmark's unit
tests against it, and logs time and pass or fail for each task.
Evaluation
Benchmarks
50 tasks each from HumanEval and MBPP, sampled with a fixed seed.
Models
Claude 3.5 Sonnet, GPT-4o Mini, Gemini 1.5 Flash and DeepSeek-Chat, each run alone and as every agent inside MASON.
Runs
Three per dataset, averaged. No retries, no corrections.
Metrics
Execution time, and Pass@1, the share of tasks solved on the first attempt.
Results
Average Pass@1 (M is MASON, S is the single model):
| Model | HumanEval M | HumanEval S | MBPP M | MBPP S |
|---|---|---|---|---|
| Claude 3.5 Sonnet | 0.85 | 0.87 | 0.89 | 0.82 |
| DeepSeek-Chat | 0.77 | 0.76 | 0.87 | 0.85 |
| Gemini 1.5 Flash | 0.57 | 0.79 | 0.75 | 0.77 |
| GPT-4o Mini | 0.73 | 0.71 | 0.81 | 0.79 |
Average execution time per task, in seconds:
| Model | HumanEval M | HumanEval S | MBPP M | MBPP S |
|---|---|---|---|---|
| Claude 3.5 Sonnet | 39.92 | 36.18 | 30.72 | 15.84 |
| DeepSeek-Chat | 134.50 | 60.74 | 139.25 | 43.45 |
| Gemini 1.5 Flash | 25.59 | 8.79 | 23.35 | 4.81 |
| GPT-4o Mini | 15.65 | 13.54 | 15.94 | 6.51 |
What that means:
- MASON was slower for every model. DeepSeek-Chat and Gemini 1.5 Flash more than doubled their time.
- Claude 3.5 Sonnet was the most accurate and stable in both setups.
- DeepSeek-Chat gained most from MASON on MBPP.
- GPT-4o Mini gained a little.
- Gemini 1.5 Flash got worse inside MASON, especially on HumanEval, and failed early in runs.
- HumanEval, the harder set, caused more failures than MBPP for every setup. Task difficulty mattered as much as architecture.
Small local models. Before the cloud runs I tried Qwen2.5, Qwen2.5-Coder, Gemma3, LLaMA 3.1 and 3.2, and DeepSeek R1 through Ollama, from 0.5B to 8B parameters. Models up to 1.5B passed 0% of tasks, 3B to 4B models passed 6%, and 7B to 8B models passed 11%. They ran out of memory, stalled, or produced incomplete output. That answered the original question: as designed, MASON needs a strong model underneath it.
Publication
The work was my undergraduate thesis at Heriot-Watt University Dubai. It was published as "MASON - A Multi-Agent LLM Framework for No-Code Development" in the AAAI 2025 Summer Symposium Series.
Limitations
- Everything ran on a CPU-only laptop, one task at a time, which limited scale.
- The gains were modest. MASON beat single agents on stability more than on accuracy, and always cost time.
- The fixed agent order and shallow prompts likely held back real collaboration between agents.
- The repo holds a sample of the framework plus the raw logs and charts. Some original files were lost to corruption before upload.
What's next
- Design a lighter pipeline for small models, or fine-tune them for it.
- Try adaptive agent flows and better prompt chaining instead of a fixed order.
- Compare against other orchestrators such as LangGraph and AutoGen.
- Repeat the study with open-source models only.