如何使用 AI 智能体技能(通过 Gemini CLI 和适用于 Firebase 的智能体技能)

1. 简介

Agent Skills 实验室封面照片

在本实验中,您将学习如何创建 代理技能,以便为 LLM 提供对定制知识和工作流的访问权限。您将创建本地技能,该技能可从 Gemini CLI 访问。

您将执行的操作

  • 为您喜欢的事物创建自己的代理技能。
  • 使用 Gemini CLI 查询您的技能。
  • 安装 Firebase 的官方代理技能,并使用它们构建和部署应用。

学习内容

  • 如何构建技能。
  • 如何编写 SKILL.md 文件。
  • 如何将本地技能与 Gemini CLI 搭配使用。

2. 项目设置

  1. 如果您还没有 Google 账号,则必须先创建一个 Google 账号
    • 请使用个人账号,而不是工作或学校账号。工作和学校账号可能会受到限制,导致您无法启用本实验所需的 API。
  2. 登录 Google Cloud 控制台
  3. 在 Cloud 控制台中启用结算功能
    • 完成本实验的 Cloud 资源费用应低于 1 美元。
    • 您可以按照本实验末尾的步骤删除资源,以避免产生更多费用。
    • 新用户有资格参与 300 美元免费试用计划
  4. 创建一个新项目,或选择重复使用现有项目。
    • 如果您看到有关项目配额的错误,请重复使用现有项目或删除现有项目以创建新项目。

3. 打开 Cloud Shell Editor

  1. 点击此链接可直接前往 Cloud Shell Editor
  2. 如果系统在今天任何时间提示您授权,请点击授权以继续。点击以授权 Cloud Shell
  3. 如果终端未显示在屏幕底部,请打开它:
    • 点击查看
    • 点击终端在 Cloud Shell 编辑器中打开新终端
  4. 在终端中,使用以下命令设置项目:
    • 格式:
      gcloud config set project [PROJECT_ID]
      
    • 示例:
      gcloud config set project lab-project-id-example
      
    • 如果您不记得项目 ID,可以执行以下操作:
      • 您可以使用以下命令列出所有项目 ID:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      在 Cloud Shell 编辑器终端中设置项目 ID
  5. 您应该会看到以下消息:
    Updated property [core/project].
    
    如果您看到 WARNING 并被问到 Do you want to continue (Y/n)?,则可能是输入的项目 ID 不正确。按 n,按 Enter,然后尝试再次运行 gcloud config set project 命令。

4. 创建自定义技能

代理技能是包含至少一个 SKILL.md 文件的目录,该文件为 AI 智能体提供说明和知识。在本部分中,您将创建一个技能,向 Gemini CLI 介绍您喜欢的事物。

  1. 为此实验创建一个目录,然后进入该目录:
    mkdir ~/agent-skills-lab && cd ~/agent-skills-lab
    
  2. 为您的项目技能创建一个目录:
    mkdir -p ~/agent-skills-lab/.agents/skills/my-favorite-things
    
  3. 为您的技能创建并打开新的 SKILL.md 文件:
    cloudshell edit ~/agent-skills-lab/.agents/skills/my-favorite-things/SKILL.md
    
    cloudshell edit 命令会在终端上方的编辑器中打开 SKILL.md 文件。
  4. 将以下内容添加到 SKILL.md 文件中:
    ---
    name: my-favorite-things
    description: Provides personal information about my favorite color, food, and programming language. Use this skill when the user asks questions about my personal preferences or favorite things.
    ---
    
    # Knowledge
    
    - **Favorite Color:** Blue
    - **Favorite Food:** Pizza
    - **Favorite Programming Language:** Python
    
    If asked about one of my favorite things, please respond with the information provided above.
    

仅使用 SKILL.md 文件,您就创建了第一个技能!现在可以在 Gemini CLI 中使用此技能了。

5. 在 Gemini CLI 中使用您的技能

