| # R2E-TestgenAgent |
|
|
| ## Overview |
|
|
| R2E-TestgenAgent is a specialized execution-based testing agent designed for generating targeted unit tests for software engineering tasks. This agent is part of the R2E-Gym framework, which provides a comprehensive environment for training and evaluating software engineering agents. |
|
|
| ## Model Description |
|
|
| The R2E-TestgenAgent is an execution-based testing agent that specializes in: |
| - **Targeted Unit Test Generation**: Creates specific unit tests to validate code patches and implementations |
| - **Execution-Based Verification**: Generates tests that can be executed to verify the correctness of code changes |
| - **Corner Case Detection**: Identifies and tests potential edge cases and corner scenarios |
| - **Patch Disambiguation**: Creates tests that can differentiate between correct and incorrect patches |
|
|
| ## Architecture |
|
|
| The agent is built on top of the Qwen2.5-Coder-32B-Instruct model and fine-tuned using R2E-Gym's SFT (Supervised Fine-Tuning) trajectories specifically designed for testing tasks. |
|
|
| ## Training Data |
|
|
| The model was trained on the `R2E-Gym/R2EGym-TestingAgent-SFT-Trajectories` dataset, which contains: |
| - High-quality testing trajectories collected from Claude-3.5-Sonnet |
| - Execution-based testing scenarios |
| - Diverse software engineering problems across 13 repositories |
| - Real-world testing patterns and methodologies |
|
|
| ## Usage |
|
|
| ### Basic Usage |
|
|
| ```python |
| from r2egym.agenthub.environment.env import EnvArgs, RepoEnv |
| from r2egym.agenthub.agent.agent import AgentArgs, Agent |
| from pathlib import Path |
| from datasets import load_dataset |
| |
| # Load dataset |
| ds = load_dataset("R2E-Gym/R2E-Gym-Lite") |
| env_args = EnvArgs(ds=ds['train'][0]) |
| env = RepoEnv(env_args) |
| |
| # Load testing agent configuration |
| agent_args = AgentArgs.from_yaml(Path('./config/testing_agent.yaml')) |
| agent_args.llm_name = 'r2e-gym/R2E-TestgenAgent' |
| agent = Agent(name="TestingAgent", args=agent_args) |
| |
| # Run the testing agent |
| output = agent.run(env, max_steps=30, use_fn_calling=True) |
| ``` |
|
|
| ### Configuration |
|
|
| The agent uses specific prompts and configurations optimized for test generation: |
|
|
| ```yaml |
| system_prompt: | |
| You are a specialized testing agent designed to generate targeted unit tests |
| for software engineering tasks. Your goal is to create comprehensive tests |
| that can validate code patches and identify potential issues. |
| |
| instance_prompt: | |
| Given the following problem and potential patches, create targeted unit tests |
| that can effectively validate the correctness of the implementation. |
| ``` |
|
|
| ## Training Configuration |
|
|
| The model was trained using the following configuration: |
|
|
| - **Base Model**: Qwen/Qwen2.5-Coder-32B-instruct |
| - **Training Method**: Full fine-tuning with DeepSpeed ZeRO-3 |
| - **Learning Rate**: 1.0e-5 |
| - **Epochs**: 2.0 |
| - **Batch Size**: 1 (per device) |
| - **Context Length**: 20,480 tokens |
| - **Optimizer**: AdamW with cosine learning rate scheduling |
|
|
| ## Performance |
|
|
| The R2E-TestgenAgent is designed to work in conjunction with other R2E-Gym agents: |
| - **Code Editing Agent**: For generating and fixing code |
| - **Execution-free Verifier**: For reranking patches |
| - **Hybrid Test-time Scaling**: Combines execution-based and execution-free verification |
|
|
| ## Integration with R2E-Gym |
|
|
| This agent is part of the larger R2E-Gym ecosystem: |
|
|
| 1. **Environment**: Works with R2E-Gym's 8.1K+ procedurally curated environments |
| 2. **Evaluation**: Can be evaluated on SWE-Bench Verified and other benchmarks |
| 3. **Training**: Supports continued training on additional trajectories |
|
|
| ## Citation |
|
|
| If you use R2E-TestgenAgent in your research, please cite: |
|
|
| ```bibtex |
| @article{jain2025r2e, |
| title={R2e-gym: Procedural environments and hybrid verifiers for scaling open-weights swe agents}, |
| author={Jain, Naman and Singh, Jaskirat and Shetty, Manish and Zheng, Liang and Sen, Koushik and Stoica, Ion}, |
| journal={arXiv preprint arXiv:2504.07164}, |
| year={2025} |
| } |
| ``` |
|
|
| ## License |
|
|
| This model is released under the same license as the base Qwen2.5-Coder model. |
|
|
| ## Links |
|
|
| - **Paper**: [R2E-Gym: Procedural Environments and Hybrid Verifiers for Scaling Open-Weights SWE Agents](https://arxiv.org/abs/2504.07164) |
| - **GitHub**: [R2E-Gym](https://github.com/R2E-Gym/R2E-Gym) |
| - **Dataset**: [R2EGym-TestingAgent-SFT-Trajectories](https://huggingface.co/datasets/R2E-Gym/R2EGym-TestingAgent-SFT-Trajectories) |
| - **Related Models**: |
| - [R2EGym-32B-Agent](https://huggingface.co/R2E-Gym/R2EGym-32B-Agent) |
| - [R2EGym-Verifier](https://huggingface.co/R2E-Gym/R2EGym-Verifier) |