聊天概述

Visual Studio Code 中的聊天功能使您能够使用自然语言进行人工智能驱动的编码辅助。通过对话式界面,提出关于代码的问题,获得理解复杂逻辑的帮助,生成新功能,修复漏洞,等等。本文概述了聊天表面,如何配置聊天会话,添加上下文,撰写有效提示,并回顾AI生成的更改。

前提条件

VS Code 中的聊天访问

VS Code 提供了多种方式来启动 AI 聊天对话,每种方式都针对不同的工作流程进行了优化。请使用VS Code标题栏中的聊天菜单或相应的快捷键。

VS Code 指挥中心副驾驶聊天菜单的截图。

表面 快捷键 最佳 了解更多
聊天视图 ⌃⌘I (Windows,Linux Ctrl+Alt+I 多轮对话、智能工作流程、多文件编辑。也可作为编辑器标签页或独立窗口使用。 聊天环节
在线聊天 ⌘I (Windows,Linux Ctrl+I 原地代码编辑和终端命令建议。 在线聊天
聊个简短的话 ⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L 快速提问,但不离开当前视角。在编辑器顶部打开一个轻量级聊天面板。 快速聊聊
命令行 代码聊天 从VS Code之外开始聊天。 CLI 文档

提交你的第一个提示

想了解聊天是如何运作的,试着创建一个基础应用:

  1. 通过按 ⌃⌘I(Windows,Linux Ctrl+Alt+I或从 VS Code 标题栏选择聊天来打开聊天视图。

  2. 从代理人选择器中选择一名代理人。例如,选择Agent让聊天自动决定需要做什么并对工作区进行修改。了解更多关于内置代理的信息

  3. 在聊天输入栏输入以下提示,并按回车提交:

    Create a basic calculator app with HTML, CSS, and JavaScript
    

    代理会直接将更改应用到你的工作区,也可能运行终端命令,比如安装依赖或运行构建脚本。

  4. 在编辑器中,查看建议的更改,选择保留或舍弃。

提示

想要完整的动手作,可以跟着客服教程作。

请求运行时发送消息

注释

消息引导和排队是实验性功能。

你不必等回复完成后才发送下一封消息。请求进行中,请使用发送按钮的下拉菜单选择如何处理新消息:

  • 添加到队列:当前响应完成后,消息会自动等待并发送。
  • 用消息引导:当前请求会被发送,你的新消息会立即处理。
  • 停止并发送:取消当前请求并立即发送新消息。

聊天视图截图,发送按钮下拉菜单展开,显示添加队列、引导消息或停止发送选项。

当你有多个待处理消息时,拖拽它们重新排序。了解更多关于在请求运行时发送消息的方法。

配置你的聊天会话

当你开始或调整聊天会话时,有三个选择决定了 AI 的响应方式:使用哪个代理、会话运行地点以及驱动它的语言模型。

选择跑向哪里

代理会话可以在不同环境中运行,以匹配你的工作流程。在聊天视图中的会话类型下拉菜单中选择会话类型。

聊天视图中显示会话类型的下拉菜单截图。

会话类型 描述
地方 在你的机器上通过VS Code进行交互运行。最适合需要即时反馈的探索性任务。
背景 通过 CLI 在你的机器上自动运行。最适合你想在后台运行的明确任务。
克劳德 运行在远程基础设施上,并打开拉取请求。最适合团队协作和明确的任务。
第三方 使用外部供应商如Anthropic或OpenAI的代理。

你可以在对话中途将会话从一种类型切换到另一种类型,完整的对话历史也会被保留。了解更多关于经纪人类型交接会谈的信息

选择一位代理人

客服让聊天扮演不同的角色或角色,针对特定任务进行优化。在聊天视图的代理下拉菜单中选择一位代理。你可以在一次会话中随时切换代理。

截图显示聊天视图中客服选择器展开,显示不同的客服选项。

VS Code 提供了三个内置代理:

  • Agent:自主规划和实现跨文件的变更,运行终端命令,并调用工具。
  • 计划:在编写任何代码前,制定结构化的逐步实施计划。当方案看起来合适时,将方案交给执行代理。
  • Question:回答关于编码概念、代码库或VS代码本身的问题,无需修改文件。

对于更专业化的工作流程,可以创建自定义Agent,定义特定角色、可用工具和语言模型。

了解更多关于内置代理及其功能的信息。

选择语言模型

VS Code 提供不同的语言模型,每种模型针对不同任务进行了优化。有些模型专为快速编码任务设计,而另一些则擅长复杂的推理和规划。在聊天输入栏中的模型下拉菜单中选择最适合你需求的模型。

聊天视图中语言模型下拉菜单的截图,显示可用模型的下拉列表。

你也可以添加其他供应商的模特,并在聊天中使用。了解更多关于VS Code中的语言模型

注释

可用机型列表可能会根据你的Copilot订阅而有所不同,并且可能随着时间有所变化。有关可用语言模型的更多信息,请参见GitHub Copilot文档。

为你的提示添加背景

提供正确的背景信息有助于AI生成更相关、更准确的回答。

  • 隐式上下文:VS Code 会自动包含当前文件、当前选择和文件名作为上下文。使用代理时,代理会自主决定是否需要额外的上下文。

  • #-提及输入聊天输入以明确引用文件(##file文件夹、符号、你的代码库(#codebase终端输出(#terminalSelection),或像这样的工具#fetch以及#githubRepo.

  • @-提及: 类型以调用专门的聊天参与者,如@@vscode,@terminal,或者@workspace,每个都针对各自的定义域进行了优化。

  • 愿景:附上图片,如截图或界面模型,作为提示语的上下文。

  • 浏览器元素(实验):从集成浏览器中选择元素,为提示词添加HTML、CSS和截图上下文。

了解更多关于AI上下文管理的信息。

审查和管理变更

AI对你的文件做了修改后,请审核并接受或丢弃。

  • 查看内联差别:打开修改过的文件查看应用更改的内联差别。使用编辑器覆盖层控制键在编辑和保留撤销单个更改之间切换。更多信息请参见“审查AI生成的代码编辑”。

  • 使用检查点:VS Code 可以在聊天互动的关键点自动创建文件快照,帮助你回滚到之前的状态。更多信息请参见检查点和编辑请求

  • 接受阶段:在源控视图中暂时进行修改,会自动接受所有待处理的编辑。丢弃更改也会丢弃待处理的编辑。

截图显示编辑器的拟议修改,突出编辑器叠加控制中的审核控制。

获得更好的回复

聊天提供了多种方式来提升人工智能响应的质量和相关性:

  • 写出有效的提示:具体说明你的需求,引用相关文件和符号,并对常见任务使用命令。从提示示例中获得灵感,或查看完整的提示工程指南/

  • 定制AI:通过添加自定义指令、创建可重复使用的提示文件,或为专业工作流程构建定制代理,定制AI的行为以适应你的项目。例如,创建一个“代码审查员”代理,提供关于代码质量和团队编码标准遵守情况的反馈。

  • 通过工具扩展:连接MCP服务器或安装扩展,提供工具,使代理能够访问外部服务、数据库或API。

更多信息请参见“VS Code中的AI定制”。

排查聊天互动问题

使用聊天调试视图检查AI请求和响应的详细信息。视图显示系统提示、用户提示、发送给语言模型的上下文以及每次交互的工具调用。这有助于理解AI为何会以某种方式做出反应,或用于排查意外结果。