Files
agent-craft/m09_langgraph_advanced

🧩 模块说明:LangGraph 进阶篇 - 构建企业级智能 Agent 系统

📌 核心知识点:Human-in-the-Loop 人工干预|Graph-as-a-Tool 子图封装|Multi-Agent 多智能体协作|Supervisor 总控调度|复杂工作流编排


1. s01_human_approval.py (人工审批机制)

实现带有人工干预的智能体工作流,为敏感操作添加审批环节。

  • 掌握点:

    • 在 LangGraph 中使用 interrupt_before=["tools"] 设置中断点
    • 通过 app.get_state(config) 获取工作流当前状态
    • 实现用户交互审批流程,控制高危操作的执行
    • 结合 MemorySaver 实现持久化状态管理
  • 输出:

    • 当智能体尝试执行敏感操作(如发送邮件)时,系统会暂停并请求用户确认
    • 用户输入 "yes" 批准执行,输入其他取消操作
    • 完整展示执行过程的日志和最终结果

💡 此示例适用于需要人工监督的场景,如金融交易、系统配置修改等高风险操作。


2. s02_graph_as_a_tool.py (子图工具化封装)

演示如何将一个完整的 LangGraph 子工作流封装为单个工具(Graph-as-a-Tool 模式)。

  • 掌握点:

    • 定义独立的子图状态结构(如 RetryState
    • 构建包含重试逻辑的子图工作流
    • 使用 @tool 装饰器将子图封装为可调用工具
    • 在主工作流中像使用普通工具一样调用子图
  • 效果:

    • 子图内部实现了失败重试逻辑,对调用者完全透明
    • 主工作流可以无缝集成复杂的子流程,保持代码整洁
    • 模拟实现了不稳定 API 调用的容错处理

💡 这种模式特别适合封装具有复杂内部逻辑的操作,如网络请求、数据库事务等可能需要重试或错误处理的场景。


3. s03_multi_agent_orchestration.py (多智能体协作系统)

构建由总控节点协调多个专家智能体的协作系统,实现专业化分工。

  • 掌握点:

    • 定义共享的多智能体状态结构(AgentState
    • 创建不同功能的专家节点(RAG专家、网络研究员、代码编写者)
    • 实现 Supervisor 总控节点,负责任务分配和流程协调
    • 为每个专家配置专属工具和系统指令
    • 设计复杂的条件路由逻辑,支持多节点协作
  • 效果:

    • 系统会根据用户问题自动选择最合适的专家处理
    • 专家可以调用专业工具获取信息
    • 总控节点监控对话进度,决定是否完成任务或切换专家
    • 完整展示多智能体交互过程和决策路径

💡 此架构适用于需要多领域专业知识协作解决的复杂问题,如技术咨询、客户服务等场景。


4. s04_supervisor_agent_ops_system.py (企业级运维智能体系统)

整合前述所有高级特性,构建一个完整的企业级 IT 运维智能体系统。

  • 掌握点:

    • Graph-as-a-Tool:封装 SSH 日志分析子图,处理连接重试逻辑
    • Human-in-the-Loop:对重启服务等高危操作实施人工审批
    • Multi-Agent 协作:实现日志专家和运维专家的专业分工
    • Supervisor 调度:根据问题类型和解决进度智能分配任务
    • 状态持久化:使用 MemorySaver 维护跨轮次的会话状态
  • 效果:

    • 完整模拟 IT 故障处理流程:报警 → 日志分析 → 故障定位 → 人工审批 → 执行修复
    • 自动化程度高,但保留人工干预的安全机制
    • 各组件松耦合,易于扩展和维护
    • 支持 LangSmith 全流程追踪和调试

💡 这是一个接近生产环境的综合示例,展示了 LangGraph 构建复杂智能体系统的强大能力。


🔔 全局注意事项

  • 学习路径建议 s01.(人工干预) → s02.(子图封装) → s03.(多智能体基础) → s04.(企业级综合应用)
  • 所有 .py 文件均依赖根目录 .env 中的 OPENAI_API_KEYLANGCHAIN_API_KEY
  • LangSmith 追踪功能已默认开启,可在 LangSmith UI 实时查看执行流程
  • s04_supervisor_agent_ops_system.py 是一个整合性示例,建议在理解前三个文件的基础上学习

💡 建议

  • 尝试扩展 s04_supervisor_agent_ops_system.py,添加更多专业角色(如安全专家、性能分析师)
  • 实验不同的 Supervisor 决策逻辑,优化任务分配策略
  • 将真实的运维工具或 API 集成到系统中,构建实用的运维助手
  • 探索在生产环境中部署此类系统的最佳实践,如性能优化、错误处理和监控
  • 考虑添加更复杂的工作流模式,如并行执行、超时处理等高级特性