使用 AGENT.md 文件自定义 Gemini

使用一个或多个 AGENT.md 文件为 Android Studio 中的 Gemini 提供自定义指令,让其遵循这些指令。AGENT.md 文件与代码库中的其他文件放在一起,因此您可以轻松地将它们签入版本控制系统 (VCS),并与整个团队分享项目专用说明、编码风格规则和其他指南。

要开始,请执行以下步骤:

  1. 在项目文件系统中的任意位置创建一个 AGENT.md 文件。当您提交查询时,Gemini 会扫描当前目录和所有父级目录中的 AGENT.md 文件。如需了解详情,请参阅 AGENT.md 文件的工作原理

  2. 添加说明。使用 Markdown 编写说明。为了便于阅读,请考虑使用标题和项目符号来区分不同的规则。 请参阅示例说明

  3. 保存文件并将其提交到 VCS,以便与团队共享。

AGENT.md 文件作为上下文进行管理

您可以使用聊天面板中的上下文抽屉式导航栏,将 AGENT.md 文件添加为特定查询的上下文,或移除这些文件。AGENT.md 文件选项包含当前目录及其父目录中的所有 AGENT.md 文件。

将 AGENT.md 文件作为上下文进行管理
图 1.AGENT.md 文件作为上下文进行管理。

示例说明

您可以使用 AGENT.md 文件向代理提供指令。以下是一些示例,但您提供的说明应针对您的项目。

  • “主要 activity 为 /path/to/MainActivity.kt。”
  • “支持在屏幕之间导航的代码是 path/to/navigation/UiNavigation.kt
  • “处理 HTTP 请求的代码位于 <path>。”
  • 项目架构
    • “将所有业务逻辑都放在 ViewModel 中。”
    • “始终遵循官方架构建议,包括使用分层架构。使用单向数据流 (UDF)、ViewModel、生命周期感知型界面状态收集方式和其他建议。”
  • 首选库:“使用 <库名称> 库进行导航。”
  • 为常见 API 服务或内部术语定义占位名称:“主要后端服务称为‘PhotoSift-API’。”
  • 公司样式指南:“所有新的界面组件都必须使用 Jetpack Compose 构建。不建议使用基于 XML 的布局。”

AGENT.md 文件进行模块化处理

您可以将大型 AGENT.md 文件拆分为可在不同情境中重复使用的小文件:

  1. 将一组说明分离出来,并将其保存在另一个 Markdown 文件中,例如 style-guidance.md

  2. AGENT.md 文件中引用较小的 Markdown 文件,方法是使用 @ 符号,后跟要导入的文件的路径。支持以下路径格式:

    • 相对路径:
      • @./file.md - 从同一目录导入
      • @../file.md - 从父目录导入
      • @./subdirectory/file.md - 从子目录导入
    • 绝对路径:@/absolute/path/to/file.md

例如,以下 AGENT.md 文件引用了另外两个指令文件:

# My AGENT.md

You are an experienced Android app developer.

@./get-started.md

## Coding style

@./shared/style-guidance.md

AGENT.md 文件的工作原理

Gemini 会自动扫描当前目录和父目录中的 AGENT.md 文件,并将这些文件的内容添加到每个提示的开头作为序言。如果您在提交查询时未打开任何文件,系统会默认包含项目根目录中的 AGENT.md 文件(如果有)。

AGENT.md 文件和规则有何区别?

您还可以通过规则定义适用于所有提示的指令和偏好设置。不过,规则是在 IntelliJ 文件 /.idea/project.prompts.xml 中定义的,而 AGENT.md 文件会保存在源代码旁边,并且与 IDE 无关。如果主要目的是与团队分享说明,我们建议使用 AGENT.md 文件。