本文档介绍了如何在集成式开发环境 (IDE) 中将 Gemini Code Assist 代理模式配置为配对编程器并使用该模式。
在智能体模式下,您可以执行以下任何操作,以及更多其他操作:
- 提出有关代码的问题。
- 利用上下文和内置工具改进生成的内容。
- 配置 MCP 服务器以扩展智能体的功能。
- 获取包含多个步骤的复杂任务的解决方案。
- 根据设计文档、问题和
TODO
注释生成代码。 - 通过在执行期间对方案和工具使用进行注释、修改和审批来控制代理行为。
限制
标准 Gemini Code Assist 对话的部分功能可能无法在智能体模式下使用,或者可能与在标准对话中的运作方式有所不同。
在智能体模式下,内容复述不可用。在智能体模式下,Gemini 不会引用来源,并且您无法停用与引用来源匹配的代码建议。
准备工作
VS Code
- 在 IDE 中设置要使用的 Gemini Code Assist 版本:
IntelliJ
在 IDE 中设置要使用的 Gemini Code Assist 版本:
使用智能体模式
在代理模式下,你可以让 Gemini 完成高级别目标和复杂任务。
如需充分利用代理模式,请遵循提示最佳实践,并提供尽可能详细的信息。
如需切换到代理模式,请执行以下操作:
VS Code
- 如需打开 Gemini Code Assist 对话,请在 IDE 的活动栏中点击 spark Gemini Code Assist。
- 点击代理切换开关,进入代理模式。切换到代理模式时,切换开关会突出显示;在常规对话中,切换开关会显示为灰色。
- 在 Gemini Code Assist 对话中,输入提示。
Gemini 会针对您的提示给出回答,或请求使用某个工具的权限。
如需停止代理,请点击
停止。如需使用标准 Gemini Code Assist 对话,请点击
发起新对话以创建新对话。Gemini Code Assist 代理模式由 Gemini CLI 提供支持。
IntelliJ
- 点击工具窗口栏中的 spark Gemini。在系统提示您登录时,登录您的账号。
- 选择智能体标签页。
- 描述您希望智能体执行的任务。
当智能体按照步骤完成任务时,您可以选择查看并批准任何更改。
可选:如需自动批准更改,请依次选择设置 智能体选项,然后点击自动批准更改旁边的复选框。
为智能体模式配置工具
工具是一大类服务,代理可以使用这些工具来获取上下文信息,并在回答提示时执行操作。一些示例工具包括 grep 和文件读取或写入等内置工具、本地或远程 Model Context Protocol (MCP) 服务器及其可执行函数,或定制的服务实现。
控制内置工具的使用
智能体模式可以访问您的内置工具,例如文件搜索、文件读取、文件写入、终端命令等。
VS Code
您可以使用 coreTools
和 excludeTools
设置来控制 Gemini 在智能体模式下可以访问哪些工具。
coreTools
- 可让您指定要提供给模型的工具列表。您还可以为支持此功能的工具指定特定于命令的限制。例如,将以下内容添加到 Gemini 设置 JSON 中将仅允许执行 shell
ls -l
命令:"coreTools": ["ShellTool(ls -l)"]
。 excludeTools
- 可让您指定不想向模型提供的工具列表。您还可以为支持此功能的工具指定特定于命令的限制。例如,将以下内容添加到 Gemini 设置 JSON 中会阻止使用
rm -rf
命令:"excludeTools": ["ShellTool(rm -rf)"]
。
如果某个工具同时列在 excludeTools
和 coreTools
中,则该工具会被排除。
如需配置智能体模式下可用的内置工具,请执行以下操作:
- 打开位于
~/.gemini/settings.json
中的 Gemini 设置 JSON,其中~
是您的主目录。 如需将智能体工具的使用限制为已获批准的工具,请将以下行添加到 Gemini 设置 JSON 中:
"coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
将
TOOL_NAME_1
和TOOL_NAME_2
替换为您希望智能体能够访问的内置工具的名称。您可以根据需要列出任意数量的内置工具。 默认情况下,所有内置工具都可供智能体使用。
如需将智能体工具的使用限制为特定工具命令,请将以下行添加到 Gemini 设置 JSON 中:
"coreTools": ["TOOL_NAME(COMMAND)"]
替换以下内容:
TOOL_NAME
:内置工具的名称COMMAND
:您希望智能体能够使用的内置工具命令的名称。
如需将某个工具从智能体使用中排除,请将以下行添加到 Gemini 设置 JSON 中:
"excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
将
TOOL_NAME_1
和TOOL_NAME_2
替换为您要从智能体使用中排除的内置工具的名称。如需将某个工具命令从智能体使用中排除,请将以下行添加到 Gemini 设置 JSON 中:
"excludeTools": ["TOOL_NAME(COMMAND)"]
替换以下内容:
TOOL_NAME
:内置工具的名称COMMAND
:您要从智能体使用中排除的内置工具命令的名称。
如需详细了解 coreTools
和 excludeTools
配置设置,请参阅 Gemini CLI 配置文档。
IntelliJ
Gemini Code Assist for IntelliJ 或其他 JetBrains IDE 不支持此功能。
配置 MCP 服务器
VS Code
如需控制哪些服务器可在智能体模式下使用,请根据服务器文档将这些服务器添加到 Gemini 设置 JSON。
- 安装 MCP 服务器所需的所有依赖项。
- 打开位于
~/.gemini/settings.json
中的 Gemini 设置 JSON,其中~
是您的主目录。 根据服务器指令,将本地或远程 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"] } } }
打开命令面板,然后选择 Developer: Reload Window。
您配置的 MCP 服务器可供智能体在智能体模式下使用。
IntelliJ
如需控制哪些服务器可在智能体模式下使用,请将这些服务器添加到 mcp.json
文件中,并将其放置在 IDE 的配置目录中。
- 安装 MCP 服务器所需的所有依赖项。
- 在 IDE 的配置目录中创建一个
mcp.json
文件。 根据服务器指令,将本地或远程 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"] } } }
您配置的 MCP 服务器可供智能体在智能体模式下使用。
MCP 服务器身份验证
某些 MCP 服务器需要进行身份验证。请按照服务器文档创建任何所需的用户令牌,然后根据需要指定这些令牌。本地服务器可能接受环境变量;远程服务器可能接受标头中的凭据。
VS Code
对于需要身份验证的 MCP 服务器,您可以将其添加到 Gemini 设置 JSON 中。
以下示例展示了如何为 GitHub 本地和远程 MCP 服务器指定个人访问令牌:
{
"mcpServers": {
"github-remote": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ACCESS_TOKEN"
}
},
"github-local": {
"command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
}
}
}
}
其中,ACCESS_TOKEN
是用户的访问令牌。
IntelliJ
对于需要身份验证的 MCP 服务器,您可以将其添加到 mcp.json
文件中。
以下示例添加了 GitHub 本地服务器的个人访问令牌:
{
"mcpServers": {
"github-local": {
"command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
}
}
}
}
其中,ACCESS_TOKEN
是用户的访问令牌。
创建上下文文件
上下文可让代理针对给定的提示生成更优质的回答。上下文可以来自 IDE 中的文件、本地系统文件夹中的文件、工具回答和提示详细信息。如需了解详情,请参阅智能体模式上下文。
VS Code
在与您希望上下文应用到的范围相匹配的位置创建一个名为
GEMINI.md
的文件。下表详细介绍了不同范围的上下文文件的位置:范围 位置 您的所有项目 ~/.gemini/GEMINI.md
特定项目 您的工作目录或任何父级目录,直至项目根目录(由 .git
文件夹标识)或您的主目录。项目的特定组件、模块或子部分 工作目录的子目录。 代理的记忆系统是通过从多个位置加载上下文文件来创建的。来自更具体的文件(例如特定组件或模块的文件)的上下文会替换或补充来自更通用的上下文文件(例如
~/.gemini/GEMINI.md
中的全局上下文文件)的内容。以 Markdown 格式撰写您希望智能体使用的任何规则、样式指南信息或上下文,然后保存该文件。如需了解详情,请参阅 GitHub 上的示例上下文文件。
智能体会包含上下文文件中的信息以及您发送给它的任何提示。
IntelliJ
在项目根目录下创建一个名为
GEMINI.md
或AGENT.md
的文件。以 Markdown 格式撰写您希望智能体使用的任何规则、样式指南信息或上下文,然后保存该文件。
智能体会包含上下文文件中的信息以及您发送给它的任何提示。您还可以通过使用 @
FILENAME
语法手动包含文件来添加上下文,其中 FILENAME
是包含要包括的上下文信息的文件名。
使用命令
借助斜杠 /
命令,您可以快速运行类似于终端窗口中的命令。
VS Code
您可以在智能体模式下使用以下 Gemini CLI 命令:
/tools
:显示智能体模式会话中可用的工具列表。/mcp
:列出已配置的 Model Context Protocol (MCP) 服务器、其连接状态、服务器详细信息和可用工具。
如需详细了解 Gemini CLI 命令,请参阅 Gemini CLI 命令。请注意,并非所有 Gemini CLI 命令都可在智能体模式下使用。
IntelliJ
Gemini Code Assist for IntelliJ 或其他 JetBrains IDE 不支持此功能。
始终允许智能体操作
您可以自动允许所有智能体操作。
如需自动允许所有智能体操作,请执行以下操作:
VS Code
使用 yolo 模式自动允许所有智能体操作。YOLO 模式只能在可信工作区中使用。
如需配置 yolo 模式,请执行以下操作:
打开 VS Code 用户设置 JSON 文件:
- 打开命令面板 (
ctrl
/command
+Shift
+P
)。 - 选择 Preferences: Open User Settings (JSON)。
- 打开命令面板 (
将以下内容添加到 VS Code 用户设置 JSON 文件中:
//other settings... "geminicodeassist.agentYoloMode": true, //other settings...
打开命令面板,然后选择 Developer: Reload Window。
代理模式使用 yolo 模式,并且在您向其发送提示时,不会在执行操作之前征得您的许可。使用受限工作区时,无论此设置如何,代理都会在采取行动之前提示用户。
IntelliJ
如需自动批准更改,请在 Gemini 对话智能体标签页中,依次选择 设置 智能体选项,然后点击自动批准更改旁边的复选框。
智能体模式会自动批准所有请求,并且在您向其发送提示时,不会在执行操作之前征得您的许可。
其他提示
尝试使用以下提示,并替换成您自己的信息:
- "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]."