๐ค AI Summary
Current AI assistants operate in a passive paradigm, requiring explicit user invocation, which limits their utility in dynamic programming environments. Method: This paper proposes and implements the first proactive AI assistant for programming, built upon large language models and integrating code-context awareness, lightweight intent prediction, and interactive suggestion integration to autonomously detect programming intent and deliver editable, verifiable code suggestions without user triggering. Contribution/Results: We establish the first systematic design framework for proactive assistants and validate it via randomized controlled trials: our approach improves programming efficiency by +27.3% and user satisfaction by +34.1% over conventional passive assistants. Furthermore, we identify synergistic optimization principles among suggestion timing, granularity, and user controlโproviding both theoretical foundations and practical guidelines for next-generation human-AI collaborative proactive interaction.
๐ Abstract
While current chat-based AI assistants primarily operate reactively, responding only when prompted by users, there is significant potential for these systems to proactively assist in tasks without explicit invocation, enabling a mixed-initiative interaction. This work explores the design and implementation of proactive AI assistants powered by large language models. We first outline the key design considerations for building effective proactive assistants. As a case study, we propose a proactive chat-based programming assistant that automatically provides suggestions and facilitates their integration into the programmer's code. The programming context provides a shared workspace enabling the assistant to offer more relevant suggestions. We conducted a randomized experimental study examining the impact of various design elements of the proactive assistant on programmer productivity and user experience. Our findings reveal significant benefits of incorporating proactive chat assistants into coding environments and uncover important nuances that influence their usage and effectiveness.