Need Help? Designing Proactive AI Assistants for Programming

Human-LLM CollaborationAI-Assisted Decision-Making & AutomationSoftware Engineers & DevelopersAI/ML Researchers & Engineers

Research Background and Issues

  • What problems or challenges did the authors identify?
    Existing chat-based AI assistants are typically reactive, responding only when users make explicit requests. This interaction model requires users to provide clear context and questions, which may increase user burden and reduce efficiency. Additionally, code autocomplete tools (e.g., GitHub Copilot) primarily offer suggestions based on cursor position, lacking the ability to assist users in solving code issues from a global perspective.

  • Why is this issue important?
    As programming tasks grow in complexity, the reactive nature of AI assistants may limit their effectiveness in tasks such as coding, debugging, and optimization. Proactive AI assistants can offer relevant suggestions even when users do not explicitly request them, helping users complete tasks more efficiently and improving productivity and user experience.

  • Research Motivation and Related Work
    The authors reviewed the evolution of proactive assistants, from Microsoft’s Clippy to modern tools like GitHub Copilot, highlighting the limitations of existing tools (e.g., input burden, inability to address earlier code sections). They drew on design principles from hybrid interaction systems and focused on enhancing the effectiveness of programming assistants through proactive design.

Solution

  • What methods or solutions did the authors propose?
    The authors designed a proactive chat assistant based on large language models (LLMs), embedded within an integrated development environment (IDE). This assistant can access the user’s code, message history, and terminal output, offering suggestions at appropriate moments, such as code implementation, error fixing, or performance optimization. Specific functionalities include:

    • Providing high-level suggestion summaries and detailed descriptions.
    • Supporting code implementation previews and integration.
    • Dynamically generating suggestions based on user context.
  • What is innovative about this solution?
    The proactive assistant not only generates suggestions based on the local context of the user’s current code but also provides broader support from a global perspective, including code fixes, modular improvements, and debugging. Additionally, users can interact with the assistant to accept, dismiss, or preview suggestions, further enhancing efficiency.

  • What are the implementation steps and key technologies used?

    1. Interactive Interface Design: Suggestions are displayed through a chat window, allowing users to expand or hide suggestion details.
    2. Suggestion Generation: Eight suggestion types (e.g., error fixing, feature extension, code optimization) were defined based on task analysis, with suggestions generated using GPT-4o.
    3. Suggestion Timing Control: Designers dynamically determined the optimal timing for displaying suggestions based on user behaviors (e.g., code input, error execution).
    4. Function Testing and Experimental Evaluation: User experiments were conducted to compare the effectiveness of the proactive assistant with standard reactive assistants.

Research Outcomes

  • What specific outcomes were achieved?
    Experimental results showed that the proactive assistant significantly improved user productivity (test case pass rates increased by 12-18%) and, in certain settings, enhanced user experience (e.g., reduced task input burden). Additionally, it helped users write more test cases and identify issues.

  • What advantages does it have over existing solutions?
    Compared to traditional assistants, the proactive assistant generates context-based suggestions, reducing the burden of repeatedly clarifying input questions. It also helps users adjust task planning, assists in fixing potential errors, and complements code autocomplete tools.

  • What were the experimental or evaluation results?

    • Under conditions of moderate suggestion frequency, most users preferred the proactive assistant, describing it as “more contextually relevant” and “time-saving.”
    • When suggestion frequency was too high, user experience significantly declined, with some users finding it “too disruptive” to their work.
    • Users primarily accepted action-oriented suggestions (e.g., feature extension, error fixing), while efficiency and modular improvement suggestions were less well-received.
  • Limitations and Future Directions

    • Limitations:
      1. The study was based on student experiments, and the results may not fully apply to professional developers.
      2. The experimental task types were limited and did not cover long-term practices in large-scale projects.
      3. Integration evaluations with other development tools (e.g., GitHub Copilot) were not conducted.
    • Future Directions:
      1. Explore the applicability of proactive assistants in broader programming tasks, such as long-term projects or team collaboration.
      2. Enhance the prioritization and contextual understanding of proactive suggestions.
      3. Design customizable proactive assistants, allowing users to adjust suggestion frequency or triggering rules based on their needs.

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/papers/chi/188867/2025

AdRecommended

Learn AI Coding at CodeNow

open_in_newOpen DOI Link
DOI: https://dl.acm.org/doi/10.1145/3706598.3714002
At a Glance

Paper Snapshot

fact_check
dataset
Source
CHI
calendar_month
Year
2025
emoji_events
Award
No award tagged
group
Authors
6 authors
sell
Subtopics
Human-LLM Collaboration, AI-Assisted Decision-Making & Automation
work
Professions
Software Engineers & Developers, AI/ML Researchers & Engineers
article
Content Status
Full text indexed
hub
Related Papers
10 related papers