Files
agent-craft/m09_langgraph_advanced/README.md
T

102 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧩 模块说明:LangGraph 进阶篇 - 构建企业级智能 Agent 系统
> 📌 核心知识点:Human-in-the-Loop 人工干预|Graph-as-a-Tool 子图封装|Multi-Agent 多智能体协作|Supervisor 总控调度|复杂工作流编排
---
### 1. `human_approval.py` (人工审批机制)
实现带有人工干预的智能体工作流,为敏感操作添加审批环节。
- ✅ 掌握点:
- 在 LangGraph 中使用 `interrupt_before=["tools"]` 设置中断点
- 通过 `app.get_state(config)` 获取工作流当前状态
- 实现用户交互审批流程,控制高危操作的执行
- 结合 MemorySaver 实现持久化状态管理
- 输出:
- 当智能体尝试执行敏感操作(如发送邮件)时,系统会暂停并请求用户确认
- 用户输入 "yes" 批准执行,输入其他取消操作
- 完整展示执行过程的日志和最终结果
> 💡 此示例适用于需要人工监督的场景,如金融交易、系统配置修改等高风险操作。
---
### 2. `graph_as_a_tool.py` (子图工具化封装)
演示如何将一个完整的 LangGraph 子工作流封装为单个工具(Graph-as-a-Tool 模式)。
- ✅ 掌握点:
- 定义独立的子图状态结构(如 `RetryState`
- 构建包含重试逻辑的子图工作流
- 使用 `@tool` 装饰器将子图封装为可调用工具
- 在主工作流中像使用普通工具一样调用子图
- 效果:
- 子图内部实现了失败重试逻辑,对调用者完全透明
- 主工作流可以无缝集成复杂的子流程,保持代码整洁
- 模拟实现了不稳定 API 调用的容错处理
> 💡 这种模式特别适合封装具有复杂内部逻辑的操作,如网络请求、数据库事务等可能需要重试或错误处理的场景。
---
### 3. `multi_agent_orchestration.py` (多智能体协作系统)
构建由总控节点协调多个专家智能体的协作系统,实现专业化分工。
- ✅ 掌握点:
- 定义共享的多智能体状态结构(`AgentState`
- 创建不同功能的专家节点(RAG专家、网络研究员、代码编写者)
- 实现 Supervisor 总控节点,负责任务分配和流程协调
- 为每个专家配置专属工具和系统指令
- 设计复杂的条件路由逻辑,支持多节点协作
- 效果:
- 系统会根据用户问题自动选择最合适的专家处理
- 专家可以调用专业工具获取信息
- 总控节点监控对话进度,决定是否完成任务或切换专家
- 完整展示多智能体交互过程和决策路径
> 💡 此架构适用于需要多领域专业知识协作解决的复杂问题,如技术咨询、客户服务等场景。
---
### 4. `supervisor_agent_ops_system.py` (企业级运维智能体系统)
整合前述所有高级特性,构建一个完整的企业级 IT 运维智能体系统。
- ✅ 掌握点:
- **Graph-as-a-Tool**:封装 SSH 日志分析子图,处理连接重试逻辑
- **Human-in-the-Loop**:对重启服务等高危操作实施人工审批
- **Multi-Agent 协作**:实现日志专家和运维专家的专业分工
- **Supervisor 调度**:根据问题类型和解决进度智能分配任务
- **状态持久化**:使用 MemorySaver 维护跨轮次的会话状态
- 效果:
- 完整模拟 IT 故障处理流程:报警 → 日志分析 → 故障定位 → 人工审批 → 执行修复
- 自动化程度高,但保留人工干预的安全机制
- 各组件松耦合,易于扩展和维护
- 支持 LangSmith 全流程追踪和调试
> 💡 这是一个接近生产环境的综合示例,展示了 LangGraph 构建复杂智能体系统的强大能力。
---
### 🔔 全局注意事项
- **学习路径建议**
`1.`(人工干预) → `2.`(子图封装) → `3.`(多智能体基础) → `4.`(企业级综合应用)
- 所有 `.py` 文件均依赖根目录 `.env` 中的 `OPENAI_API_KEY``LANGCHAIN_API_KEY`
- LangSmith 追踪功能已默认开启,可在 [LangSmith UI](https://smith.langchain.com) 实时查看执行流程
- `supervisor_agent_ops_system.py` 是一个整合性示例,建议在理解前三个文件的基础上学习
---
### 💡 **建议**
- 尝试扩展 `supervisor_agent_ops_system.py`,添加更多专业角色(如安全专家、性能分析师)
- 实验不同的 Supervisor 决策逻辑,优化任务分配策略
- 将真实的运维工具或 API 集成到系统中,构建实用的运维助手
- 探索在生产环境中部署此类系统的最佳实践,如性能优化、错误处理和监控
- 考虑添加更复杂的工作流模式,如并行执行、超时处理等高级特性