目标
Roads Management Insights (RMI) ADK 代理提供了一个自然语言界面,用于查询和分析存储在 Google BigQuery 中的 RMI 数据。通过利用 Google 的智能体开发套件 (ADK) 和 Gemini 大语言模型,该工具可帮助用户从大规模路网和交通数据集提取可据以采取行动的洞见,而无需手动编写复杂的 SQL 查询。
参考架构
该架构由分层智能体系统组成,其中根智能体负责规划和编排用户互动,并将特定的数据检索和 SQL 生成任务委托给专业分代理。
组件
1. RMI 代理(根代理)
- 角色:主要对话式界面和任务编排器。
- 工作职责:
- 保持多轮对话上下文。
- 将自然语言请求分解为可操作的分析任务。
- 将结构化数据检索任务委托给 BigQuery Agent。
- 将分代理返回的原始表格数据综合成简洁且人类可读的分析洞见。
2. BigQuery 代理(子代理)
- 角色:专门的 SQL 翻译和数据库执行代理。
- 工作职责:
- 将根代理的自然语言指令转换为优化的 BigQuery SQL 查询。
- 直接针对配置的 BigQuery 数据集执行查询。
- 向根代理返回原始的未更改的查询结果。
3. BigQuery 数据集
- 作用:云原生分析型数据仓库。
- 内容:Roads Management Insights (RMI) 表,包括
historical_travel_time和recent_roads_data,根据 RMI BigQuery 架构进行结构化。
4. Google GenAI
- 角色:核心推理和语言生成引擎。
- 模型:利用 Google Gemini 模型(例如
gemini-3.5-flash)为智能体编排、自然语言理解和 SQL 生成提供支持。
执行流程
- 用户请求:用户提交自然语言问题(例如“昨天 66 号路线的平均行程时间是多少?”)。
- 规划和编排:RMI 代理接收请求,识别出需要经验性路况数据,并为分代理制定具体的检索指令。
- 委托:RMI 代理使用结构化指令和相关的时间或空间限制来调用 BigQuery 代理。
- SQL 生成:BigQuery Agent 利用其对 RMI 架构的理解,生成优化的 BigQuery SQL 查询。
- 执行和数据检索:BigQuery Agent 针对底层 BigQuery 数据集执行查询,并检索生成的表格记录。
- 响应合成:BigQuery Agent 将未经更改的原始数据返回给 RMI Agent,后者会解读结果、解析缺失的道路标识符,并为用户构建清晰的自然语言响应。
示例场景
面临的挑战
一位城市规划师需要评估整个都市道路网络的交通拥堵情况,以确定在晚间通勤高峰时段是否需要调整交通信号灯的配时。
解决方案工作流
用户查询:规划器使用 CLI 或 Web 界面与代理互动,并提出以下问题:
“找出上周五下午 5 点波士顿市中心拥堵程度最高的 5 条路线。”
代理处理:
- RMI 代理解析请求。它可识别目标位置(“波士顿市中心”)、时间窗口(“上周五下午 5 点”)和分析目标(“拥堵程度最高的前 5 条路线”)。它确定“拥堵”应按实时行程时长与静态时长的比率 (
duration_in_seconds/static_duration_in_seconds) 来衡量。 它会通过结构化指令将数据检索任务委托给 BigQuery Agent:
“查找波士顿市中心的道路路段,并返回 2026 年 1 月 9 日(星期五)下午 5 点拥堵比最高的前 5 个路段。”
- RMI 代理解析请求。它可识别目标位置(“波士顿市中心”)、时间窗口(“上周五下午 5 点”)和分析目标(“拥堵程度最高的前 5 条路线”)。它确定“拥堵”应按实时行程时长与静态时长的比率 (
数据检索:
- BigQuery Agent 会将此指令转换为以
historical_travel_time表为目标的 SQL 查询,计算拥堵比率并对结果进行排序,以确定前 5 个路段。 - 它针对 BigQuery 执行查询。
- BigQuery 会返回原始表格结果,例如
(segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio)。
- BigQuery Agent 会将此指令转换为以
分析洞见生成功能:
- BigQuery 代理将原始细分列表传递回 RMI 代理。
- RMI Agent 会分析记录,处理缺少显示名称或仅包含标识符引用的路段,并将数据汇总成高管摘要。
代理构建最终回答:
“2026 年 1 月 9 日(星期五)下午 5:00,波士顿市中心最拥堵的路线的出行时间明显高于其典型的静态时长。以下是根据考虑路况的持续时间与静态持续时间之比得出的拥堵程度最高的前 5 个路段:“Route roads/CgkJZ-tTXuNcW4s:这是拥堵程度最高的路段,行程时间为 66 秒,而静态持续时间仅为 6 秒(拥堵比为 11.0 倍)…”
总结
通过将对话式交互和叙事合成与低级 SQL 生成和数据检索分离,分层 RMI ADK 代理架构弥合了复杂地理空间数据仓库与最终用户之间的差距。在专用分代理中隔离数据库执行可提高模块化程度、可维护性和操作安全性,同时使决策者能够通过自然语言快速提取可验证的分析洞见。
后续步骤
- 根据您的使用场景进行自定义:根据您的具体地理空间或组织使用场景调整此多智能体架构和提示设计。
- 使用专用规划器代理进行扩展:纳入专用规划器代理来编排复杂的多步骤分析工作流。
- 集成多模态数据源:通过将 RMI 数据与天气事件、施工计划或实时突发事件 Feed 等其他空间图层相结合,丰富交通和道路管理方面的洞见。
- 部署到生产环境:按照注册和管理托管在 Gemini Enterprise Agent Platform 上的 ADK 代理指南,将代理从原型过渡到生产企业环境。
贡献者
Kel Markert | 云地理学家