1. 准备工作
欢迎来到“使用 ADK 构建 AI 智能体”系列的第四部分!在此 Codelab 中,您将结合之前课程中学到的知识来创建数据分析师智能体。此智能体旨在分析数据、生成有价值的分析洞见,并自动执行数据分析工作流的关键方面。
您将使用 ADK 中包含的强大工具,让智能体能够探索上传的文件,并将其连接到 Google Cloud BigQuery 等企业级数据库。
您还可以通过此缩短的网址访问此 Codelab:goo.gle/adk-data-analyst
前提条件
- 对 生成式 AI 概念 有基本的了解
- 基本掌握 Python 编程,并能熟练使用命令行。
- 熟悉本系列之前 Codelab 中的概念:“基础知识”和“使用工具赋能”。
学习内容
- 如何使用 ADK 框架构建功能完善的数据分析师智能体。
- 让智能体能够分析上传文档中的数据的方法。
- 如何将智能体连接到 BigQuery 数据库以进行企业级数据分析。
- 定义智能体核心逻辑(包括其用途和指令)的技术。
所需条件
- 一台可正常运行的计算机和可靠的互联网连接。
- 一个浏览器(例如 Chrome),用于访问 Google Cloud 控制台
- 好奇心和学习热情。
2. 简介
在当今这个数据驱动的世界中,快速准确地分析大量信息的能力比以往任何时候都更加重要。但是,提取有意义的分析洞见的过程通常需要 SQL 等方面的深厚技术专业知识,这会造成瓶颈,从而减慢决策速度。如果可以弥合这一差距,并像对话一样轻松地与复杂的数据集互动,会怎么样?
这正是 AI 智能体能够带来突破性提升的地方。AI 智能体充当您与数据之间的智能界面,可以理解自然语言问题,将其转换为技术查询,并在几秒钟内提供可据以采取行动的分析洞见。
在此 Codelab 中,您将使用智能体开发套件 (ADK) 构建实用的数据分析师智能体,从而迈入数据分析的未来。我们将首先创建一个基础智能体,然后逐步增强其功能。您将首先教智能体分析上传文档中的非结构化数据。然后,您将智能体连接到功能强大的企业级数据仓库 Google Cloud BigQuery,以查询和分析大规模的真实医疗保健数据集。
在本教程结束时,您不仅会拥有一个功能完善的 AI 助理,还会对如何构建能够自动执行日常数据任务、加快分析速度并让您和您的团队能够轻松获取关键分析洞见的智能体有深入的了解。
3. 配置 Google Cloud 服务
创建 Google Cloud 项目
为了让您在此 Codelab 中的所有工作井井有条,并与其他项目分开,您将首先创建一个新的 Google Cloud 云项目。
- 前往 console.cloud.google.com/projectcreate
- 输入所需信息:
- 项目名称 - 您可以输入所需的任何名称(例如 genai-workshop)
- 位置 - 将其保留为无组织
- 结算账号 - 如果显示此选项,请选择“Google Cloud Platform 试用版结算账号”,或者如果您愿意,也可以选择自己的结算账号。如果您没有看到此选项,可以继续执行下一步。
- 记下生成的项目 ID,稍后您将需要用到它。

- 如果一切正常,请点击创建 按钮
配置 Cloud Shell
成功创建项目后,请按照以下步骤设置 Cloud Shell 。
1. 启动 Cloud Shell
前往 shell.cloud.google.com。如果出现要求授权的弹出式窗口,请点击 授权。

**2. 设置项目 ID
将 replace-with-your-project-id 替换为上面项目创建步骤中的实际项目 ID。在 Cloud Shell 终端中执行以下命令,以设置正确的项目 ID 。
gcloud config set project replace-with-your-project-id
您现在应该会在 Cloud Shell 终端中看到已选择正确的项目。所选项目 ID 以黄色突出显示。

3. 启用所需的 API
如需使用 Google Cloud 服务,您必须先为项目启用其各自的 API。在 Cloud Shell 终端 中运行以下命令,为此 Codelab 启用服务:
gcloud services enable \
aiplatform.googleapis.com \
bigquery.googleapis.com
如果操作成功,您会在终端中看到 Operation/... finished successfully 消息。
4. 创建 Python 虚拟环境
接下来,创建一个独立的 Python 环境来管理项目的依赖项。
1. 创建项目目录并导航至该目录:
mkdir -p ai-agents-adk && cd ai-agents-adk
**2. 创建并激活虚拟环境:
uv venv --python 3.12
source .venv/bin/activate
您会看到终端提示符带有 (ai-agents-adk) 前缀,表示虚拟环境处于活跃状态。

