主题
使用 GEMINI.md 文件提供上下文
上下文文件(默认名称为 GEMINI.md)是为 Gemini 模型提供指令上下文的强大功能。你可以使用这些文件提供项目特定的指令、定义角色或提供编码风格指南,使 AI 的响应更准确并针对你的需求进行定制。
你可以在上下文文件中定义一次指令,而不是在每个提示中重复它们。
理解上下文层次结构
CLI 使用分层系统来获取上下文。它从多个位置加载各种上下文文件,连接所有找到的文件的内容,并在每个提示中将它们发送给模型。CLI 按以下顺序加载文件:
全局上下文文件:
- 位置:
~/.gemini/GEMINI.md(在你的用户主目录中)。 - 范围: 为你的所有项目提供默认指令。
- 位置:
项目根目录和祖先上下文文件:
- 位置: CLI 在当前工作目录中搜索
GEMINI.md文件,然后在每个父目录中搜索,直到项目根目录(由.git文件夹标识)。 - 范围: 提供与整个项目相关的上下文。
- 位置: CLI 在当前工作目录中搜索
子目录上下文文件:
- 位置: CLI 还会扫描当前工作目录下子目录中的
GEMINI.md文件。它遵守.gitignore和.geminiignore中的规则。 - 范围: 让你为特定组件或模块编写高度具体的指令。
- 位置: CLI 还会扫描当前工作目录下子目录中的
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"]
}
}