使用 Gemini CLI Conductor 规划和构建应用

1. 简介

在此 Codel0ab 中,您将学习如何使用 Gemini CLI Conductor 扩展程序 规划和构建软件应用。您将首先从头开始构建“绿地”应用。然后,您将把它视为“棕地”项目,对其进行迭代以添加身份验证和存储功能。

您将执行的操作

  • 安装 Gemini CLIConductor 扩展程序
  • 使用 Conductor 的规划和实现功能从头开始构建“Picker Wheel”Web 应用
  • 使用 Firebase 添加身份验证和存储功能,为应用添加个性化设置

学习内容

  • 如何使用 Conductor 扩展程序规划、实现和审核“绿地”应用
  • 如何使用 Conductor 扩展程序为“棕地”应用添加功能

所需条件

  • 网络浏览器,例如 Chrome
  • 启用了结算功能的 Google Cloud 项目
  • 已安装 Node.js(建议使用 18+ 版本)
  • 本地代码编辑器,例如 Visual Studio Code

2. 准备工作

创建 Google Cloud 项目

  1. Google Cloud 控制台 的项目选择器页面上,选择或创建一个 Google Cloud 项目
  2. 确保您的云项目已启用结算功能。了解如何检查项目是否已启用结算功能

启动 Cloud Shell

Cloud Shell 是在 Google Cloud 中运行的一个命令行环境,其中预加载了必要的工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell
  2. 连接到 Cloud Shell 后,验证您的身份验证:
    gcloud auth list
    
  3. 确认您的项目已配置:
    gcloud config get project
    
  4. 如果您的项目未按预期设置,请进行设置:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

启用 API

在 Google Cloud 项目中启用 Firebase Management API。

gcloud services enable firebase.googleapis.com

将 Firebase 添加到您的项目

Firebase CLI 预安装在 Cloud Shell 中。在 Cloud Shell 中,使用拥有 Google Cloud 项目访问权限的同一 Google 账号登录。如果您在本地工作,请按照说明安装 Firebase CLI。

firebase login

运行以下命令,将 Firebase 添加到您的 Google Cloud 项目:

firebase projects:addfirebase

如果您是首次运行 firebase CLI,请回答系统提出的任何问题。

退出 Cloud Shell

您可以关闭 Cloud Shell 窗口。在下一部分中,我们将配置您的本地环境。

3. 在本地安装 Gemini CLI 和 Conductor

在此步骤中,您将使用本地代码编辑器和终端安装 Gemini CLI 和 Conductor 扩展程序,从而准备好本地开发环境

安装 Gemini CLI

  1. 使用 npm 全局安装最新版本的 Gemini CLI
    npm install -g @google/gemini-cli
    
  2. 重启终端 ,以便将 gemini 添加到您的 PATH。
  3. 验证安装 是否安装了 最新版本
    gemini --version
    
  4. 创建并切换到新的项目目录:在后面的部分中,我们将在 picker-wheel 目录中创建一个项目。现在创建该目录并切换到此目录:
    mkdir picker-wheel
    cd picker-wheel
    
  5. 进行身份验证:
    • 启动 Gemini CLI。
      gemini
      
    • 当系统询问“您是否信任此文件夹中的文件?”时,选择信任文件夹 (picker-wheel)
    • 当系统询问“您希望如何为此项目进行身份验证?”时,选择 Vertex AI 。按照 身份验证指南 获取 Google Cloud API 密钥并设置 GOOGLE_API_KEY 环境变量。花点时间了解不同的 使用层级 及其对应的 API 速率限制
  6. 退出 Gemini CLI:在 CLI 终端中输入 /quit,以结束当前的 Gemini CLI 会话,然后再继续。

安装 Conductor 扩展程序

Conductor 是 Google 构建的开源 Gemini CLI 扩展程序,可实现上下文驱动的开发功能,例如规划和实现跟踪。

  1. 安装扩展程序
    gemini extensions install https://github.com/gemini-cli-extensions/conductor
    
  2. 验证安装
    • 启动 Gemini CLI。
      gemini
      
    • 输入 /conductor,您将看到命令列表,例如 setupnewTrackimplement 等。
  3. 退出 Gemini CLI:在 CLI 终端中输入 /quit,以结束当前的 Gemini CLI 会话,然后再继续。

4. 绿地开发:Picker Wheel

现在,您的环境已设置完毕,您将从头开始构建一个新应用。您将创建一个“Picker Wheel” - 一个轻量级 Web 应用,它会旋转以选择随机选项。

