Google ADK 实战:从零搭建医疗智能导诊系统

2025-11-19 15:37:04
文章摘要
这篇文章讲的,是如何用 Google ADK 把复杂的“医疗导诊系统”像搭乐高一样搭出来。症状分析、医院筛选、挂号规划,这些原本需要专业团队的流程,现在都能用几个可视化小方块拼接完成。文章从安装环境到真实示例,一步步演示 AI 如何帮你自动分析病情、找医院、估费用,让医疗信息变得清晰、可查、可控。

   在医疗领域,AI技术的应用正在改变传统的诊疗模式,尤其是在病人管理、诊断支持和治疗推荐等方面。

Google的ADK视觉代理构建工具为开发者提供了一个可视化的平台,使得复杂的多代理工作流变得更加直观易用。

就像拼积木一样,我们能编排多个专业智能体,让不同Agent专注做好一件事。

本文将手把手带你用ADK构建一个医疗导诊系统吗,从安装到实战。

一、Google ADK的三大核心组件

1.LLM Agent(执行智能体)

每个节点绑定一个Prompt模板 + Gemini模型 + 可选工具集。

比如症状分析Agent,能使用Gemini 2.5 Pro + 医学知识库检索工具。

2.编排智能体

控制子Agent的执行顺序

串行:症状分析 → 医院匹配 → 预约规划

并行:同时查询3家医院的挂号信息,谁先返回用谁

循环:反复追问患者症状直到信息完整

3.工具(Tool)

内置google_search搜索工具,还支持自定义函数工具、OpenAPI规范接口、以及MCP协议的外部服务。

医疗场景常用

url_context:爬取医院官网的科室介绍

FilesRetrieval:读取电子病历PDF

自定义函数:调用医保接口查询报销比例


二、实战指南:搭建医疗智能导诊系统

架构设计

我们的系统分为4层:

根Agent(医疗导诊助手)
└─ 并行协调器
   ├─ 症状分析Agent(分析病情 + 推荐科室)
   ├─ 医院匹配Agent(筛选医院 + 查询科室)
   └─ 就诊规划Agent(挂号攻略 + 费用估算)

工作流程

患者输入症状、地点、预算

三个Agent并行工作,各自调用google_search等工具

根Agent汇总结果,输出1-2个就诊方案(含利弊分析、费用明细)


步骤1 安装ADK环境

# 安装最新版ADK(推荐1.18.0+)
pip install --upgrade google-adk

# 验证安装
adk --version
# 输出: adk, version 1.18.0

国内加速技巧

# 使用清华镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple google-adk


步骤2 配置API密钥

前往https://aistudio.google.com/创建API Key:

左下角点击Get API Key

创建或选择Google Cloud项目(需开启计费)

复制密钥并设置环境变量

Linux/macOS:

export GOOGLE_API_KEY="你的密钥"

Windows PowerShell:

setx GOOGLE_API_KEY "你的密钥"

重启终端使变量生效


步骤3 启动可视化界面

adk web
# 默认在 http://127.0.0.1:8000 启动

打开浏览器,点击 + 创建新Agent,命名为Medical_Guidance_Agent。你会看到三栏界面

左侧:Configuration(配置面板)

中间:Canvas(可视化画布)

右侧:Assistant/Chat(对话窗口)


步骤4 生成架构

在右侧对话窗口的聊天框中输入需求描述

创建一个医疗导诊智能体系统。
输入:患者症状描述、期望就诊城市、预算上限、是否医保。
并行执行三个子Agent:
1. 症状分析Agent - 解析症状关键词,推荐就诊科室(使用google_search辅助)
2. 医院匹配Agent - 根据城市、科室、医保筛选2-3家医院(查询医院官网)
3. 就诊规划Agent - 生成挂号攻略、费用估算、就诊流程

输出规则:
- 最多返回2个就诊方案
- 每个方案包含:总费用、就诊便利度评分(0-1)、优缺点对比
- 优先选择医保定点、挂号难度低、综合评分高的方案
- 如果数据不足,返回降级方案并标注"信息不完整"

格式要求:纯文本列表,费用单位人民币,避免虚假预约链接。


ADK的智能之处是,输入这段话后,Gemini会

  1. 自动拆解出4个Agent节点(1个根 + 1个并行协调器 + 3个子Agent)
  2. 给每个Agent分配合适的模型(症状分析用Pro,查询用Flash)
  3. 自动绑定google_search工具
  4. 生成初始Prompt模板

你会在画布上看到这样的流程图:

[医导诊助手(根Agent)]
        ↓
[并行协调器]
   ↙ ↓ ↘
[症状] [医院] [规划]
   ↘ ↓ ↙
[汇总输出]

点击Save保存配置。


步骤5 调试

