在 VS Code 中使用 AI 的最佳实践
本文介绍了在Visual Studio Code中使用AI以获得最佳效果的已验证实践。每个部分都提供了可操作的指导,并链接到更深入的文档。
优化您的项目以适应人工智能
通过在项目和代码库中考虑AI,您可以提高AI响应的准确性,并确保AI遵循您团队的编码标准和实践。
VS Code 支持多种机制来为您的项目配置 AI 行为。输入/初始化在聊天中生成初始配置。
| 机制 | 最适合 | 开始使用 |
|---|---|---|
| 自定义指令 | 项目范围内的编码标准和架构上下文 | 输入/初始化生成基准文件 |
| 提示文件 | 可重复使用的提示用于重复性任务(审查,脚手架) | 输入/提示管理 |
| 定制代理 | 专用工作流程或角色(TDD,安全审计) | 输入/代理管理 |
| 特工技能 | 领域特定能力(测试,部署) | 输入/技能管理 |
| 工具和MCP服务器 | 连接到外部系统(数据库、API、CLIs) | 配置在mcp.json |
有效项目配置的提示:
- 保持指令文件简洁。 它们会在每次聊天互动时加载。专注于人工智能无法从代码中推断出的信息,例如非默认约定、架构决策或环境设置。
- 范围说明
申请模式。 输入/说明创建特定语言或特定文件夹的指令文件,而不是将所有内容都放在一个文件中。 - 限制启用的工具。 活跃工具越少,响应速度越快,相关性越高。仅在任务需要时启用工具。
有关完整的设置详细信息,请参阅自定义概述。
选择合适的工具来完成任务
在 VS Code 中,AI 提供了几种交互模式。选择适合当前任务的模式可以节省时间并产生更好的结果。
| 工具 | 最适合 | 示例 |
|---|---|---|
| 内联建议 | 在编写代码时保持专注 | 代码补全,变量名,模板代码 |
| 问 (聊天) | 问题,头脑风暴,探索想法 | “这个项目中的认证是如何工作的?” |
| 内联聊天 | 目标明确、本地化的编辑,无需切换上下文 | 重构函数,添加错误处理 |
| Agent | 多文件更改需要自主规划和工具使用 | 实现一个功能端到端 |
| 计划 | 实施前的结构化规划 | 设计架构或迁移策略 |
| 智能操作 | 内置的,专用的一键任务 | 生成提交信息,修复错误,重命名符号 |
编写有效的提示
AI 回复的质量取决于你的提示的清晰度和具体性。这些技术可以帮助你获得更好的结果。
-
具体说明输入、输出和约束条件。 指明您希望使用的编程语言、框架和库。描述预期行为或包含示例输入和输出。
编写一个TypeScript函数来验证电子邮件地址。 对于有效的地址返回true,否则返回false。不要使用正则表达式。 示例:validateEmail("user@example.com") 返回 true 示例:validateEmail("invalid") 返回 false -
分解复杂任务。 不要一次性要求整个功能,将其分解成更小、范围明确的步骤。这种方法能产生更可靠的结果,并且更容易在早期阶段发现并解决问题。
-
包括预期输出以供验证。提供测试用例、预期结果或验收标准,以便AI可以验证其自身的工作。这一步是您可以做的最高杠杆的事情之一。
使用令牌桶算法实现一个速率限制器。 编写单元测试以验证:允许每秒10个请求, 第11个请求被拒绝,桶在1秒后重新填充。 在实现后运行测试。 -
避免含糊的提示。 像“改进这个”这样的提示给AI没有方向。相反,明确“改进”的含义:“减少时间复杂度”或“为null值添加输入验证”。
-
通过后续提示进行迭代。通过在后续消息中添加约束或更正来改进响应,而不是重写整个提示。
-
早期调整方向。 如果AI的方向错误,引导它通过后续消息重新定向当前请求,排队后续请求,或停止并发送新提示。
-
指示AI提出澄清问题。 如果任务不明确,指示AI在继续之前向你提问。这比猜测需求更准确。
-
并行任务。 如果你有多个独立的任务,要求AI并行运行以节省时间。例如,"并行进行关于X和Y的独立研究并总结发现。"
更多信息,请参见 提示工程 并在 GitHub Copilot 文档中找到实用的 提示示例。
提供正确的上下文
当AI拥有相关上下文时,其回应会更准确。使用这些技术来引导AI指向正确的信息:
-
人工智能自动执行代码搜索以收集相关上下文。当你的提示不明确时,你可以通过在提示中引用特定的文件、文件夹或符号来引导人工智能。
#<文件>,#<文件夹>,或#<符号>输入:. -
要从网页或GitHub仓库中提取信息,请使用
#获取或#github库为人工智能提供超出你代码库的最新信息。 -
参考 VS Code 环境上下文,例如源代码控制更改、终端输出或测试失败,以帮助 AI 理解您项目的当前状态并提供更相关的响应。
-
添加图片或截图以供AI分析视觉内容。
-
使用集成浏览器预览您的应用程序,并选择页面元素作为上下文。
欲了解更多信息,请参阅 为聊天提示添加上下文 和 配置工具.
选择合适的型号
每个AI模型都有不同的优势。有些擅长推理,有些则在代码生成或快速响应方面表现出色。为您的任务选择合适的模型可以提高结果。
-
将模型与任务复杂度匹配。 对于简单的完成和模板,使用快速模型。对于规划、调试或架构决策,请切换到优化推理的模型。
-
使用最新模型。 较新的模型通常具有改进的功能。VS Code 不断增加对新模型和模型版本的支持。查看 可用模型 并使用最新模型。
-
在提示文件和代理中固定模型。 在您的提示文件或自定义代理定义中指定首选模型,以确保为特定任务始终使用正确的模型。
-
实验和比较。 如果对某个回复不满意,可以尝试不同的模型。不同的模型对相同的提示可能会产生显著不同的结果。
-
使用BYOK以获得更多的控制权。 自带您的API密钥,以获得更多的模型选择和托管选项。
更多信息,请参见 选择AI模型 和 Copilot Chat可用的模型。
先规划,再实施
对于涉及多个文件的复杂更改,请将规划与实施分开。这种方法可以防止 AI 解决错误的问题。
- 探索。 使用问模式或子代理来阅读相关的代码并理解其工作原理,然后再进行更改。
- 计划。 使用 计划代理 来创建一个有条理的实施计划。在执行之前,审查并完善该计划。
- 实施。 切换到代理模式,并根据计划进行实施。包括测试或预期输出,以便代理可以验证自己的工作。
- 回顾。 使用检查点来回顾进度并在代理偏离轨道时回绕。
欲了解更多信息,请参阅上下文工程工作流程。
审查和验证AI输出
AI生成的代码可能包含错误、安全问题或微妙的逻辑错误。始终将AI输出视为需要审查的起点。
-
在接受之前进行审查。 在接受更改之前仔细阅读生成的代码。注意边缘情况、错误处理以及AI可能做出的假设。
-
在进行AI更改后运行测试。 在提示中包含测试用例,以便AI可以验证自己的工作。如果AI没有自动运行测试,请在继续之前手动运行测试。
-
使用检查点回滚。 如果代理偏离轨道,使用检查点来回滚到已知的良好状态,而不是尝试修复级联错误。
-
检查安全问题。 审查AI生成的代码,以查找常见的漏洞,例如注入缺陷、硬编码的机密信息或缺少的输入验证。避免在提示中粘贴凭证或敏感数据。
欲了解更多信息,请参阅 GitHub Copilot 安全性 和 GitHub Copilot 信任中心。
管理上下文和会话
AI响应可能会因对话中填充了无关上下文而下降。请主动管理您的会话。
-
开始新的会话以处理不相关任务。 不要将不相关的问题堆砌在一个对话中。上下文污染会降低响应质量。
-
移除无关历史。删除不再相关的过去问题和回答,或开始一个新的会话。
-
使用子代理进行调查。 提示AI使用子代理进行独立的研究和探索,以便发现不会扰乱你的主要上下文。
-
选择正确的会话类型。 对于需要立即处理的当前代码的快速任务,使用本地会话;对于可以在本地运行并隔离于主要上下文的后台任务,使用背景任务;对于可以受益于团队协作的会话,使用云会话。
-
使用并行会话扩展。 为独立任务并行运行多个会话以节省时间并保持上下文分离。您可以同时运行多个会话,跨越本地、后台和云环境,并通过VS Code中的Agent Sessions视图在它们之间切换。