基于LangChain与LangGraph构建医疗问诊AI Agent:从原理到实践
1. 为什么从医疗问诊 Agent 开始理解 LangChain 全家桶最有效如果你正在关注 AI Agent 开发,尤其是想用 LangChain、LangGraph 和 LangSmith 来构建点实际的东西,那么“医疗问诊”这个场景几乎是完美的切入点。它不像“写首诗”那么简单,也不像“全自动股票交易”那么复杂且充满风险。一个问诊 Agent 会逼着你面对 Agent 开发中最核心的几个问题:如何让大模型理解专业领域知识、如何设计多步骤的推理流程、如何持久化对话历史、以及如何监控和调试这个“黑盒”系统的每一步决策。很多人一上来就去看 LangChain 的官方文档,结果被Runnable、Chain、Memory、Tool这些抽象概念绕晕了。或者直接去跑 LangGraph 的“多智能体”例子,却发现连一个单智能体的状态流转都理不清楚。我的建议是,先别急着看框架能做什么,而是想清楚你要解决什么问题。一个医疗问诊 Agent,天然就需要:知识检索:从医学知识库或文档中查找信息(对应 LangChain 的Retrieval)。条件判断:根据用户症状,决定是直接回答、继续追问、还是建议就医(对应 LangGraph 的State和条件边)。工具调用:可能需要调用计算 BMI、查询药品数据库等外部工具(对应 LangChain 的Tool)。记忆与历史:记住用户之前提到的症状,进行连贯问诊(对应 LangChain 的Memory或 LangGraph 的持久化状态)。流程控制:这是一个典型的、有明确节点和分支的工作流(对应 LangGraph 的Graph)。可观测性:你需要知道 Agent 在哪一步检索了错误信息、为什么做出了某个判断(对应 LangSmith 的Trace)。通过构建这个具体的 Agent,你会把 LangChain 的组件、LangGraph 的编排、LangSmith 的调试串联起来,理解它们各自扮演的角色和协作方式。这比孤立地学习每个库要高效得多。2. 环境准备与核心概念对齐:别在第一步就卡住在动手写代码之前,先把环境和核心职责搞清楚。很多教程默认你已经装好了所有东西,结果你在pip install阶段就遇到各种版本冲突。2.1 环境与依赖你需要一个 Python 环境(建议 3.9+)。核心的安装命令很简单:pip install langchain langgraph langsmith但这里有几个坑:版本同步:确保你安装的是较新的、相互兼容的版本。直接用pip install langchain langgraph langsmith通常会安装兼容的最新版。但如果后续遇到奇怪错误,先检查版本 (pip show langchain langgraph langsmith)。模型供应商:LangChain 本身不提供模型,你需要一个 LLM 供应商的 API Key。对于学习和原型开发,OpenAI或Anthropic的 API 是最方便的选择。国内环境可以考虑通过合规渠道使用兼容 OpenAI API 的国内大模型服务。这里以 OpenAI 为例:pip install openai然后在代码中设置环境变量OPENAI_API_KEY。LangSmith 是可选的,但强烈建议:LangSmith 是 LangChain 公司提供的商业化平台,用于跟踪、调试和评估 Agent。它有免费额度,对于学习和小型项目完全够用。去 LangSmith 官网注册,获取一个 API Key,并设置环境变量LANGSMITH_API_KEY。它能让你“看见”Agent 的内部思考过程,这是本地调试无法比拟的。2.2 三驾马车的职责划分很多人分不清 LangChain、LangGraph 和 LangSmith 的区别,导致用错工具。你可以这样理解:组件核心职责类比在医疗问诊 Agent 中的作用LangChain组件库与粘合剂乐高积木和通用连接件。提供了与大模型对话 (LLM)、管理记忆 (Memory)、调用工具 (Tool)、检索文档 (Retriever) 等标准化“积木”。提供问诊所需的“积木”:1.