您已成功创建技能,由于该技能位于 .agents/skills 目录中,因此 Gemini CLI 已经可以发现它。

  1. 启动 Gemini CLI:
    gemini
    
    您应该会看到 Gemini CLI 识别出新技能。您可能需要按 Enter 键接受一些默认设置。
  1. 让 Gemini 列出其上下文中可用的技能
    /skills
    
    您应该会在可用技能列表中看到 my-favorite-things
  2. 询问 Gemini 您最喜欢的颜色:
    What is my favorite color?
    
    Gemini CLI 应使用 my-favorite-things 技能来回答您的问题。如果系统提示,请允许 Gemini CLI 使用该技能。

输出应显示 Gemini CLI 使用了您的技能,并回答了“蓝色”或“我最喜欢的颜色是蓝色”之类的内容。

您已完成!您已成功创建技能并使用 Gemini CLI 对其进行了测试。

准备好结束会话时,请键入 /quit,然后按 Enter 键退出 Gemini CLI。

6. (可选)构建应用并将其部署到 Firebase Hosting

除了创建自己的技能外,您还可以安装其他人创建的技能。这演示了如何使用可移植技能 \- 知识、说明和工作流的独立模块,这些模块可以轻松共享和重复使用。

Firebase 的代理技能就是这些可移植模块的一个很好的示例。它们旨在帮助 AI 助理了解 Firebase 最佳实践,并以更高的准确性和更低的 token 成本执行复杂任务。

现在,使用 Firebase 的代理技能创建一个“待办事项”Web 应用,其中包含用户身份验证和数据库,并将其部署到 Firebase Hosting。

设置项目

  1. 如果您仍在 Gemini CLI 中,请键入 /quit 以退出。
  2. 为您的项目创建一个新目录,然后进入该目录:
    mkdir ~/todo-app && cd ~/todo-app
    
  3. 使用您的 Google 账号登录 Firebase。由于您位于 Cloud Shell 中,因此请使用 --no-localhost 标志:
    firebase login --no-localhost
    
    1. 与 CLI 提示互动
      • 当系统询问 Enable Gemini in Firebase features? 时,键入 Y(表示“是”),然后按 Enter 键。
      • 当系统询问 Allow Firebase to collect CLI and Emulator Suite usage and error reporting information? 时,键入 Y(表示“是”),然后按 Enter 键。
    2. 在浏览器中授权
      • 您会在终端中看到一个网址。点击该链接 (如果无法点击,请在 Cloud Shell 中突出显示该网址以复制它,然后将其粘贴到浏览器中),以便在新浏览器标签页中打开登录页面。
      • 第 1 步(共 3 步)(确认命令):点击 Yes, I just ran this command
      • 第 2 步(共 3 步)(确认会话 ID):确保会话 ID与终端中显示的内容一致,然后点击Yes, this is my session ID
      • 第 3 步(共 3 步)(复制代码):点击复制 以将授权代码复制到剪贴板。
    3. 完成登录
      • 返回 Cloud Shell 终端,然后在 ? Enter authorization code: 提示符处粘贴授权代码
      • Enter 键。
    您应该会看到一条成功消息:✔ Success! Logged in as

安装 Firebase 的代理技能

创建项目目录后,您应在其中安装 Firebase 的代理技能。

您可以使用终端中的 技能 CLI 安装 Firebase 的代理技能:

npx skills add firebase/agent-skills

安装期间,系统会提示您选择要安装的技能。使用方向键 浏览列表,然后使用空格键 选择这些技能。

  • firebase-basics
  • firebase-hosting-basics
  • firebase-auth-basics
  • firebase-firestore-enterprise-native-mode

选择四项 Firebase 技能

对于后续提示,您可以安全地按 Enter 键接受默认值。

此命令将下载并安装包括 firebase-basicsfirebase-hosting-basics 在内的技能,使它们可以在 Gemini CLI 中与您的 my-favorite-things 技能一起使用。

如需详细了解 Firebase 的代理技能,请参阅 可用技能

