Github Copilet
真实世界的需求
新项目
- 大的技术选型(Electronjs、Qt、Flutter)
- 功能实现的技术选型(UI、音视频)
- 功能实现
- 学习相关技术
- 对比不同方案的优缺点
- 功能开发
- bug修复
- 终端运行报错
- 代码审查
- 性能优化
- 代码重构
- Git 操作:提交信息
- 测试
- 编写测试代码
- 修复测试错误
- 文档
已有项目
- 架构设计
- 项目结构
- 每个代码文件的功能
- 如何运行项目
- 如何构建项目
- 如何调试项目
- 代码看不懂
- 解释翻译下代码
- 生成文档
- 某个功能是如何实现
技术演进路径
- 阶段⼀:智能代码补全时代(2018-2020)
- 阶段⼆:辅助编程时代(2021-2023)
- 阶段三:Vibe Coding时代(2025年初)
- 阶段四:范式编程时代(2025年⾄今)
- 写文档->AI生成代码
- 需要描述清楚需求,提供足够的上下文
- AI负责规划方法、编写代码,并在整个项目中验证结果
AI 对话
- AI已经完成了从0到1的能力演进
- 追求返回结果的准确性、相关性及可用性
- 需要提供清晰的指令和提示词,足够的上下文信息Context
- 当返回结果不准确时:提供的信息是不是正确的、是不是不够准确(更多的限定条件),从而提高回答的准确性
Github Copilot
把AI Agent带到了VScode: 描述你想构建的内容,Agent负责规划方法、编写代码,并在整个项目中验证结果。
选Github Copilot的理由:
- 背靠微软(Github被微软收购)
- 微软投资押宝OpenAI(上百亿美元),转化成果被集成到微软的产品
- Github 足够大的代码库,提供了丰富的训练数据和应用场景
- 另外态度开放,整合和多家的模型:
- Anthropic的Claude(估值500亿)
- Google的Gemini
- 支持自定义
- VSCode周更新(之前是月更)、平台(不仅是个产品)
- 对手 Cursor/Windsurf/Zed 压力
Inline 提示
- Ghost text suggestions(幽灵文本建议):在编辑器中开始输入时,Copilot 会在当前光标位置提供淡色显示的幽灵文本建议
- Next edit suggestions(下一步编辑建议):通过 Copilot 的下一步编辑建议(又称 Copilot NES)预测你的下一次代码修改。基于你正在进行的编辑,NES 会同时预测你下一处想编辑的位置以及该进行的具体修改内容。
Ghost text suggestions
- 调试:命令
>GitHub Copilot: Open Completions Panel补全调试 - 通过快捷键
Tab接受建议,或继续输入以获得更多建议。 - 切换补全提示
- 按单词补全部分
Note: 如果希望Suggestions更加准确,前面多写点函数注释、函数大致功能描述、及实现流程,提供更多的上下文信息给Copilot 示例:// 创建一个函数用来校验邮箱号,返回boolean类型,使用正则表达式来校验邮箱号的格式是否正确
Next edit suggestions (NES)
- 根据你正在进行的编辑,预测你下一个可能想要进行的编辑位置和内容。
- 可以帮助你快速完成一系列相关的编辑任务,提高编码效率。
Smart Action
Note: 这部分更新迭代较快,内容可能不太准确 文档:https://code.visualstudio.com/docs/copilot/copilot-smart-actions
常见的开发任务,如:代码重构、bug修复、测试编写等,都可以通过Smart Action来完成。不用自已去写提示词
- 生成Git 提交信息
- 重命名符号:变量、函数、Class名
F2重命名,Copilot会提供智能的重命名建议
- 生成文档:'/doc'命令 (inline chat)
- 生成测试代码: 斜杠命令
/tests - 解释代码 Explain code:
- 斜杠命令
/explain - 选中代码,Inline Chat中选 Explain
- 斜杠命令
- 修复代码Error:
- 斜杠命令
/fix - 选中代码,Inline Chat中选 Fix
- 斜杠命令
- 修复测试Error
- 修复终端Terminal Error
- 选中终端报错内容,右键
Add Terminal Selection to Chat - 选中终端报错内容,对话中使用
#terminalSelection工具将选中的终端内容作为上下文输入
- 选中终端报错内容,右键
- 审查代码 Review code: 选中代码,Inline Chat中选 Review
对话
- Chat view: 在专门的聊天界面中与Copilot进行更深入的对话,适合复杂问题的讨论和多轮交互
- Inline chat: 在编辑器或终端中直接与Copilot进行对话,获取即时帮助和建议
- Editor Inline Chat代码编辑器
- Terminal Inline Chat终端中直接启动对话
- Quick chat: 通过快捷键快速启动与Copilot的对话,适合需要快速获取信息或建议的场景
Agents
Agent运行环境分类:
- 本地Agent:在本地运行,访问本地文件系统和终端命令,适合需要频繁访问本地资源的任务。
- Copilot Cli:在本地后台的终端中运行,适合需要直接在命令行环境中执行的任务。
- Cloud: 在云端运行,Github仓库
- Claude: Anthropic的模型,适合需要更强推理能力的任务
- Codex: OpenAI的模型,适合需要更强代码生成能力的任务
Agent分类:
- Ask Agent:在不修改文件的前提下,回答关于编程概念、代码库或 VS Code 本身的问题
- Agent(默认):自主规划并实现跨文件修改,运行终端命令,并调用各种工具
- Plan Agent:在编写任何代码之前,先创建结构化、分步骤的实现计划
- 自定义Agent
模型
选择合适的模型,比如,不能去找硬件问软件的问题,去找骨科医生看脑科的问题;默认自动(平衡型,不会太激进)
模型分类:
- OpenAI:GPT系列
- 不带后缀:属于通用模型, 通用能力强,适合问答、解释、总结、生成文档,也能处理常规代码任务, 场景:日常聊天、解释报错、阅读代码、生成说明文档、轻量代码修改
- mini:通用模型的轻量级型号, 响应更快、成本更低,适合高频、简单、短上下文任务, 场景:Ask Agent、快速问答、补全提示、简单脚本、小范围文本改写
- Codex:偏代码专长模型, 更关注代码生成、代码理解和编辑任务, 场景:补全函数、实现 TODO、生成测试、修复小型 bug、局部重构
- Codex-Mini:轻量代码模型, 在速度和代码能力之间做平衡, 场景:常规代码问答、简单改动、生成样板代码、快速迭代
- Codex-Max:更强的代码推理版本, 更适合复杂代码修改、多文件联动、较长链路的实现任务, 场景:Agent 模式下的大块功能开发、跨文件重构、排查复杂问题、结合工具执行任务
- Anthropic(OpenAI出来的人):Claude系列
- Haiku(轻量版):响应快,适合简单查询和轻量任务; 场景:Ask Agent、术语解释、快速总结、简单文本生成
- Sonnet(平衡版):质量与速度较均衡; 场景:Agent、Plan Agent、代码阅读、文档编写、中等复杂度实现
- Opus(旗舰版):更强的推理和长文本处理能力; 场景:复杂分析、系统设计、长文生成、复杂规划与拆解
- Google: Gemini系列
- Flash(轻量版):速度快,适合简单问答与快速响应; 场景:快速查询、轻量聊天、简单说明生成
- Pro(高阶版):更适合复杂任务与更高质量输出; 场景:复杂问答、深入分析、多步骤任务
- X: Grok:更偏实时信息理解和开放式对话风格; 场景:热点话题讨论、开放式探索、轻量调研
- Github: Raptor mini:适合简单查询和轻量任务; 场景:Ask Agent、简单解释、快速辅助
- third-party:其他第三方模型,用户可以根据需要选择和集成适合自己项目的模型
- 场景:对特定领域、成本、部署方式或合规性有要求时使用
推理程度(思考强度):
- 低:更快返回结果,适合简单问答、补全、轻量修改
- 中:兼顾速度和质量,适合大多数日常开发任务
- 高:适合复杂推理、系统设计、跨文件修改、排查疑难问题,但通常更慢
模型选择建议:根据任务的复杂度、对结果质量的要求以及对响应速度的需求来选择合适的模型
- Ask Agent:优先选择 mini、Haiku、Flash 这类轻量模型
- Plan Agent:优先选择 Opus、Pro、Codex-Max 这类更擅长推理和规划的模型
- Agent:优先选择 Sonnet、Codex、Codex-Max、Pro 这类更适合代码生成和多步骤执行的模型
- Inline Chat / Ghost Text:优先选择速度快的轻量模型
- 复杂重构、多文件修改、调试疑难问题:优先选择高推理强度模型
- 日常使用不确定时:先用默认自动,让 Copilot 根据任务类型选择模型
模型对比: https://docs.github.com/zh/copilot/reference/ai-models/model-comparison
对话Chat流程
- 提交Prompt提示词
- 选择对应Agent
- 选择模型及推理程度
- 选择工具
- 输入提示词
- 暂停
- 修改Prompt提示词
- Agent提出澄清式问题
- 选择回答
- 修改Prompt提示词
- 审查修改的内容: “keep"/"undo"
- 查看后台终端命令
- 恢复历史版本Checkpoint
- Checkpoint类似Git的Commit提交
- 调整Prompt提示词重试:重新修改上一次的提交Prompt提示词(点击上一次的Prompt提示词,修改后重新提交)
- 从历史会话节点Fork,开始新的会话
- 查看信息:
- 选择自动模型时,查看Copilot选择了哪个模型
- 上下文Windows大小,超过会导致部分上下文被截断,影响结果的准确性
- 子Agent的执行过程和调用的工具信息
- Chat Debug
- Agent Debug
权限级别
- Default Approvals: 默认审批,用户需要批准每个建议
- Bypass Approvals: 跳过审批,用户不需要批准每个建议,适合需要快速迭代的场景
- Autopilot (预览功能): 自动驾驶模式,Copilot会根据用户的使用习惯和上下文自动调整审批级别,提供更智能的建议体验
添加上下文到Prompt中
Implicit context:VS Code 会自动将当前活动文件、当前选中内容以及文件名作为上下文包含进来#-mentions:在聊天输入框中输入#,可以显式引用文件(#file)、文件夹、符号symbols、你的代码库(#codebase)、终端输出(#terminalSelection)或像#fetch这样的工具@-mentions:输入@可以调用专门的聊天参与者,例如@vscode或@terminal,分别针对各自领域做了优化- 类比:类似群组里面
@特定人,可以直接调用特定的参与者来获取更专业的回答
- 类比:类似群组里面
Vision:可以附加图片,例如截图或 UI 模型图,作为提示词的上下文
会话
使用:一个问题、一个主题、一个功能用一个单独的会话来讨论,保持上下文的相关性和清晰度,避免上下文混乱和结果不准确
Ask Agent 会话示例:
通用代码和技术问题:
- What is a linked list?
- Provide 3 ways to implement a search feature in React.
- Explain the difference between async/await and promises.代码库相关问题:
- Explain how authentication works in #codebase
- Where is the database connection string configured? #codebase
- How do I build this #codebase?代码生成或编辑
- Add a login button and style it based on #styles.css
- Create a meal-planning web app using React and Node.js
- Refactor this code to use async/await测试代码和质量保证
- Add unit tests for the user service.
- Fix the failing tests #testFailure调试和错误修复
- Fix the issues in #problems
- Why is this function returning undefined?版本控制和协作
- Summarize the #changes
- Generate release notes based on the #changes上下文Context提示

