使用说明
雪花MCP试剂
一个ADK代理,使用Snowflake Managed MCP服务器来回答有关Snowflake数据的问题。它部署在 顶点AI代理引擎 并注册于 双子星企业版,其中每个用户的Entra ID OAuth凭据都会自动传播,不需要手动令牌管理。
看 认证.md 有关OAuth设置的详细信息。
建筑
Gemini Enterprise
│ per-user OAuth token (Entra ID)
▼
Vertex AI Agent Engine (ADK LlmAgent — Gemini 2.5 Flash)
│ MCP tool call + Bearer token
▼
Snowflake Managed MCP Server
│
▼
Cortex Agent
├── Cortex Analyst — natural language → SQL over structured data
└── Cortex Search — hybrid keyword + vector search over unstructured data
| 层 | 角色 |
|---|---|
| 双子星企业版 | 向终端用户展示代理;将每个用户的OAuth令牌自动注入到每个会话中 |
| 顶点AI代理引擎 | 主持ADK LlmAgent 作为推理引擎 |
| 雪花管理MCP服务器 | 将Cortex Agent暴露为单个MCP工具;根据Snowflake的外部OAuth安全集成验证用户的令牌 |
| 皮质分析员 | 通过根据语义模型生成和执行SQL来回答结构化表的问题 |
| 皮质搜索 | 对非结构化内容(票、文档、笔记)执行混合BM25+矢量搜索 |
先决条件
- 启用了Vertex AI和发现引擎API的Google Cloud项目
gcloudCLI已通过身份验证(gcloud auth login)- 已安装ADK CLI(
pip install google-adk) - Gemini企业数据存储/引擎已配置(提供
ENGINE_ID) - Snowflake OAuth的Azure AD应用程序注册(提供
CLIENTID,TENANTID,CLIENT_SECRET)
配置
所有环境变量都声明在一个单独的 .env 文件。复制示例并填写您的值:
cp .env.example .env
| 变量 | 描述 |
|---|---|
MCP_SERVER_URL |
雪花管理MCP服务器端点URL |
AUTH_ID |
在Gemini Enterprise中注册的授权资源名称(例如。 snowflake-oauth) |
GOOGLE_API_KEY |
Google Gemini API密钥 |
GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY |
启用代理引擎遥测(true/false) |
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT |
在跟踪中捕获消息内容(true/false) |
MCP_TIMEOUT_SECONDS |
MCP工具调用超时(默认值 30) |
PROJECT_NUMBER |
GCP项目编号 |
PROJECT_ID |
GCP项目ID |
LOCATION |
发现引擎区域(例如。 us) |
ENGINE_ID |
Gemini Enterprise引擎ID |
TENANTID / CLIENTID |
Azure AD应用程序注册 |
CLIENT_SECRET |
Azure AD客户端机密--不受源代码控制 |
代理运行时配置(agent/.agent_engine_config.json)故意为空——所有变量都来自 .env 在部署时。
部署脚本
所有脚本都在 部署/ 并从以下位置加载配置 .env 自动-不需要编辑脚本。
完整管道(部署+注册)
bash deploy/deploy_agent_engine.sh
这将按顺序运行两个步骤:
| 步骤 | 脚本 | 操作 |
|---|---|---|
| 1 | deploy_agent_engine.sh |
将代理包部署到Vertex AI代理引擎 |
| 2 | register_agent.sh |
查找最新的推理引擎,然后将其注册到Gemini Enterprise中 |
仅限注册(新部署后重新注册)
bash deploy/register_agent.sh
register_agent.sh 自动获取最新的推理引擎ID。要锁定特定版本:
export REASONING_ENGINE_ID="<id>"
bash deploy/register_agent.sh
示例查询
在Gemini Enterprise注册后,用户可以提出自然语言问题。代理会自动路由到相应的Cortex工具。
Cortex分析师——结构化数据:
- “按地区划分,上个季度的总销售额是多少?”
- “今年哪些产品的退货率最高?”
- “按收入显示前10名客户。”
- “过去30天里下了多少订单?”
Cortex搜索--非结构化内容:
- “查找有关密码重置后登录错误的支持票。”
- “搜索企业客户的高优先级计费争议。”
- “显示与数据导出失败相关的未结票证。”