3. 安装 adk 页面
uv pip install google-adk --no-cache
5. 创建初始智能体
环境准备就绪后,就可以使用简单的 ADK 命令创建 AI 智能体了。
1. 创建智能体
在终端中,运行以下命令:
adk create data_analyst_agent
**2. 配置智能体
系统会提示您配置智能体。请进行以下选择:
- 选择模型:选择 1.
gemini-2.5-flash。 - 选择后端:选择 2.
Vertex AI。 - 输入 Google Cloud 项目 ID:按 Enter 键以 确认正确的项目 ID。
- 输入 Google Cloud 区域:按 Enter 键以使用默认值
us-central1。
3. 启动开发 Web 服务器
创建智能体后,运行以下命令启动开发 Web 服务器:
adk web
您可以 Ctrl + 点击 或 Cmd + 点击 终端中的链接(即 http://localhost:8000)在终端中,也可以
- 点击 Web 预览 按钮
- 选择更改端口 。
- 输入端口号 (例如 8000)
- 点击更改并预览
然后,您会在浏览器中看到类似聊天应用的界面。
4. 与智能体聊天
通过此界面与智能体聊天!说一些话,例如 “你好,你能做什么?”。
6. 分析文档中的数据
在本部分中,您将向智能体上传文档,并询问有关其内容的问题。
1. 总结文档
按照以下步骤获取文档摘要:
- 下载 有关 Google 医疗保健策略 的文件。
- 在智能体的界面中点击上传文件 按钮,然后选择 您刚刚下载的文件。
- 在聊天界面中,要求智能体总结文件:“给我一份此文件的摘要”
- 按 Enter 键。
您应该会收到一份简明扼要的文档内容摘要。

**2. 提出更详细的问题
现在,尝试提出更详细的问题,以深入了解文档:
- Google 目前通过其 AI 和数据计划主要针对哪些疾病?
- Google 计划如何改进医疗保健数据互操作性并打破数据孤岛?
- Google Cloud 如何用于支持医疗保健企业和研究人员?
- Google 接下来可能会探索哪些新的疾病领域(例如,慢性阻塞性肺病、癌症、心理健康)?
3. 追问
您还可以追问,例如查找页面引用编号以进行进一步调查:
- 您在哪里看到了有关糖尿病相关信息?
- 请直接转到有关疾病的相关页面。
- 有哪些有趣的图表值得一看?
挑战:找到您自己的一个文档,让智能体分析并上传该文档。向智能体询问有关其内容的问题。
7. 将文档分析洞见与实时网络搜索相结合
智能体现在是文档方面的专家,但强大的分析师还需要访问最新的外部信息。让我们为智能体提供网络搜索功能。
- 在 Cloud Shell 终端中,按 Ctrl+C 停止 Web 服务器。
- 执行以下命令,在 Cloud Shell Editor 中打开
data_analyst_agent/agent.py文件:
cloudshell edit data_analyst_agent/agent.py
- 修改文件 以导入并添加
google_search工具:
from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
instruction="""
First, check the uploaded files for an answer.
If the information is not in the files, use your tools to search the web.
Answer user questions to the best of your ability.
""",
tools=[
google_search
]
)
- 保存文件并在终端中重启 Web 服务器 ,方法是输入
adk web - 在智能体界面中,重新上传
GoogleHealthStrategy.pdf文件。 - 现在,提出一个问题 ,该问题需要文档的上下文和外部信息:
The document discusses Google's strategy in healthcare. What are three other major tech companies that are also investing heavily in healthcare AI, and what are their primary focus areas?
智能体现在将综合文档和实时 Google 搜索中的信息,为您提供全面的答案。您可以尝试提出几个问题:
- 文档中提到使用 AI 来治疗糖尿病视网膜病变。过去一年中,有哪些最新的 FDA 批准的此类技术?
- 该文件提到了合作伙伴关系。您能否找到有关 Google 在医疗保健领域最新合作的任何近期新闻报道或新闻稿?
挑战:尝试向您自己的文档提出类似的问题。这些问题会使用本地文档和互联网上的结果。
8. 使用 BigQuery 分析医疗保健数据
上传单个文档无法扩缩。在实际场景中,数据位于 Google Cloud BigQuery 等企业系统中。
目前,构建智能体应用的开发者通常必须构建和维护自己的自定义工具。此手动过程缓慢、有风险,并且会产生大量开销。它迫使开发者处理从身份验证到错误处理的所有事务,而不是专注于创新。
智能体开发套件 (ADK) 包含用于 BigQuery 交互的第一方工具。对于此特定分析,我们将使用联邦医疗保险和医疗补助服务中心 (CMS) 提供的公开医疗保险使用情况数据集 。
首先,让我们将智能体连接到大型公共医疗保健数据集。
- 在 Cloud Shell 终端中,按 Ctrl+C 停止 Web 服务器。
- 在终端中执行以下命令,在 Cloud Shell Editor 中打开
data_analyst_agent/agent.py文件:
cloudshell edit data_analyst_agent/agent.py
- 将该文件的全部内容替换为 以下代码,以配置强大的
BigQueryToolset:
import google.auth
from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search
from google.adk.tools.agent_tool import AgentTool
from google.adk.tools.bigquery import (
BigQueryToolset,
BigQueryCredentialsConfig
)
from google.adk.tools.bigquery.config import (
BigQueryToolConfig,
WriteMode
)
# Automatically get credentials from the gcloud environment
application_default_credentials, _ = google.auth.default()
credentials_config = BigQueryCredentialsConfig(
credentials=application_default_credentials
)
# Configure the BigQuery tool
tool_config = BigQueryToolConfig(
write_mode=WriteMode.ALLOWED,
application_name='data_analyst_agent'
)
# Create the toolset with the specified configurations
bigquery_toolset = BigQueryToolset(
credentials_config=credentials_config, bigquery_tool_config=tool_config
)
# Create an agent with google search tool as a search specialist
google_search_agent = Agent(
model='gemini-2.5-flash',
name='google_search_agent',
description='A search agent that uses google search to get latest information about current events, weather, or business hours.',
instruction='Use google search to answer user questions about real-time, logistical information.',
tools=[google_search],
)
# Define the final agent with its instructions and tools
root_agent = Agent(
model="gemini-2.5-flash",
name="bigquery_agent",
description=(
"Agent to answer questions about BigQuery data and execute SQL queries."
),
instruction="""
You are an expert data analyst agent with access to BigQuery tools.
When a user asks about a dataset, first use your tools to understand its schema.
Then, use this knowledge to construct and execute SQL queries to answer the user's questions.
Always confirm with the user if their question is ambiguous (e.g., for which year?).
""",
tools=[
AgentTool(google_search_agent),
bigquery_toolset
],
)
- 保存文件并在终端中重启 Web 服务器 ,方法是输入
adk web - 现在,您可以让智能体分析公开的医疗保险数据集。首先探索数据:
Look into the cms_medicare dataset in the bigquery-public-data project. What can you tell me about it?
智能体将使用其工具检查数据集并提供可用表的列表。然后,您可以提出具体的分析问题来展开细目。智能体可能会提出澄清问题,以确保其查询准确无误。

