在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 可用模型”。
先规划,再实施
对于跨多个文件的复杂变更,应将规划与实施分开。这种方法防止了人工智能解决错误的问题。
- 探索。使用请求模式或子代理阅读相关代码,了解其工作原理后再进行修改。
- 计划。使用计划代理创建结构化实施计划。在执行前回顾并完善计划。
- 实施。切换到代理模式,按照计划实施。包含测试或预期输出,以便代理验证自身工作。
- 复习。使用检查点来回顾进度,如果客服偏离轨道,可以倒带。
更多信息请参见上下文工程工作流程。
审核并验证AI输出
AI生成的代码可能包含漏洞、安全问题或细微的逻辑错误。始终将AI输出视为需要复审的起点。
-
接受前请先审查。在接受更改前,先阅读生成代码。注意边缘情况、错误处理以及AI可能做出的假设。
-
AI变更后再做测试。在提示词中包含测试用例,让AI能够验证自己的工作。如果AI不自动运行测试,自己先做测试再继续。
-
使用检查点来倒带。如果代理偏离轨道,使用检查点回滚到已知良好状态,而不是试图修复级联错误。
-
检查安全问题。审查AI生成的代码,寻找常见漏洞,如注入缺陷、硬编码秘密或缺失的输入验证。避免在提示中粘贴凭证或敏感数据。
更多信息请参见GitHub Copilot安全和GitHub Copilot信任中心。
管理上下文和会话
随着对话充满无关上下文,AI的反应可能会下降。主动管理你的会谈。
-
为无关任务开启新会话。不要把无关的问题堆在一次对话里。情境污染降低了响应质量。
-
删除无关的历史。删除已不再相关的过去问题和回答,或重新开始一个会话。
-
用子代理人进行调查。通过使用子代理提示AI单独进行研究和探索,这样发现不会让你的主语境变得杂乱。
-
选择合适的会话类型。使用本地会话处理当前代码中需要立即处理的快速任务,用于可以在本地运行且与主上下文隔离的任务,或用于云会话,这些任务有助于团队协作。
-
通过平行课程来扩展规模。并行运行多个会话以处理独立任务,节省时间并保持上下文分离。你可以同时运行多个会话,跨本地、后台和云环境,并通过 VS Code 中的代理会话视图在它们之间切换。