代理模式

本文档介绍了 Gemini Code Assist 中的智能体模式。

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

VS Code 中的智能体模式由 Gemini CLI 提供支持。

IntelliJ 中的智能体模式不使用 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 命令重新加载这些文件。

IntelliJ

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

  • IDE 项目中的信息,包括文件、已编入索引的符号以及项目中的符号使用情况。
  • 来自内置工具(例如 grep、文件读取或文件写入)的工具回答。
  • IntelliJ 版本控制
  • 已配置的 MCP 服务器和工具
  • 您在 Markdown 中创建的上下文文件。

您可以在智能体模式聊天提示区域的上下文抽屉中查看智能体可用的上下文。

智能体模式上下文抽屉。

工具

工具是一大类服务,代理可以使用这些工具来获取上下文信息,并在回答提示时执行操作。借助工具,智能体可以通过函数调用访问 API 端点或其他智能体,从而获取最新信息。工具可能只提供一个功能,也可能提供多个相关功能。

一些示例工具包括 grep 和文件读取或写入等内置工具、本地或远程 Model Context Protocol (MCP) 服务器及其可执行函数,以及 RESTful API 调用。

内置工具

在智能体模式下,Gemini 可以访问内置的系统工具。选择您的 IDE,查看 Gemini 在智能体模式下可用的内置工具列表。

VS Code

Gemini Code Assist 中的智能体模式可以使用所有 Gemini CLI 内置工具

IntelliJ

read_file
使用文件的绝对路径检索文件的文本内容。
write_file
将指定文本写入指定文件,如果该文件不存在,则创建该文件。
analyze_current_file
分析编辑器中打开的文件,查找错误和警告。
find_files
根据文件名或部分路径查找文件的绝对路径
grep
查找项目内包含指定文本模式或正则表达式的所有文件。
list_files
列出给定绝对路径中的所有文件和目录。
resolve_symbol
将特定符号引用解析为其原始声明。
find_usages
在项目中搜索对给定符号声明的所有引用。
git
运行 Git 命令行界面 (CLI) 命令并返回结果。
list_vcs_roots
返回当前项目中的所有版本控制系统 (VCS) 根,例如 Git 代码库。

限制

标准 Gemini Code Assist 对话的部分功能可能无法在智能体模式下使用,或者可能与在标准对话中的运作方式有所不同。

在智能体模式下,内容复述不可用。在智能体模式下,Gemini 不会引用来源,并且您无法停用与引用来源内容匹配的代码建议

后续步骤