microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.71k stars 29.09k forks source link

Allow "pinning" progress messages in chat responses #206294

Open stepro opened 8 months ago

stepro commented 8 months ago

I love the UX you get when my chat participant reports progress in a response, with the spinner and text. However, I can't use this right now because the progress message(s) always disappear once I start outputting content. My users will rely on looking at the progress messages to understand whether the AI was doing the right thing, e.g. it describes functions that are being called and with what parameters. If these calls complete too quickly, or the user just isn't looking, they will miss the progress message.

I'd like there to be some option for pinning the progress message and a way to notify of completion (success or error) so the icon switches to something like a green checkmark or red X, and then have the progress message stick around in the UI (I think the underlying chat history can remain the same). Thanks in advance!

@isidorn

roblourens commented 8 months ago

I was thinking something like this would be useful.

so the icon switches to something like a green checkmark or red X

do you have a scenario where you want to show that the step failed, or is that just something hypothetical?

vscodenpa commented 8 months ago

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

stepro commented 8 months ago

I was thinking something like this would be useful.

so the icon switches to something like a green checkmark or red X

do you have a scenario where you want to show that the step failed, or is that just something hypothetical?

We report progress on function calls, and know whether a function call failed, so it would be good to be able to visually indicate which function call (there may be multiple in parallel) failed and which succeeded.

roblourens commented 8 months ago

We also don't support multiple progress calls in parallel right now, only the last one shows progress. That probably needs a new API.

If the function call failed, that doesn't mean that the whole request failed? You are able to continue on?

stepro commented 8 months ago

We also don't support multiple progress calls in parallel right now, only the last one shows progress. That probably needs a new API.

If the function call failed, that doesn't mean that the whole request failed? You are able to continue on?

It's ok if we don't have multiple progress calls in parallel. If the function call failed, the AI will be handed the error result to produce some narrative as the final response. We'll be tuning the error results such that the AI's narrative will include something like "you don't have access to make this call, to get that go to aka.ms/getaccess". So the response is ultimately "successful" from your perspective even though it didn't succeed in addressing the user ask.

rvanider commented 4 months ago

The ability to flag some of the progress calls as persisted or to have a resolved capability in which case they would show up similar to that of the reference flow would be great. We have some long running flows where the participant is effectively in a large multi-step flow of agent to agent interactions. The existing progress flow keeps the user informed but it would be helpful to express some completed and persisted resolution of the many steps.

I am definitely interested in future support of concurrent progress being possible. Very much in the context of N of M tasks completed pattern.