对于某些问题,您需要向智能体提供项目 ID ,以便智能体可以使用该 ID 创建查询。例如:

以下是一些您可以尝试的分析提示示例:
- 使用
inpatient_charges_2015表,按出院总数计算,前 5 项程序(DRG 定义)是什么? - 在加利福尼亚州 (CA),“主要关节置换” 的平均总付款是多少?
- 哪个州的同一程序的平均承保费用最高?
此 Codelab 到此结束。您仅仅了解了 如何使用由企业数据系统提供支持的数据智能体。欢迎随时向智能体提出有关 cms_medicare 数据集的任何问题。
挑战: 在 BigQuery 中找到另一个 公开数据集,并使用智能体探索该数据集。您还可以使用自己的数据创建自己的数据集,并私下分析该数据集。
9. 清理(可选)
为避免日后产生费用,您可以删除此 Codelab 中使用的资源。
1. 停止智能体
在 Cloud Shell 终端中,按 Ctrl+C 停止 adk web 进程。
**2. 删除项目文件
如需从 Cloud Shell 环境中移除智能体代码,请在终端中运行以下命令:
cd ~ && rm -rf ai-agents-adk
3. 停用 API
如需停用您之前启用的 API,请在终端中运行以下命令:
gcloud services disable \
aiplatform.googleapis.com \
bigquery.googleapis.com
4. 关闭项目
如果您想删除整个 Google Cloud 项目,请按照 关闭项目指南 操作。
10. 总结
恭喜!您已使用智能体开发套件 (ADK) 框架成功构建了数据分析师智能体。此智能体能够分析来自各种来源的数据、生成分析洞见,并帮助自动执行数据分析工作流的部分内容。
如需继续学习,请浏览以下资源:
- 阅读官方博文: Announcing the BigQuery Toolset for AI Agents
- 浏览文档:访问 智能体开发套件 (ADK) 官方文档,了解新功能和高级指南。
- 浏览代码:查看 ADK GitHub 代码库。
- 探索更多数据:浏览 Google Cloud 公共数据集目录。