使用 GEMINI.md 提供上下文

上下文文件(默认命名为 GEMINI.md)是向 Gemini 模型提供指令性信息的关键能力。你可以在文件中编写项目说明、Persona 设定或编码规范,使 AI 的回答更精准、更契合需求。

无需在每次 Prompt 中重复指令,只需在上下文文件中定义一次即可。

理解上下文层级

CLI 会按照层级系统加载上下文:它会在多个位置查找 GEMINI.md,将所有找到的文件内容拼接后,在每次请求时一同发送给模型。加载顺序如下:

  1. 全局上下文文件

    • 位置: ~/.gemini/GEMINI.md
    • 作用域: 为所有项目提供默认指令。
  2. 项目根目录及其祖先目录

    • 位置: 从当前工作目录开始,逐级向上查找直至项目根目录(通过 .git 识别)。
    • 作用域: 覆盖整个项目的通用指令。
  3. 子目录上下文

    • 位置: 在当前目录的子目录中继续查找 GEMINI.md,遵循 .gitignore.geminiignore 规则。
    • 作用域: 针对具体组件或模块提供更细致的说明。

CLI 页脚会显示已加载的上下文文件数量,直观提示当前启用的指令规模。

GEMINI.md 示例

以下示例展示了 TypeScript 项目根目录下 GEMINI.md 的写法:

# Project: My TypeScript Library

## 通用指引

- 生成新的 TypeScript 代码时请遵循既有编码风格。
- 所有新增函数与类需要补充 JSDoc 注释。
- 在合适场景下优先采用函数式编程范式。

## 代码风格

- 使用两个空格缩进。
- 接口名称以 `I` 前缀(如 `IUserService`)。
- 始终使用严格等于/不等于(`===``!==`)。

通过 /memory 管理上下文

使用 /memory 命令可以查看与维护已加载的上下文文件:

  • /memory show:显示当前层级记忆的完整内容,方便检查模型看到的指令。
  • /memory refresh:强制重新扫描并加载所有 GEMINI.md
  • /memory add <text>:将文本追加到全局 ~/.gemini/GEMINI.md,随时添加持久记忆。

使用导入语法模块化上下文

可通过 @file.md 语法将大型 GEMINI.md 拆分成若干小文件,支持相对与绝对路径。

示例:

# Main GEMINI.md file

This is the main content.

@./components/instructions.md

More content here.

@../shared/style-guide.md

更多细节请参阅 Memory Import Processor

自定义上下文文件名

默认文件名为 GEMINI.md,可在 settings.jsoncontext.fileName 指定其他名称或名称列表。

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