使用 GEMINI.md 提供上下文
上下文文件(默认命名为 GEMINI.md)是向 Gemini 模型提供指令性信息的关键能力。你可以在文件中编写项目说明、Persona 设定或编码规范,使 AI 的回答更精准、更契合需求。
无需在每次 Prompt 中重复指令,只需在上下文文件中定义一次即可。
理解上下文层级
CLI 会按照层级系统加载上下文:它会在多个位置查找 GEMINI.md,将所有找到的文件内容拼接后,在每次请求时一同发送给模型。加载顺序如下:
-
全局上下文文件
- 位置:
~/.gemini/GEMINI.md - 作用域: 为所有项目提供默认指令。
- 位置:
-
项目根目录及其祖先目录
- 位置: 从当前工作目录开始,逐级向上查找直至项目根目录(通过
.git识别)。 - 作用域: 覆盖整个项目的通用指令。
- 位置: 从当前工作目录开始,逐级向上查找直至项目根目录(通过
-
子目录上下文
- 位置: 在当前目录的子目录中继续查找
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.json 的 context.fileName 指定其他名称或名称列表。
{
"context": {
"fileName": ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]
}
}