WebGen-Agent is an advanced website generation agent designed to autonomously create websites from natural language instructions. This repository contains both inference code for running the agent and training code for the Step-GRPO with Screenshot and GUI-agent Feedback approach. It is an official implementation of the paper WebGen-Agent: Enhancing Interactive Website Generation with Multi-Level Feedback and Step-Level Reinforcement Learning
WebGen-Agent combines state-of-the-art language models with specialized training techniques to create a powerful website generation tool. The agent can understand natural language instructions specifying appearance and functional requirements, iteratively generate website codebases, and refine them using visual and functional feedback.

Links to the data and model parameters are as follows:
| Data | HF Link |
|---|---|
| webgen-agent_train_sft | π€ luzimu/webgen-agent_train_sft |
| webgen-agent_train_step-grpo | π€ luzimu/webgen-agent_train_step-grpo |
| Model | HF Link |
|---|---|
| WebGenAgent-LM-7B-SFT | π€ luzimu/WebGenAgent-LM-7B-SFT |
| WebGenAgent-LM-7B-Step-GRPO | π€ luzimu/WebGenAgent-LM-7B-Step-GRPO |
| WebGenAgent-LM-8B-SFT | π€ luzimu/WebGenAgent-LM-8B-SFT |
| WebGenAgent-LM-8B-Step-GRPO | π€ luzimu/WebGenAgent-LM-8B-Step-GRPO |
WebGen-Agent/
βββ src/ # Inference code for the WebGen-Agent workflow
β βββ agent/ # Core agent implementation
β βββ prompts/ # Prompt templates
β βββ scripts/ # Utility scripts
β βββ utils/ # Helper functions
β βββ webvoyager/ # GUI agent integration
β βββ infer_batch.py # Batch inference script
β βββ infer_single.py # Single inference script
βββ requirements.txt # Python dependencies for inference
βββ data/
β βββ webgen-bench/ # WebGen-Bench dataset
βββ WebGen-RL/ # Training code (Step-GRPO with Screenshot and GUI-agent Feedback)
βββ src/
β βββ sft/ # Supervised Fine-Tuning code
β βββ runs/ # GRPO training scripts
βββ ...
Clone the repository:
git clone https://github.com/your-username/WebGen-Agent.git
cd WebGen-Agent
Create a conda environment:
conda create -n env/webgen-agent python=3.10
conda activate env/webgen-agent
Install the required dependencies:
pip install -r requirements.txt
Node.js and google-chrome are also necessary for the project. You can install them by running:
bash src/scripts/install_node.sh
bash src/scripts/install_chrome.sh
Before running inference, you should rename .env.template to .env and set the base urls and api keys for the agent-engine LLM and feedback VLM. They can be obtained from any openai-compatible providers such as openrouter, modelscope, bailian, and llmprovider.
You can also deploy open-source VLMs and LLMs by running src/scripts/deploy_qwenvl_32b.sh and src/scripts/deploy.sh. Scripts for single inference and batch inference can be found at src/scripts/infer_single.sh and src/scripts/infer_batch.sh.
python src/infer_single.py \
--model deepseek-chat \
--vlm_model Qwen/Qwen2.5-VL-32B-Instruct \
--instruction "Please implement a wheel of fortune website." \
--workspace-dir workspaces_root/test \
--log-dir service_logs/test \
--max-iter 20 \
--overwrite \
--error-limit 5
python src/infer_batch.py \
--model ${model_name} \
--vlm_model Qwen/Qwen2.5-VL-32B-Instruct \
--fb_model ${fb_model_name} \
--data-path data/webgen-bench/test.jsonl \
--workspace-root workspaces_root \
--log-root service_logs \
--max-iter 20 \
--num-workers 4 \
--eval-tag select_best \
--error-limit 5 \
--max-tokens -1 \
--max-completion-tokens -1 \
--temperature 0.5
The WebGen-Bench evaluation script is in run_ui_eval_with_answer.sh. For details of the WebGen-Bench dataset, see WebGen-Bench.
For Step-GRPO with Screenshot and GUI-agent Feedback training, please refer to the WebGen-RL README.
The WebGen-RL component includes:
WebGen-RL/src/sft/WebGen-RL/src/runs/
WebGen-Agent follows an iterative, multi-step paradigm for website generation:
WebGen-Bench: A benchmark for evaluating LLM-based agents on generating interactive and functional websites from scratch. It contains 101 website-generation instructions, 647 test cases, and a training set of 6,667 instructions named WebGen-Instruct.
GitHub: mnluzimu/WebGen-Bench
Paper: WebGen-Bench: Evaluating LLMs on Generating Interactive and Functional Websites from Scratch
FullStack-Agent: A unified agent system for full-stack web development, consisting of FullStack-Dev, FullStack-Learn, and FullStack-Bench. It targets production-level full-stack website generation by evaluating and improving frontend, backend, and database functionalities.
GitHub: mnluzimu/FullStack-Agent
Paper: FullStack-Agent: Enhancing Agentic Full-Stack Web Coding via Development-Oriented Testing and Repository Back-Translation
If you find our project useful, please cite:
@misc{lu2026fullstackagentenhancingagenticfullstack,
title={FullStack-Agent: Enhancing Agentic Full-Stack Web Coding via Development-Oriented Testing and Repository Back-Translation},
author={Zimu Lu and Houxing Ren and Yunqiao Yang and Ke Wang and Zhuofan Zong and Mingjie Zhan and Hongsheng Li},
year={2026},
eprint={2602.03798},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2602.03798},
}
@misc{lu2025webgenagentenhancinginteractivewebsite,
title={WebGen-Agent: Enhancing Interactive Website Generation with Multi-Level Feedback and Step-Level Reinforcement Learning},
author={Zimu Lu and Houxing Ren and Yunqiao Yang and Ke Wang and Zhuofan Zong and Junting Pan and Mingjie Zhan and Hongsheng Li},
year={2025},
eprint={2509.22644},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2509.22644},
}
@misc{lu2025webgenbenchevaluatingllmsgenerating,
title={WebGen-Bench: Evaluating LLMs on Generating Interactive and Functional Websites from Scratch},
author={Zimu Lu and Yunqiao Yang and Houxing Ren and Haotian Hou and Han Xiao and Ke Wang and Weikang Shi and Aojun Zhou and Mingjie Zhan and Hongsheng Li},
year={2025},
eprint={2505.03733},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2505.03733},
}
WebGen-Agent is an advanced website generation agent designed to autonomously create websites from natural language instructions. This repository contains both inference code for running the agent and training code for the Step-GRPO with Screenshot and GUI-agent Feedback approach. It is an official implementation of the paper WebGen-Agent: Enhancing Interactive Website Generation with Multi-Level Feedback and Step-Level Reinforcement Learning
WebGen-Agent combines state-of-the-art language models with specialized training techniques to create a powerful website generation tool. The agent can understand natural language instructions specifying appearance and functional requirements, iteratively generate website codebases, and refine them using visual and functional feedback.

