JoyCode is an end-to-end LLM-powered pipeline for fixing real-world open-source software issues. It generates patches, creates and verifies tests, and employs intelligent retry mechanisms to achieve high success rates on the SWE-bench dataset.
Project Status: JoyCode has achieved 74.6% resolution rate on SWE-bench Verified split, demonstrating state-of-the-art performance in automated software engineering.
Key Innovation: Our pipeline combines patch generation with intelligent test creation and failure attribution, enabling robust automated code repair with comprehensive validation and smart retry mechanisms.
✨ Features
🏆 High Performance & Cost Efficiency
74.6% Success Rate on SWE-bench Verified, ranking 2nd globally
30-50% Lower Resource Consumption than top competitors
Exceptional cost-performance ratio with near state-of-the-art results
🔄 Patch-Test Co-generation
Smart Test Generation: Automatic Fail2Pass and Pass2Pass test creation with pre-validation
Collaborative Verification: Patches and tests generated together for comprehensive validation
JoyCode SWE-bench Agent Pipeline
JoyCode is an end-to-end LLM-powered pipeline for fixing real-world open-source software issues. It generates patches, creates and verifies tests, and employs intelligent retry mechanisms to achieve high success rates on the SWE-bench dataset.
Project Status: JoyCode has achieved 74.6% resolution rate on SWE-bench Verified split, demonstrating state-of-the-art performance in automated software engineering.
Key Innovation: Our pipeline combines patch generation with intelligent test creation and failure attribution, enabling robust automated code repair with comprehensive validation and smart retry mechanisms.
✨ Features
🏆 High Performance & Cost Efficiency
🔄 Patch-Test Co-generation
🧠 Intelligent Failure Attribution
🏗️ Multi-Agent Architecture
💡 Smart Resource Management
🐳 Production-Ready Engineering
🚀 Installation
Requirements
docker.1ms.runSetup
⚙️ Configuration
LLM Configuration
Configure your models in
llm_server/model_config.json:Docker Setup
Ensure Docker is running and you can access the registry:
Instance Configuration
Specify instances to process in
instance_id.txt:📖 Usage
Quick Start
Common Usage Patterns
Command Line Options
--num-processes--enable-post-processing--simple-mode--problem-id--num-examples--no-generate-tests--no-validate-with-tests🛠️ Advanced Features
Patch Voting System
Compare and select between multiple patch candidates:
Input Requirements:
patch_1.json: Primary patch candidatespatch_2.json: Alternative patch candidatestest-00000-of-00001.parquet: Instance metadata with problem statementsPipeline Stages
cli.pyOutput Structure
📊 Performance Results
🔧 Development
Repository Structure
Troubleshooting
Docker Issues:
LLM Configuration:
Memory Issues:
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments