你可能已经了解过Firebase。它是由谷歌开发的一个全方位平台,旨在简化整个应用开发周期——涵盖从构建和测试到部署和扩展你的移动和网络应用的各个方面。
近期,Google 将 Firebase 套件扩展,加入了 Firebase Studio。这是一个 代理式的 云端开发环境,专门用于帮助你构建和发布高质量的全栈 AI 应用程序——包括 API、后端服务、数据库、前端界面等。
这些新的人工智能应用的关键驱动因素是它们的自主性能力。谷歌在这方面做出了重大贡献,发布了Google 代理开发工具包(ADK)——一个专门为创建复杂代理和多代理系统而设计的开源工具包。随着这种以ADK等工具支持的代理开发为重点,很多人问我该如何开始他们的实验和开发工作。
所以,想要开始使用谷歌ADK的朋友们,我的建议是:试试Firebase Studio!
设置好简直太容易了。当你点击“现在试用 Firebase Studio”按钮时,Google 会立即为你准备好一个完整的开发环境,你可以在浏览器中直接访问。没错,你根本不需要在本地机器上安装任何东西。
在欢迎界面上,你可能会看到一个提示,让你描述你想要构建的应用程序。Firebase Studio 内置的AI原型生成代理(由Gemini提供支持)会根据你的描述自动生成应用代码。虽然这是一个强大的功能,值得单独探索,但在本次教程中,我们将跳过 AI 生成这一步。我们的目标是更直观地理解如何手动设置ADK代理。为此,我们将使用另一个强大的功能:Firebase Studio的大量预构建项目模板。
查看 Firebase Studio 中的 左侧栏。你应该看到比如 新建工作空间
和 导入仓库
等选项。
选择 [新工作区]
选项。你会发现这里有各种预设模板,令人印象深刻,适合多种项目的起点。
对于本指南,我们将使用 Python Flask 模板。提供以下详细信息后,Firebase Studio 将基于该模板启动应用程序:
- 给你的新工作区取个名字。
- 你想要用的包管理器(例如,pip或poetry)。
你的初始工作区应该看起来像这样:
你可能会看到一些弹出通知。Firebase Studio 通常会建议为你的项目类型安装推荐的插件(如 Python 支持、Pylint 等)。通常最好点击“是”或“安装”来确认这些安装。之后你可能需要刷新浏览器页面,以便这些插件能正确加载和激活。
在左侧面板中查看文件资源管理器,你会发现工作室生成了一个基本的 Flask 应用框架(包括 main.py
和 devserver.sh
这样的文件)。因为我们是要从头开始构建一个 Google ADK 代理,所以并不需要这个默认的网页应用代码。请将 main.py
和 devserver.sh
这两个文件删除。
接下来,我们需要准备Python环境。打开一个新的终端窗口(通常可以通过顶部菜单,如“终端” > “新建终端窗口”)进行此操作。
首先,我们先创建一个虚拟环境来管理这个Python项目的依赖。
在命令行中执行以下命令来创建一个虚拟环境:
python -m venv myenv
(此命令用于创建一个名为 myenv
的虚拟环境。)
然后激活它。
source myenv/bin/activate # 激活虚拟环境
接下来,打开“需求文件.txt”(你可以在主项目目录中找到它)。我们需要添加所需的代理Python库(注意在主项目目录中找到“需求文件.txt”文件)。
在你的 requirements.txt
文件中加入以下内容:
google-adk
python-dotenv
他们做了这些:
google-adk
: 这是 Google 代理开发工具包的核心库。python-dotenv
: 这个工具让我们可以轻松地从一个单独的.env
文件中加载环境变量(比如 API 密钥和项目设置),将敏感信息排除在代码之外,这样更安全。
添加这些行并保存 requirements.txt
文件后,在你的终端执行下面的命令来安装这些库:
pip install -r requirements.txt
执行此命令以安装项目依赖项,确保所有指定的Python库都已安装。
接下来,在你的工作区的主目录(与 requirements.txt
同级)中,创建一个名为 .env
的新文件。
在文件中添加以下内容。记得把占位符(your-gcp-project-id
和 us-central1
)替换为实际的 Google Cloud 项目 ID 和您想要使用的区域。
# .env - 代理设置
# 大型语言模型提供商(LLM): 使用 'vertex_ai' 或 'google_ai_studio'
ADK_AGENT_LLM_PROVIDER=vertex_ai
# 填写您的 Google Cloud 项目 ID(仅当使用 Vertex AI 时需要)
ADK_VERTEX_AI_PROJECT=your-gcp-project-id
# Vertex AI 地区(示例:us-central1, europe-west1)
ADK_VERTEX_AI_LOCATION=us-central1
**ADK_AGENT_LLM_PROVIDER**
: 指定提供大语言模型的服务。我们将其设置为vertex_ai
,主要的替代选项通常是google_ai_studio
。**ADK_VERTEX_AI_PROJECT**
: 您特定的已启用 Vertex AI 的 Google Cloud 项目 ID。**ADK_VERTEX_AI_LOCATION**
: 您想要访问 Vertex AI 模型的 Google Cloud 地区。选择一个适合您的地区(例如,us-central1
,europe-central2
)。
安装了环境依赖项并在 .env
文件中设置了配置后,我们准备好定义核心部分:‘Hello World’代理代码。
import os
from dotenv import load_dotenv
from google.cloud.dialogflow.agents import Agent
from google.genai import types
load_dotenv()
MODEL = "gemini-2.0-flash-001"
AGENT_APP_NAME = 'enterpriseagent'
root_agent = Agent(
model=MODEL,
name=AGENT_APP_NAME,
description="你是一个乐于助人的助手,总是以非常积极的方式回答各种问题。",
instruction="如果有人问你如何创建的,告诉他们你是通过Google Agent Framework创建的。",
generate_content_config=types.GenerateContentConfig(temperature=0.2),
)
root_agent = Agent(...)
:这是创建并配置Agent
类实例的主要步骤,结果赋值给变量root_agent
。model=MODEL
:告诉Agent
实例使用由MODEL
变量指定的LLM(即"gemini-2.0-flash-001"
)。name=AGENT_APP_NAME
:将名称'enterpriseagent'
赋给这个Agent
实例。description="您是一个乐于助人的助手,以积极的态度回答各种问题!"
:提供关于此Agent
实例的角色或人格的一般描述。该描述可能被ADK框架或可能被LLM本身用作其上下文的一部分。instruction="如果有人问你是怎么被创造出来的,你就说你是在Google Agent Framework里被创造出来的。"
:为Agent
的行为提供具体且高层次的指令或规则。这就像一个系统提示,告诉Agent
如何回应特定查询。generate_content_config=types.GenerateContentConfig(temperature=0.2)
:这用来配置LLM的内容生成参数。
最后,在代理目录内(例如,helloworldadk
,与你的 agent.py
同级目录中),你需要创建一个名为 __init__.py
的空文件,这个文件是必需的。这个特别的文件会让 Python 认为该目录是一个包,这样你的代理代码就能被 ADK 框架以及其他应用部分导入使用了。
好吧,轮到测试这个代理了!
首先,确保你的终端位于项目的根目录(即包含 helloworldadk
文件夹的那一级)。在此父级目录下运行 adk
工具。
要从你的代理目录下向上移动到上级目录,输入 cd ..
,这样可以更好地帮助不熟悉命令行的用户理解。
现在,在包含 helloworldadk
的父目录下,运行 adk run
,并指定你的代理模块目录的名字:
运行 `adk run helloworldadk` (运行 "adk 运行 helloworldadk")
运行命令后,终端中会显示几个提示,指引你完成操作。
- 用户名提示: ADK 程序会要求输入一个用户标识符(例如,
输入用户:
)。这将为你与代理的互动创建一个会话。测试时,你可以输入任何名字(如user1
或test_dev
),然后按回车。在实际使用中,这通常对应于应用程序的当前登录用户ID。 - Google Cloud 认证: 因为你的代理已配置使用 Vertex AI(如你的
.env
文件中指定),ADK 需要验证你对 Google Cloud 资源 的访问权限。 - GCP 项目选择: 认证后,你可能需要确认要使用哪个 Google Cloud 项目(应该默认为你的
.env
文件中的ADK_VERTEX_AI_PROJECT
参数)。如果有提示,请选择正确的项目。
完成这些步骤后,你应该会看到类似 user1:
或 test_dev:
的提示信息,表明 ADK 运行器已经准备好供你使用,你可以开始和代理聊天了。
在提示符下,你现在可以在提示符下提问了!输入你的问题并按回车键,直接在终端里与你的助手互动。
不过,这个命令行界面更适合基本测试,但ADK提供了一种更直观和用户友好的方式来与您的代理互动:内置的网页界面,这样更直观易用。
要启动 web UI 而不是使用命令行工具,只需执行:
ADK网页
注:ADK可能指的是某个特定的网站或服务,请根据具体上下文进行解释。
这将开始运行ADK网络服务器。
当Web服务器启动的时候,在终端输出中,你会看到这样的信息:“ADK Web Server运行在http://0.0.0.0:8000”。
大多数现代终端(包括 Firebase Studio 中的终端)都让这个 URL 变得互动起来。可以试试以下常见的打开方法:
- 悬停并点击:(可以尝试以下步骤) 将鼠标指针移到
http://0.0.0.0:8000
文本上。可能会看到提示或下划线。如果有跟随链接
或打开链接
的选项,点击它。 - Ctrl/Cmd + 点击: 按住
**Ctrl**
键(Windows/Linux)或**Cmd**
键(macOS),然后点击http://0.0.0.0:8000
链接。
在导航到外部链接之前,Firebase Studio 可能会弹出一个安全提示弹窗,要求您确认是否打开外部链接。
如果看到这个提示,请单击“打开”按钮(或类似的按钮)。
ADK的Web界面将在新浏览器标签页中打开,准备好让您使用。
你现在可以开始与你的代理聊天了,使用网页界面中的输入框进行交流。这个界面也能帮助你检查对话细节并调试回复。尽情实验吧!
虽然 Firebase Studio 提供了出色的、简化的体验来开始和原型设计 AI 应用程序,但它可能并不是每个组织环境的理想选择。特别是在具有严格安全政策和合规要求(例如需要在私有网络内开发或特定的 IAM 权限控制)的环境中,或者在公司政策禁止访问 Firebase Studio 的情况下,需要一个更强大的解决方案。
如果您需要一个与企业安全策略无缝集成,并且满足严格合规要求的开发环境工具,那么Google Cloud 工作区是推荐的选择。
但这里才是最令人兴奋的部分!使用ADK和Firebase Studio将您的代理运行在云端被设计得非常简单易用。我之前说过,只需一条命令就可以将您的代理应用部署到类似Cloud Run或Agent Engine的平台上。
看看我的另一篇博客文章,了解如何使用这个工具GCP Integration Connectors将您的代理连接到超过100个系统吧。
连接与行动:使用GCP集成连接器与Google ADK代理执行任务跨越100多种…Google最近发布了一个新的开源代理开发工具包(ADK),用于构建多代理AI应用程序。这个工具包可以…medium.com本文由Lukasz Olejniczak——Google Cloud 的客户工程师撰写。文中观点仅代表作者个人观点,不一定代表 Google 的立场。
如果喜欢这篇文章,请给它点个赞。想要了解更多关于Google Cloud、数据科学、数据工程和AI/ML的信息,请关注我在LinkedIn上的分享。
[MCP]: 模型上下文协议
[LLM]: 大型语言模型
[RAG]: 检索增强生成
[SSE]: 服务器发送事件
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章