创建和部署基本 Web 应用

  1. 为您的项目启用所需的 API:
    gcloud services enable \
      cloudresourcemanager.googleapis.com \
      firebase.googleapis.com
    
  2. 在当前的 Google Cloud 项目中启用 Firebase:
    firebase projects:addfirebase ${GOOGLE_CLOUD_PROJECT}
    
  3. 启动 Gemini CLI:
    gemini
    
  4. 让 Gemini 生成基本的 index.html
    Generate an index.html file with the content "Hello Firebase Hosting" and
    deploy the application to Firebase Hosting using the current Google Cloud
    Project.
    
    Gemini 会要求创建 index.html 并执行 firebase。按 Enter 键以允许其执行此操作。Gemini CLI 应使用 Firebase 的代理技能来创建和部署您的网站。根据需要批准代理。

部署完成后,它应提供 Web 应用的网址。使用 ctrl+click (Windows/Linux) 或 cmd+click (Mac) 在 Cloud Shell Editor 终端中打开链接。访问已部署应用的网址!

添加 Firebase 身份验证

  1. 如果 Gemini CLI 尚未启动,请启动它:
    gemini
    
    Gemini 可能会问“您信任此文件夹吗?”之类的问题 按 Enter 键接受默认值。
  2. 现在,让 Gemini 添加 Google 登录:
    Generate HTML, CSS, and Javascript for a single page application.
    It should use Google Sign-in with Firebase Authentication.
    A user should be able to sign in with their Google Account.
    Deploy when you are done and give the URL to the user.
    
    Gemini 可能会要求创建或更新 index.htmlstyle.cssscript.js 等文件。允许其执行此操作。Gemini 可能会要求您在 Firebase 控制台中执行一些操作。如果您要求 CLI 尝试执行这些操作,它能够完成其中的大部分操作,但如果您的 Cloud Shell 实例安装了旧版 Firebase CLI,则可能需要手动完成这些步骤(例如启用 Google OAuth)。

部署完成后,它应提供 Web 应用的网址。使用 ctrl+click (Windows/Linux) 或 cmd+click (Mac) 在 Cloud Shell Editor 终端中打开链接。访问已部署应用的网址!

如需查看最新更改,您可能需要使用 ctrl+shift+R (Windows/Linux) 或 cmd+shift+R (Mac) 执行“硬刷新”。

添加 Cloud Firestore

  1. 如果 Gemini CLI 尚未启动,请启动它:
    gemini
    
    Gemini 可能会问“您信任此文件夹吗?”之类的问题 按 Enter 键接受默认值。
  2. 让 Gemini 添加 Firestore 以保存任务:
    Update the application to save tasks in Cloud Firestore for the signed-in user.
    A user should be able to add new tasks and see a list of their tasks.
    Deploy when you are done and give the URL to the user.
    
    Gemini 将更新文件。允许其执行此操作。

部署完成后,它应提供 Web 应用的网址。使用 ctrl+click (Windows/Linux) 或 cmd+click (Mac) 在 Cloud Shell Editor 终端中打开链接。访问已部署应用的网址!

如需查看最新更改,您可能需要使用 ctrl+shift+R (Windows/Linux) 或 cmd+shift+R (Mac) 执行“硬刷新”。

如果您的应用未按预期运行,请继续使用 Gemini CLI,以获得您期望的功能。示例:shell Hide the task form when the user is logged out. Update the security rules so the user can see their TODOs.

继续尝试本实验,以添加您希望在新 Firebase 应用中看到的功能。

7. 总结

恭喜!您已成功创建技能,并学习了如何为 Gemini CLI 安装其他技能。

(可选)清理

如果您想进行清理,可以删除云项目,以避免产生额外费用。

如果您愿意,可以删除项目:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

您还可以从 Cloud Shell 磁盘中删除不必要的资源,以释放空间。

  1. 删除实验目录(这将移除技能和应用):
    rm -rf ~/agent-skills-lab
    
  2. 删除“待办事项”应用目录(如果您在外部创建了该目录):
    rm -rf ~/todo-app
    

如果您需要将 Cloud Shell 重置为默认状态,可以参阅官方文档,了解如何安全地执行此操作。