Links to the data and model parameters are as follows:
| Data | HF Link |
|---|---|
| webgen-agent_train_sft | π€ luzimu/webgen-agent_train_sft |
| webgen-agent_train_step-grpo | π€ luzimu/webgen-agent_train_step-grpo |
| Model | HF Link |
|---|---|
| WebGenAgent-LM-7B-SFT | π€ luzimu/WebGenAgent-LM-7B-SFT |
| WebGenAgent-LM-7B-Step-GRPO | π€ luzimu/WebGenAgent-LM-7B-Step-GRPO |
| WebGenAgent-LM-8B-SFT | π€ luzimu/WebGenAgent-LM-8B-SFT |
| WebGenAgent-LM-8B-Step-GRPO | π€ luzimu/WebGenAgent-LM-8B-Step-GRPO |
WebGen-Agent/
βββ src/ # Inference code for the WebGen-Agent workflow
β βββ agent/ # Core agent implementation
β βββ prompts/ # Prompt templates
β βββ scripts/ # Utility scripts
β βββ utils/ # Helper functions
β βββ webvoyager/ # GUI agent integration
β βββ infer_batch.py # Batch inference script
β βββ infer_single.py # Single inference script
βββ requirements.txt # Python dependencies for inference
βββ data/
β βββ webgen-bench/ # WebGen-Bench dataset
βββ WebGen-RL/ # Training code (Step-GRPO with Screenshot and GUI-agent Feedback)
βββ src/
β βββ sft/ # Supervised Fine-Tuning code
β βββ runs/ # GRPO training scripts
βββ ...
Clone the repository:
git clone https://github.com/your-username/WebGen-Agent.git
cd WebGen-Agent
Create a conda environment:
conda create -n env/webgen-agent python=3.10
conda activate env/webgen-agent
Install the required dependencies:
pip install -r requirements.txt
Node.js and google-chrome are also necessary for the project. You can install them by running:
bash src/scripts/install_node.sh
bash src/scripts/install_chrome.sh
Before running inference, you should rename .env.template to .env and set the base urls and api keys for the agent-engine LLM and feedback VLM. They can be obtained from any openai-compatible providers such as openrouter, modelscope, bailian, and llmprovider.
You can also deploy open-source VLMs and LLMs by running src/scripts/deploy_qwenvl_32b.sh and src/scripts/deploy.sh. Scripts for single inference and batch inference can be found at src/scripts/infer_single.sh and src/scripts/infer_batch.sh.
python src/infer_single.py \
--model deepseek-chat \
--vlm_model Qwen/Qwen2.5-VL-32B-Instruct \
--instruction "Please implement a wheel of fortune website." \
--workspace-dir workspaces_root/test \
--log-dir service_logs/test \
--max-iter 20 \
--overwrite \
--error-limit 5
python src/infer_batch.py \
--model ${model_name} \
--vlm_model Qwen/Qwen2.5-VL-32B-Instruct \
--fb_model ${fb_model_name} \
--data-path data/webgen-bench/test.jsonl \
--workspace-root workspaces_root \
--log-root service_logs \
--max-iter 20 \
--num-workers 4 \
--eval-tag select_best \
--error-limit 5 \
--max-tokens -1 \
--max-completion-tokens -1 \
--temperature 0.5
The WebGen-Bench evaluation script is in run_ui_eval_with_answer.sh. For details of the WebGen-Bench dataset, see WebGen-Bench.
For Step-GRPO with Screenshot and GUI-agent Feedback training, please refer to the WebGen-RL README.
The WebGen-RL component includes:
WebGen-RL/src/sft/WebGen-RL/src/runs/
WebGen-Agent follows an iterative, multi-step paradigm for website generation:
WebGen-Bench: A benchmark for evaluating LLM-based agents on generating interactive and functional websites from scratch. It contains 101 website-generation instructions, 647 test cases, and a training set of 6,667 instructions named WebGen-Instruct.
GitHub: mnluzimu/WebGen-Bench
Paper: WebGen-Bench: Evaluating LLMs on Generating Interactive and Functional Websites from Scratch
FullStack-Agent: A unified agent system for full-stack web development, consisting of FullStack-Dev, FullStack-Learn, and FullStack-Bench. It targets production-level full-stack website generation by evaluating and improving frontend, backend, and database functionalities.
GitHub: mnluzimu/FullStack-Agent
Paper: FullStack-Agent: Enhancing Agentic Full-Stack Web Coding via Development-Oriented Testing and Repository Back-Translation
If you find our project useful, please cite:
@misc{lu2026fullstackagentenhancingagenticfullstack,
title={FullStack-Agent: Enhancing Agentic Full-Stack Web Coding via Development-Oriented Testing and Repository Back-Translation},
author={Zimu Lu and Houxing Ren and Yunqiao Yang and Ke Wang and Zhuofan Zong and Mingjie Zhan and Hongsheng Li},
year={2026},
eprint={2602.03798},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2602.03798},
}
@misc{lu2025webgenagentenhancinginteractivewebsite,
title={WebGen-Agent: Enhancing Interactive Website Generation with Multi-Level Feedback and Step-Level Reinforcement Learning},
author={Zimu Lu and Houxing Ren and Yunqiao Yang and Ke Wang and Zhuofan Zong and Junting Pan and Mingjie Zhan and Hongsheng Li},
year={2025},
eprint={2509.22644},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2509.22644},
}
@misc{lu2025webgenbenchevaluatingllmsgenerating,
title={WebGen-Bench: Evaluating LLMs on Generating Interactive and Functional Websites from Scratch},
author={Zimu Lu and Yunqiao Yang and Houxing Ren and Haotian Hou and Han Xiao and Ke Wang and Weikang Shi and Aojun Zhou and Mingjie Zhan and Hongsheng Li},
year={2025},
eprint={2505.03733},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2505.03733},
}