Table of Contents
Fetching ...

Wired for Reuse: Automating Context-Aware Code Adaptation in IDEs via LLM-Based Agent

Taiming Wang, Yanjie Jiang, Chunhao Dong, Yuxia Zhang, Hui Liu

TL;DR

WIRL tackles the prevalent problem of context-dependent code wiring during copy-paste adaptations by reframing it as a retrieval-augmented infilling task. It combines an LLM with a specialized toolkit (locator, collector, completer) and an agent pilot that iteratively gathers context via a dynamic, ReAct-like prompt, guided by a state-machine to ensure efficient exploration. Empirical results on a curated CWEvaluation dataset show WIRL achieves 91.7% exact-match precision and 90.0% recall, outperforming state-of-the-art code editing tools, commercial IDEs, and raw LLM baselines while maintaining practical latency and low cost. The work demonstrates that structured tool use and dynamic prompting can deliver robust, context-aware code wiring in IDEs, with potential for broader applicability and language-generalization.

Abstract

Copy-paste-modify is a widespread and pragmatic practice in software development, where developers adapt reused code snippets, sourced from platforms such as Stack Overflow, GitHub, or LLM outputs, into their local codebase. A critical yet underexplored aspect of this adaptation is code wiring: the context-aware process of substituting unresolved variables in pasted code with suitable variables or expressions from the surrounding context. Existing solutions either rely on heuristic rules or historical templates, often failing to effectively utilize contextual information, despite studies showing that over half of adaptation cases are context-dependent. In this paper, we introduce WIRL, an LLM-based agent for code wiring framed as a Retrieval-Augmented Generation (RAG) infilling task. WIRL combines an LLM, a customized toolkit, and an orchestration module to identify unresolved variables, retrieve context, and perform context-aware substitutions. To balance efficiency and autonomy, the agent adopts a mixed strategy: deterministic rule-based steps for common patterns, and a state-machine-guided decision process for intelligent exploration. We evaluate WIRL on a carefully curated, high-quality dataset consisting of real-world code adaptation scenarios. Our approach achieves an exact match precision of 91.7% and a recall of 90.0%, outperforming advanced LLMs by 22.6 and 13.7 percentage points in precision and recall, respectively, and surpassing IntelliJ IDEA by 54.3 and 49.9 percentage points. These results underscore its practical utility, particularly in contexts with complex variable dependencies or multiple unresolved variables. We believe WIRL paves the way for more intelligent and context-aware developer assistance in modern IDEs.

Wired for Reuse: Automating Context-Aware Code Adaptation in IDEs via LLM-Based Agent

TL;DR

WIRL tackles the prevalent problem of context-dependent code wiring during copy-paste adaptations by reframing it as a retrieval-augmented infilling task. It combines an LLM with a specialized toolkit (locator, collector, completer) and an agent pilot that iteratively gathers context via a dynamic, ReAct-like prompt, guided by a state-machine to ensure efficient exploration. Empirical results on a curated CWEvaluation dataset show WIRL achieves 91.7% exact-match precision and 90.0% recall, outperforming state-of-the-art code editing tools, commercial IDEs, and raw LLM baselines while maintaining practical latency and low cost. The work demonstrates that structured tool use and dynamic prompting can deliver robust, context-aware code wiring in IDEs, with potential for broader applicability and language-generalization.

Abstract

Copy-paste-modify is a widespread and pragmatic practice in software development, where developers adapt reused code snippets, sourced from platforms such as Stack Overflow, GitHub, or LLM outputs, into their local codebase. A critical yet underexplored aspect of this adaptation is code wiring: the context-aware process of substituting unresolved variables in pasted code with suitable variables or expressions from the surrounding context. Existing solutions either rely on heuristic rules or historical templates, often failing to effectively utilize contextual information, despite studies showing that over half of adaptation cases are context-dependent. In this paper, we introduce WIRL, an LLM-based agent for code wiring framed as a Retrieval-Augmented Generation (RAG) infilling task. WIRL combines an LLM, a customized toolkit, and an orchestration module to identify unresolved variables, retrieve context, and perform context-aware substitutions. To balance efficiency and autonomy, the agent adopts a mixed strategy: deterministic rule-based steps for common patterns, and a state-machine-guided decision process for intelligent exploration. We evaluate WIRL on a carefully curated, high-quality dataset consisting of real-world code adaptation scenarios. Our approach achieves an exact match precision of 91.7% and a recall of 90.0%, outperforming advanced LLMs by 22.6 and 13.7 percentage points in precision and recall, respectively, and surpassing IntelliJ IDEA by 54.3 and 49.9 percentage points. These results underscore its practical utility, particularly in contexts with complex variable dependencies or multiple unresolved variables. We believe WIRL paves the way for more intelligent and context-aware developer assistance in modern IDEs.

Paper Structure

This paper contains 55 sections, 7 figures, 5 tables.

Figures (7)

  • Figure 1: Motivating Example
  • Figure 2: Overview of WIRL
  • Figure 3: Example of Identification Failure for Raw LLM
  • Figure 4: Example of Recommendation Failure for Raw LLM
  • Figure 5: Example of Recommendation Failure for WIRL
  • ...and 2 more figures