A coarse-to-fine multi-solution bug-fixing framework
🔍 Diverse Repair Strategies | 🌿 Heuristic Local Branching | 🤝 Multi-agent Collaboration
Prism is a coarse-to-fine multi-solution bug-fixing framework that explores diverse repair strategies, refines them through heuristic local branching, and synthesizes complementary solutions via multi-agent collaboration.
Latest features, recommended for development.
git clone https://github.com/prism-agent-code/prism-agent.git
cd prism-agent
conda env create -f environment.ymlcd src/workflow
python workflow.py \
--instance_id <instance_id> \
--tjs_repo <tjs_repo> \
--dataset <dataset> \
--tjs_test_date <tjs_test_date>This script accepts four required command-line arguments to locate the dataset, specify the trajectory storage path, define the test date, and select the specific instance to process.
- Type:
str - Required: Yes
Specifies the directory where the dataset is stored.
By default, the script reads the following file from this directory:
test-swebench_verified.parquetFor example, if you pass:
--dataset /data/swebenchthen the actual file path read by the script will be:
/data/swebench/test-swebench_verified.parquet- Type:
str - Required: Yes
Specifies the storage path for trajectory results.
This argument is assigned to the variable REPO. Although the variable name is REPO, in this context it actually refers to the output directory or file path for trajectory data rather than the name of a code repository.
It is typically used for:
- Saving trajectory data generated during execution
- Recording intermediate results, execution logs, or reasoning traces
- Providing the trajectory file path for later analysis, reproduction, or debugging
- Type:
str - Required: Yes
Specifies the test date.
This argument is assigned to the variable TEST_DATE, and is generally used to:
- Mark the date of the current test run
- Distinguish different batches of test results
- Serve as a time identifier in result folders, logs, or reports
Example:
--tjs_test_date 2026-03-25- Type:
str - Required: Yes
Specifies the exact sample ID (instance ID) to process.
This argument is assigned to the variable require_instance, and is typically used to:
- Process only one specific sample
- Filter the target instance from the full dataset
- Debug, reproduce, or verify a single SWE-bench case
Example:
--instance_id astropy__astropy-14182python your_script.py \
--dataset /data/swebench \
--tjs_repo /path/to/trajectory \
--tjs_test_date 2026-03-25 \
--instance_id astropy__astropy-14182Please make sure that:
- The directory specified by
--datasetexists - The file
test-swebench_verified.parquetexists in that directory