TwinMem-Agent: Episodic and Semantic Memory for Repository-Level Program Repair
Large language models for repository-level repair usually reset context for every issue, even though real maintenance often unfolds as a stream of tickets within the same codebase. We study this sequential regime on a stratified 8 × 25 subset of SWE-Bench Pro (eight projects, twenty-five instances each), running instances in commit-time order within each project so later repairs can draw on earlier trajectories. We present TwinMem-Agent, which pairs a test-patch-validate loop with episodic memory (grounded demonstrations) and semantic memory (LLM-distilled notes). After each issue, a memory module compacts the trajectory, merges updates under a fixed budget, and retrieves exemplars and guidelines at inference time, all without fine-tuning model weights. Using DeepSeek-V3.2 as the shared backbone and identical Dockerized instances, we compare TwinMem-Agent to mini-swe-agent on Pass@1 and average inference cost, and ablate the memory module on 25 Ansible instances measuring Pass@1 and RSR. TwinMem-Agent achieves 89.1% Pass@1 versus 60.0% for the baseline at roughly 18× lower cost ($0.0044 vs. $0.0798). Removing the memory module reduces Pass@1 by 8 pp and RSR by 12 pp, with the larger RSR drop confirming that accumulated cross-issue experience most directly benefits bug reproduction and cascades into higher patch success.