在聊天窗口输入

我最近头晕、血压150/95,想在北京朝阳区看病,预算2000元,有医保。

系统会

  1. 触发根Agent接收消息
  2. 并行协调器同时调用3个子Agent
  3. 每个子Agent调用Gemini模型 + google_search工具

汇总后返回结构化方案

输出示例

【方案一:北京朝阳医院心内科】
- 总费用:约1200元(医保报销后)
- 便利度:0.85
- 优点:三甲医院、医保定点、心内科权威
- 缺点:挂号难度较高(建议提前3天预约)
- 就诊流程:
  1. 通过"京医通"App预约心内科
  2. 携带医保卡、身份证就诊
  3. 预计费用:挂号14元+心电图80元+血压监测60元+药费约1000元

【方案二:朝阳区中医医院】
- 总费用:约800元
- 便利度:0.75
- 优点:中医调理、费用低、挂号容易
- 缺点:非专科医院,建议先排查心脏问题


步骤6 追踪调试

点击Trace标签页,可以看到完整的执行链路

medical_guidance_agent (根Agent)
└─ parallel_coordinator (并行协调器,耗时3.2s)
   ├─ symptom_analyzer (call_llm → Gemini 2.5 Pro, 1.1s)
   │ └─ execute_tool → google_search("头晕 血压高 科室")
   ├─ hospital_matcher (call_llm → Gemini 2.5 Flash, 0.9s)
   │ └─ execute_tool → google_search("北京朝阳区 心内科 医保")
   └─ visit_planner (call_llm → Gemini 2.5 Flash, 1.2s)

调试技巧

  1. 点击蓝色进度条查看每个节点的输入/输出
  2. 如果某个Agent返回异常,检查其Prompt模板是否清晰
  3. 工具调用失败时,查看execute_tool的参数是否正确

自动生成代码报错怎么办?

ADK的编排能力很强,,自动生成的Python工具代码可能出错。如果遇到报错,不要依赖聊天界面修复,而是直接打开生成的.py文件手动修改。

比如Gemini生成的数据格式化函数键名不匹配

# 错误代码(ADK自动生成)
result = {"hospital_name": data["name"]}  # 但实际key是"hospitalName"

# 手动修复
result = {"hospital_name": data.get("hospitalName""未知医院")}


三、国内部署替代方案

Google Cloud在国内访问不稳定,而且Gemini API按token计费,可以使用本地模型替代。

推荐技术栈

模型:通义千问Qwen2.5

框架:LangGraph(类似ADK的编排能力,支持中文文档)

部署:Ollama本地运行Qwen模型

1.安装Ollama + Qwen:

# 1. 安装Ollama(支持Mac/Linux/Windows)
curl -fsSL https://ollama.com/install.sh | sh

# 2. 拉取通义千问模型(14GB显存可运行)
ollama pull qwen2.5:14b

# 3. 运行
ollama run qwen2.5:14b


2.用LangGraph重构Agent:

from langgraph.graph import StateGraph
from langchain_community.llms import Ollama

# 定义症状分析节点
def analyze_symptom(state):
    llm = Ollama(model="qwen2.5:14b")
    prompt = f"分析患者症状:{state['symptom']},推荐科室"
    result = llm.invoke(prompt)
    return {"department": result}

# 构建工作流
workflow = StateGraph()
workflow.add_node("symptom_analyzer", analyze_symptom)
workflow.add_node("hospital_matcher", match_hospital)
workflow.add_node("visit_planner", plan_visit)
workflow.set_entry_point("symptom_analyzer")


四、落地注意实现

在正式上线医疗导诊系统前,务必检查加免责声明,“本系统仅供参考,不构成诊断依据”。

脱敏处理患者输入的隐私信息(身份证号、病历),医疗数据等要求通过三级等保认证。

同时对每个Agent都添加超时控制(避免某个节点卡死);使用降级策略,当google_search失败时,回退到本地知识库;使用限流保护,防止恶意调用耗尽API额度。

ADK内置评估功能

adk eval \
    medical_guidance_agent \
    test_cases/medical_eval_001.json

评估维度

科室推荐准确率(对比真实病例)

费用估算误差(±15%为合格)

响应时间(< 5秒)


除了导诊,ADK架构还能快速搭建

智能陪诊助手:实时解答患者检查流程疑问

慢病管理系统:定期提醒用药、监测指标异常

医保报销顾问:计算不同治疗方案的自费金额

项目地址:

git clone https://github.com/thomas-chong/google-adk-visual-agent-builder-demo.git


最后提醒,

AI系统在医疗场景的应用必须谨慎,本文提供的技术方案仅作为开发参考。


声明:该内容由作者自行发布,观点内容仅供参考,不代表平台立场;如有侵权,请联系平台删除。