The Next Generation of Developer Productivity with GitHub Copilot & Visual Studio
Watch on YouTubeVideo summary
Simona ve Leah, GitHub Copilot ekibinden gelen sunucularla birlikte Visual Studio'nun ajan ekosistemi ve özelleştirme seçeneklerine kapsamlı bir bakış sunar. Sunumda "Ask", "Plan", standart "Agent" ve yeni nesil "Preview Agent" olmak üzere dört temel ajan modu tanımlanır; bu modlar, güvenli önerilerden detaylı uygulama stratejilerine kadar çeşitli iş akışlarını desteklerken, Debugger, Profiler ve Cloud gibi uzmanlaşmış ajanlarla geliştiricilerin farklı görevleri paralel olarak yönetmesine olanak tanır. Özellikle Cloud ajanı, geliştiricilerin başka yerlerde çalışırken GitHub.com üzerinde yan hataları giderme veya sorunları çözme yeteneği sağlar. Bu ajanların ekibi özel iş akışlarına uyarlanması için Custom Instructions, Prompt Dosyaları, Skills ve MCP Sunucuları gibi dört ana özelleştirme mekanizması detaylandırılır; burada Skills, basit kaydedilmiş komutlardan ziyade performans taraması gibi prosedürel bilgi tabanlarını temsil ederken, MCP sunucuları ajanlara dış araçlara erişim sağlar. Canlı bir demo ile yetkinlikli ve yetkinlikli olmayan yaklaşımlar karşılaştırılırken, .NET Performans skilli sayesinde SQL sorgusu gibi spesifik sorunlar tespit edilip yapılandırılmış raporlar üretilmesi gösterilir ve bu süreç GitHub sorun oluşturma ile commit itme işlemlerini otomatize eder.
Sunumun ikinci kısmı, GitHub Copilot ve Visual Studio entegrasyonunun ileri düzey özelliklerini, özellikle çekme isteği (PR) yönetimi, çatışma çözümü, model şeffaflığı ve kurumsal esneklik üzerine odaklanarak derinleştirir. Geliştiriciler, bağlamı korurken farklı çalışma ağaçları arasında sorunsuz geçiş yapabilir, Visual Studio içinde tam zaman çizelgesi ve yorumlara erişim sağlayarak PR'leri inceleyebilir ve Copilot'u bir inceleme uzmanı olarak veya Chat'i kullanarak PR meta verileriyle iterasyonlar gerçekleştirebilir. Ayrıca Git ajanı, birleştirme çatışmalarını çözmek için çözüm önerileri, özetler sunmak ve görselleştirme sağlamak amacıyla birleştirme editörünü kullanır. Bu bölümde, bağlam penceresi izleme, jeton kullanım sayaçları ve özelleştirilebilir uyarı eşikleriyle AI kullanımının şeffaflığı artırılırken, kullanıcılar mevcut modelleri yönetebilir, favorilerini sabitleyebilir ve Microsoft Foundry üzerinden kendi modellerini (BYOK) getirebilir; bu özellik düzenlenmiş organizasyonların onaylanmış kurumsal modelleri güvenli bir şekilde kullanmasını sağlar.
Sonuç olarak, sunum Visual Studio ve GitHub Copilot'un geliştirici verimliliğini artırmak için sunduğu bütüncül çözümleri özetler. Geliştiriciler, AI araçları ve harcamalar üzerinde daha büyük otonomi kazanırken, bağlam değiştirme sıklığı azalır ve inceleme verimliliği artar. Visual Studio'nun yerel olarak değişiklikleri doğrulaması veya çekme istekleri sırasında GitHub Copilot Kod İnceleme hizmetini kullanması, kod kalitesini korumada kritik bir rol oynar. Ayrıca, CLI ile IDE arasında sorunsuz geçişler, geliştiricilerin farklı platformlarda kesintisiz çalışmasını sağlar ve kurumsal düzeyde bu özelleştirmelerin yönetici politikalarıyla dağıtılması, organizasyonların kendi ihtiyaçlarına uygun AI stratejileri geliştirmesine olanak tanır. Bu özelliklerin birleşimi, hem bireysel geliştiricilere hem de büyük ölçekli ekiplere daha akıllı, güvenli ve özelleştirilebilir bir kod geliştirme ortamı sunarak geleceğin yazılım mühendisliği standartlarını belirlemeye adaydır.
Read the full video transcript
Thank you so much for coming to our
session today, um, the next generation
of developer productivity, uh, with
GitHub Copilot and Visual Studio.
My name is Simona and I'm a PM in the VS
GitHub Copilot team.
>> Yeah, and hi, I'm Leah. I'm a toy uh, PM
on the VS team for Git tooling
specifically.
Yeah.
>> So, we have a full agenda today, so
we'll get right into it. This is the
flow for today. We'll first talk about
all the agents you have available in
Visual Studio, then we'll talk about how
do you customize them, make them really
work for your team and your workflow.
And then, uh, I'll hand it over to Leah.
She's going to go deep into how you
review and validate the code that
Copilot generates. And then lastly,
we're going to talk about also the
important part about how to manage your
model and tokens.
Uh,
So, this is the agent picker view in
Visual Studio. I bet many of you have
seen this multiple times where you're
interacting with your chat, you're
switching between agents. So, we have a
lot of options here, as you can see, and
today we're going to break it break it
up a little bit.
But, this is the first, the classic duo,
the ask, plan, and agent. Um,
so, all these modes, they are the
default ones, um, come with Visual
Studio, and um, they are like the
generic the generic a- assistant you
have that can be good for any type of
task. And but if you give them a prompt,
they're going to give you a different
type of reaction and response. Ask is
the very old like chat assistant. So,
you can interact with the it's going to
give you suggestions about how to
implement something, but it won't apply
the code for you. It will give you a
code wrapped in a active window and you
can copy-paste or apply it. Um, so, this
is like the safest option if you don't
want agent to change anything, um, to
our code base directly. And now we have
plan mode. Um, how many of you have
tried plan mode in VS already?
Great. So, for those who haven't, I
highly recommend you to uh to check it
out. I think this was available like
April, March, a couple months ago in
Visual Studio. And the benefit of plan
mode is you really get to iterate uh
with the agent with your agent and make
sure the plan is perfect, every detail
is aligned, and then you kick off um the
plan. Um so, the plan mode will break
down the different steps um in
implementing a new feature. And then uh
maybe there are different approaches you
want agent to take, you can nudge it to
change the plan. And when you're fully
aligned, you kick it off, uh implement
the plan. And the benefit of using it is
that you have a way higher chance of
getting it from 0 to 100 in one shot. Uh
because if you don't plan it, maybe
you'll give a very simple prompt to
start with, like create this feature,
and then the agent will just kind of
guess how to do it. And then you
probably don't like it, you have to
tweak it, give it multiple prompts
afterwards. But with plan mode, you can
uh have a way detailed plan and have it
right in just one shot. So, super
powerful, um definitely uh add this to
your list to try out um after session
today.
And now we have the beloved agent mode.
Super powerful, it can apply your edits
to our files directly. Um I've been
living in agent mode uh since it's
available. And then we also have a major
upgrade coming to our agent mode, which
is
the preview agent. Uh how many of you
were in my colleague Dalia, who was
sitting there session yesterday? Great.
Yeah, that was super cool session. If
you missed it, maybe check out the
recording afterwards. Um so, we're
bringing this preview agent to VS. Uh
one feedback we've been hearing about
agent mode um
consistently from you all is that when
you're using different Copilot clients,
VS, VS Code, CLI, you feel like the
quality of the agent is inconsistent
when you're moving around. So, we wanted
we take that feedback seriously, and we
want to bring the quality the same
baseline for y'all. So, now in Visual
Studio, we have our agent mode powered
by
Copilot SDK. And that will soon be the
same case for VS Code, and that's
already what CLI is using. So, we're
going to get away
um consistent experience with our agent
mode. It's still in preview um now, so
we really value all the feedback you
have. Try it out. Um if you like it, if
you don't like it compared to the
previous agent, what what type of every
type of feedback, let us know. It will
be super super valuable because our team
is still actively iterating um on this
preview agent right now.
Um and so that's about agent mode. And
then one thing I forgot to mention why I
really like it is uh when you perform a
task with agent, it will do this full
loop. Uh you kick it off, it will
implement the code, but after
implementation, it will also validate
itself. It will try to make a build to
make sure it's not leaving you with a
mess or a bunch of errors behind. It
will always try to fix its errors
afterwards. So, that's something I
really appreciate about agent mode.
Um so, with the preview agent, we have
the same thing coming to plan as well.
We're going to soon have our plan mode
uh powered by the SDK uh Copilot SDK.
So, again, similar consistent experience
across all the Copilot clients.
So, that was the classic uh story trail
um of agents. And then we also have a
bunch of really powerful specialized
agent in Visual Studio. Um they're quite
unique. Um we have debugger and profiler
um which will help you with your
debugging process and performance
improvement um processes. And my
colleague Harshita did a uh a Mark did a
session uh yesterday
um featuring these two. Uh if you missed
it, there's a recording, and I think um
Yujin uh from my team is also doing a
debugger demo later. So, if you missed
the previous one, um I'll share the time
and specific specifics at the end of the
session. And then we also have Git agent
where uh which Leah is going to talk
more about. And lastly is Cloud agent. I
feel like this is quite a hidden gem uh
in VS. So, how many of you you have your
code hosted on GitHub repository?
Okay, then you definitely should try
this out uh cloud agent. So, it's a
remote agent is hosted on github.com.
Um
but you can kick off a task uh for it in
Visual Studio. So, imagine you're doing
like a big feature implementation. And
then while you're working on it, you
notice there's this side bug that is
happening. You probably don't want to
switch contacts to fix the bug because
you don't want to uh distract yourself
from the work you're doing, but then it
would be handy to have an assistant help
you fix this at the same time, right?
So, that's how you use cloud agent. It's
like your parallel It's a way to
parallel your work. You just kick off at
Visual Studio, you switch it to cloud
agent, uh let it handle the side bug. It
will create a GitHub issue for you in
your repo repository. And then the agent
on the cloud will automatically start
working on it. And then once it's done,
it's going to push a commit to the
issue, uh and then it will notify you so
you can review its code and then
iterate. Um so, the benefit of it is you
can parallel work. You don't even need
your VS to be open to use it. If you
need to go to lunch, you log off for
your work, uh you can kick off uh get a
a cloud agent, and you can come back to
it the next morning when you're ready.
Um so, that's super convenient for
parallel parallel your work.
Um
Yeah. So, that's a quick rundown of all
the different agents we have in VS, but
that's not enough because Copilot still
doesn't know how your team work. Like
you probably have those special
guidelines, preferences,
um internal APIs, and all of that. So,
think of the agent mode plus a powerful
model. It's a pretty good It bring you
to a pretty good baseline. Uh but you
still need to onboard it to your team.
Just like when you're hiring a new
teammate, and they are probably a very
pow- a very capable, very competent
software engineer. But that it only
knows general knowledge about software
engineering alone, but it doesn't know
anything specific to your team, to your
project. So, you probably have a bunch
of onboarding docs for them to go
through to get familiarized with the
code base so they can start working in
it. This is the same thing with Copilot.
It is powerful enough at a baseline for
general task with agent mode
and the basic model, but then you still
need to onboard it with all the
customization features.
Um, so we have a bunch of these features
available in VS for you to try out. Um,
first is the very classic uh I think one
of the first customization features as
well, custom instructions. Um, who have
it set up in your repo?
Oh, wow. This is uh smaller than I
expected. Uh okay, I'll also add this to
the list to try out after the session.
Um
custom instruction is super powerful.
It's good for the basic guidelines, um
the guardrails you want your agent to
follow on every task you give it to it
because how it works is when you are
interacting with it, you send a chat
message to it. Every chat request, your
custom instruction is appended to the
system message. So, the model will read
it and follow it every time. So, this is
good for
Yeah.
>> Do you need Copilot instructions?
>> Yes, yes, yes.
>> Easy. Okay.
>> Yeah.
>> more people might use it by that name.
>> Good point, good point. So, yeah, so the
file name for it is
Copilot-instructions.markdown.
Uh so so so by that, how many of you
have it set up?
Okay.
Slightly more, but I think with 50% of
the room, we for the rest of y'all, uh
definitely worth checking it out. Um
So, that's the custom instructions. Um
you can also scope it to different file
and file and directory. So, if you have
some instruction just for this repo for
this folder, um you can do it in the
front matter. You can define it so so it
can scope um to whatever file directory
you want. And now we have prompt files.
Those are also like I think
available a while ago. You can save all
your favorite prompt. You don't have to
copy paste things around and you just
have them saved into a Visual Studio and
you can use them as slash command. Once
you save them, you just slash and then
the name, it's super convenient
uh and neat to use.
And then we have agent skills, custom
agent, and MCP servers. I think these
are relatively new. Maybe MCP server is
like the oldest, but I think all these
three combined together make your agent
super powerful that you can way easily
to automate a task um you have. A task
or a workflow. And now we'll dig deep
into these features.
So, analogy on I gave you first, kind of
how to think about um these
customization features is this one. Uh
skill is the brain and MCP are the hands
for agent. Um myself, sometimes when I
look at all these features I got
confused. Like they're all markdown
files, right? What is the difference
between all of them? Um I think this is
a very helpful analogy for myself. Um
you can think of skill is the part that
decides tell your agent what to do. It
gives you your agent the knowledge, um
the expertise, and then allow your agent
to perform a similar task more
consistently uh one one time and
another. And then MCP actually connect
your agent to all the outside world so
it can have so it can reach out and then
use all the tools outside to complete
the task.
Um so, here's the message. Skill teach
the agent what to do and MCP let the
agent uh actually uh act it out.
And first uh we're going to talk about
skills. So, skills are really good um
here are some example. You can teach uh
testing patterns, complicate workflows,
domain knowledge, team practices. And I
think the best use case for it is uh
skill is really good for procedural
task. Like you probably have some
complicated task like do a
um performance check, and then there are
multiple steps involved in this task.
First, maybe do a scan. Second, how do
you analyze it? Third, how do you
report? Um so, for those procedural
tasks skill is super important. Because
if you don't give it a skill, just tell
it um do the scan perform a scan for me
in the app and the model is just going
to guess take a best guess how to do
this performance scan. And because we
all know model is non-deterministic, so
every time you tell it to do the same
thing, it might guess a little bit
differently. And the result you get is
going to be a little bit different. Um
yeah.
>> So, what's the difference then?
I guess
how does it interpret the skill
differently than just a saved prompt?
>> Yes, um good question. So, skills um uh
I think to some point uh if you have a
really short skill, then they can be
very similar. But sometimes skills can
also skills more than just a markdown
file. It's a uh folder and then you can
you have a skill.markdown in there or
you can also have a folder of
references. So, maybe you have some
really complicated skill, you need some
examples that the agent can read it. So,
you can have a folder for to store
examples or you can also say have some
script that you'll want your agent to
run via the skill and they can store
those scripts in the folder as well. So,
it's like a more powerful holistic uh
version of that. And then also skills
are now triggered uh
oh yeah, prompt again. Uh compared to
custom uh instructions, skills are only
triggered when the model figure out oh
this is the right skill for the right
task, I'm going to use it. But then for
a custom custom instructions we talked
about earlier, those are attached every
single time. Um so, these are also
different in that way. Um yeah.
Um so, you can think of skills as
reusable capabilities uh you teach your
copilot to to do.
Um and then maybe oh yeah.
>> So, the skill that I already saved, can
I do {slash} comment on it?
>> Good question. Uh we don't have that
feature yet. So, the question is uh for
skills I have, can I {slash} command and
use it? Uh we don't have it yet, uh but
you can always do like use this skill
and put the name in it. That'll be a
very obvious for your model to figure
out. But if you feel like the {slash}
command is going to be very handy and
useful, definitely submit a uh feature
request um on the DevCom tickets and
then our team will um prioritize it.
>> So, we cannot create our custom slash
command.
>> Uh you can do it with the prompt files.
That is the custom um yeah, slash
command.
>> So, does it show that it's using the
skill the
>> Yes.
>> You can tell like it does it show the
code by like instruction but it also
shows the
>> Yes, it will show that. And then I have
I have a live demo later and then we'll
see that uh in action uh in life.
Um so, maybe for those who haven't have
skills set up, you might wonder, "Oh,
sounds cool, but where do I get
started?" Um so, don't worry about it.
Our team, we have been shipping a bunch
of really cool built-in uh skills in
Visual Studio for common .NET and Azure
workflows. So, we have some built-in
skills in VS ready for you to try out
already and these are all built by the
experts uh in .NET and Azure uh SDK
team. And we're going to see that in the
demo very soon.
So, here's idea for the demo. Uh I'm
going to perform the same task, one
without the skill, one with the skill,
and then we can see how the outcome is
different.
Uh for time's sake, I already ran the
uh uh
did the run that without the task skill.
And I'm going to redo it with the skill.
This is my VS. Can you all see it okay?
Okay.
Larger? Um let me see. Uh
Is better?
Yeah.
So, this is my um app. It's called
National Park. It's just a personal app
for tracking which national parks I've
already visited, which ones I haven't,
and then what I'll visit next. Um it's a
desktop app built with WinUI 3.
Um so, the task I'm going to give it to
is to scan this app and find performance
improving op- improvement opportunities.
Um do not use any skills and this is the
result. And then later we can compare
it. Um and I'm going to use the same
model. I'm not going to cheat with a
better model. So, here I'm using Class 1
F um 4.5 preview agent. I'm going to do
the same thing um just
remove the do not use any skill part.
Copy this.
Create a new chat thread.
Put it in here, and I'm going to make
sure that I have the skill turn on.
So, here is the your tool picker with
window, and then the this is a tab for
skills.
Um, I have a bunch of skills set up, um,
but then I'm going to use this built-in
skill, uh, which is analyzed on that
performance, and it's turn on. That's
perfect.
Um, going to send it to my agent.
So, while it's loading, a few things I
want to walk through. So, on the skill,
um, page, you can filter skills, search.
Um, you can also create new skill from
scratch using this button, this plus
button.
And, um,
you can put in your skill name, you can
select where you want it to be stored,
and then,
um,
it'll go with
Uh, okay, let's see. It's thinking.
This is actually a good example of the
question you were asking me, is it going
to show up? Um, so, technically it's
supposed to show up, and then
it's reading the skill. Oh, perfect.
It's doing it. It's just doing a little
bit late. But, this is where you see it.
It will load a message saying this skill
is being used, analyzing done that
performance.
Um, so, the mo- usually, if you're
having a pretty decent model, it should
be smart enough to pick up the skill
automatically, but if you feel unsure,
you can always put the name for it. Um,
so, it will actually use it.
Also, on this, um, tool picker, I have
skills set up at different levels. So,
the workspace are the ones stored in my
repository. User are the ones that are
stored in my user profile. So, these
user ones are going to show up for
whatever project I have. And, these are
the built-in ones we're talking about.
Um,
so, we have done that skills like the
performance one and we also have a bunch
of really cool Azure skills. And then a
lot of the Azure task are very
complicated. Like how do you prepare um
your app ready for deployment? It
involves multiple steps in there. So,
these are
perfect for skills.
Um and then for each skill, you can turn
them on and off with the toggle here.
And then with this three dot button, you
can open the file and then you can
to edit it or you can also open it in
file explorer.
And while I think this is almost done
with running, let's take a quick look at
the
the skill I'm giving it and then see if
it's actually following the steps.
I'm going to open this.
Uh and then turn it on.
Bigger.
This is my .NET performance skills. Uh
you all also have it on your VS. Um
And basically scan the code for
performance and the patterns and it does
more than 50 It check more than 50 and
from patterns.
So, you have
here it's a step-by-step workflow like
the procedural task I was mentioning.
The load file, detect signals.
So, it does a really comprehensive scan
um over your app.
And then
scan and report.
And then lastly,
uh we define a very particular format
for how we want the result to be so it's
easy for us
uh the human to read it. I think this is
also important. Sometimes when the
message is unstructured,
some I have ADHD so it's hard for me to
focus and read such a long message. So,
it's helpful that when you have this
output defined, um so you can parse the
information more easily.
And the prioritization rules.
And let's see. I think maybe the Copilot
is ready. Let's see if it's actually
following the skill.
Yeah, great. This is exactly what we saw
in the skill. Uh critical, moderate, and
info info level uh and time patterns. We
can take a look.
From the most critical ones.
Uh
seems like I have something old
and squared. Um performance wise this is
definitely not good. And also I really
love that it's getting uh the entire app
so it's telling me all the instances
that it find this. So there were eight
instances and then tell me all the
different uh lines we hit it.
Uh and then also give me a suggestion um
suggestion uh solution how to fix it.
That's very convenient. Um
and
Um now let's compare it with um the
threat without the scale and see what is
the difference.
Back.
So I think it's also finding similar um
issues like the link queries on every
service call. Um I guess this is a
really bad issue so uh both of them find
it but the difference is you know here
it only mentioned it. Um here it didn't
really tell me all the different
instances that we hit this. And it gave
me a more generic fix um because I
didn't really ask it to give me the full
code. So it's not really blaming on the
agent but just like we don't I don't
give it enough prompt.
Um and then I think overall it find
similar
um results but then um
the other one is more holistic um
review.
>> And the format is more consistent as
well. So every time you run the seal you
get the same sort of result back in the
same sort of format. So it's really easy
to know exactly what you need to look at
versus in this version it might not be
laid out as neatly as you'd like it.
>> Yeah exactly. That's a really good
point. Uh thank you Aliyah for bringing
it up. Like maybe after I fix this
issues I will run the scan again right
and let it uh evaluate do I have more of
this issue left. If I don't have it
consistently then maybe it's just
guessing like throwing me different
issues different time. But then if it's
doing the same step one and another time
then I feel more assured. Oh all the
issues you find previously are covered.
Um yeah, plus they're really great
color.
So, I hope um this side-by-side
comparison show you the value of skills
and make you want to try it out a little
bit um after the session. So, you will
you will have all the built-in ones
ready, so definitely check them out
here.
Uh one thing you might notice while I
was just scrolling scrolling around is
all of these skills are turned off like
the built-in skills are turned off by
default. And why we're doing that is
currently the .NET and Azure teams are
actively evaluating the the value of
these skills. Um so, they're running
multiple tests on a benchmark to see if
the skills are uh improving actually the
quality. Because every skill added, how
it works behind the scene is that the
front matter for each skill,
the
Let me scroll up. This this section, the
name and description, uh will be
attached to a system message. So, the
more you have, it's going to cost you
all more tokens. And we're very aware of
that. We don't want to waste our tokens
for nothing. Um but that's why
evaluations are now. Uh if you're
interested, you can check it out
yourself as well. For example, this is
the
it's on .NET GitHub IO skills. I think
it will show up if you just search .NET
skills. And then this is the skill we're
looking at, the analyzing .NET
performance, and it's comparing the
quality when um doesn't have a skill,
the vanilla versus isolated like had a
skill, and then plugin. So, introduce a
skill via plugin. So, you can be more
assured, oh, are these skills actually
improving my uh response quality? And
then you can see here, generally, they
are. Like the blue and green lines are
usually above um this dashed uh vanilla
line.
Yep.
Switch back to the slides.
So, that's a lot about skills. And then
MCP. We already touched on it. The idea
is super simple. MCP gives your agent
access to tools and the information
outside the editor. So, once you have
your MCP connected, you have access to
docs, APIs, and data.
And I think the magic really happens
when you have both skills and MCP server
set up.
Um so, your agent is fully capable, it
knows how to do a task, and it have the
way to do it. So, it's a capable agent
that can automate your workflow uh from
one end to the other end. Like, first
end is starting the work to the end of
wrapping it up, maybe submitting a
GitHub issue, uh pushing the PR, um all
of that. So, I'm going to We're going to
continue the previous demo, and then but
this time we're going to add some MCP
tools to it.
Um and I already Let me copy my
pre-written prompt.
Okay.
Switching back. So, now we have We found
these issues. Why not we just let
Copilot help us fix some of them?
Uh I want uh this previous one, the run
with the skill.
So, here is what I'm going to tell it to
do. Um this emoji got copied somehow. Um
so, my code is hosted on GitHub
repository, so I'm going to have it
create a GitHub issue as a type of task
and initiative to document all these
performance finding results, and then
implement a fix. And let's do the most
severe one. I think that is the link
um scan.
Um this one.
Uh I'm going to copy this one.
Put it here.
And then after the fix, add a comment on
the GitHub issue uh about how you
approach fixing that fixing that. So,
how I'm going to give my agent access to
my GitHub account is via MCP.
So, here again this beloved two-picker
icon, and I have already previously
added my GitHub MCP tools. One thing is
really important to check is always make
sure like you're online like you
authentication worked out. Sometimes I
forgot to check and then it crashed. I
was like, "Oh, why isn't working?" And
then wasted a round of conversation. Now
I've I'm connected.
I'm going to send this.
My agent.
Um so here I'm combining the skill about
how do you create a GitHub issue with
the
uh GitHub MCP tools. Uh as you can see
here, it's reading the skill of how to
create a issue.
Uh and then we can also look at it
um
through here to read the contents of it.
Um I think probably every team have
their own preferences of how these bugs
bugs and tasks should be managed and I
think it's always good to have like a
issue uh skill. So if you have you're
not sure where to get started, this
could be a good idea um
to play with. So here in my skill, I'm
telling it there are three types of
issue um I want to manage, the bug, the
feature request, and task and
initiative. So this well fit well nicely
under
task and initiative and then for each of
them I'm
defining the style like the title, the
the body, and then also the labels.
Um
he'll do that.
And let's search back to see if there's
anything he did. Oh, yeah. So here I'm
getting this ask um to uh read um
perform uh to ask for my permission to
read and check for existing performance
issues. So I'll allow it to do this
time.
And I'm only seeing that because I'm
under the interactive mode.
Uh when you're under interactive mode,
uh the agent will ask always ask for a
permission when you're performing some
task, but if you really trust your
co-pilot or you're doing some very
familiar workflow that have you have
done it multiple times before, uh you
feel safe of handing it over, you can
also do autopilot here.
Yeah.
While it's running, I'm just tell some
quick small features that we recently
introduced. Um, I think it's really
cool. Um, right now, I think as you're
more and more of you are onboarding to
agent mode, uh, you're going to have a
lot more
uh, messages like explode uh, in your
chat thread. Uh, I have a lot um,
so now you can rename um, each of your
thread and then give it a name so it's
easier for you all to identify them. And
I think one thing that we are also
thinking to prioritize is you can pin
the issues so you can find your favorite
issues quicker. Oh, here um, agent is
back with this request um, to create
um, the issue. Oh. I think my screen
>> My name is Zoom out.
>> Yeah, Zoom out a little bit.
>> Like it sometimes the output really
long.
>> I've a really long issue to create. And
then going to do I'm going to do it a
lot of the session because I am trusted
to do
um, the push to the issue.
And here is how you can see it is using
the MCP tool. It gives it. So this is
the MCP
uh, create. And now it's want to add
this issue comment saying I'm doing a
handoff
um,
um, to the agent to to fix the first
task.
So the MCP GitHub add issue comment.
And one also quick knowledge about MCP
tools um,
is that though they're super powerful,
you want to be aware of how many tools
you are giving access to your agent. For
example, here the GitHub uh, MCP that
comes with 48 tools automatically. But
then
um, the reason that I only hand
handpicked a few and not giving it all
is if you give it all the tools, how
it's going to work is similar to skills.
Like all the meta data information about
a tool like it's going to send over to
our agent. So imagine if you have 40
plus tools enabled, it's going to append
all of them and that's going to use up
your tokens and contacts window. And
then also I think there's some research
out there if you give it too much
tools, your agent is also going to get
more confused about what you want it to
do. And then sometimes it will pick the
wrong tool or it will try different
tools. So it's always if you know so if
it's always better to fine-tune the set
of tools you give to your agent if you
know exactly what they're going to need.
And something very neat I really like is
once you select these tools,
when you turn them off, turn them on,
it's going to remember the ones you
selected. So just uh simple small
features that I find joy when I figure
them out.
Um great. So here the agent is done I
think with fixing the performance issue.
And now it's doing verifying and then
build the project. So this is the thing
I mentioned I really love about agent
mode is it will always build and check
and then fix all the errors if there is
any and not let left you with like
error window of like 10 plus or even
more errors.
And here other quick feature I will
highlight is
in this example because we're only
changing one file so you only see one
file listed here but then you can but if
you're doing a more complicated change
you can have like five five files or
even more.
And then
that makes this change summary view
really handy. So what it does is
basically it's a multi
um
multi-file summary diff. So if you have
multiple files, all of them are going to
be loaded in one tab. So you don't have
to actively back and forth between tabs.
You can just manage all of them from
here. So here you can collapse and open
um the files you have because I only
have one here so it's probably not the
best um case uh but then it's going to
be very handy
um when you are scrolling through a
bunch of changes um made by our agent.
Great. I think it finished
um
finished and now it's pushing the final
command. A comment on um
how it resolved the approach.
So, that's kind of like the end-to-end
automation I was talking about. Like you
can really hand over a task to our agent
and then trust it to follow through the
entire loop. And then you can do really
complicated tasks when you have multiple
skills. You can make them work together
and do a really complex a complex um
workflow.
And then let's actually check the GitHub
issue. So, we um are honest about how
our agent is doing.
So, this is my repository.
Let me refresh.
Here it is. Nice.
So, this is the
uh style of the body I wanted. Um its
objective, scope, the implementation
plan.
Super detailed to-do list. I love it.
And then
here are the handoff comments it was
creating while it was um completing the
task.
And then you can take this um to the
version of your team. Like how you all
love to manage the issues. How do you
manage um the progress um and then make
it work for your team's workflow.
Okay. Now, let's come back to the
slides.
So, yep. So, this is the skills in MCP
dual. Don't forget about them.
Definitely try it out. Set it up after
the session um
today.
And then one quick thing I want to
highlight is custom agents and uh how
they bring a bunch of the customized
feature customization features together.
MCP, skills, the custom instructions. Um
instead of like asking your general
assistant to do accessibility scan, uh
it will be uh you can also do a design a
custom agent who will just ask act at a
as a domain expert in this area. So, I
think the benefit of custom agents is uh
you probably have those very specific
tasks that requires very deep knowledge
into an area. And then if you will feed
all those knowledge into your keep
feeding them to your general agent, I
think it will do all right. But then if
you have more of them, it's going to use
a bunch of your context and token. But
instead, you can separate my workflow.
And then for those very deep knowledge,
just have one expert for it. So So you
will create this isolation between our
agent. And then you just turn to the
specific agents when you have a very
specific task for it.
And then you can use all the MCPs and
skills you set up for it as well.
Just like our general agents.
And now when you are starting to set up
all these customization features, you
might think, "Oh, where do I store
them?" One way you can think about it is
who need to access this information. So
if it's just for you, your own
preference, your own workflow, then put
it in a personal level, that will work
perfectly. It will be available at every
project you're working on under your
user profile.
Um
but if it's something that your
teammates might also benefit from, you
can put it into your repository. But
then these are going to be pushed and
shared for everyone.
But if you work in a really big company
that has multiple repositories and you
want to share them across all the repos,
then you need to check out the org level
organization customizations.
And that's also where customization
shine is that it can scale at an
enterprise level with you. And that
maybe will be applicable for many of you
here as you work as a professional
developer. So the flow is similar. You
define the skills, custom instructions,
the custom agents you have. And then
once it's ready, you can package it and
distribute across repositories. And then
And then after that, every developer
under that org will automatically have
access and use these features by
default. A quick note is that this is
limited to folks who are under a GitHub
organization subscription plan.
Um
So here are the features we have. First
is org level custom instructions. So,
for the GitHub admins uh who are the
admin for the organization, they can set
up the instructions on the box here, and
then once it's saved, and then you're
working on a repository under that
organization, you'll see this file
automatically
show up when you're interacting with it.
But it is it will show up as a default
instruction down marker.
And similarly, we have the org level
custom agents.
Um
same same deal, the admin can create a
secure private repository to save a
bunch of agents for your team.
And then once it's
uh saved,
and then we'll pull it um from the
cloud, and you'll see these available uh
as organization agents uh automatically
appear in your agent picker list, and
then you can just start using them.
And we also know for enterprise uh
another super important piece is safe
and control and security. Um all these
customization are super powerful, so
they can be very bad uh if there's some
ill intention customizations. Um so we
uh also have all these admin control
plane on the GitHub admin page where you
can set policies, um allow certain tools
and access uh
uh for MCP servers, for example. Like we
mentioned how they're powerful, they
give you access to all sides,
third-party uh tools, but if it's
connected to a
uh ill intention
um
server, that can be very bad at the same
time. So, with this, the admin can
define which are allowed and not allowed
MCP servers.
So, that's uh a wrap uh for now for the
quick agent flow starting with how to
pick your agent, and then how you can
customize it to make them really work
for your team, then how you can
distribute them across multiple
repositories uh with governed enterprise
control.
And I think next I'm going to hand it
over to Leah.
>> Yeah, thanks, Samona.
So, we just talked about how you can set
up all your agents and customization so
that you can have Copilot generate
things and work in the way that you
want. But, the next step is just as
important of reviewing and validating
your code.
So, with the review stage, here you're
got a lot of code that Copilot is
generating, but it's becoming the
bottleneck now because with so much more
code coming in, there's a lot more to
review. And at the review stage, you're
still going to still want to keep the
same level of quality you've always had,
so it's going to really slow things
down. But, in Visual Studio, we've been
working on adding a lot of things to
help and make that review easier.
So, the way I think about review,
there's sort of two different stages you
can think about. There's the local
review stage. So, if you're still really
hands-on in the code in Visual Studio
and working closely to get your code to
a really good stage, you're going to
want to keep and make sure that code
gets to the right quality level in
there.
But, when you get to the PR stage,
there's also a lot of more scrutiny that
you're going to want to apply to your
code. So, a lot more things to take a
look at and consider there. But, I'm
going to jump into Visual Studio to show
you some of the features we've got in
the works for both of these flows.
All right. Let's see.
That's connecting.
All right. So, here I'm checked out in a
branch where I've been working on a fix
for a bug in this National Park Tracker
app. And I've already got a bunch of
changes in the works in
the get changes window here, as you can
see. But, before I'm really
confident to commit it, it would be
really good to get another review. And
we can really easily do that by sending
these changes over to Copilot. And we
can make that really easy right here in
the get changes window. So, I click on
this button, and it's sending everything
I got here over to the GitHub Copilot
code review service, which is a service
we're leveraging directly from GitHub
that's going to take a look over all
these changes and see if there's any
opportunities to improve. And that's
going to be sending me back some
comments that I can take a look at and
choose from there if there's any that
actually want to apply here or if
there's any that makes sense.
>> I think the local review is super
convenient because sometimes I always
feel nervous about pushing in command,
making it public. What if I made a
really obvious mistake in there? And now
you got your back. A copilot is going to
check it out.
>> Yeah, definitely.
>> Yeah.
>> Yeah, and it looks like stuff. Oh, yes.
Yeah, the code review button that still
works for non-GitHub repos as well in
this case cuz this is in Visual Studio
you're able to use that on whatever code
you have as well.
Right. And here, yeah, it looks like the
review is done. So, I'm going to go
ahead and open this comments up.
And let's go ahead and take a look at
this first one. So, here it's noticing
some duplicated code in my file here and
telling me not to
instead of having that to in multiple
places I need to maintain, I should put
it in a single helper which makes a lot
of sense. So, I can go ahead and
actually ask Copilot here to take this
comment and generate a suggestion on it.
This also works regardless of where your
repository is as well. And here it's
just taking that comment, looking over
the entire file as well to make sure
that it really does have a good handle
of what the available context is.
And it'll make a suggestion on what to
do.
Let's see. Oh, is it diff loading?
Oh, no. We got it here.
>> Okay.
>> Yeah, we can see that it added this
helper method here and it found that
duplicated code that was originally in
the setter method here and replaced it
properly. So, I'm good with that. I'll
go ahead and keep it. I do want to note
also that uh
other than kicking it off in get
changes, I also really like being able
to kick it off in the get agent here in
Visual Studio. So, if you go through the
Copilot chat, change your mode to the
Git agent, you can go ahead and easily
kick off that same review flow. It's
going to call that same tool in the
background to do that local code review.
And bonus here is that you can also
iterate on it. So, if you really want to
dig in deeper and guide the Copilot to a
specific direction, if it's a little bit
different from the comment, then it can
apply that for you as well.
Let's uh If I'm happy with all my
changes here, I can go ahead and commit.
I'm just going to go ahead and
>> I love that you see all the Copilot
comments under each file. It's really
easy to navigate um through with them.
>> Definitely. It's really easy to take a
look really quickly to see if there's
anything I want to look at. So, yeah,
I've generated my commit message. This
is also pulling from all the custom
instructions to Copilot instructions
file like someone showed you earlier.
So, you can get it exactly in the right
format consistently every time.
I'm going to go ahead and commit those.
And at this point uh I didn't do another
review, which it might have been good if
I had a bunch of edits I did after that
first review and want to double-check,
are things still in a good state? I can
still do that. I can still review the
commit that I just made, kick that off.
It's calling that exact same GitHub
Copilot service as well in the
background. And it'll run and take a
look to see if there's any comments
there.
>> That's great. So, whenever you want to
review the either before you
submit your commit or afterwards, you
have a way to start it. Yeah.
>> Yeah, so you get control like you can
call in Copilot wherever you are in your
flow working on your code. And I'm going
to switch over to a different branch,
which I actually have set up in a
separate work tree over here. This work
tree support is recently added, so I
suggest you go and try that out as well.
>> Oh, could you explain a little bit to me
what is a separate work tree here?
>> Yeah, here uh work trees are something
that we recently added to Visual Studio.
It allows you to separate uh and have
different parallel work streams at the
same time. So, if I have different
branches I want to work on, different
states I want to manage at the same
time, it's really helpful for that.
>> Oh, so I don't have to fully save, I can
just switch and then
>> Yeah, so if you have like unstashed,
uncommitted changes still on the branch,
you can easily switch to another work
tree and things will still be preserved.
>> That's going to be so convenient.
>> Yeah, it's really nice. Let me just uh I
don't know why I'm getting all these
errors.
>> Error?
>> It's uh oops.
Let me reopen get changes cuz I want to
show you what it looks like to review a
pull request now.
Yeah, we can see VS detected the active
pull request for my current branch here
and it's going to open that up. And
while it's opening up, I did want to
note that it'll also detect all the
other active pull requests I have in my
repository as well. So, if I need to
take a really quick look over that, it's
really easy to switch between those.
And let me
open this up in a bigger view.
So, over here, we've got the nice
familiar pull request page, really
similar to what you see on the website.
You can check all the status, the
timeline, all the comments right from
the comfort of Visual Studio. It's
really easy to do that.
And uh over here, I'm going to jump into
one of the comments so I can kind of
show you what uh flow might look like if
you're iterating with Copilot as well.
Since I have this in the GitHub repo, I
did pull in Copilot as a reviewer on my
pull request and it's able to take a
look over everything, leave comments,
and have me review them. And from the
comfort of VS, I'm able to iterate with
it as well. So, I'm able to
talk back to it, ask it to perform
another task for me, or take a look at
another thing. I can easily see that it
picked up my request and in a few
minutes, it's able to come back to me
with a commit of all the changes I've
requested it. And I can also see that
the commit is here in the pull request
view as well. So, very convenient to do
pretty much everything you need to do
with a pull request if you're trying to
either work on as an author or as a
reviewer, take a look, and see how
things are working.
>> That's cool. No more context switching.
>> Yeah, I I guess this is also another
hidden gem. I think a lot of folks may
maybe not aware that you can access your
PR directly in VS.
>> Yeah, and another thing I really like
with the PR integration is being able to
iterate it on the side with chat as
well. Cuz if I open up Copilot chat here
and I want to talk to it about a certain
PR cuz I can go back to this list view
here. I can choose any of the active
ones I have over here and easily add
that over to the chat.
>> I'm sorry, it's not.
>> Yeah, it's taking a bit.
>> You want to maybe switch a different
thread and see?
>> It's just taking a while to load the
entire window, but yeah, this is just a
way to add the specific context of the
PR to your chat, so it's okay if you
don't see that. This uh just lets
Copilot know exactly which PR you're
looking at. It adds all the required
metadata just so it knows exactly which
one it is. And if you have your MCP
server like what Simona showed earlier,
it's even better. It gets a deeper look
at all the different changes and all the
comments and able to iterate you through
much more closely, which can be really
helpful if you're trying to work on the
PR locally or if you just wanted to have
a conversation with it on the side that
you don't want public on the PR.
All right. And those are the features
that are currently available in Insiders
right now if you want to try those out.
But I'm going to switch back to the
slides cuz I have some features that are
still in the works that I want to talk
about in this space.
And the yeah, the Visual Studio team is
really excited to be able to show these
as well. Let's see if that's showing up.
A minute.
Right.
Okay, so the first thing I wanted to
talk about is really in the space of
reviewing your code, so
we talked a lot about like the different
features you can use to review your code
if you're working on changes locally as
well as working on a PR. And that PR
stage is something that we are really
invested in in the Visual Studio team.
We've got work to help make that view
even easier for reviewers to understand
by grouping all the changes
semantically, so it's easier to know
where you want to direct your attention
when you're taking a look at the code.
So, this one is very early stages right
now, so we're excited to make more
progress on that.
Then, the next thing is more at the end
of the review flow. So, you've got your
changes reviewed, you're ready to merge
your PR, but then you might get hit with
merge conflicts, and that part can be
really irritating. So, we've got a flow
where we're trying to use uh Copilot as
a agent to help you resolve those
conflicts more easier, and make sure
that you're confident in accepting your
resolution. So, I've got a video to play
from my colleague Anna will show you
where we're at there.
>> Hello. My name is Anna, and I am an
engineer on the Visual Studio version
control team.
Today, I will be giving you a quick
preview of something we've been working
on to help make Git conflict resolution
a little easier.
For my setup, I have already cloned an
open-source GitHub repository, and I
plan to mimic an actual merge conflict
that happened in this repository.
In order to do that, I have opened Git
changes,
and I will merge this bug fix branch
into main.
This will open up the merge dialogue
with the addition of a new auto-resolve
button.
I'm going to go ahead and click on that
button, and when I do, if we end up
detecting any conflicts, we will
actually launch an
work in progress
Git agent to help resolve those
conflicts. So, I'm going to wait for the
agent, and I will come back when it's
done.
>> This is cool. So, the merge conflict
flow is very similar to how you interact
with a regular agent, but then it's
designed just for this case, and you can
pick the model you want. So, you can
decide, you know, how difficult is this
merge conflict and give it a more
powerful model
if it's a very big problem.
>> Now that the agent is done,
the agent has provided us with a
resolution summary, so we can further
understand the reasoning behind the
changes.
Additionally, you might want to dive
into the actual code that demonstrates
the changes that have been made. You can
see them on the left-hand side with the
live file, but these do have the
conflict markers that makes it a little
difficult to read. Luckily, we already
have a merge editor that helps users
visualize merge conflicts, and so we're
actually going to leverage that in this
scenario by clicking on the
file link, which will open up our merge
editor. You can tell from the merge
editor that the left side or the
incoming side was taken, and this has
been reflected as well in the results
file.
Now, after reviewing, this looks good to
me. I'm going to go ahead and stage
conflicts for resolutions.
>> This is really cool to show how VS is
further integrated with the merge editor
as well.
>> Once conflict resolutions are staged,
it's suggesting I go to open changes
and they open the Git Changes window and
review and commit all the changes to
complete the merge.
>> So, that is a overview of the entire
review flow that you can do right from
the comfort of Visual Studio and how you
can have control at each step of the
way. So, you have a lot of options for
how you want to do things. And now I'm
going to switch things back to Simona.
>> Yeah. Um and now we're to our last
section, but last but not least, super
important. Like we're talking about
agent, you cannot talk of you cannot
like miss models. Great agents need
great fuel. That means picking the right
model for the right task, uh and
sometimes even bringing your own models
coming in uh when necessary.
So, with the um GitHub Copilot
subscription change um to the use base
usage-based billing, uh VS has added a
lot more features to help you gain more
transparency and control over your usage
and your spending.
So, here is the context window. Um uh
you can click from this little donut
ring button on the top right um of your
chat box. How many of you have already
uh clicked on it and played around?
Yeah, some of you. Great great. So,
check it out uh if you haven't. Um so,
here you can see all your um context
window, the usage. So, the context
window you can think of it as the
model's active memory. So, all the
knowledge, all the context your model is
actually uh right now picking up and
understanding. But as you talk with your
agent, you're going to feed in more
context and then the window is going to
slowly fill up and then you'll see this
and every different model have a
different con- con- context window size.
And you'll see this thing slowly fill
up. And then when it's getting full,
that's where the summarize conversation
comes handy. Uh you can summarize it,
compact the context window, and then
keep continuing um your conversation.
And then when you expand this, you'll
see a very detailed
breakdown of Okay, I'm really bad at
using this clicker. Okay, here. I guess
you have a breakdown of what is going
in. Like what is your model currently
using? For example, we're talking about
system message and how the MCP tool
definition they are being expanded here.
Uh they're appended here. Remember I was
talking about uh be mindful about how
many tools are enabling because this
number can go really big uh when you
have too many tools enabled. Uh and then
here the system prompts, custom
instructions. So, customizations are
powerful, but you have if you have too
many of them that are not actually
related and super long, they can take up
a bunch of your context window uh and
consume tokens as well. Um and then here
is the user context, um but IDE
messages, files. This kind of give you a
very um
clear view of where you're spending your
context and tokens, and then you can
trim it down um to your need.
Another feature we have is uh the usage
meter. So, actually that help you
um
um that manage your usage. So, you can
see this Copilot usage window from two
uh spaces places. One place is from this
top right
button here.
From here, you can click and right see
how many usage you have left or you can
also go through uh your Copilot badge on
the top right corner of Visual Studio
and then there's a Copilot usage uh
option there as well. And from here, uh
you'll see how many uh tokens you have
uh you have left. Um if you're if you're
on an under enterprise plan, there's a
chance that you see the message saying
you have no monthly limit. Uh that
basically mean all of you and your
colleague are using tokens from a shared
pool. And once that depleted, uh it's
going to be done for um all of you and
then you need to uh ask your admin for
more tokens. Uh but in other case, you
can you you can get assigned with a
certain number of tokens and you see
that meter of how many is left um and
when will they reset.
And you can also set a warning for
yourself
to see how many tokens you have left and
you can be more mindful about using them
moving forward. So, all of these refresh
every month. And then automatically
you're going to get a 75% notice
when you have hit that. And then you can
also customize that. It's in the
settings tools options. It's under the
GitHub Copilot chat. There is a place
you can set how many percentage you want
to get notified. And then you'll see
that yellow notification bar on top of
your chat window. And then when you
fully used up all your tokens, you'll
see this red warning have you have
finished your monthly limit. But you can
always upgrade your plan or like reach
out to your admin about it.
And next is models. So, this is
ever-growing list of models. There are
more and more and more of them coming to
Visual Studio. Something I think we're
really proud our team is recently we're
able to ship models at the same speed as
VS Code. Like when some of the really
recent models such as the GitHub Soul,
Terra, Luna, we also had it immediately
once it's out. Yeah.
>> Sorry, back to the other
>> Oh, yes.
>> This file um
on the enterprise usage
right now it looks like only admin can
see
>> Mhm.
>> the user's count.
>> Yeah.
>> for usage.
That is a big problem for us. Is there a
plan to like
allow somehow that to bubble down to the
users?
>> Mhm. Yep. That makes sense. Yeah, thank
you for the feedback. Though our team
don't directly work on this, but I can
definitely share this with the GitHub
folks.
And then let them know it'll be super
helpful for the each individual users
also see their tokens and spending.
Last one okay.
So, okay, great. Okay, I'll definitely
take that feedback to our GitHub
friends.
Yeah, thank you for that.
Yeah, so back to the models page.
So you're going to see more and more
models available in VS. And then how to
manage them is also becoming a problem.
And super I think super recently we just
shipped this model management view,
which is super cool that allows you to
favorite
models you love and then pin them and
you can see them in a
quick view. So
Let me quickly show that in VS.
So here is your model picker.
And you can see here only three of them
are showing up for me because these are
like my favorite
ones. But you can always click this to
expand the list. You just pin this super
easily.
Pin whatever you want. And then next
time when you open it, you only see the
ones um
um you have already picked. And then you
can also go to this manage model view.
Which will show you all the models.
What are their capabilities?
How much context size they have?
So this will reflect on the context
window.
Like how much of context are being used.
And then some of the models they support
different thinking effort from low to
max. And then how much
they're costing you as well.
So and then if all of these models won't
work for you,
there's always option to add your own
model and bring your own model to Visual
Studio and use them in your agentic
workflow.
Yes.
>> Well, yes, the first question is will
auto only pick from your in
models?
>> No, so how the auto works is basically
GitHub they have this algorithm
this router behind the scene which will
route your task to the model for best
availability. Also for like it will
detect how complicated your task is and
then match that complex level to the
right rank of model. So, it will just
pick from all the all its pool.
Yeah.
>> Second question, is there a way to turn
off certain models with doing
>> I don't think that is available right
now, but I can definitely check with the
auto team on GitHub and then
ask them. Maybe afterwards you can share
email and I can follow up offline. But
those are great questions. And auto have
like a 10% discount on your token spend.
Um, yep.
>> Um
>> Yeah, maybe we'll go this way.
>> So, there's a I just follow up on that.
Is there a way at the enterprise level
limit
They do limit that list.
>> Yeah, great. Great uh great input. I'm
not aware of that. Thank you for
sharing. Yeah.
>> Two thoughts. One is I'd love a select
model skill that would drop
>> Mhm.
>> Probably, I don't know.
>> Yeah, that's a great question. So, for
custom agents, we are defining them in
the description field there's a a place
you can define which model it have
access to. So, that's super handy. So,
imagine you have a custom agent for a
very simple task like managing your
issues, you probably just give it the
cheapest model. And then you can limit
it to that model only. So, you can do
the isolation and then give your
complicated task to a complicated agent.
>> Is this app model is this general
purpose?
>> So, I think this uh app model provider
this feature is available for a while.
So, you can see it in
um the B I ask already. But then we have
more
more work coming up with the B I okay
and I have a really cool demo video to
show you next. Yeah. Question?
>> Yes, about the skills because it's
already having the title and the
So any way
either
or in the CLI that
prompt it'll pick up
>> Yes. Yes, so models will So basically
how it works is we'll send model. Here
is the prompt. Here is what user is
asking and here are all the skills you
have available. And then model will
decide which skill to pick up and then
you can add in some models are better
than others so they are more accurately
like picking up skills. But then you
you feel you're you're not trusting it
you can always tell it directly use this
skill and then put the name in and then
for that case usually 100% it will
always pick it up.
What is for like
Yeah, let's follow up. I'm not sure
exactly where to let's talk about it.
>> when you were demoing it you were
explicit check box this skill.
>> Oh.
>> So is that needed or just recommended?
>> Oh yeah, so that is when I was turning
on skills only for the task because
again it's really like if you have too
many skills it's just going to use a
bunch of token and context. So if you
want to save on your tokens you can be
more selective of turning on skills when
it's necessary but if you are not
worried about it um then you can always
have them turned on.
>> Yeah, the toggles are more so for making
the skills available to the chat in the
first place. So if you turn them off it
won't ever pick those up. But if you
turn it off then there is a chance that
it will pick it up because it will be
aware that that skill is available.
>> Yeah, so that decides if we're sending
the skills information to the model.
Yeah.
>> Did I understand correctly you said if
it request for a particular model
>> Uh no
that's for custom agents. Yeah, not for
skills yet. Um
But I think you can always Yeah, I think
that's only agents right now.
Yeah.
That's right. Okay. Um so, check out Oh,
let me go back to the slides. Yeah. Um
Check out the uh models view. Super
cool. And then we're going to talk about
BYOK as
um
audience asked. So, I'm going to
hand it to my colleague Damay and she
has this super cool demo with her.
>> Many regulated organizations cannot use
GitHub hosted models today due to
security and governance requirements.
Instead, they choose to deploy and
manage approved AI models in platforms
like Microsoft Foundry behind private
endpoints.
With the bring your own key feature for
Visual Studio Copilot, developers can
use those organization-approved models
for their AI-assisted development
workflows without requiring GitHub
sign-in or GitHub hosted model access.
Now, let's take a look at a common
enterprise scenario.
My organization already has a model
deployed and approved within Microsoft
Foundry, as you can see here.
Now, as a dev in Visual Studio to
utilize the Foundry model, I can click
on manage models, add a model provider.
Here I'll select Microsoft Foundry from
the list of providers, sign in with my
Entra credentials, and then find the
corresponding Foundry resource and
project that hosts the deployment that I
want to add. From here, I can select the
deployment that includes the graph model
that we saw in my previous screen to be
used within Visual Studio Copilot.
All right. So, let's take a look at a
real development scenario. Now, here I
have a simple expense calculator
solution. As you'll see, out of the 10
tests, one of them is failing. Now,
before I ask Copilot to help fix this,
let's head to the Solution Explorer.
Here you'll see I have a set of custom
instructions and a skill to help guide
the agent as to how I want it to behave
while fixing specific tests. For
example, in the test failure debugger
skill here, you'll see that I expect it
to produce the output in a specific
format by listing out the failing tests
and write towards telling me why this
fix is safe.
Now let's head back to chat and I'm
going to give it a prompt to actually
investigate the failing tests and then
fix it.
Now as the agent does its thing, I also
want to call out that I am not signed in
with my GitHub account as you'll see
here.
This entire experience is powered by the
Grok model that was hosted inside of
Microsoft Foundry as we saw.
And additionally, I also want to call
out that this experience is built using
the new agent preview mode which is
built on top of the new Copilot CLI SDK.
Awesome. Now you'll see here that the
agent actually went ahead and made the
fixes and using my skill, it actually
listed the failing tests right to why
this fix is safe. Awesome.
Now let's actually go ahead and ask it
to run the tests again.
Awesome. You'll see here that all the 10
tests are now passing.
In just a few minutes, we used an
enterprise governed model hosted inside
Microsoft Foundry to become more
productive with AI assisted development
inside Visual Studio.
We worked without GitHub sign-in, used
agent mode, leveraged custom
instructions and skills, made code edits
across multiple files, and successfully
fixed a real development issue.
The bring your own key feature will be
available and enabled by default across
all Visual Studio SKUs including
community, pro, and enterprise. For the
pro and Enterprise SKUs, administrators
will be able to manage or disable this
capability through a policy.
We're excited to get this experience
into the hands of our customers and see
what they build with it. Thanks for
watching.
>> So that's the demo of BYOK and then the
difference between what is going to be
available soon versus what is already
in VS is that the
the one already in VS require you still
have a GitHub Copilot subscription. So
you still need to pay this monthly
subscription and then you can bring your
own model. But then this one doesn't
require a Copilot subscription and you
can just bring your model. Then you you
can use um all the agent harness um for
free and then just you know the cost of
your own model. Uh but then a caveat is
that uh with BYOK you only have I think
agent available to you for now. Um the
model won't work for
uh other Copilot features such as um
the inline suggestions like completions,
next line suggestions, and things like
that.
Yeah.
>> Next
slide.
So yeah, another something really cool
I'd share with you all is something um
about CLI to VS. How many of you are
using Copilot CLI?
Yes, some of you. Uh if you already have
a GitHub uh subscription then you
automatically get access to Copilot CLI.
Personally, I really love it and then
all of our colleagues will love it
because um it's in the terminal. Um so
it's like faster. Um so it it does not
have all the UI um and all the tools you
have as IDE but then it's a very
convenient uh terminal window tool.
And then if you are a big fan of CLI
you're going to love this news because
now you can easily transition between
CLI and VS IDE. I'm going to hand it
over to my colleague Rachel.
>> AI has changed how developers work and
increasingly that work spans multiple
agent sessions, tools, and surfaces.
So, in Visual Studio, we've been
exploring how VS can fit into that
workflow, no matter where you start.
Here, we find ourselves in the middle of
a Copilot session in the CLI. And after
making some code changes, we've reached
a point where it would be nice to step
back and take a closer look at the code
in Visual Studio.
With a simple slash command, we can
launch VS to pop open the IDE and
transition seamlessly into Visual
Studio.
Typically, we would have had to launch
the Visual Studio installation through a
separate independent process. But here,
we're able to transition seamlessly into
Visual Studio with the very same session
loaded up and ready to go.
And we can continue the conversation
from right inside Visual Studio, and
even move back and forth between the CLI
and Visual Studio as we wish, with their
conversation progressing across both
surfaces, regardless of whether we sent
the last message from VS or from CLI.
This enables us to have the best of both
worlds, and we can work wherever best
fits our workflow at any stage of our
development.
In Visual Studio, that means being able
to easily access, debug, and review our
code from any session, no matter where
it starts.
For example, in Visual Studio's chat,
the file paths link directly to the
files in Visual Studio, and that enables
us to navigate and review the code files
seamlessly in one place.
This is just the beginning of the Visual
Studio team's explorations, and we're
super excited to continue investing in
cross-surface workflows.
>> Great. Thanks to Rachel. So, this is
early exploration. Uh we don't we don't
have it in VS yet, but then it's coming
I'm coming to VS.
Oh.
English one more time, I think. Thanks.
Great. So, if you enjoy this session, if
you want to learn more about VS Cop- and
Copilot, and we have more sessions for
you to uh check out.
>> Yeah, the first one on the screen here
is from my colleague Sebastian, who's a
developer on the Visual Studio team.
He's going to walk through a bunch of
the different features that the Visual
Studio team uses themselves in Visual
Studio to build Visual Studio.
>> Yep. So, check it out. I think it's
always super cool to see the
behind-the-scenes how the team is using
the product uh on a daily basis. And we
also have a session, which is a quick 20
minutes read around by my colleague
Yojun, and she is also a developer uh in
the VS Copilot team, and then she's
going to talk about the debugging flow.
Uh so, if you missed the previous
session about debugger, I want to learn
more about it, this will be a great
session to check out.
Yep. So, thank you for staying with us,
and uh we hope some of the things we
showed uh excite you, make you want to
try it out in VS after you um get home.
Uh any questions?
If not, that's all. Feel free to come
over later for more questions as well.
Thank you, everyone. Enjoy your session
today.