在医疗领域,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环境
pip install --upgrade google-adk
adk --version
国内加速技巧
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

打开浏览器,点击 + 创建新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会
- 自动拆解出4个Agent节点(1个根 + 1个并行协调器 + 3个子Agent)
- 给每个Agent分配合适的模型(症状分析用Pro,查询用Flash)
- 自动绑定google_search工具
- 生成初始Prompt模板

你会在画布上看到这样的流程图:
[医导诊助手(根Agent)]
↓
[并行协调器]
↙ ↓ ↘
[症状] [医院] [规划]
↘ ↓ ↙
[汇总输出]
点击Save保存配置。
步骤5 调试
在聊天窗口输入
我最近头晕、血压150/95,想在北京朝阳区看病,预算2000元,有医保。
系统会
- 触发根Agent接收消息
- 并行协调器同时调用3个子Agent
- 每个子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)
调试技巧
- 点击蓝色进度条查看每个节点的输入/输出
- 如果某个Agent返回异常,检查其Prompt模板是否清晰
- 工具调用失败时,查看execute_tool的参数是否正确
自动生成代码报错怎么办?
ADK的编排能力很强,,自动生成的Python工具代码可能出错。如果遇到报错,不要依赖聊天界面修复,而是直接打开生成的.py文件手动修改。
比如Gemini生成的数据格式化函数键名不匹配
result = {"hospital_name": data["name"]}
result = {"hospital_name": data.get("hospitalName", "未知医院")}
三、国内部署替代方案
Google Cloud在国内访问不稳定,而且Gemini API按token计费,可以使用本地模型替代。
推荐技术栈
模型:通义千问Qwen2.5
框架:LangGraph(类似ADK的编排能力,支持中文文档)
部署:Ollama本地运行Qwen模型
1.安装Ollama + Qwen:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:14b
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系统在医疗场景的应用必须谨慎,本文提供的技术方案仅作为开发参考。