1. 简介

在本实验中,您将学习如何创建代理技能,以便为 LLM 提供对定制知识和工作流的访问权限。您将创建一个可从 Gemini CLI 访问的本地技能。
您将执行的操作
- 为自己喜欢的事物创建专属的代理技能。
- 使用 Gemini CLI 查询技能。
- 安装 Firebase 的官方代理技能,并使用这些技能构建和部署应用。
学习内容
- 如何构建技能。
- 如何编写
SKILL.md文件。 - 如何将本地技能与 Gemini CLI 搭配使用。
2. 项目设置
- 如果您还没有 Google 账号,则必须先创建一个 Google 账号。
- 请改用个人账号,而非工作账号或学校账号。工作账号和学校账号可能存在限制,导致您无法启用本实验所需的 API。
- 登录 Google Cloud 控制台。
- 在 Cloud 控制台中启用结算功能。
- 完成本实验的 Cloud 资源费用应低于 1 美元。
- 您可以按照本实验末尾的步骤删除资源,以避免产生更多费用。
- 新用户符合参与 $300 USD 免费试用计划的条件。
- 创建新项目或选择重复使用现有项目。
- 如果您看到有关项目配额的错误,请重复使用现有项目或删除现有项目以创建新项目。
3. 打开 Cloud Shell Editor
- 点击此链接可直接前往 Cloud Shell 编辑器
- 如果系统在今天任何时间提示您进行授权,请点击授权继续。

- 如果终端未显示在屏幕底部,请打开它:
- 点击查看
- 点击终端

- 在终端中,使用以下命令设置项目:
- 格式:
gcloud config set project [PROJECT_ID] - 示例:
gcloud config set project lab-project-id-example - 如果您不记得项目 ID,请执行以下操作:
- 您可以使用以下命令列出所有项目 ID:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- 您可以使用以下命令列出所有项目 ID:
- 格式:
- 您应会看到以下消息:
如果您看到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 了解您的喜好。
- 为此实验创建一个目录并导航至该目录:
mkdir ~/agent-skills-lab && cd ~/agent-skills-lab - 为您的项目技能创建目录:
mkdir -p ~/agent-skills-lab/.agents/skills/my-favorite-things - 为技能创建并打开新的
SKILL.md文件:cloudshell edit ~/agent-skills-lab/.agents/skills/my-favorite-things/SKILL.mdcloudshell edit命令会在终端上方的编辑器中打开SKILL.md文件。 - 将以下内容添加到
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 已经可以发现它了。
- 启动 Gemini CLI:
您应该会看到 Gemini CLI 识别出新技能。您可能需要按geminiEnter接受一些默认设置。
- 让 Gemini 列出其上下文中可用的技能
您应该会在可用技能列表中看到/skillsmy-favorite-things。 - 向 Gemini 询问您最喜欢的颜色:
Gemini CLI 应使用What is my favorite color?my-favorite-things技能来回答您的问题。如果系统提示,请允许 Gemini CLI 使用该技能。
输出应显示 Gemini CLI 使用了您的技能,并回答了“蓝色”或“我最喜欢的颜色是蓝色”之类的内容。
您已完成!您已成功创建技能并使用 Gemini CLI 对其进行了测试。
准备好结束会话时,请输入 /quit,然后按 Enter 退出 Gemini CLI。
6. (可选)构建应用并将其部署到 Firebase Hosting
除了创建自己的技能外,您还可以安装他人创建的技能。这展示了如何使用可移植技能,即可以轻松共享和重复使用的独立知识、指令和工作流模块。
Firebase 代理技能就是这些可移植模块的一个很好的例子。它们旨在帮助 AI 助理了解 Firebase 最佳实践,并以更高的准确性和更低的 token 成本执行复杂任务。
现在,使用 Agent Skills for Firebase 创建一个包含用户身份验证和数据库的“待办事项”Web 应用,并将其部署到 Firebase Hosting。
设置项目
- 如果您仍处于 Gemini CLI 中,请输入
/quit以退出。 - 为您的项目创建一个新目录,并导航至该目录:
mkdir ~/todo-app && cd ~/todo-app - 使用您的 Google 账号登录 Firebase。由于您在 Cloud Shell 中,请使用
--no-localhost标志:firebase login --no-localhost- 与 CLI 提示互动:
- 当系统询问
Enable Gemini in Firebase features?时,输入Y(表示“是”)并按Enter。 - 当系统询问
Allow Firebase to collect CLI and Emulator Suite usage and error reporting information?时,输入Y(表示“是”)并按Enter。
- 当系统询问
- 在浏览器中授权:
- 您会在终端中看到一个网址。点击该链接,在新的浏览器标签页中打开登录页面。
- 第 1 步(共 3 步)(确认命令):点击 Yes, I just ran this command(是,我刚才运行的是此命令)。
- 第 2 步(共 3 步):确认会话 ID:确保会话 ID 与终端中显示的 ID 一致,然后点击是,这是我的会话 ID。
- 第 3 步(共 3 步)(复制代码):点击复制,将授权代码复制到剪贴板。
- 完成登录:
- 返回 Cloud Shell 终端,然后在
? Enter authorization code:提示符处粘贴授权代码。 - 按
Enter键。
- 返回 Cloud Shell 终端,然后在
✔ Success! Logged in as。 - 与 CLI 提示互动:
安装 Agent Skills for Firebase
现在,您已创建项目目录,接下来应在其中安装 Firebase 的代理技能。
您可以在终端中使用 skills CLI 安装 Firebase 代理技能:
npx skills add firebase/agent-skills
在安装过程中,系统会提示您选择要安装哪些技能。使用箭头键浏览列表,然后使用空格键选择这些技能。
firebase-basicsfirebase-hosting-basicsfirebase-auth-basicsfirebase-firestore-enterprise-native-mode

