An LLM-based build agent system that helps manage and automate build processes in containerized environments. This project provides tools for handling dependencies, resolving conflicts, and managing build configurations.
- Docker-based sandbox environment for isolated builds
- Automated dependency management and conflict resolution
- Support for Python version management
- Waiting list and conflict list management for package dependencies
- Error format handling and output collection
- Python 3.x
- Docker
- Git
- Clone the repository:
git clone https://github.com/bytedance/repo2run.git
cd repo2run
- Install the required dependencies:
pip install -r requirements.txt
The main entry point is through the build agent's main script. You can run it with the following arguments:
python build_agent/main.py <repository_full_name> <sha> <root_path>
Where:
repository_full_name
: The full name of the repository (e.g., user/repo)sha
: The commit SHAroot_path
: The root path for the build process
build_agent/
- Main package directoryagents/
- Agent implementations for build configurationutils/
- Utility functions and helper classesdocker/
- Docker-related configurationsmain.py
- Main entry pointmulti_main.py
- Multi-process support
The project uses Docker containers to create isolated build environments, ensuring clean and reproducible builds.
- Waiting List: Manages package installation queue
- Conflict Resolution: Handles version conflicts between packages
- Error Handling: Formats and processes build errors
Utilizes GPT models to assist in build configuration and problem resolution.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
@article{hu2025llm,
title={An LLM-based Agent for Reliable Docker Environment Configuration},
author={Hu, Ruida and Peng, Chao and Wang, Xinchen and Gao, Cuiyun},
journal={arXiv preprint arXiv:2502.13681},
year={2025}
}
Apache-2.0