LangGraph 初见
使用 LangGraph 和 LangSmith 构建高级 AI 代理:一个多智能体研究系统实战
摘要
本文档详细阐述了如何利用 LangChain 生态中的 LangGraph 和 LangSmith 构建一个高级、有状态、可循环的 AI 代理系统。传统的线性链式(Chains)调用在处理需要规划、执行、反思和条件判断的复杂任务时能力有限。为了解决此问题,我们通过一个多智能体研究系统的案例,展示如何使用 LangGraph 将代理的行为建模为显式的状态图(State Graph),并利用 LangSmith 对其进行端到端的追踪、调试和评估,实现生产级的可靠性与可观测性。
1. 核心概念
在进入实战编码前,理解以下两个核心组件至关重要。
1.1 LangGraph:可控的 AI 工作流
LangGraph 是一个用于构建有状态、多智能体应用的库。它将传统代理(Agent)中隐式的、有时混沌的思维循环,转变为显式的、可控的状态机。其核心思想是将应用构建为一个图(Graph)。
State (状态):一个在图中所有节点间传递和更新的中心化对象。通常定义为一个 Python
TypedDict或 PydanticBaseModel,作为系统唯一的“事实来源”(Single Source of Truth)。Nodes (节点):图中的工作单元。每个节点是一个 Python 函数,接收当前状态,执行任务(如调用 LLM、执行工具),并返回对状态的更新。
Edges (边):定义节点之间的流转逻辑。最关键的是 Conditional Edges (条件边),它允许我们根据当前状态,动态地决定下一个要执行的节点,从而实现循环、分支等复杂逻辑。
1.2 LangSmith:AI 应用的可观测性
LangSmith 是一个专为 LLM 应用打造的可观测性(Observability)平台,功能类似于传统后端的 DataDog 或 Jaeger。它解决了 LLM 应用调试困难、行为难以预测的痛点。
Tracing (链路追踪):自动捕获并可视化应用执行的每一步,包括 LLM 调用、工具使用、提示(Prompt)详情、Token 消耗等。
Monitoring (监控):提供对应用在生产环境中的延迟、成本、错误率和用户反馈的宏观监控。
Evaluation (评估):允许开发者创建数据集,对应用的不同版本进行自动化评估,以量化模型或提示变更带来的效果。
2. 系统架构与设计
我们构建的研究系统将模拟一个研究团队的工作流程,该流程被建模为一个状态图。
2.1 工作流程
Planner (规划师):接收用户提出的宏观研究课题。
Executor (执行者):使用工具(如搜索引擎)对具体子问题进行研究。
Decider (决策者):判断研究是否完成。如果未完成,流程循环回到 Executor;如果已完成,流程进入下一步。
Synthesizer (综合者):汇总所有研究资料,生成最终报告。
2.2 状态图 (Mermaid)
代码段
3. Step-by-Step 实现
以下是完整的代码实现步骤。
步骤 1: 环境设置
安装所有必要的依赖库,并配置环境变量。
Python
步骤 2: 定义状态与工具
定义图的中心化 State 对象和代理需要使用的 Tool。
Python
步骤 3: 实现图节点
为系统中的每个角色(Planner, Executor, Synthesizer)创建对应的节点函数。
Python
步骤 4: 组装与编译图
将节点连接起来,定义工作流的逻辑,特别是实现循环的条件边。
Python
步骤 5: 运行与观测
使用 app.stream() 运行应用,并展示如何在 LangSmith 中进行分析。
5.1 运行代码
Python
5.2 运行日志示例
Plaintext
5.3 在 LangSmith 中分析
在 LangSmith 平台对应的项目中,可以找到本次运行的完整 Trace。通过 Trace 视图,可以获得以下关键洞见:
可视化流程: 直观地看到图的执行路径,包括循环和分支,与设计的状态图完全对应。
输入/输出详情: 点击任一 LLM 节点(如
planner),可以审查其完整的输入 Prompt、模型参数、原始输出、Token 消耗和延迟。工具调用分析: 展开
executor节点,可以清晰地看到其内部对TavilySearchResults工具的调用,包括查询的子问题和工具返回的原始数据。逻辑决策透明化:
should_continue决策步骤清晰可见,使得复杂的控制流逻辑不再是黑盒。
4. 结论
通过本案例,我们成功构建并演示了一个基于 LangGraph 的高级 AI 代理。其核心优势在于将代理的内部工作流显式化、结构化,通过状态图的方式极大地增强了系统的可控性、可预测性和可调试性。结合 LangSmith 平台提供的强大可观测能力,开发者可以构建、调试并维护真正达到生产级别的复杂 AI 应用。
5. 未来探索方向
错误处理: 为图的节点增加异常捕获和重试逻辑。
工具集扩展: 引入更多工具(如代码解释器、数据库查询工具),并让代理动态选择使用。
自我修正循环: 增加一个“审稿”(Critique)节点,对
Synthesizer生成的报告进行评估和反馈,形成一个内部的自我优化循环。
Last updated