Copilot
前言
AI编程工具盛行,学习AI编程工具的使用和底层原理是很有必要的,在AI工具通过多方面考量和对比市面上的AI编程工具,决定选择Copilot作为深入AI编程学习的切入口,本章节是为了详细记录AI编程工具的使用和深入学习AI编程相关概念。
Copilot
从介绍可以看出Copilot主打的是基于代码的学习,提供代码AI自动补全的功能。
Copilot是微软旗下的,所以对Visual Studio,VS Code等微软IDE支持比较完善,下载VS时就自带集成Copilot。
支持基于Github大量代码学习的代码智能推断补全,支持Agent聊天问答,支持多个模型选择,支持代码Review等功能。
优势:
- 不用切换IDE,直接嵌入各大主流IDE
- 微软官方支持且基于Github的大量代码知识
Note:
- Copilot基础版免费,Pro版需要付费购买(10美元每月-个人推荐这个),Pro+(39美元每月)[https://visualstudio.microsoft.com/zh-hans/vs/pricing/?tab=paid-subscriptions])。
Copilot安装
官方下载带Copilot的Visual Studio 2022[https://visualstudio.microsoft.com/github-copilot/]
新建工程
右上角点击Github Copilot->打开聊天框
Note:
- Ctrl+Alt+L快捷键打开VSCode Copilot Chat
Completions
敲击代码,Copilot会根据代码智能推断即将编写的代码,敲击tab应用智能推断的代码
敲击注释,Copilot也会根据注释去推断即将编写的代码,敲击tab应用智能推断的代码
只接受一部分Copilot智能推断的代码,Windows上Ctrl+→按键
决定不启用智能推断的代码,点击Esc按键
Prompt
**Prompt(提示词)**可以帮助AI更加准确的理解我们的需求,给出更更准确的代码推断和需求编写。
前面的Completions提到注释描述给AI提示,以及Chat中提到针对代码片段的提问(Alt+I),在提问时我们通过自然语言准确描述需求比泛化的描述可以更加准确的让AI理解我们给出的指令,得到更准确的目标结果。
泛化的Prompt,比如注释描述”// Some Code”
此时无论是AI还是人其实都无法理解我们具体想做什么,所以AI并没与给出任何有效的代码推断
好的Prompt,比如注释描述”// define a function that is used to compare to int value”
可以看到好的提示词成功让AI理解了需求并给出了准确的推断编写代码。
Chat
聊天模式氛围Ask Mode和Agent Mode
聊天模式切换:
Ask Mode
AI提问模式交互,打开Copilot后,右下方有聊天窗口
点击代码块右上方的应用则可以将Copilot生成的代码生成到我们的代码里
在代码区点击**放弃(Alt+Del)**则可以放弃方才应用的代码
代码块交互聊天,选中需要询问的代码,按Alt+/
交互聊天有一系列的快捷操作指令
输入@会看到几个大方向或内容给AI作为参考
输入#会看到可以在询问前添加相关文件作为给AI的参考文件
输入/会看到有内置支持的快捷代码操作指令(比如fix,optimization……)
想引入更多复杂类型的资源作为AI参考文件,可以通过+添加:
自动以快捷交互指令详情参考:
Customize chat responses and set context
Agent Mode
从介绍可以看出Copilot Agent Mode可以让我们通过自然语言区描述高阶任务需求,让AI使用特定工具自动化完成高阶任务需求。
Agent Mode工具选择:
比如指挥Copilot调用指定方法并应用代码。
相比Ask Mode生成的代码我们要选择应用,Agent Mode已经通过我的指令自动应用到了Program.cs文件里,同时Agent Mode还通过调用编译进行了生成代码的对错验证(工具自动化的使用是和Ask Mode的最大区别)。
Agent Mode可以通过选择保留和放弃去确认生成代码的去留。
当成功应用后,Copilot通过创建还原点,可以实现快速的放弃之前的操作
Note:
- 需要使用一些列工具进行自动化的操作推荐用Agent Mode
- 需要使用MCP Servers功能,必须使用Agent Mode而非Ask Mode
MCP
从介绍可以看出MCP是AI模型和外部工具交互的标准。
如果想通过外部工具扩展Agent Mode工作流,可以通过MCP引入外部工具。
通过调用外部工具和数据,我们就能实现更多的功能,无论是简单的周报总结,自动化测试,2D或3D模型资源生成等都成为了可能。
简单了解下MCP里的核心组成部分:
- MCP Host: The AI application that coordinates and manages one or multiple MCP clients(一个用于管理和协调多个MCP客户端AI宿主程序,比如VSCode,Cursor,CLAUDE CODE等)
- MCP Client: A component that maintains a connection to an MCP server and obtains context from an MCP server for the MCP host to use(MCP客户端,一个负责维护MPC服务器连接的组件,通过MCP服务器为MCP宿主用户获取环境上下文等)
- MCP Server: A program that provides context to MCP clients(MCP服务器,一个给MCP客户端提供环境上下文的程序)
简单了解下MCP的分层设计:
- Data layer: Defines the JSON-RPC based protocol for client-server communication, including lifecycle management, and core primitives, such as tools, resources, prompts and notifications.(数据层,用于定义MCP客户端和MCP服务器的JSON数据远程调用协议相关(比如数据生命周期管理,资源,工具等))
- Transport layer: Defines the communication mechanisms and channels that enable data exchange between clients and servers, including transport-specific connection establishment, message framing, and authorization.(传输层,用于定义MCP客户端和MCP服务器的数据交换相关(比如数据传输协议,授权等))
MCP的详细设计这里暂时不深入追究,暂时知道MCP是一套通用的AI模型嗯哼外部工具交互的标准即可。
详情参考:
因为本人只买了Copilot Pro,没有买Claude Code付费版本,所以接下来MCP和Agent Skills都已Copilot使用学习说明。
Extending Copilot MCP Servers
查看可用的MCP servers repository:
Model Context Protocol servers
支持搜索支持的MCP servers repository:
给VS Codo配置MCP servers要求VS Code版本大于1.99(感觉官方版本写错了,目前最新才1.108–2026/1/12)
MPC servers配置有两种方式:
- Using GitHub MCP Registery(这种方式只有MCP servers在MCP Registery的才能配置)
- Configuring MCP servers manually(这种方式可以自由配置MCP Server)
Using GitHub MCP Registery
使用GitHub MCP Registery步骤:
打开VSCode
ctrl+shift+x打开插件界面
过滤选择里选择MCP Register
然后直接再搜索里搜索想找的MCP Server,如果是第一次打开还需要先开启MCP Servers MarketPlace
接下来搜索一个想找的MCP Server
这里点击Install即可安装对应MCP Server
这里我尝试安装MarkDown MCP Server但运行失败了:
发现Markitdown MCP Server安装后启动失败了,原因是uvx安装没成功
我们通过uv官网的教程,在PowerShell里输入一下命令安装uvx:
“powershell -ExecutionPolicy ByPass -c “irm https://astral.sh/uv/install.ps1 | iex””
安装后需要自己设置uvx的环境变量,按安装后的提示输入命令或手动添加环境变量即可,后续VSCode里还是找不到注意重新打开VSCode。
- 安装Uvx成功后,发现Markitdown还是运行不起来,于是我让Copilot Agent帮我分析原因,它通过调用”uvx markitdown –help”命令把所有相关的Python库都下载下来了。
但最后依然运行不成功Markitdown,Copilot分析的结论是Python版本不对,为避免多个Python版本安装后出问题,这里不再继续了。
接下来以安装GitHub MCP Server为例:
打开插件(ctrl+shift+x)
设置过滤为MCP Server
搜索GitHub
点击安装
输入GitHub Authentication token(在Github个人设置页面->Developer Settings->Tokens)
在Copilot Chat下方打开MCP配置工具查看GitHub MCP Server配置的工具结合
可以看到GitHub MCP Server已经添加成功,相关工具也支持在Agent模式下通过GitHub MCP Server选择使用了。
接下来验证下通过Copilot+GitHub MCP Server我们是否能快速通过AI操作Github仓库相关东西
可以看到我们成功通过给Copilot输入命令,通过GitHub MCP Server的相关工具将README.md文件成功自动上传到了GitHub对应仓库。
Configuring MCP servers manually
VSCode支持两种MCP手动配置方式:
- .vscode/mcp.json用于给当前VSCode指定所有人能用的MCP服务器配置信息
- %APPDATA%/Code/User/settings.json里配置当前电脑通用的MCP服务器配置信息(但实际上我发现VSCode扩展里安装的好像是配置在%APPDATA%/Code/User/mcp.json文件)
这里重点学习下第一种给工程手动配置MCP Server的方式
在工程.vscode目录下新建mcp.json文件
打开mcp.json文件,点击Add Server按钮(VSCode提供了几种安装MCP的方式)
这里使用手动添加mcp.json描述的方式
1
2
3
4
5
6
7
8
9
10
11
12{
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"${workspaceFolder}"
]
}
}
}添加配置后会在对应Servers名字上方看到启动MCP Server的按钮
打开Copilot的Configure Tools可以看到我们成功运行FileSystem MCP Server后相关工具都被使用了
接下来通过Copilot进行验证FileSytem MCP Server被正确安装和使用(将.vscode/mcp.json和***/User/mcp.json作为上下文文件进行提问)
上面这个例子因为有一些默认工具支持了目录的创建和文件的创建读写,导致并没有直接使用FileSystem MCP Server的相关工具
显示指定使用create_directory工具创建一个FileSystemCreatedDirectory目录
可以看到通过#显示的指定工具名,我们成功使用了FileSystem MCP Server的create_directory工具创建了名为FileSystemCreatedDirectory目录。
Note:
- 官方推荐相同MCP Server只在全局或本地一处添加,避免冲突
- .vscode/mcp.json当前VSCode级别的MCP也可以通过浏览扩展里的MCP进行安装
- MCP Server无需一开始就启动,当需要触发相关工具时,对应MCP Server会自动启动
- Copilot CLI和VS Code Copilot是独立的工具,他们不会共享MCP Server配置
Coding Agent
从介绍可以看出Coding Agent可以用于像人工一样自动化完成任务。
相比Agent Mode,Coding Agent能独立于IDE在Github环境下运行完成任务。
更多了解:
TODO
Note:
- Coding Agent是付费功能(Pro或Pro+等)
Copilot Skills
TODO
多模型选择
打开Copilot聊天框正下方有底层AI模型选择
Code Review
通常合作开发时,提交代码时代码review以往都是人工查看的,有了AI工具,Code Review也能实现AI自动化分析。
Visual Studio Code Review步骤:
Github创建不同分支并推上去
在对应分支进行修改并提交
在Github上或者Git发出Pull Request请求
在Github上Pull Request操作发起Copilot Review请求
等待AI Copilot Review完成则可看到AI Review结论
Note:
- Code Review是付费功能(Pro或Pro+等)
Copilot CLI
Copilot CLI允许通过命令行界面使用Copilot,这一点很像Claude Code。
Copilot CLI安装:
打开PowerSheel(Windows)
输入 winget install GitHub.Copilot
Copilot CLI使用:
在需要Copilot CLI访问的目录下打开PowerShell输入Copilot命令
选择选项1(Yes)–表明信任Copilot CLI对当前目录的修改
输入/login(输入后按照操作流程一步一步登录账号即可) – 登录Github账号开始使用Copilot(本人买的Copilot Pro)
在Copilot里输入/help就可以像常规命令行一样看到所有可使用的命令介绍了
可以看到如果AI模型没选对,我们可以输入/model进入模型切换(部分AI模型需要Github Copilot后台开启才能使用)
提交Git采用人类语言描述即可
上传失败是因为命令行还没有配置SSH秘钥,这里需要安装OpenSSH Client
PowerShell里输入”Get-Service ssh-agent”确认开启ssh-agent服务,如果未开启,输入”Start-Service ssh-agent”,如果开启报错,输入”Set-Service ssh-agent -StartupType Automatic”将ssh-agent的开启方式设置成自动,然后输入”ssh-add”输入SSH的秘钥即可
然后我们再次测试Copilot的Git上传,发现还是上传不了,询问Copilit说是Copilot CLI默认使用的不是SSH KEY而是HTTPS,需要安装GitHub CLI(输入”winget install –id GitHub.cli -e”命令安装)然后使用gh相关命令(输入”gh auth login”命令登录)登录GitHub授权(注意网页版通过授权,网页版要求填的码需要Ctrl+R或者Ctrl+O打开Copilot的详情信息才能看到)
然后我们再次测试Copilot的Git上传,这次终于通过Copilot上传GitHub成功了
Copilot CLI使用详情参考:
命令行查看Token使用情况:
1 | /context |
命令行查看CLI所有操作介绍:
1 | /help |
Note:
- Copilot CLI是付费功能(Pro或Pro+等)
- 部分功能可能要求PowerShell版本大于6,需要自己去装一个最新的PowerShell版本
- OpenSSH Client的安装和SSH配置要用管理员身份打开PowerShell(版本大于6)
- Copilot等待操作时,Ctrl+C是退出,Ctrl+R是打开最近输出,Ctrl+O是打开所有输出,Ctrl+T是显示原因
- 如果不希望Copilot每次关键时候询问是否继续,可以输入–allow-all-tools允许所有工具自动执行,或者–allow-tool允许特定工具执行,或者–deny-tool阻止特定工具执行
Copilot CLI MCP Server
Copilot CLI和VS Code Copilot的MCP Server是独立添加的,但添加MCP Server的逻辑和VSCode Copilot MCP Server添加是相同的,只是保存的目录位置不同(目录C:/User/UserName/.copilot/mcp-config.json)
Copilot CLI里添加MCP Server是通过输入”/mcp add“命令:
Server Name – 取一个本地添加MCP Server的对应名字(必填)
Server Type – MCP Server连接类型(stdio(Standard I/O)多用于本地MCP Server。http(Hypertext Transfer Protocol)多用于网络远程MCP Server。sse(Server-Send Events)http不支持时的一种fallback方案)
Command – 启动MCP Server的执行程序命令(含命令执行参数,本地MCP Server才需要的启动命令)(最后在mcp.json里会自动拆分成command和args两个变量)
Enviroment Variables – 传递个MCP Server的环境变量数据(本地MCP Server才需要)
URL – 远程MCP Server的URL地址(远程MCP Server才需要)
Http Headers – 远程MCP Server请求时带的参数数据(比如GitHub秘钥)
Tools – MCP Server需要激活的工具(本地和远程MCP Server都需要)
参数详细介绍:
添加MicrosoftLearn MCP Server(输入**/mcp add**然后填充以下信息)
MicrosoftLearn MCP Server使用测试:
添加GitHub MCP Server(输入**/mcp add**然后填充以下信息)
GitHub MCP Server使用测试:
添加FileSystem MCP Server(输入**/mcp add**然后填充以下信息)
FileSystem MCP Server使用测试(Copilot CLI里无法通过描述使用stdio本地添加的MCP Server工具,只能直接指明使用):
Note:
- Copilot CLI的MCP Server添加时,不是所有的MCP Server都通过Http方式远程添加,也可以通过stdio本地添加的方式。
- stdio本地添加的方式不能直接通过Copilot CLI描述触发,需要直接输入”@MCP名.工具名 参数”的方式直接触发
- Copilot CLI里@除了指明用某个文件,还能@MCP名.工具名 参数的方式指定使用MCP的工具
- 所有Copilot CLI需要访问的目录必须确保授权访问,除了默认打开所在目录和/Local/Temp目录默认授权外,其他目录都要通过/add-dir进行授权添加*
- 通过/add-dir添加授权访问的目录暂时没有命令清除,只能通过重新开Copilot Session实现重置
Copilot付费
Copilot有多个付费模式:
Free – **只允许使用优先功能(50次Agent Mode或Chat每月,2000次智能代码提示补全每月等)
Pro – 无限次Agent Mode或Chat每月,无限次智能代码补全提示,更多AI模型选择,Code Review,Coding Agent等功能
Pro+ – 相比Pro更多的AI模型选择等
Copilot付费支持的Visa卡好像要要求支持跨境汇款,PayPal这个我个人没有。
不同付费模式功能详情参考:
Github地址
无

