将代理对话用作配对编程器

本文档介绍了如何在集成式开发环境 (IDE) 中将 Gemini Code Assist 代理模式配置为配对编程器并使用该模式。

代理模式可在 VS Code IDE 中使用。

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

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

限制

使用代理模式时,存在以下限制:

  • 代理无法调用 Gemini Code Assist 工具。您必须退出代理模式才能使用这些工具。
  • 代理无法使用代码自定义。您必须退出代理模式才能使用代码自定义。
  • 代理模式不支持具有多个根目录的项目。如果您在具有多个根目录的项目中使用代理模式,则代理只能访问其遇到的第一个根目录。
  • 代理模式不支持 Gemini for Google Cloud 日志

准备工作

  1. 在 IDE 中设置要使用的 Gemini Code Assist 版本:
  2. 将 Gemini Code Assist 发布渠道设置为内部人员 build:
    1. 打开命令面板 (Cmd + Shift + P),然后选择 Open User Settings JSON
    2. 将以下行添加到用户设置 JSON 中:
      "geminicodeassist.updateChannel": "Insiders",

使用代理模式

在代理模式下,你可以让 Gemini 完成高级别目标和复杂任务。

如需充分利用代理模式,请遵循提示最佳实践,并提供尽可能详细的信息。

如需切换到代理模式,请执行以下操作:

VS Code

  1. 如需打开 Gemini Code Assist 对话,请在 IDE 的活动栏中点击 spark Gemini Code Assist
  2. 点击代理切换开关,进入代理模式。切换到代理模式时,切换开关会突出显示;在常规对话中,切换开关会显示为灰色。
  3. 在 Gemini Code Assist 对话中,输入提示。

Gemini 会针对您的提示给出回答,或请求使用某个工具的权限。

如需停止代理,请点击 停止

如需使用标准 Gemini Code Assist 对话,请点击 发起新对话以创建新对话。

Gemini Code Assist 代理模式由 Gemini CLI 提供支持。

IntelliJ

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

为代理模式配置工具

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

配置 MCP 服务器

如需控制哪些服务器可在代理模式下使用,请根据服务器文档将这些服务器添加到 Gemini 设置 JSON 中。

VS Code

  1. 安装 MCP 服务器所需的所有依赖项。
  2. 打开位于 ~/.gemini/settings.json 中的 Gemini 设置 JSON,其中 ~ 是您的主目录。
  3. 根据服务器指令,将本地或远程 MCP 服务器添加到 Gemini 设置 JSON 中。

    以下示例添加了远程 Cloudflare MCP 服务器,并在本地机器上安装了 GitHub 和 GitLab 服务器。

    {
        "mcpServers": {
        "github": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-github"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": [
              "-y",
              "@modelcontextprotocol/server-gitlab"
          ]
        },
            "cloudflare-observability": {
                "command": "npx",
                "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
            },
            "cloudflare-bindings": {
                "command": "npx",
                "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
            }
        }
    }
    

  4. 打开命令面板,然后选择 Developer: Reload Window

您配置的 MCP 服务器可供代理在代理模式下使用。

IntelliJ

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

MCP 服务器身份验证

对于需要身份验证的 MCP 服务器,您可以将其添加到 Gemini 设置 JSON 中。

以下示例添加了 GitHub 的个人访问令牌:

{
//other settings...

"github": {
  "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
  "args": ["stdio"],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
  }
},

// other settings...
}

其中,ACCESS_TOKEN 是用户的访问令牌。

创建上下文文件

上下文可让代理针对给定的提示生成更优质的回答。上下文可以来自 IDE 中的文件、本地系统文件夹中的文件、工具回答和提示详细信息。如需了解详情,请参阅代理模式上下文

VS Code

  1. 在与您希望上下文应用到的范围相匹配的位置创建一个名为 GEMINI.md 的文件。下表详细介绍了不同范围的上下文文件的位置:

    范围 位置
    您的所有项目 ~/.gemini/GEMINI.md
    特定项目 您的工作目录或任何父级目录,直至项目根目录(由 .git 文件夹标识)或您的主目录。
    项目的特定组件、模块或子部分 工作目录的子目录。

    代理的记忆系统是通过从多个位置加载上下文文件来创建的。来自更具体的文件(例如特定组件或模块的文件)的上下文会替换或补充来自更通用的上下文文件(例如 ~/.gemini/GEMINI.md 中的全局上下文文件)的内容。

  2. 以 Markdown 格式撰写您希望代理使用的任何规则、样式指南信息或上下文,然后保存该文件。如需了解详情,请参阅 GitHub 上的示例上下文文件

IntelliJ

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

使用命令

借助斜杠 / 命令,您可以快速运行类似于终端窗口中的命令。

您可以在代理模式下使用以下 Gemini CLI 命令:

  • /tools:显示代理模式会话中可用的工具列表。子命令包括以下内容:
    • descdescriptions:显示每个工具的详细说明。
    • nodescnodescriptions:隐藏工具说明,仅显示工具名称。
  • /memory:管理从 GEMINI.md 文件加载的代理指令上下文。子命令包括以下内容:
    • show:显示从所有可用的 GEMINI.md 文件加载的当前记忆的完整串联内容。
    • refresh:从可用位置的所有 GEMINI.md 文件重新加载记忆。如需了解 GEMINI.md 文件如何影响代理的分层记忆,请参阅 Gemini CLI 配置文档
  • /mcp:列出已配置的 Model Context Protocol (MCP) 服务器、其连接状态、服务器详细信息和可用工具。子命令包括以下内容:
    • descdescriptions:显示 MCP 服务器和工具的详细说明。
    • nodescnodescriptions:隐藏 MCP 服务器说明,仅显示 MCP 服务器名称。
    • schema:显示 MCP 服务器配置参数的完整 JSON 架构。
  • /stats:显示详细的代理模式会话统计信息和时长。

如需详细了解 Gemini CLI 命令,请参阅 Gemini CLI 命令。请注意,并非所有 Gemini CLI 命令都可在代理模式下使用。

始终允许代理操作

您可以自动允许所有代理操作。

如需自动允许所有代理操作,请执行以下操作:

  1. 打开 VS Code 用户设置 JSON 文件:

    1. 打开命令面板 (ctrl/command + Shift + P)。
    2. 选择 Preferences: Open User Settings (JSON)
  2. 将以下内容添加到 VS Code 用户设置 JSON 文件中:

    //other settings...
    
    "geminicodeassist.agentYoloMode": "true",
    //other settings...
    
  3. 打开命令面板,然后选择 Developer: Reload Window

代理模式使用 yolo 模式,并且在您向其发送提示时,不会在执行操作之前征得您的许可。

创建 Gemini CLI 扩展程序

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

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

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

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

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

其他提示

尝试使用以下提示,并替换成您自己的信息:

  • "What does this repository do? Help me understand the architecture."
  • "What does this [class/function] do?"
  • "Add a feature to this codebase - "[link-or-path-to-codebase]"."
  • "Refactor function [A] and [B] to use the common method [C]."
  • "Fix the GitHub issue [link-to-github-issue]."
  • "Build an application to do [goal] with a UI that lets the user do [task] in the [environment]."
  • "Migrate library versions in this repository from [X] to [Y]."
  • "Optimize performance of this Go code so that it runs faster."
  • "Use [name-of-API] to build out this feature."
  • "Implement an algorithm to do [x], [Y], and [Z]."

后续步骤