项目简介

Health Agents Collective 是一个隐私优先、面向医疗应用构建的多智能体AI系统。它利用Google的A2A(Agent-to-Agent)协议和Pydantic AI框架,实现了患者分诊、FHIR数据集成和智能体协调等核心功能。系统中的每个微智能体都能独立运行,并通过JSON-RPC协议与大语言模型客户端通信,提供标准化的上下文信息和功能。

主要功能点

  • 医疗专用多智能体架构: 系统中的每个功能模块(如FHIR数据处理、患者分诊、任务协调)都作为一个独立的Starlette微智能体运行,支持本地、远程或容器化部署,具有高度灵活性和可伸缩性。
  • 动态智能体协调: 核心协调智能体能够实时发现并编排其他专业智能体的功能和工具,从而处理复杂的医疗查询和工作流,提供综合的响应。
  • LLM提供商无关: 支持任何兼容OpenAI API的大语言模型(如OpenAI、Anthropic、Google Vertex等),方便集成到现有LLM生态。
  • 100% 本地运行: 敏感的医疗数据在本地处理,除非用户明确允许发送给LLM提供商,否则数据不会离开本地机器,确保了高度隐私和安全。
  • 可扩展性: 允许开发者以极低的成本(例如,只需不到100行代码)快速创建和注册新的智能体,新智能体注册后即可被其他智能体发现和利用。
  • FHIR R4合规: 完全遵守HL7 FHIR R4标准,确保医疗数据交换的互操作性和规范性。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/micklynch/health-agents-collective.git
    cd health-agents-collective
  2. 创建并激活虚拟环境,安装依赖:
    uv sync
    # 或者使用 pip:
    # pip install -e .
    source .venv/bin/activate
  3. 配置环境变量: 复制示例配置文件,并编辑 '.env' 文件,填入你的API密钥和FHIR服务器URL。
    cp .env.example .env
    # 编辑 .env 文件,例如:
    # OPENROUTER_API_KEY=your-openrouter-api-key
    # FHIR_SERVER_URL=http://your-fhir-server:8080/fhir
  4. 运行应用程序:
    python app.py

服务器配置

本项目中的FHIR智能体(FHIR Agent)实现了一个MCP服务器,负责与FHIR服务器交互并暴露相关工具。为了让MCP客户端能够连接并使用此FHIR MCP服务器,需要配置以下信息:

  • 服务器名称 (name): 'FHIR-MCP'
  • 启动命令 (command): 'python' (用于启动Python解释器)
  • 启动参数 (args): '["-m", "src.mcp_handler.fhir_mcp_main"]' (指定运行 'fhir_mcp_main' 模块)
  • 环境变量 (env):
    • 'FHIR_SERVER_URL': 你的FHIR服务器的基准URL(例如 'http://your-fhir-server:8080/fhir')
    • 'FHIR_VERSION': FHIR版本,默认为 'R4'
  • 传输协议 (transport): 'stdio' (通过标准输入输出进行通信)

基本使用方法

系统启动后,将进入交互模式。你可以在命令行界面中输入自然语言请求:

  1. 启动所有智能体: 在项目根目录运行 'python app.py'。 系统将启动分诊智能体、FHIR智能体和协调智能体。
  2. 在交互模式下提问: 当看到 '💬 What would you like to do today?' 提示时,输入你的医疗查询或请求。
    • 患者分诊评估: '"I have a patient with chest pain and shortness of breath"' (我有一个病人,胸痛并呼吸急促)
    • FHIR数据检索: '"Find patient data for John Smith, age 45"' (查找45岁John Smith的病人数据)
    • 查询可用智能体: '"What agents are available?"' (有哪些智能体可用?)
    • 系统信息: '"How does this system work?"' (这个系统如何工作?)
  3. 查看结果: 协调智能体将自动识别最佳的专业智能体来处理你的请求,并将返回处理结果。 输入 '/quit' 退出交互模式。

信息

分类

AI与计算