使用 AGENTS.md 文件自定义 Gemini

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

如需开始使用,请执行以下步骤:

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

  2. 添加指令。使用 Markdown 编写指令。为了提高可读性,请考虑为不同的规则使用标题和项目符号。 请参阅示例说明

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

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

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

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

示例指令

您可以使用 AGENTS.md 文件向智能体提供指令。以下是一些示例,但您提供的指令应特定于您的项目。

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

模块化 AGENTS.md 文件

您可以将大型 AGENTS.md 文件分解为较小的文件,以便在不同的上下文中重复使用:

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

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

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

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

# My AGENTS.md

You are an experienced Android app developer.

@./get-started.md

## Coding style {:#coding-style}

@./shared/style-guidance.md

AGENTS.md 文件的工作原理

Gemini 会自动扫描当前目录和父目录以查找 AGENTS.md 文件,并将其内容作为前言添加到每个提示的开头。如果您在提交查询时没有打开任何文件,则默认情况下会包含项目根目录中的 AGENTS.md 文件(如果有)。

AGENTS.md 文件与规则有何区别?

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

AGENTS.md 文件与技能有何区别?

技能代表按需专业知识,当您的请求与技能说明匹配时,系统会调用这些技能;而 AGENTS.md 中的内容则会添加到每个提示的开头。我们建议您将技能用于特定任务,并将 AGENTS.md 文件用于影响智能体的一般行为。如需详细了解技能,请参阅 Android 技能概览