本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

在 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 解决错误的问题。

  1. 探索。 使用问模式或子代理来阅读相关的代码并理解其工作原理,然后再进行更改。
  2. 计划。 使用 计划代理 来创建一个有条理的实施计划。在执行之前,审查并完善该计划。
  3. 实施。 切换到代理模式,并根据计划进行实施。包括测试或预期输出,以便代理可以验证自己的工作。
  4. 回顾。 使用检查点来回顾进度并在代理偏离轨道时回绕。

欲了解更多信息,请参阅上下文工程工作流程

审查和验证AI输出

AI生成的代码可能包含错误、安全问题或微妙的逻辑错误。始终将AI输出视为需要审查的起点。

  • 在接受之前进行审查。 在接受更改之前仔细阅读生成的代码。注意边缘情况、错误处理以及AI可能做出的假设。

  • 在进行AI更改后运行测试。 在提示中包含测试用例,以便AI可以验证自己的工作。如果AI没有自动运行测试,请在继续之前手动运行测试。

  • 使用检查点回滚。 如果代理偏离轨道,使用检查点来回滚到已知的良好状态,而不是尝试修复级联错误。

  • 检查安全问题。 审查AI生成的代码,以查找常见的漏洞,例如注入缺陷、硬编码的机密信息或缺少的输入验证。避免在提示中粘贴凭证或敏感数据。

欲了解更多信息,请参阅 GitHub Copilot 安全性GitHub Copilot 信任中心

管理上下文和会话

AI响应可能会因对话中填充了无关上下文而下降。请主动管理您的会话。

  • 开始新的会话以处理不相关任务。 不要将不相关的问题堆砌在一个对话中。上下文污染会降低响应质量。

  • 移除无关历史。删除不再相关的过去问题和回答,或开始一个新的会话。

  • 使用子代理进行调查。 提示AI使用子代理进行独立的研究和探索,以便发现不会扰乱你的主要上下文。

  • 选择正确的会话类型。 对于需要立即处理的当前代码的快速任务,使用本地会话;对于可以在本地运行并隔离于主要上下文的后台任务,使用背景任务;对于可以受益于团队协作的会话,使用云会话。

  • 使用并行会话扩展。 为独立任务并行运行多个会话以节省时间并保持上下文分离。您可以同时运行多个会话,跨越本地、后台和云环境,并通过VS Code中的Agent Sessions视图在它们之间切换。

更多信息,请参见 会话管理工作区索引.