Code-A1: Adversarial Evolving of Code LLM and Test LLM via Reinforcement Learning
2026-03-16 • Computation and Language
Computation and Language
AI summaryⓘ
The authors present Code-A1, a system where two language models work against each other: one writes code and the other writes tests to find bugs. By keeping these tasks separate, their approach avoids cheating problems seen when one model does both. The test model can look inside the code to create tricky tests that catch mistakes, helping the code model improve. Their experiments show this method helps generate better code and tests compared to previous systems relying on human-written tests.
Reinforcement LearningCode GenerationUnit TestsLanguage ModelsSelf-playAdversarial LearningExperience ReplayWhite-box TestingBlack-box TestingReward Function
Authors
Aozhe Wang, Yuchen Yan, Nan Zhou, Zhengxi Lu, Weiming Lu, Jun Xiao, Yueting Zhuang, Yongliang Shen
Abstract
Reinforcement learning for code generation relies on verifiable rewards from unit test pass rates. Yet high-quality test suites are scarce, existing datasets offer limited coverage, and static rewards fail to adapt as models improve. Recent self-play methods unify code and test generation in a single model, but face a inherent dilemma: white-box access leads to self-collusion where the model produces trivial tests for easy rewards, yet black-box restriction yields generic tests that miss implementation-specific bugs. We introduce Code-A1, an adversarial co-evolution framework that jointly optimizes a Code LLM and a Test LLM with opposing objectives. The Code LLM is rewarded for passing more tests, while the Test LLM is rewarded for exposing more defects. This architectural separation eliminates self-collusion risks and safely enables white-box test generation, where the Test LLM can inspect candidate code to craft targeted adversarial tests. We further introduce a Mistake Book mechanism for experience replay and a composite reward balancing test validity with adversarial difficulty. Experiments on Qwen2.5-Coder models demonstrate that Code-A1 achieves code generation performance matching or exceeding models trained on human-annotated tests, while significantly improving test generation capability.