从血液检测到医生预约:使用 LangGraph 和 GPT-4 构建自主健康代理

发布: (2026年2月2日 GMT+8 09:10)
7 分钟阅读
原文: Dev.to

Source: Dev.to

Beck_Moulton

我们都有过这种经历:收到血液检测结果,看到一堆可怕的红色箭头标记着 “高”“低”, 然后立刻陷入 WebMD 的恐慌深渊。但如果你的 AI 不仅仅是解释结果,而是通过寻找专科医生并为你预约,直接解决问题,会怎样?

在本教程中,我们将使用 LangGraphGPT‑4函数调用 构建一个复杂的 AI 健康代理。这不仅仅是另一个聊天机器人;它是一个为 医疗自动化 设计的自治系统,弥合数据分析与现实行动之间的鸿沟。通过利用 LLM‑驱动的工作流,我们可以实现从临床数据到医生预约的全程自动化。

💡 旁注:虽然这是一项关于代理工作流的技术探索,但请始终咨询真人医生以获取医疗建议。如果你在寻找更适用于生产环境的医疗 AI 模式,请查看 WellAlly Tech Blog 上的高级案例研究。

架构:闭环

传统的 LLM 链是线性的,但健康相关的任务往往是循环的,需要状态管理。这就是我们使用 LangGraph 的原因——它让我们能够定义状态机,使代理能够回环、搜索更多信息,或根据报告中检测到的“异常”触发特定工具。

系统工作流

graph TD
    A[Input: Blood Test PDF/Text] --> B{GPT‑4 Analysis}
    B -- Normal --> C[Summarize & Finish]
    B -- Abnormal Findings --> D[Tavily API: Search Specialists]
    D --> E[GPT‑4: Select Best Match]
    E --> F[Google Calendar API: Check Slots]
    F --> G[Confirm & Book Appointment]
    G --> H[Final Report to User]

    style B fill:#f96,stroke:#333,stroke-width:2px
    style G fill:#00ff00,stroke:#333,stroke-width:2px

前置条件

要跟随操作,您需要:

  • Python 3.10+
  • LangGraph & LangChain – 用于代理编排
  • OpenAI GPT‑4 API key – 用于高推理提取
  • Tavily API – 用于专业医学资源搜索
  • Google Calendar API – 处理日程安排逻辑

第一步:定义代理状态

在 LangGraph 中,状态 是在节点之间传递的唯一真实来源。我们需要跟踪血液检查结果、已识别的异常以及推荐的医生。

from typing import List, TypedDict
from langgraph.graph import StateGraph, END

class AgentState(TypedDict):
    raw_report: str
    abnormalities: List[str]
    specialist_recommendation: List[dict]
    appointment_confirmed: bool
    final_summary: str

第2步:分析节点(GPT‑4 + Pydantic)

我们希望代理提取结构化数据。我们将使用 GPT‑4 配合特定的 Pydantic 模式,以避免大量文本。

from pydantic import BaseModel, Field

class Finding(BaseModel):
    indicator: str = Field(description="The name of the test, e.g., LDL Cholesterol")
    value: str = Field(description="The numeric value detected")
    status: str = Field(description="High, Low, or Normal")

def analyze_report_node(state: AgentState):
    # Call GPT‑4 with the Findings schema
    # report = state["raw_report"]
    # structured_data = llm.with_structured_output(Finding).invoke(report)

    # Simulating a 'High Glucose' finding
    return {
        "abnormalities": ["High Glucose (120 mg/dL)"],
        "next_step": "search"
    }

第3步:工具集成(Tavily 与 Google Calendar)

如果代理检测到异常,它会触发 Tavily API 来查找当地的内分泌科医生,然后调用 Google Calendar API 来寻找空闲时段。

from langchain_community.tools.tavily_search import TavilySearchResults

def search_specialist_node(state: AgentState):
    search = TavilySearchResults(k=3)
    query = f"Best endocrinologists for {state['abnormalities'][0]} in San Francisco"
    results = search.run(query)
    return {"specialist_recommendation": results}

def book_appointment_node(state: AgentState):
    # In a real app this would use the Google Calendar API:
    # service.events().insert(calendarId='primary', body=event).execute()
    print("🚀 Auto‑booking appointment for next Tuesday at 10:00 AM...")
    return {"appointment_confirmed": True}

第4步:构建图

现在我们把各部分连接起来。当存在异常时,条件边将流程发送到搜索步骤,否则图结束。

workflow = StateGraph(AgentState)

workflow.add_node("analyzer", analyze_report_node)
workflow.add_node("searcher", search_specialist_node)
workflow.add_node("scheduler", book_appointment_node)

workflow.set_entry_point("analyzer")

def should_continue(state: AgentState):
    return "continue" if state["abnormalities"] else "end"

workflow.add_conditional_edges(
    "analyzer",
    should_continue,
    {
        "continue": "searcher",
        "end": END,
    },
)

workflow.add_edge("searcher", "scheduler")
workflow.add_edge("scheduler", END)

app = workflow.compile()

为什么这很重要:向行动导向 AI 的转变

大多数 AI 教程只停留在“总结文档”。在真实世界中,企业和用户需要 结果。通过将 LangGraph 的有状态编排与 LLM 推理以及外部工具相结合,我们可以从被动洞察转向主动协助——自动将血液检测报告转化为已预约的专科医生就诊。

编码愉快! 🚀

使用 Tavily、Google Calendar 等强大工具进行状态管理,可将被动的 LLM 转变为用户健康旅程中的主动参与者。

这种模式——检测 → 搜索 → 行动——是下一代企业 AI 的蓝图。

若想深入了解如何安全地处理 PHI(受保护的健康信息)或优化这些代理提示以降低延迟,请查阅位于 的深入指南。它们涵盖了超出简单 MVP 的生产级细节。

结论

我们已经成功构建了一个自主循环,能够:

  • 理解 复杂的实验室数据。
  • 决定 是否需要采取行动。
  • 执行 真实世界的 API 调用以预约。

医疗的未来不仅仅是更好的药物;更是更好的可及性和减轻患者的认知负担。

接下来你想自动化什么? 也许是一个根据你的睡眠数据调整锻炼的健身代理?在评论中告诉我吧! 👇

Back to Blog

相关文章

阅读更多 »

FunctionGemma 微调指南

2026年1月16日 在Agentic AI的世界中,调用tools的能力是将自然语言转化为可执行软件操作的关键。上个月我们发布了……

FunctionGemma 微调指南

markdown 2026年1月16日 在 Agentic AI 的世界中,调用工具的能力是将自然语言转化为可执行的软件操作的关键。上个月,我们……

FunctionGemma 微调指南

2026年1月16日 在Agentic AI的世界中,调用工具的能力是将自然语言转化为可执行的软件操作的关键。上个月……