Kozuchi Agent: A Language-Agnostic Open-Weight Agent for Software Repair
Authors: Mehdi Bahrami, Kosaku Kimura, Satoshi Munakata, Satoshi Nakashima, Yu Ishikawa, Kosuke Maeda, Nao Soma, Kenichi Kobayashi, Keisuke Miyazaki, Keizo Kato, Shigeki Fukuta, Tatsuo Kumano, Nobutaka Imamura, Kevin Musgrave, Shahbaz Abdul Khader, Kwun Ho Ngan, Joe Townsend, Fayas Asharindavida, Matthieu Parizy, Akira Sakai, Yuma Ichikawa, Yang Zhao, Michiaki Takizawa, Taku Fukui, Hiroki Ohtsuji, Wei-Peng Chen, Hiromichi Kobashi
Organizations: Fujitsu Research of America Santa Clara, CA, USA · Fujitsu Research Kawasaki, Japan · Fujitsu Research of Europe Slough, UK · Fujitsu Research & Development Beijing, China
Industrial software-engineering teams increasingly need LLM agents that turn bug reports into correct patches, yet benchmark-scale operation adds long horizons, tool-use discipline, context persistence, heterogeneous clusters, and evaluation reuse. We present Kozuchi Agent, a language-agnostic open-weight repair agent and CI-operated evaluation pipeline. Explicit phases, persistent state, deterministic tools, a model-independent action interface, and cross-agent test-time selection make runs auditable and repeatable. With locally hosted Qwen3.5-27B, no fine-tuning, and TTS@8, Kozuchi resolves 374/500 SWE-bench Verified instances on the official evaluator. Unchanged on Multi-SWE-bench Java, the same 27-billion-parameter agent resolves 41/128 instances (32.03%), ranking first among strict open-weight submissions and fourth of 42 overall; on Python it ranks 12th of 135 and first among open-weight systems. Per-phase behavior remains within +/-5 percentage points across languages. Remaining failures mainly reflect semantic correctness, Java-specific harness issues, and selection errors. Across both tracks, results compare favorably with open/local peers by parameter count. Analysis of candidate diversity, selector regret, and patch reliability shows that the remaining gap is primarily semantic correctness and selection rather than edit formatting or proprietary-model access. Operationally, reusable CI stages reduce operator touch-points from five to one across heterogeneous internal clusters.
Figures & tables
Figure 1. Kozuchi Agent is parameter efficient on both Python SWE-bench Verified and Multi-SWE-bench Java. Dual-axis scatter plot of agent success rate against total parameter count on a log scale. The left (blue) axis shows SWE-bench Verified Python results for Kozuchi Agent and open/local peers with the Python Pareto frontier as a dashed blue line; the right (red) axis shows Multi-SWE-Bench Verified Java results for open-weight peers with the per-size-class Java envelope as a dashed red line. Kozuchi Agent + Qwen3.5-27B is highlighted with star markers on both axes (74.8 percent Python, 32.03 percent Java) at 27 billion parameters.
Mechanism / claim
Evidence type
Where
Candidate count K=8
Ablated: pass@1 334–343 vs. oracle 408
Tab. 7
Cross-agent selector
Ablated: 376 vs. 362 (order) vs. 346 (self-tests)
Tab. 7
Selector weights wB,wR
Sensitivity sweep: ≤ 5/500 outcome change
§ 7
Phase graph, handover state, formatter, tool sandbox, CI reuse
Operational signatures; not ablated
§ 6 , § 9
Engineer-minute saving
Derived order-of-magnitude estimate
Tab. 2
GPU-hours
Wall-clock-derived estimate
§ 8.5
Table 1. Evidence map: mechanisms and claims by type.
Figure 2. Kozuchi Agent workflow from candidate generation to cross-agent selection. Two-lane system diagram. The upper lane shows the broad issue-to-patch workflow through candidate generation, archived artifacts, selection, and submitted patch. The lower lane expands one candidate trajectory with durable shared memory, turn-level action normalization, tools, and the cross-run test application that produces the selector signals B_ij and R_ij.
Quantity
Value
Quantity
Value
Expected (Verified)
500
wB
0.3
Selected (covered)
495
wR
0.7
Resolved (xcheck selector)
376
Tie epsilon
0.001
Score over expected (xcheck)
0.752
Tie-breaker
shortest_patch_raw
Resolved (order baseline)
362
Tie-break applied
304/495
Score over expected (order)
0.724
Mean unique patches
5.59/8
Table 3. Cross-agent selector summary.
Quantity
Interpretation
Value
Mean pass@1
Average over eight runs
67.7%
All-run solved
ri=8 scaffold-easy instances
234 / 500
Zero-run solved
ri=0 scaffold-hard instances
92 / 500
Marginal instances
1≤ri≤7 selector-sensitive
174 / 500
Oracle pass@8
Any run resolves
408 / 500 = 81.6%
Cross-agent selector
Official-evaluator result
374 / 500 = 74.8%
Table 4. Candidate-level TTS@8 decomposition.
Repository
Resolved/Total
Rate
Repository
Resolved/Total
Rate
astropy/astropy
13/22
59.1%
pydata/xarray
18/22
81.8%
django/django
177/231
76.6%
pylint-dev/pylint
3/10
30.0%
matplotlib/matplotlib
23/34
67.7%
pytest-dev/pytest
16/19
84.2%
mwaskom/seaborn
1/2
50.0%
scikit-learn/scikit-learn
27/32
84.4%
pallets/flask
1/1
100.0%
sphinx-doc/sphinx
30/44
68.2%
psf/requests
8/8
100.0%
sympy/sympy
57/75
76.0%
Table 5. SWE-bench Verified resolution by repository.
Figure 3. Per-repository resolution rate for Kozuchi agent (first column on the left) and the curated open-weight peers. Heatmap comparing per-repository resolution rates for Kozuchi agent and open-weight peer agents across the 12 repositories in SWE-bench Verified. Kozuchi agent leads or ties the strongest peer on several high- and medium-volume repositories including django, sympy, sphinx, and pytest, while pylint remains low for most systems.
Category
Count
Share
WRONG_FIX
115
91.3%
REGRESSION
6
4.8%
MISSING_ARTEFACT
5
4.0%
PATCH_DID_NOT_APPLY
0
0.0%
EMPTY_PATCH
0
0.0%
Total
126
100.0%
Table 6. Failure taxonomy for unresolved instances.
Variant
Resolved
Rate
Note
K=1 , no selector (mean)
338.6
67.7%
eight-run mean
K=1 , no selector (best)
343
68.6%
best leg
K=8 , order baseline
362
72.4%
no cross-agent ranking
K=8 , self-tests only
346
69.2%
estimated
K=8 , cross-agent selector
376
75.2%
selected
K=8 , oracle
408
81.6%
upper bound
Table 7. Artifact-based TTS@8 ablation. Scope: this table isolates candidate count ( K ) and selector design only; phase graph, formatter, persistent state, and tool sandbox are not ablated and are evidenced operationally in § 6 and § 9 .
Figure 4. Cross-language transfer summary. Two-panel comparison. The first panel shows Python at 374 of 500 resolved and Java at 41 of 128 resolved with Wilson confidence intervals. The second panel overlays the eight phase message shares for the Python and Java trajectories, showing similar shape across the phase graph.
Signal
Python
Java
Benchmark
SWE-bench Verified ( n=500 )
Multi-SWE-bench Java ( n=128 )
Resolved (Wilson 95% CI)
374/500 = 74.80% [70.82, 78.41]
41/128 = 32.03% [24.57, 40.54]
Leaderboard position
12/135 overall
4/42 overall
Open-weight rank
1st curated open-weight
1st strict open-weight
BH-FDR peer wins
16/17 open-weight peers
34/41 Java peers
Same-family open margin
+26 vs. Qwen3-Coder-480B
+38 vs. Qwen2.5-72B
Table 8. Python–Java cross-track evidence for the same 27-billion-parameter Kozuchi agent configuration.
Sun Yat-sen University, China · State Key Laboratory of Blockchain and Data Security, Zhejiang University, China · School of Cyber Science and Engineering, Huazhong University of Science and Technology, China +1