代理模式

本文档介绍了 Gemini Code Assist 中的代理模式。

代理模式可在 VS Code 集成开发环境 (IDE) 中使用。如需开始使用代理模式,请参阅将智能体对话用作配对编程器

VS Code 中的代理模式由 Gemini CLI 提供支持。

在代理模式下,您可以执行以下任何操作,以及更多其他操作:

  • 提出有关代码的问题。
  • 利用上下文和内置工具改进生成的内容。
  • 配置 MCP 服务器以扩展代理的功能。
  • 获取包含多个步骤的复杂任务的解决方案。
  • 根据设计文档、问题和 TODO 注释生成代码。
  • 通过在执行期间对方案和工具使用进行注释、修改和审批来控制代理行为。

代理模式的工作原理

在代理模式下,您的提示会随可用的工具列表一起发送到 Gemini API。Gemini API 会处理提示并返回回答。回答可能是直接回答,也可能是使用可用工具的请求。

当用户请求使用工具时,代理会准备使用该工具,并检查是否允许在有或没有明确权限的情况下使用该工具:

  • 对于会修改文件系统或对任何资源执行变更操作的工具请求,除非您已将 Gemini 配置为始终允许使用相应工具,否则 Gemini 会要求您允许该操作。
  • 只读工具请求可能不会在完成任务之前请求权限。

当系统要求您允许使用某个工具时,您可以选择允许或拒绝该操作。代理可能还会提供一些选项,可始终允许使用某个工具或服务器或允许类似操作。如需了解详情,请参阅始终允许代理操作

在获得或自行授予使用该工具的权限后,代理会使用该工具完成所需的操作,并将该操作的结果发送回 Gemini API。Gemini 会处理工具操作的结果,并生成其他回答。这种操作和评估的循环会一直持续,直到任务完成。

对于复杂的任务,Gemini 可能会显示高级别计划,供您审批。您可以在开始流程之前微调方案,并在对话中提出问题。对方案感到满意后,您可以批准该方案。您批准方案后,代理会开始处理第一个任务,并在执行方案的过程中根据需要向您寻求说明或权限。

代理模式上下文

上下文可让代理针对给定的提示生成更优质的回答。上下文可以来自 IDE 中的文件、本地系统文件夹中的文件、工具回答和提示详细信息。

根据您的 IDE 和设置,代理可能会获得不同的上下文。

以下标签页详细介绍了如何针对不同的 IDE 收集上下文。

VS Code

在代理模式下,Gemini Code Assist 通常可以通过以下方法获取上下文:

  • IDE 工作区中的信息。
  • 来自内置工具(例如 grep、终端、文件读取或文件写入)的工具回答。
  • Google 搜索回答。
  • 提示或工具提供的给定网址中的内容。
  • 您在 Markdown 中创建的上下文文件。

代理记忆

VS Code 中的 Gemini Code Assist 代理模式利用 Gemini CLI 记忆发现服务来查找和加载为代理提供上下文的 GEMINI.md 文件。记忆发现服务会按层次结构搜索这些文件,从当前工作目录开始,向上移动到项目根目录和主目录。它还会在子目录中进行搜索。

您可以创建全局、项目级和组件级上下文文件,这些文件会合并在一起,为模型提供最相关的信息。

您可以使用 /memory show 命令查看所有已加载的 GEMINI.md 文件的合并内容,并使用 /memory refresh 命令重新加载这些文件。

Gemini CLI 扩展程序

您可以使用 Gemini CLI 扩展程序来配置和扩展 Gemini Code Assist 代理模式功能。

代理会在以下两个位置查找扩展程序:

  • WORKSPACE/.gemini/extensions,其中 WORKSPACE 是当前的工作区。
  • ~/.gemini/extensions,其中 ~ 是主目录。

代理会从这两个位置加载所有扩展程序,但如果这两个位置中都存在同名的扩展程序,则工作区目录中的扩展程序具有更高的优先级。每个扩展程序都是一个包含 gemini-extension.json 文件的目录。此文件包含扩展程序的配置。

如需了解详情,请参阅 Gemini CLI 扩展程序

IntelliJ

Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。

工具

工具是一大类服务,代理可以使用这些工具来获取上下文信息,并在回答提示时执行操作。一些示例工具包括 grep 和文件读取或写入等内置工具、本地或远程 Model Context Protocol (MCP) 服务器及其可执行函数,以及定制的服务实现。

后续步骤