BigQuery新工具MCP与ADK:AI驱动的数据分析与预测实战

本文详细介绍Google BigQuery通过MCP工具箱和Agent Development Kit新增的AI数据分析工具,包括自然语言查询工具ask_data_insights和时间序列预测工具BigQuery Forecast,并提供了完整的代理构建代码示例。

基于MCP和ADK在BigQuery中实现AI预测与分析

为了让AI代理真正发挥作用,它们需要能够安全地与企业数据交互。今年7月,我们推出了一套工具集,帮助AI代理通过自然语言和少量代码与BigQuery中的业务数据交互和分析。今天,我们迈出了下一步,推出了对话式分析的"Ask data insights"和时间序列预测的"BigQuery Forecast",超越了获取元数据和执行查询,实现了全面的数据分析和预测。这两个工具现在都在MCP工具箱和Agent Development Kit的内置工具集中提供。

让我们深入了解这些新工具的功能。

ask_data_insights:与BigQuery对话

使用ask_data_insights工具,您现在可以使用简单的英语回答BigQuery中结构化数据的复杂问题。

该工具构建在强大的对话式分析API之上,使代理能够利用API来理解用户问题、提取相关上下文、制定和执行查询,并用简单的英语总结答案。在此过程中,ask_data_insights工具会展示其工作过程,返回详细的分步日志,让您完全透明地了解它是如何得出答案的。

使用BigQuery Forecast预测未来

没有洞察的信息只是噪音。预测未来趋势的能力,无论是销售、用户流量还是库存需求,对任何企业都至关重要。BigQuery Forecast使用BigQuery ML的AI基于内置TimesFM模型的FORECAST函数简化了时间序列预测。

使用BigQuery Forecast,代理可以直接在BigQuery中运行预测作业,而无需设置机器学习基础设施。将工具指向您的数据,指定要预测的内容和时间范围,代理将使用TimesFM进行预测。

新工具实战:构建Google Analytics数据代理

让我们探索如何使用ask_data_insights和BigQuery Forecast构建一个简单的代理来回答有关Google Analytics 360数据的问题。对于此演示:

  • 数据存储在BigQuery表中
  • 此代理的用户只需要对这些表具有读取权限,这些表在BigQuery公共数据集bigquery-public-data.google_analytics_sample下可用
  • 我们将使用ADK构建此代理,并使用"adk web"进行测试
  • 我们使用ADK内置工具中的一个工具和MCP工具箱中的一个工具

此图显示了这个简单代理的架构:

以下是代理代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import asyncio
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.adk.tools.bigquery import BigQueryCredentialsConfig
from google.adk.tools.bigquery import BigQueryToolset
from google.adk.tools.bigquery.config import BigQueryToolConfig
from google.adk.tools.bigquery.config import WriteMode
from google.genai import types
from toolbox_core import ToolboxSyncClient
import google.auth

# 此示例代理的常量
AGENT_NAME = "bigquery_agent"
APP_NAME = "bigquery_app"
USER_ID = "user1234"
SESSION_ID = "1234"
GEMINI_MODEL = "gemini-2.5-pro"

# 阻止任何写入操作的工具配置
tool_config = BigQueryToolConfig(write_mode=WriteMode.BLOCKED)

# 我们使用应用程序默认凭据
application_default_credentials, _ = google.auth.default()
credentials_config = BigQueryCredentialsConfig(
    credentials=application_default_credentials
)

# 使用单个工具实例化内置BigQuery工具集
# 使用"ask_data_insights"获得更深入的洞察
bigquery_toolset = BigQueryToolset(
    credentials_config=credentials_config, bigquery_tool_config=tool_config, tool_filter=['ask_data_insights']
)

# 实例化工具箱工具集。仅使用预测工具。确保工具箱MCP服务器已在本地运行。
toolbox = ToolboxSyncClient("http://127.0.0.1:5000")
mcp_tools = toolbox.load_toolset('bq-mcp-toolset')

# 代理定义
root_agent = Agent(
    model=GEMINI_MODEL,
    name=AGENT_NAME,
    description=(
        "回答有关存储在BigQuery中的Google Analytics数据问题的代理"
    ),
    instruction="""\
        您是一个可以回答Google Analytics数据问题的Google Analytics代理。

    重要上下文:
        您可以访问BigQuery中的Google Analytics数据,应使用这些数据回答问题
        可用的表格是 -
        1. `<my-project>.google_analytics_sample.daily_total_visits`
        2. `<my-project>.google_analytics_sample.ga_sessions_20170801`
    根据用户问题自动选择表格。当两者都可以使用时,使用第一个。
    """,
    tools=mcp_tools+[bigquery_toolset],
)

使用上面的代理代码,让我们转向ADK的开发人员UI,即adk web,来测试代理并查看其运行情况。

首先,让我们使用工具来理解我们的数据…

代理使用洞察工具总结数据

然后,让我们看看代理是否能回答业务问题。

对话式分析API后端配备了更深层次的思考能力,能够提供丰富的洞察。

正如您在上面看到的,对话式分析API具备执行深度思考的能力,因此可以为我们的问题提供丰富的洞察。

现在,让我们看看代理是否能预测未来。

简短的回答是,是的,它可以,置信水平为95%。借助这些工具,TimesFM模型的力量终于可供业务用户使用,无论他们的技术水平如何。

为您的数据带来分析和预测

这些新的BigQuery功能将帮助开发人员重新构想如何构建数据驱动的应用程序和代理。我们相信,AI驱动的对话式分析与强大的内置预测功能的结合,将使执行复杂的数据分析比以往任何时候都更加容易。

在数据库的MCP工具箱和核心Agent Development Kit中了解更多关于ask_data_insights和BigQuery Forecast工具的信息。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计