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"]
  }
}

基于 MIT 许可证发布