The complete guide to Agent Skills — Transcript
Full transcript
- 0:00Agent skills are here for Visual Studio
- 0:02Code. And if you're like me, you hear
- 0:04that and you think, please, please stop
- 0:09making me learn new things. Please,
- 0:12I just want to live my life. The good
- 0:14news is agent skills are actually pretty
- 0:16simple to understand and pretty
- 0:18powerful. So, in this video, we're going
- 0:20to jump in, take a look at what they
- 0:22are, how they work. We'll build one
- 0:24together, and then I'll explain the
- 0:25difference between skills and prompt
- 0:27files and instructions and custom
- 0:28agents.
- 0:30Let's do it.
- 0:32So, skills at the most basic description
- 0:36are just another way to provide
- 0:37instructions to the model, but they have
- 0:41some benefits over things like custom
- 0:43instructions in that they can bundle
- 0:46together scripts and templates and a
- 0:48bunch of different files to define a
- 0:50skill. And this doesn't make a lot of
- 0:52sense until you see one in action or
- 0:54build one. So, let's do that. Now, the
- 0:56first thing we're going to need to do is
- 0:57we're working in Visual Studio Code, but
- 0:59we should point out that skills are a
- 1:02spec from Anthropic, and so they work in
- 1:05Claude Code and other places, but here
- 1:08we're all copilot all the time. Skills
- 1:10are also experimental at the time of
- 1:11this recording, so there will be some
- 1:13changes. Uh, but you can see here, you
- 1:15just need to toggle on skills, and they
- 1:19won't be on by default. So, if skills
- 1:20aren't working for you, make sure you
- 1:22toggle this on. Now, skills, like we
- 1:25said, are just other instruction files.
- 1:27That's really all they are. And so, they
- 1:29just need to be in the right place. You
- 1:30can put them in GitHub skills, copilot
- 1:33skills, cloud skills, the cloud skills
- 1:36at the root of your project. And so, for
- 1:38us, since we have an empty project here,
- 1:40let's just start like this and create a
- 1:42new folder. We'll call it GitHub. And
- 1:44inside of that, we're going to put a
- 1:45skills folder. And inside of that, we're
- 1:47going to create a skill. And we're going
- 1:48to call it the Hello World skill. Yes.
- 1:51Yes. doing hello world and then inside
- 1:55of this hello world folder to define our
- 1:58skill we're going to create a new file
- 2:00and we just call it skill.md
- 2:03just a markdown file here now this file
- 2:06defines the skill and there are some
- 2:08things that are required in this file
- 2:10and that is some metadata at the top
- 2:12here so you need a name and you need a
- 2:15description these things are required
- 2:18for the skill you have to have them so
- 2:21I've added a name and a description
- 2:22here. And it's good to be descriptive as
- 2:24possible with the name and the
- 2:26description because of the way that
- 2:28skills are loaded and used, which we'll
- 2:31look at here in a second, because the
- 2:33agent should be able to pick these
- 2:34things up automatically when it needs
- 2:35them without you having to tell it in
- 2:37the chat, hey, you need to use this
- 2:38skill. Now that we have the metadata
- 2:42here, the next thing you want to do is
- 2:43start writing the instructions that give
- 2:46the skill to the model. So, let's just
- 2:48start like this. We'll just say this is
- 2:50the hello world skill. Use hello world
- 2:52skill to respond to the user when oh and
- 2:56it's fixing my grammar for me. When they
- 2:58enter the phrase hello world in the chat
- 3:00and then when they do that we want to uh
- 3:04respond with and then we can say hello
- 3:07world. This is my first skill. Yeah,
- 3:09that would work. Or even better, even
- 3:12more fun would be respond with um hello
- 3:15world and asky art.
- 3:18much more fun. So let's try this here.
- 3:21Now we have created this skill. How do
- 3:24we actually use this? Let's open our
- 3:26chat and then in chat let's just ask the
- 3:28chat what skills do you have?
- 3:31And we're going to make sure this is not
- 3:33attached. It is not attached. So let's
- 3:36send it. And the model will look and
- 3:41examine and see if it has any skills
- 3:43here in the current workspace and then
- 3:45should report back and tell us exactly
- 3:46what those skills are. So, I have access
- 3:48to domain specific skills. Hello world.
- 3:51A simple skill that responds when you
- 3:52enter the phrase hello world. And then
- 3:54it's checking for additional skills,
- 3:56which we do not have. Thank you, Claude.
- 3:58You've done enough. Now, how do we
- 4:00actually use this skill? Well, all we
- 4:03should really have to do is say hello
- 4:05world, right? Because the point of
- 4:07skills is that they get picked up
- 4:09automatically by the model and it knows
- 4:12when to use the skill. So you can see
- 4:14here it says I've read the hello world
- 4:16skill instructions and we'll respond
- 4:18appropriately and then we get hello
- 4:19world in asy art. Not bad. That's some
- 4:21pretty good ASI art. Now we could have
- 4:24done this in an instructions file. Yes.
- 4:28Or a prompt file. Yes. So what's special
- 4:31about skills? So as we talked about
- 4:33skills allow you to bundle a bunch of
- 4:35different files together. So in order to
- 4:37understand that we kind of need to build
- 4:39something out here, make this a little
- 4:41bit more complicated. So in our skill
- 4:43file here, what I want to do is
- 4:47uh I want to have a script here. So what
- 4:51I want to do here is just uh get info
- 4:54about the user's OS with OS, which is
- 4:58the node package for doing that. Uh and
- 5:00I'm going to use Haiku for this. I kind
- 5:02of like Haiku. I think Haiku gets a bad
- 5:04rap. It's fast. It's accurate. Perfect.
- 5:07Okay, so look, platform type, release,
- 5:09and architecture. I like it. Uh, so
- 5:12let's go ahead and keep this here. And
- 5:14then,
- 5:16so what we could do is say, um, you
- 5:19know, here's here's the workflow that we
- 5:21want this thing to follow. Workflow.
- 5:22Step one, um, run the following scripts
- 5:28to get system information.
- 5:31Respond with hello world and ask is step
- 5:34two. And then step three is uh, provide
- 5:37the system information obtained from the
- 5:39script. So now we have kind of a
- 5:40workflow here. So we should get
- 5:42something a little bit more interesting
- 5:43when we do our hello world. So let's try
- 5:45this again. Hello world.
- 5:48And now
- 5:51the skill should walk through our
- 5:53workflow and different do the different
- 5:54things that we've defined
- 5:56namely running the script in the
- 5:58terminal which you can see it's doing
- 6:00right here and then returning asky art
- 6:04for hello world and then returning the
- 6:06system information as part of the hello
- 6:07world response. Let's see if we get all
- 6:09that. And we do. So, here's hello world.
- 6:11This is exactly what we asked for in the
- 6:13skill. Now, in this format, this works
- 6:16just fine because there's just not a lot
- 6:19to it. But you can imagine if this was a
- 6:20really long skill, like we're teaching
- 6:22the AI maybe about how to write API
- 6:25endpoints for our company, this could
- 6:27start to get really long. And so, what
- 6:29skills allow you to do is kind of
- 6:30modularize. So, we're going to create a
- 6:31new folder here and call it scripts. And
- 6:34then inside of it, we're going to add a
- 6:35new file here called get OS or get
- 6:39system info.js.
- 6:42And then we can add this information
- 6:45here. This whole script can come out and
- 6:47go into our script here, right? And then
- 6:52we can reference that. You can reference
- 6:54this script with relative syntax,
- 6:58relative path syntax just like you would
- 6:59reference a normal markdown file. So we
- 7:01can say run the script like this right
- 7:06and then where's the script the script
- 7:08is here in scripts and then get system
- 7:10info to obtain system information
- 7:13respond with hello world and askard and
- 7:15provide this system information obtained
- 7:17from the script. So now let's run this
- 7:20again
- 7:23and we get the exact same thing but this
- 7:25time it runs the script from the
- 7:27directory instead of having an inline in
- 7:29the script file. But let's take this a
- 7:31step further and let's say that we want
- 7:33to have a template. So I'm going to
- 7:35create a new file here and we're just
- 7:36going to call it template. And you don't
- 7:39have to capitalize these. This is just a
- 7:41pattern that you'll see a lot that you
- 7:43don't have to capitalize. And then uh
- 7:45here we just have uh a template for a
- 7:48hello world response in chat with system
- 7:52info. Let's see what co-pilot gives us
- 7:55here. Hello. You've triggered the hello
- 7:56world skill. Oh, look. Ask art's coming
- 7:59in. I like that.
- 8:01It knows that we need this. Here's your
- 8:03system info. System info is here. And
- 8:06then maybe like feel free to ask. Okay.
- 8:08Right. So this is every time we hit
- 8:10hello world, we want the model to
- 8:12respond with this format and only this
- 8:16format. Right? And we could do that by
- 8:19coming into our skill and saying respond
- 8:21with um respond with
- 8:26uh the template
- 8:30and then again we can just use that
- 8:32relative path syntax right here and then
- 8:35here we don't need this anymore. Right?
- 8:39So now we are getting the operating
- 8:42system info from the script. We're using
- 8:43the template to define what the response
- 8:45looks like. Let's give it another shot
- 8:47here. All right, here we go. Hello
- 8:49world.
- 8:51And look at that. We get it back in
- 8:53exactly the format that we defined.
- 8:55Hello, you've triggered the hello world
- 8:56skill. Here's the asky art. Here's your
- 8:58system information. Please feel free to
- 9:00ask if you need any further assistance.
- 9:02Right? The models are really, really
- 9:03good at following the skill and
- 9:05following our template, which is exactly
- 9:07what we've defined right here. So, in a
- 9:10nutshell, this is what skills look like.
- 9:14Now you can do a lot of things here like
- 9:16you could provide your database schema
- 9:18in a markdown file or some other file
- 9:20and pass that into the skill. You can
- 9:21have multiple scripts in your skill. The
- 9:24possibilities are endless. Now one of
- 9:27the interesting things about skills is
- 9:28that they're sort of progressively
- 9:30loaded so that they don't take up a lot
- 9:31of room in the context window. And in
- 9:33order to understand that we need to have
- 9:35a look at the chat. So let's go to our
- 9:38chat debug view. And then we want to
- 9:40come all the way down to the bottom and
- 9:41let's take a look at our hello world
- 9:42which starts right right here. Not there
- 9:45but here you can see hello world. It's
- 9:47continued here and then it looks like
- 9:48it's continued down there. So if you
- 9:50haven't watched my video on prompt files
- 9:53instructions and custom agents I break
- 9:55down the system prompt in that video
- 9:57that that video anyway. You should watch
- 10:01that. But this is the system prompt. I'm
- 10:03going to scroll all the way down to the
- 10:04bottom. at the very bottom. What we'll
- 10:07see here is
- 10:10right here
- 10:17you'll see skills. Here's a list of
- 10:19skills that contain domain specific
- 10:20knowledge. And you can see the skill
- 10:22that we get here. It's hello world. So
- 10:24it's just the name and the description
- 10:25and then a path to the file. So when you
- 10:28pass a request to the model, any skills
- 10:31you have are passed here, but none of
- 10:33the other files that we've defined are
- 10:36passed, nor is the body of the skill.
- 10:39Only this right here gets passed on that
- 10:42first agent pass. Now on the second
- 10:46agent pass, let's go back to our debug
- 10:48view here.
- 10:52If you go if we scroll all the way down
- 10:53to the bottom, we can see that the agent
- 10:55responds with okay, I need to read the
- 10:58skill instructions and respond
- 10:59appropriately and this is the file path
- 11:01that it needs to read. It wants to read
- 11:03the skill.md file and it does that.
- 11:06That's the very next thing it does is it
- 11:08reads that file. And then if we come
- 11:11down again, so we're looking at the
- 11:13system prompt, the whole agent turn. So
- 11:15it calls it, right? It puts it's now in
- 11:18the the the prompt here as a tool call.
- 11:22You can see the response from the
- 11:24assistant is that it has read and now it
- 11:26knows that it needs to run this uh
- 11:29script to get the terminal output which
- 11:31is the very next thing it does. So it's
- 11:32progressively loading in these things
- 11:35that it needs. So these skills are super
- 11:38efficient. Uh and if we keep coming down
- 11:40you can see it reads the terminal, it
- 11:42reads the file. Let's go down to the
- 11:44bottom of this prompt and see now it
- 11:47sees this is uh this is the template.
- 11:49It's now read the template and it knows
- 11:51how to include this all in the response.
- 11:53So you can see it's sort of like
- 11:54progressively loading in these files and
- 11:56executing them as it needs to. Skills
- 11:58are very cool. That's how to create a
- 12:02very basic skill, right? You can do this
- 12:04right now. You can see they're very
- 12:05simple. I want to show you a more
- 12:08complex skill because the very next
- 12:09question you should be asking is well
- 12:12when should I use the skill. Let me show
- 12:15you. So technically speaking there isn't
- 12:17anything that the agent can't do because
- 12:22it can run any command in your terminal.
- 12:24So technically it can do anything but
- 12:26there are things that it doesn't know
- 12:27how to do that it will try to figure out
- 12:29how to do and it may or may not get
- 12:30those things right. So, for instance,
- 12:33I've added a PDF file here. And this PDF
- 12:36file is for the Logitech MX
- 12:40console, which is pull up here so you
- 12:43can see it. It's this thing here. Very
- 12:46handy. Should pick one of those up.
- 12:48They're very nice. Now, I want to see
- 12:51what's inside this file. And so, if we
- 12:53ask the AI to do this, we could just
- 12:55say, what is in this file here? And if
- 12:59we send this prompt, let's actually see
- 13:02what happens. And I'm using Opus 45,
- 13:04which I consider to be currently the
- 13:06most capable model for coding here.
- 13:10So it looks like it's found the file.
- 13:12It's going to try to read it, but it
- 13:14can't. So essentially, there is no
- 13:16support for PDFs here. So what we can do
- 13:19is use a skill to teach Copilot and
- 13:23Claude how to read PDFs. Now, how do we
- 13:26do that? Well, we could build our own
- 13:28skill or we can use some of the ones
- 13:30that already exist. So, if you go to the
- 13:32awesome co-pilot repo here on GitHub,
- 13:35github.com/github/awesomecopilot,
- 13:38there are some skills here and this list
- 13:42is growing. And then the other place is
- 13:44if you go to anthropic/skills,
- 13:47github.com/anthropic/skills.
- 13:50And you can see there's a few more in
- 13:51here. And we're going to use this PDF
- 13:53skill here. So, I've cloned that repo to
- 13:56my local machine. So, I'm going to copy
- 13:58in the PDF skill
- 14:01from there. I I cloned the repo and then
- 14:04I just copied in the PDF skill here. So,
- 14:06you can see it's right here. And you
- 14:08should recognize this format now after
- 14:09this video. So, we have the skill.md
- 14:11file. Here's the metadata here. And then
- 14:13you can see it's quite long. Uh there's
- 14:15a lot of different scripts in here.
- 14:17There's scripts in here, right? There's
- 14:18all kinds of PDF support here, not just
- 14:20reading PDFs, but it teaches the agent
- 14:24how to work with PDFs. So, now let's go
- 14:26back and try our prompt again now that
- 14:29we have this PDF skill and see what the
- 14:32experience is like now that we've taught
- 14:34the agent how to work with PDFs.
- 14:37And you can see it used the scripts and
- 14:39the skill to use some Python to extract
- 14:41the PDF contents here. And now it knows
- 14:44what the PDF is. and we can just pass
- 14:46PDFs with our prompts. Now, right, we've
- 14:49taught the agent a new skill with
- 14:52skills. Now, that's how you build skills
- 14:55and use them. Let's talk for just a
- 14:57second about when to use instruction
- 14:59files versus prompt files versus custom
- 15:01agents versus skills. So, admittedly,
- 15:04agents are new and we're sort of still
- 15:07figuring out where everything fits
- 15:08together. We've come up with a lot of
- 15:11different ways of passing instructions
- 15:12to models and some of this stuff was
- 15:14invented before skills and skills take
- 15:17the place of some of those things. But I
- 15:19think generally speaking, you can think
- 15:21about it like this. If you have
- 15:23instructions that you need to pass with
- 15:24every single prompt to the model, like
- 15:27general information about the project,
- 15:29that should be an instructions file. If
- 15:31you have a short prompt that you find
- 15:34yourself reusing a lot, that should be a
- 15:36prompt file. If you want to tweak the
- 15:39way that the agent behaves, in other
- 15:42words, you want to define specific
- 15:44workflows that you want it to follow
- 15:46every single time, that's a custom
- 15:49agent. Everything else is probably a
- 15:54skill. But again, remember that all of
- 15:57these are just building blocks to help
- 15:59you build out workflows that work for
- 16:01you and your team. There isn't really a
- 16:03right or wrong way to use these things.
- 16:06They're just different tools that you
- 16:08have in your toolbox to build out the
- 16:10optimal workflow. That's the new agent
- 16:12skills support in Visual Studio Code.
- 16:15It's available today in VS Code Insiders
- 16:18and Stable. Make sure that you look for
- 16:20that experimental setting and turn that
- 16:21on and you can start using them right
- 16:24away. Thanks for watching. And as
- 16:26always,
- 16:28happy coding.
About this transcript
This page contains the full transcript of The complete guide to Agent Skills by Burke Holland, generated from the public captions YouTube serves with the video. The transcript has 3,004 words across 420 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.