🚀 Benifex AI Agent黑客马拉松:打造智能福利助理
主题:人工智能代理工具和工作流程
欢迎来到Benifex黑客马拉松!您的挑战是使用Google agent Development Kit(ADK)和Gemini模型将一个基本的福利助理转变为一个强大的智能代理,能够进行高级数据检索、复杂分析和系统交互。
目标是掌握 工具创建, 工具链,以及 提示工程 解决现实世界中的员工福利问题。
🛠️ 核心工具和设置
提供的代码库已经包含以下环境:
| 组件 | 描述 | 状态 |
|---|---|---|
| 后端 | Flask API(模拟各种服务) | 正在运行(本地主机) |
| 数据库 | AlloyDB(用dbsetup.sql模拟) | 预配置 |
| 代理 | agent.py(主代理运行程序) | 准备就绪 |
| 工具箱 | tools.yaml(MCP工具定义) | 不完整(需要您的代码) |
| 代理 | places_proxy.py(外部位置API) | 完成 |
安装说明
- 启动后端: 确保后端服务(Flask API、Places Proxy)在其配置的端口上运行。
- 安装MCP工具箱
- 有关最新版本,请查看 发布页面 并针对您的操作系统和CPU架构使用以下说明。
# see releases page for other versions
export VERSION=0.17.0
curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
- 启动MCP工具箱:\
./toolbox--工具文件tools.yaml
- 运行代理:\
python代理.py
🎯 挑战
每个挑战都要求您填写tools.yaml(用于SQL工具)或agent.py(用于工作流/工具链逻辑)中缺失的代码。
挑战1:基础工具
目标: 完成查询AlloyDB数据库的基本数据检索功能。
| 任务 | 文件 | 描述 |
|---|---|---|
| 1.1查找供应商 | tools.yaml | 为查找提供程序工具编写SQL语句,以选择提供程序的名称、专业、位置和网络状态,仅筛选 IN-NETWORK 基于$1专业参数的提供商。 |
| 1.2获得员工福利 | tools.yaml | 为获取员工福利工具编写SQL语句,以检索特定$1员工ID的完整福利行(计划名称、免赔额、OOP最大值、HSA资格) |
| 1.3测试 | agent.py | 运行一个成功使用 两者 工具(例如,“我的ID是123。我的免赔额是多少,你能给我找个牙医吗?"). |
挑战2:高级数据处理
目标: 创建一个工具,模拟对策略文档的语义搜索,这是检索增强生成(RAG)系统的关键组成部分。
| 任务 | 文件 | 描述 |
|---|---|---|
| 2.1语义策略搜索 | tools.yaml | 为搜索策略文档工具编写SQL语句。此工具需要搜索document_chunks表,使用LIKE运算符过滤$1 query_text的内容列,并将结果限制为$2 max_results参数。 |
| 2.2 RAG集成(概念) | agent.py | 确保您的代理的系统提示(agent.py)引导Gemini模型使用从该工具检索到的块来合成用户复杂政策问题的最终、有根据的答案(例如,“我的Gold PPO计划是否涵盖生育治疗?”)。 |
挑战3:数值和预测分析
目标: 实现代理执行复杂的链式数值计算(成本预测)所需的数据检索。
| 任务 | 文件 | 描述 |
|---|---|---|
| 3.1计划明细检索 | tools.yaml | 为获取员工计划详细信息工具编写SQL语句,检索员工ID的免赔额和OOP最大值 |
| 3.2使用配置文件检索 | tools.yaml | 为获取使用配置文件假设工具编写SQL语句,检索特定1美元使用配置文件(低、平均、高)的声明和访问假设。 |
| 3.3代理工作流程 | agent.py | 代理必须正确地链接这两个工具,检索数据,然后执行计算(在Python工具中或依赖于Gemini模型基于检索到的数据的推理)来预测成本。 *(计算逻辑本身很复杂,这是最大的挑战)*. |
挑战4:放置API集成(外部工具链接)
目标: 将功能强大的外部HTTP工具(按地址查找最近的提供者)与内部SQL工具集成,以查找网络中最近的提供者,这需要复杂的多步骤推理。
AI密钥设置
places_proxy.py文件需要 谷歌地图API密钥。对于此挑战,您必须:
- 生成密钥: 从Google云控制台获取新的API密钥。
- 启用服务: 确保 地点API 和 地理编码API 您的项目中已启用服务。
- 限制密钥:
1. 应用限制: 将密钥限制为运行places_proxy.py服务的特定IP地址。 1. API限制: 将密钥限制为仅使用 地点API 和 地理编码API
- 更新: 替换占位符 \ 在places_proxy.py中使用安全密钥。
| 任务 | 文件 | 描述 |
|---|---|---|
| 5.1提供商位置数据库搜索 | tools.yaml | 为获取提供程序位置工具编写SQL语句。这类似于1.1,但还必须包括一个可选的位置过滤器(2美元)。 |
| 5.2代理链接逻辑 | agent.py | (心理挑战) 团队必须更新代理的提示,以正确指定复杂的链接逻辑: 第一 调用获取提供商位置(SQL)以查找网络中的提供商, 然后 调用按地址查找最近的提供商(HTTP代理)以查找附近的位置,以及 终于 交叉引用这两个结果集以推荐以下提供者 *两者* 在网络和封闭。 |
挑战6:使用Firebase Studio定制Web UI
目标: 构建一个功能强大的单页聊天客户端,可以向完全构建的AI代理发送查询,在用户友好的界面中展示整个解决方案。
背景: 此挑战的假设是,已完成的Python代理(agent.py)已部署为可访问的 HTTP端点 (例如,通过Cloud Run或Cloud Functions)接受聊天消息并返回响应。
| 任务 | 文件 | 描述 |
|---|---|---|
| 6.1 UI设计和设置 | *新建HTML文件* | 使用以下命令创建一个视觉上吸引人、响应迅速的单页聊天应用程序 HTML、顺风CSS和JavaScript界面必须有一个输入字段和一个对话历史显示区域。 |
| 6.2聊天逻辑 | *新建HTML文件* | 实现JavaScript逻辑以发送用户的查询和 会话ID 作为一个结构化JSON对象到一个模拟API端点(/agent/chat)并解析代理的JSON响应,确保 多转折历史 在UI中维护。. |
| 6.3代理集成(概念) | *新建HTML文件* | 通过让聊天客户端发送和接收结构化JSON数据来演示集成,证明前端已准备好连接到部署的Gemini/ADK服务。 |
祝你们好运,Benifex黑客马拉松的参与者!愿这些工具永远对你有利。