设置产品上下文

  1. 确认您位于上一部分中创建的 picker-wheel 目录中
    pwd
    
  2. 启动 Gemini CLI: 从项目目录启动新的 Gemini CLI 会话。
    gemini
    
  3. 初始化 Conductor:运行 setup 命令来搭建项目并设置 Conductor 环境。
    /conductor:setup
    
  4. 按照互动式提示操作:您看到的互动式提示与这些示例并不完全一致。专注于更简单的设计,以便熟悉 Conductor 工作流。
    • 产品目标:一个 Web 应用,用于显示可配置的旋转轮,以从列表中选择随机项。
      • 目标受众群体 → 一般公众
      • 互动 → 点按/点击以旋转
      • 自定义 → 基本
      • 平台 → 桌面设备优先
    • 产品准则:自动生成。
    • 技术栈
      • 语言 → TypeScript/JavaScript - 非常适合全栈 Web
      • 前端 → Vue.js - 直观的 Web 界面
      • 后端 → Express.js - 快速 Node 后端
      • 数据库 → 无 - 无需数据库
    • 工作流:标准。
    • 产品要求
      • 用户故事 → 可自定义的选项、清晰的获胜者显示
      • 主要功能 → 可编辑的选项列表、随机颜色
      • 限制 → 仅限客户端、高性能
      • 非功能性 → 高测试覆盖率、TypeScript 和 Vue.js、响应式设计
    Conductor 将在 conductor/ 目录中生成上下文文件。

创建新轨道

Conductor 中的“轨道”表示一项功能或一个工作单元。

  1. 使用 /conductor:newTrack 启动新轨道 。Conductor 可能会根据产品上下文提出初始轨道。或者,您可以自行提出轨道,也可以让 Conductor 建议轨道。
  2. 查看生成的计划:Conductor 将在 conductor/tracks/{track-id}/ 中生成 index.mdspec.mdplan.md。请花点时间阅读这些文件。如果一切正常,Conductor 会提示您保存并提交初始设置文件。

实现轨道

  1. 开始实现
    /conductor:implement
    
    Conductor 现在将按照计划为项目编写代码。
  2. 验证应用:在实现阶段,Conductor 会提示您手动测试应用。例如,它会要求您打开本地 Web 服务器,在浏览器中预览应用,并验证更改。实现完成后,您应该会看到一个可正常运行的 Picker Wheel。Picker Wheel 应用
  3. 查看实现:作为最后一步,您可以让 Conductor 查看实现。它应该查看源代码、同步项目文档并归档轨道。
    /conductor:review
    

5. 棕地迭代:添加个性化设置

现在,您将转向“棕地”开发。您将改进上一部分中的 Picker Wheel Web 应用,以便登录用户可以保存和恢复其 Picker Wheel 配置。

创建个性化设置轨道

  1. 在以下“棕地”示例中,我们将使用 Firebase 进行身份验证和存储。安装 Gemini CLI Firebase 扩展程序,以便 Conductor 可以使用它。
    gemini extensions install https://github.com/firebase/agent-skills
    
  2. 启动 Gemini CLI: 从项目目录启动新的 Gemini CLI 会话。
    gemini
    
  3. 启动新轨道:启动新轨道。
    /conductor:newTrack "I want users to be able to log in to their accounts and
    save their picker wheel configurations."
    
  4. 按照互动式提示操作:您看到的互动式提示与这些示例并不完全一致。专注于更简单的设计,以便熟悉 Conductor 工作流。
    • 轨道目标:
      • 授权提供方 → Firebase Auth
      • 已保存的配置 → 轮盘选项
      • 数据存储 → Firestore
      • Firestore 登录界面 → 模态叠加层
    Conductor 将在 conductor/tracks/{track-id} 中为新轨道生成上下文文件。
  5. 查看生成的计划:花点时间阅读 conductor/tracks/{track-id}/ 中的 index.mdspec.mdplan.md
  6. 实现:如果一切正常,您可以开始实现。
    /conductor:implement
    
  7. 验证:重新加载应用。您应该会看到更新后的应用。 带登录功能的选择轮

以下是黄金代码,供您参考实现。您必须在 .firebaserc 中提供 Firebase 项目,并在 firebase.ts 中提供 Firebase 配置,才能正确启动应用。

6. 清理

为避免系统向您的 Google Cloud 账号持续收取费用,请删除在此 Codelab 中创建的资源。

删除 Firebase 项目(和 Google Cloud 项目)

最简单的清理方法是完全删除项目。

  1. Google Cloud 控制台 中,选择您创建的项目。
  2. 点击删除

或者,如果您想保留项目但删除资源,请执行以下操作:

  1. 删除 Firestore 数据库:前往 Firebase 控制台 > Firestore 并删除数据库。
  2. 删除身份验证:前往 Firebase 控制台 > 身份验证登录方法,停用 Google

7. 恭喜

恭喜!您已成功使用 Gemini CLI Conductor 扩展程序从头开始构建 Web 应用,然后使用身份验证和数据库集成等复杂功能对其进行迭代。

后续步骤