对于后续提示,您可以按 Enter 键放心地接受默认值。
此命令将下载并安装包括 firebase-basics 和 firebase-hosting-basics 在内的技能,使它们可与 my-favorite-things 技能一起在 Gemini CLI 中使用。
如需详细了解 Agent Skills for Firebase,请参阅可用的技能。
创建和部署基本 Web 应用
- 为项目启用所需的 API:
gcloud services enable \ cloudresourcemanager.googleapis.com \ firebase.googleapis.com - 在当前 Google Cloud 项目中启用 Firebase:
firebase projects:addfirebase ${GOOGLE_CLOUD_PROJECT} - 启动 Gemini CLI:
gemini - 让 Gemini 生成基本
index.html: Gemini 会要求创建Generate an index.html file with the content "Hello Firebase Hosting" and deploy the application to Firebase Hosting using the current Google Cloud Project.index.html并执行firebase。按Enter允许其执行此操作。Gemini CLI 应使用 Agent Skills for Firebase 来创建和部署您的网站。根据需要引导代理完成审批。
部署完成后,系统应会提供一个指向您的 Web 应用的网址。您可以使用 ctrl+click (Windows) 或 cmc+click (Mac) 在 Cloud Shell 编辑器终端中打开链接。访问已部署应用的网址!
添加 Firebase Authentication
- 如果尚未启动 Gemini CLI,请启动它:
Gemini 可能会询问“您信任此文件夹吗?”之类的问题按geminiEnter接受默认值。 - 现在,让 Gemini 添加 Google 登录功能:
Gemini 可能会要求创建或更新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.index.html、style.css和script.js等文件。允许 Gemini 这样做。Gemini 可能会要求您在 Firebase 控制台中执行一些操作。如果您要求 CLI 尝试执行这些操作,它能够完成其中的大部分操作,但如果您的 Cloud Shell 实例安装了旧版 Firebase CLI,则可能需要手动完成这些步骤(例如启用 Google OAuth)。
部署完成后,系统应会提供一个指向您的 Web 应用的网址。您可以使用 ctrl+click (Windows) 或 cmc+click (Mac) 在 Cloud Shell 编辑器终端中打开链接。访问已部署应用的网址!
如需查看最新更改,您可能需要使用 ctrl+shift+R (Windows) 或 cmd+shift+R (Mac) 执行“硬刷新”。
添加 Cloud Firestore
- 如果尚未启动 Gemini CLI,请启动它:
Gemini 可能会询问“您信任此文件夹吗?”之类的问题按geminiEnter接受默认值。 - 让 Gemini 添加 Firestore 以保存任务:
Gemini 将更新文件。允许这样做。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.
部署完成后,系统应会提供一个指向您的 Web 应用的网址。您可以使用 ctrl+click (Windows) 或 cmc+click (Mac) 在 Cloud Shell 编辑器终端中打开链接。访问已部署应用的网址!
如需查看最新更改,您可能需要使用 ctrl+shift+R (Windows) 或 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 磁盘中删除不必要的资源,以释放空间。
- 删除实验目录(这会同时移除技能和应用):
rm -rf ~/agent-skills-lab - 删除“待办事项”应用目录(如果您是在外部创建的):
rm -rf ~/todo-app
如果您需要将 Cloud Shell 重置为默认状态,可以按照官方文档中的说明安全地完成此操作。