I use github copilot chat right now. First I use ask mode to ask it a question about the state of the codebase outlining my current understanding of the condition of the code. "I'm trying to x, I think the code currently does y." I include a few source files that I am talking about. I correct any misconceptions about the plan the llm may have and suggest stylistic changes to the code. Then once the plan seems correct, I switch to agent mode and ask it to implement the change on the codebase.
Then I'll look through the changes and decide if it is correct. Sometimes can just run the code to decide if it is correct. Any compilation errors are pasted right back in to the chat in agent mode.
Once the feature is done, commit the changes. Repeat for features.
Does it remember context from chat mode and when you switch to agent mode?
Yes, it can't change between edit and ask/agent without losing context but ask <-> agent is no problem. You can also change to your custom chat modes https://code.visualstudio.com/docs/copilot/chat/chat-modes without losing context. At least that's what I just did in VSCode Insiders.
Here are some nice copilot resources: https://github.com/github/awesome-copilot
Also, I am using tons of markdown documents for planning, results, research.... This makes it easy to get new agent sessions or yourself up to context.
Yes. I think it used to be separate tabs, but now chat/agent mode is just a toggle. After discussing a concept, you can just switch to agent mode and tell it to "implement the discussed plan."