- 系统指令:定义代理行为的内置准则。
- 自定义项:你设置的 AI 自定义,包括自定义代理、技能和自定义指令。
- 用户消息:你发送给代理的当前消息。
- 对话历史:当前会话中到目前为止交换的消息。
- 隐式上下文:你正在编辑的文件、当前选中内容、可见的错误和 git 状态。
- 显式引用:你用
#-mentions引用的文件、文件夹、符号symbols、你的代码库、终端输出或像#fetch这样的工具。 - 工具输出:文件读取、终端命令、代码库搜索结果和代理会话期间其他工具调用的结果。
上下文工程

- 整理项目范围内的背景信息:使用自定义指令将相关文档(例如架构、设计、贡献者指南)作为所有Agent交互的背景信息包含在内
- 生成实施计划:使用自定义Agent和提示创建规划角色,以生成详细的功能实施计划
- 生成实现代码:使用自定义指令,根据符合编码规范的实现计划生成代码
Demo:写一个修改桌面壁纸的应用
Note: 由于时间关系,过下交互流程
- 项目:写一个桌面壁纸应用
- 提示词:用electronjs写一个桌面壁纸应用,基于electron-vite #web https://electron-vite.org/ 模板来初始化,包管理器用pnpm,用Vue写UI
- 规划Planning:
- 反问澄清需求
- 生成实施计划
- 实现
- 加需求:增加主题切换功能,可以切换Light/Dark两种主题
- 加需求:增加定时切换功能,可以设置每天自动切换壁纸
- 运行项目
- 文档:补全README.md文档
- Git提交信息
自定义AI
- 全局指令:定义项目范围内的基础信息,例如架构概述、设计原则、贡献者指南(代码风格、命名模式或首选库)等,确保所有Agent交互都以这些信息为基础
- 基于文件的指令:针对不同文件应用不同的规则;例如,有些应用到vue文件,有些应用到js/ts文件
- Agents:定义不同类型的Agent对象,例如代码审查、测试编写、性能分析等,明确它们的职责和权限
- Prompts:编码特定任务, 用
/调用,例如/create-prompt create-component生成一个可重用的提示词模板 - Skills:专业化的功能和工作流程
- MCP: 三方功能服务;不同的MCP提供不同的功能,例如代码质量检查、性能分析、文档生成等
- Figma MCP服务:提供设计相关的功能,例如从设计稿生成UI代码
- Hooks: 定义在特定事件或条件下触发的操作,例如代码提交后自动运行测试、PR 创建时自动生成文档等,确保这些操作与项目的工作流程紧密集成
目录结构示例:
your-project/
.github/
copilot-instructions.md # Project-wide coding standards (Step 1)
instructions/
react.instructions.md # React-specific conventions (Step 2)
prompts/
create-component.prompt.md # Reusable component scaffolding (Step 3)
agents/
reviewer.agent.md # Read-only code reviewer (Step 4)
skills/
update-readme/
SKILL.md # README updater workflow (Step 5)/init生成.github/copilot-instructions.md文件,包含项目范围内的背景信息,例如架构概述、设计原则、贡献者指南等/add-instructions react生成.github/instructions/react.instructions.md文件,包含React相关的编码规范、最佳实践和常用库的使用指南/add-prompt create-component生成.github/prompts/create-component.prompt.md文件,包含一个可重用的提示词模板,用于生成符合项目规范的React组件代码/add-agent reviewer生成.github/agents/reviewer.agent.md文件,定义一个只读的代码审查Agent,专门用于审查代码更改并提供反馈,但不允许修改代码/add-skill update-readme生成.github/skills/update-readme/SKILL.md文件,定义一个技能,用于自动更新项目的README文件,例如根据代码更改自动生成文档或更新使用说明
自定义配置
文档结构:
- Yaml: 头信息
- Markdown:内容
资源:https://github.com/github/awesome-copilot
Debug
- Chat Debug: 对话 Debug
- Agent Debug: 规划和执行的 Debug
- Context Windows: 上下文窗口,查看当前上下文信息
- Compact Conversation 压缩对话窗口,显示核心上下文信息
最佳实践
- 为AI优化项目
- 为任务选择合适的工具
- 选择正确的Agent
- 写出有效的提示词
- 提供正确的上下文
- 选择正确的模型
- 先Plan,在Implement,最后Review
- 审查和验证AI生成的代码
- 管理上下文和会话
- 处理大型项目注意事项
TODO
- Copilot CLI: 在本地后台的终端中运行,适合需要直接在命令行环境中执行的任务
- Claude Code: Anthropic的模型,适合需要更强推理能力的任务
References
快捷键
Windows/Linux:
Ctrl+Alt+I- 打开聊天视图Ctrl+I- 在聊天视图中输入语音聊天提示Ctrl+N- 在聊天视图中新建一个聊天会话Ctrl+Shift+I- 在聊天视图中切换为使用 AgentCtrl+I- 在编辑器或终端中启动内联聊天Ctrl+I(长按)- 启动内联语音聊天Tab- 接受内联建议,或跳转到下一个编辑建议Escape- 关闭内联建议
Mac:
⌃⌘I: 打开聊天视图⌘I: 在聊天视图中输入语音聊天提示⌘N: 在聊天视图中新建一个聊天会话⇧⌘I: 在聊天视图中切换为使用 Agent⌘I: 在编辑器或终端中启动内联聊天⌘I(长按): 启动内联语音聊天Tab: 接受内联建议,或跳转到下一个编辑建议Escape: 关闭内联建议
工具
#agent: 调用Agent#edit: 直接修改代码文件#execute: 运行终端命令并将输出作为上下文输入#read: 读取文件内容并将其作为上下文输入#fetch: 从网络获取内容并将其作为上下文输入#search: 搜索代码库,获取相关代码片段、函数定义、文档等信息#todo: 生成TODO备注#vscode: 搜索VS Code功能、设置和扩展API#web: 搜索网络内容,获取最新信息,或访问特定的在线资源#terminalSelection: 将当前终端选中内容作为上下文输入#changes: 获取当前代码更改的摘要信息,帮助生成提交信息或发布说明
斜杠Slash命令
/init: 根据你的项目结构和编码模式生成或更新工作区指令(copilot-instructions.md 或 AGENTS.md)/plan: 生成实施计划/doc: 生成文档(inline chat)/explain: 解释代码/fix: 修复代码错误/tests: 生成测试代码/setupTests: 设置测试环境/fixTestFailure: 修复测试错误/clear: 清除当前会话的上下文和历史记录/create-prompt <prompt name>: 创建一个可重用的提示词模板/create-instructions <instructions name>: 创建一个自定义指令/create-skill <skill name>: 创建一个自定义Skill/create-agent <agent name>: 创建一个自定义Agent/create-hook <hook name>: 创建一个自定义Hook/<prompt name>: 执行预定义的提示词/<skill name>: 执行预定义的技能/debug: 进入调试模式,查看上下文信息、模型选择和工具调用等细节
对话参与者
@vscode: 询问有关 VS Code 功能、设置和 VS Code 扩展 API 的问题@terminal: 询问有关集成终端或 shell 命令的问题@github: 提问有关 GitHub 代码库、问题、拉取请求等内容的问题
参考资料
- Awesome Copilot Resources: https://github.com/github/awesome-copilot
- VSCode Github Copilot文档:https://code.visualstudio.com/docs/copilot/overview
- Github Copilot文档:https://docs.github.com/en/copilot
- VSCode youtube频道:https://www.youtube.com/@code/videos