Duo "couldn't respond on time" when selecting code in file with v2_chat_agent_integration enabled
Summary
In VSCode with the feature v2_chat_agent_integration
enabled, when prompting Duo with code selected in some file, duo returns:
I'm sorry, I couldn't respond in time. Please try a more specific request or enter /clear to start a new chat.
Steps to reproduce
In IDE
You can setup IDE to work with your local chat by setting up proper endpoint for GitLab Duo in your IDE settings.
- Enable the
v2_chat_agent_integration
feature flag. - Open VSCode Duo.
- Select a few lines of code in a code file.
- Enter a prompt.
- See response.
With local AIGW
go to 127.0.0.1:5052/docs
and select to test v2/chat/agent
use next params for the request:
{
"prompt": "calculate 8+2*5",
"options": {
"chat_history": "",
"agent_scratchpad": {
"agent_type": "react",
"steps": []
},
"current_file": {
"file_path": "/ee/spec/lib/gitlab/llm/chain/agents/zero_shot/prompts/anthropic_spec.rb",
"data": "let(:user_input) { 'foo?' }",
"selected_code": true
}
}
}
You will get an error as a response. In AI GW you will see
KeyError('Input to ChatPromptTemplate is missing variables {" \'foo?\' "}. Expected: [" \'foo?\' ", \'agent_scratchpad\', \'chat_history\', \'question\'] Received: [\'chat_history\', \'question\', \'agent_scratchpad\', \'current_file\']')Traceback (most recent call last):
This bug doesn't reproduce if only one line of code is selected or /explain
command is chosen.
This bug doesn't reproduce on v1 chat agent.
What is the current bug behavior?
Duo fails to respond to prompt when code is selected.
What is the expected correct behavior?
Duo responds to prompt when code is selected, with selected code added to context.
Relevant logs and/or screenshots
Following is an example where I had some code selected and sent two prompts, then deselected the code and sent another prompt. Duo successfully answers the new prompt. This also works with identical prompts.
And a video!!
Possible fixes
There is something wrong with the template, possibly prompt template needs fixing