医疗保健MCP助理
一个医疗保健查询助手演示使用Claude API和函数调用的多工具编排。代理在单个查询中动态组合来自多个数据源的信息。
示例:多工具查询流
查询: “APT-101确认了吗?你的工作时间是什么时候?”
答复: “是的,APT-101已于2025年12月10日上午10:00与史密斯医生确认。我们的办公时间为周一至周五上午8点至下午6点,周六上午9点至下午2点。”
代理自动识别需要两个不同数据源的查询,并按顺序调用相应的工具(lookup_appointment 和 check_faq),并将结果组合成连贯的响应。
可用工具
该系统提供对四个医疗保健数据源的访问:
- check_faq -一般信息(时间、地点、保险单)
- lookup_appointment -预约状态和详细信息
- lookup_lab_result -实验室测试结果
- find_doctor -医生可用性和信息
项目结构
healthcare-mcp-assistant/
├── src/
│ └── data.py # Healthcare data (FAQ, appointments, labs, doctors)
├── figures/
│ ├── mcp_diagram.png # Query flow diagram
│ └── evaluation_results.png # Evaluation metrics visualization
├── demo_claude.py # Main implementation
├── evaluation.py # DeepEval testing
├── evaluation_results.md # Detailed evaluation report
└── requirements.txt需求
anthropic
python-dotenv
deepeval设置
- 安装依赖项:
pip install -r requirements.txt- 将API密钥添加到
.env:
ANTHROPIC_API_KEY=your-key-here- 运行演示:
python demo_claude.py评估结果
以Claude Sonnet 4为评判者,使用DeepEval框架进行评估。
摘要:
- 完整性:通过率80%(4/5次测试)
- 多工具查询:完美完整性得分(1.0)
- 刀具选择精度:100%
评估验证了核心能力:成功地将来自多个工具的数据组合在一个响应中。
实现细节
核心组件:
- 功能工具 -Python函数包装为工具:
- check_faq(question) -常见问题解答 - lookup_appointment(appointment_id) -预约详情 - lookup_lab_result(lab_id) -实验室结果 - find_doctor(doctor_name) -医生信息
- 代理循环 -处理多回转刀具调用:
- 代理根据需要调用工具 - 结果反馈给代理 - 持续到生成最终响应
- 评估 -DeepEval指标:
- 正确性:事实准确性 - 完整性:所有查询部分均已回答
查询示例
单一工具:
Q: "What are your hours?"
A: Monday-Friday 8AM-6PM, Saturday 9AM-2PM, Closed Sundays多工具:
Q: "Is APT-101 confirmed and what are your hours?"
A: [Combines appointment details + office hours]成本与性能
- 评估费用:0.05美元(5次查询)
- 平均响应时间:~6秒
- 评估模型:克劳德·索内特4
许可证
麻省理工学院
