在VS Code中使用AI的最佳实践

本文介绍了在Visual Studio Code中最大化AI效果的有效实践。每个章节都提供可作的指导,并附带更深入的文档链接。

优化你的项目以适应人工智能

通过以AI为核心配置项目和代码库,您可以提高AI响应的准确性,并确保AI遵循团队的编码标准和规范。

VS Code 支持多种机制来配置 AI 行为。进来/init在聊天中生成起始配置。

机制 最佳 开始
自定义说明 项目范围的编码标准与架构背景 进来/init生成基础文件
提示文件 针对重复任务(复习、支架)的可重复使用提示 进来/提示管理
海关代理 专业工作流程或角色(TDD,安全审计) 进来/代理人管理
代理技能 领域特定能力(测试、部署) 进来/技能管理
工具与MCP服务器 连接外部系统(数据库、API、CLI) 配置mcp.json

有效项目配置的建议:

  • 保持指令文件简洁。他们会在每次聊天互动中加载。专注于AI无法从代码中推断的信息,比如非默认约定、架构决策或环境设置。
  • 示波器指令应用模式。进来/指令创建特定语言或文件夹特定的指令文件,而不是把所有内容放到一个文件里。
  • 启用限制的工具。更少的主动工具意味着响应更快、更相关。只有在任务需要时才启用工具。

完整设置细节请参见自定义概览

选择适合任务的工具

VS Code 中的 AI 提供了多种交互模式。为当前任务选择合适的方案可以节省时间,并取得更好的效果。

工具 最佳 示例
内联建议 写代码时保持状态 代码补全、变量名、样板
问(聊天) 提问、头脑风暴、探索想法 “这个项目的认证是怎么运作的?”
在线聊天 有针对性的原地编辑,无需切换上下文 重构函数,添加错误处理
代理人 需要自主规划和工具使用的多文件变更 端到端实现功能
计划 实施前的结构化规划 设计架构或迁移策略
智能行动 内置的专用一步任务 生成提交信息、修复错误、重命名符号

写出有效的提示

AI回答的质量取决于提示的清晰度和具体性。这些技巧能帮助你获得更好的效果。

  • 具体说明输入、输出和约束。说明你想使用的编程语言、框架和库。描述预期行为或包含输入和输出示例。

    Write a TypeScript function that validates email addresses.
    Return true for valid addresses, false otherwise. Don't use regex.
    Example: validateEmail("user@example.com") returns true
    Example: validateEmail("invalid") returns false
    
  • 拆解复杂的任务。不要一次性要求整个功能,而是将其拆分成更小、范围明确的步骤。这种方法能产生更可靠的结果,也更容易及早发现问题。

  • 包含预期输出以便验证。提供测试用例、预期结果或验收标准,以便AI验证自己的工作。这一步是你能做的最有影响力的事情之一。

    Implement a rate limiter using the token bucket algorithm.
    Write unit tests that verify: 10 requests/second allowed,
    11th request rejected, bucket refills after 1 second.
    Run the tests after implementing.
    
  • 避免模糊的提示。像“让它更好”这样的提示,AI没有任何方向。相反,应明确“更好”的含义:“减少时间复杂度”或“为空值添加输入验证”。

  • 不断尝试后续提示。通过在后续消息中添加约束或修正来完善回复,而不是重写整个提示。

  • 尽早纠正方向。如果AI走错方向,可以用后续消息引导它重定向当前请求,排队后续请求,或停止并发送新提示。

  • 告诉AI去问澄清性的问题。如果任务不明确,指示AI在继续前先问你问题。这比猜测需求更准确。

  • 并行任务。如果你有多个独立任务,可以让AI并行运行,这样可以节省时间。例如,“并行进行关于X和Y的孤立研究,并总结其发现。”

更多信息请参见提示工程,并在GitHub Copilot文档中找到实用提示示例

提供正确的背景

当AI有相关上下文时,反应会更准确。使用以下技巧将人工智能引导到正确的信息:

  • AI会自动进行代码搜索以收集相关上下文。当提示词含糊时,你可以通过引用提示中的特定文件、文件夹或符号来引导 AI:#<文件>,#<文件夹>,或者#<符号>.

  • 要从网页或GitHub仓库提取信息,请使用#fetch#githubRepo为人工智能提供超出代码库的最新信息。

  • 参考 VS Code 环境上下文,如源代码变更、终端输出或测试失败,帮助 AI 理解项目当前状态,提供更相关的响应。

  • 添加图片或截图,让AI分析视觉内容。

  • 使用集成浏览器预览应用并选择页面元素作为上下文使用。

更多信息请参见“为聊天提示添加上下文配置工具”。

选择合适的型号

每个AI模型都有不同的优势。有些人推理能力强,有些人擅长代码生成或快速响应。为你的任务选择合适的模型可以提升效果。

  • 将模型与任务复杂度匹配。使用快速模型进行简单的补全和样板。切换到推理优化模型进行规划、调试或架构决策。

  • 使用最新型号。新型号通常性能有所提升。VS Code 持续支持新型号和新版本。查看可用型号,使用最新型号。

  • 提示文件和代理中钉顶模型。在提示文件或自定义代理定义中指定首选模型,以确保特定任务中正确模型的使用。

  • 多做实验和比较。如果你对某个回答不满意,可以尝试其他模式。不同模型对同一提示词可能产生显著不同的结果。

  • 使用BYOK来获得额外的控制。带上自己的API密钥,可以选择更多型号和托管选项。

欲了解更多信息,请参阅“选择 AI 模型Copilot Chat 可用模型”。

先规划,再实施

对于跨多个文件的复杂变更,应将规划与实施分开。这种方法防止了人工智能解决错误的问题。

  1. 探索。使用请求模式或子代理阅读相关代码,了解其工作原理后再进行修改。
  2. 计划。使用计划代理创建结构化实施计划。在执行前回顾并完善计划。
  3. 实施。切换到代理模式,按照计划实施。包含测试或预期输出,以便代理验证自身工作。
  4. 复习。使用检查点来回顾进度,如果客服偏离轨道,可以倒带。

更多信息请参见上下文工程工作流程

审核并验证AI输出

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

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

  • AI变更后再做测试。在提示词中包含测试用例,让AI能够验证自己的工作。如果AI不自动运行测试,自己先做测试再继续。

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

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

更多信息请参见GitHub Copilot安全GitHub Copilot信任中心

管理上下文和会话

随着对话充满无关上下文,AI的反应可能会下降。主动管理你的会谈。

  • 为无关任务开启新会话。不要把无关的问题堆在一次对话里。情境污染降低了响应质量。

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

  • 用子代理人进行调查。通过使用子代理提示AI单独进行研究和探索,这样发现不会让你的主语境变得杂乱。

  • 选择合适的会话类型。使用本地会话处理当前代码中需要立即处理的快速任务,用于可以在本地运行且与主上下文隔离的任务,或用于云会话,这些任务有助于团队协作。

  • 通过平行课程来扩展规模。并行运行多个会话以处理独立任务,节省时间并保持上下文分离。你可以同时运行多个会话,跨本地、后台和云环境,并通过 VS Code 中的代理会话视图在它们之间切换。

欲了解更多信息,请参见会话管理和工作区索引