Skip to content

使用 GEMINI.md 文件提供上下文

上下文文件(默认名称为 GEMINI.md)是为 Gemini 模型提供指令上下文的强大功能。你可以使用这些文件提供项目特定的指令、定义角色或提供编码风格指南,使 AI 的响应更准确并针对你的需求进行定制。

你可以在上下文文件中定义一次指令,而不是在每个提示中重复它们。

理解上下文层次结构

CLI 使用分层系统来获取上下文。它从多个位置加载各种上下文文件,连接所有找到的文件的内容,并在每个提示中将它们发送给模型。CLI 按以下顺序加载文件:

  1. 全局上下文文件:

    • 位置: ~/.gemini/GEMINI.md(在你的用户主目录中)。
    • 范围: 为你的所有项目提供默认指令。
  2. 项目根目录和祖先上下文文件:

    • 位置: CLI 在当前工作目录中搜索 GEMINI.md 文件,然后在每个父目录中搜索,直到项目根目录(由 .git 文件夹标识)。
    • 范围: 提供与整个项目相关的上下文。
  3. 子目录上下文文件:

    • 位置: CLI 还会扫描当前工作目录下子目录中的 GEMINI.md 文件。它遵守 .gitignore.geminiignore 中的规则。
    • 范围: 让你为特定组件或模块编写高度具体的指令。

CLI 页脚显示已加载上下文文件的数量,这为你提供了活动指令上下文的快速视觉提示。

示例 GEMINI.md 文件

以下是你可以在 TypeScript 项目根目录的 GEMINI.md 文件中包含的内容示例:

markdown
# 项目:我的 TypeScript 库

## 一般指令

- 当你生成新的 TypeScript 代码时,遵循现有的编码风格。
- 确保所有新函数和类都有 JSDoc 注释。
- 在适当的地方优先使用函数式编程范式。

## 编码风格

- 使用 2 个空格进行缩进。
- 接口名称以 `I` 为前缀(例如 `IUserService`)。
- 始终使用严格相等(`===``!==`)。

使用 /memory 命令管理上下文

你可以使用 /memory 命令与加载的上下文文件交互。

  • /memory show:显示当前分层记忆的完整连接内容。这让你可以检查提供给模型的确切指令上下文。
  • /memory refresh:强制重新扫描并从所有配置位置重新加载所有 GEMINI.md 文件。
  • /memory add <text>:将你的文本追加到全局 ~/.gemini/GEMINI.md 文件。这让你可以即时添加持久记忆。

使用导入模块化上下文

你可以使用 @file.md 语法从其他文件导入内容,将大型 GEMINI.md 文件分解为更小、更易管理的组件。此功能支持相对路径和绝对路径。

带导入的示例 GEMINI.md

markdown
# 主 GEMINI.md 文件

这是主要内容。

@./components/instructions.md

更多内容在这里。

@../shared/style-guide.md

有关更多详情,请参阅记忆导入处理器文档。

自定义上下文文件名

虽然 GEMINI.md 是默认文件名,但你可以在 settings.json 文件中配置它。要指定不同的名称或名称列表,请使用 context.fileName 属性。

示例 settings.json

json
{
  "context": {
    "fileName": ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]
  }
}

aicodex 文档网站