LangGraph 是用于构建具有大型语言模型(LLMs)的强大且有状态的多角色应用程序的工具,它是 langchain 的一个扩展。
LangGraph 将应用程序的工作流程表示为一个图结构,其中节点代表不同的操作或步骤,例如调用一个 LLM、访问一个数据库、处理用户输入等;边则代表步骤之间的关系或流程,例如数据流、决策路径等。这种图形结构允许创建复杂的、有状态的多角色应用程序,每个角色可以独立执行操作,互相通信,并根据前一步骤的结果动态调整。
与 langchain 中的链(chain)相比,chain 是有向无环的,而 LangGraph 提供了循环机制。与 agent executor 相比,agent executor 是相对简单的循环,而 LangGraph 提供了更多的控制,例如可以强制代理首先调用特定工具,对调用工具的方式有更多控制,以及根据代理所处的状态设置不同的提示等。
1. 安装依赖:使用 pip install langchain langgraph 安装所需库。
2. 导入相关模块并定义图结构。
3. 创建节点:节点可以是调用 LLM、执行其他操作等。
4. 添加节点到图中。
5. 定义边并连接节点:边可以是普通边、起始边或条件边等,用于确定节点之间的执行顺序和条件。
6. 添加边到图中。
7. 执行图。
总的来说,LangGraph 为开发者提供了更强大、灵活和可控的方式来构建基于 LLM 的应用程序,适用于各种复杂的任务和场景。
如果你想了解更多关于 LangGraph 的详细信息和具体代码示例,可以参考其官方文档和相关的示例项目。同时,随着技术的发展,LangGraph 可能会不断更新和改进,建议关注其官方渠道以获取最新的资讯。

2 个月前
Agent是具备自主决策、工具调用与状态感知的智能体概念,LangGraph则是LangChain生态下的图驱动有状态Agent编排框架,专门解决复杂Agent的状态管理、循环分支与持久执行问题,是构建生产级Agent的核心基础设施。二者是“概念-实现”的强绑定关系,LangGraph为Agent提供图建模、状态持久化、人机协作等关键能力,适配ReAct、多智能体协作等复杂场景。 核心关联逻辑:概念与实现的分层 层级 定位 核心内容 概念层(Agent) 自主决策执行单元 LLM+Tools+自主循环(Thought→Action→Observation),解决非预定义复杂任务 实现层(LangGraph) 图驱动Agent框架 以有向图建模Agent流程,通过State/Nodes/Edges/Checkpointing支撑复杂逻辑 生态层 LangChain全家桶 LangGraph无缝集成LangChain的LLM/Tools/Prompt与LangSmith调试能力,降低开发门槛 LangGraph为Agent解决的核心痛点 有状态执行:用State统一管理对话历史、工具输出、中间结果,支持跨轮次上下文与长期记忆,避免“失忆”。 复杂流程编排:将Agent步骤拆为Nodes(LLM调用、工具执行、决策判断),用Edges(含条件分支)定义路径,原生支持循环(如ReAct迭代)与并行执行。 持久化与容错:Checkpointing自动保存每步状态,任务中断后可恢复,适配长时间运行场景(如多轮调研、项目管理)。 人机协作可控:支持执行中人工干预状态、审批工具调用,解决Agent“黑盒操作”风险。 多Agent协同:将不同功能Agent作为节点,通过图结构实现任务拆分与结果聚合,适配复杂团队协作流程。 典型实现范式:ReAct Agent的图建模 定义State:封装消息、工具结果、思考记录等,用TypedDict/Pydantic统一管理。 配置Nodes:LLM节点(推理决策)、工具节点(执行调用)、路由节点(判断是否继续)。 连接Edges:按条件分支(如“有工具调用则执行工具,否则结束”)构建循环路径。 启用Checkpointing:保存每步状态,支持断点恢复与调试追踪。 部署与监控:用LangSmith可视化执行路径,快速定位逻辑问题。 与传统Agent实现的差异 对比项 LangGraph驱动Agent LangChain基础Pipe 普通云端Agent 状态管理 原生持久化,跨轮次记忆 无内置状态,需手动维护 依赖会话缓存,易丢失 复杂逻辑 支持循环、条件分支、并行 线性流程,扩展有限 多为单步/固定链,灵活度低 容错能力 Checkpointing断点恢复 无容错,中断需重跑 云端依赖,故障难恢复 可控性 执行中人工干预 固定流程,干预困难 操作透明性差 关键使用场景 单Agent复杂任务:市场调研(搜索→数据清洗→报告生成)、财务对账(多系统数据拉取→交叉校验→异常告警)。 多Agent协作:产品开发(需求Agent→设计Agent→开发Agent→测试Agent)、跨境电商(选品→翻译→投放→售后)。 长期运行任务:客户成功跟进(多轮问题诊断→方案生成→效果复盘)、内容系列创作(选题→素材→撰写→发布)。 快速上手建议 用create_react_agent快速搭建基础Agent,绑定LLM与Tools,验证核心流程。 自定义State结构,覆盖任务类型、工具结果、历史对话等关键字段。 拆分Nodes与Edges,添加条件判断(如“金额>1000需审批”),提升流程可控性。 启用Checkpointing并接入LangSmith,监控执行路径与状态变化。

1 年前
LangChain, Amazon Bedrock, Rivet, Vellum.

1 年前
LangGraph 是一个用于构建具有状态和多个参与者的应用程序的库,它受到 Pregel 和 Apache Beam 的启发,允许使用常规的 Python 函数来协调和检查点多个链(或参与者)在循环计算步骤中的状态,其公共接口从 NetworkX 中汲取灵感。

1 年前
LangChain 是一个 Python 库,可帮助您利用大型语言模型来构建自定义 NLP 应用程序。

1 年前
要使用 LangChain,要导入必要的组件和工具,这些组件组合起来创建一个可以理解、处理和响应用户输入的应用程序。

21 天前
AiPPT: 一句话、一分钟、一键搞定

28 天前
Ralph 就是一个让 AI "自己干活直到做完"的循环机制,特别适合复杂的编程任务,解放人力。这里介绍具体怎么搭建和使用 Ralph 循环。 📋 前置准备 你需要准备以下内容: 工具 用途 Claude Code Anthropic 的 AI 编程助手 CLI Docker Desktop 提供隔离的沙盒环境 Anthropic API Key 调用 Claude API 🛠️ 搭建步骤 方法一:使用 Claude Code 插件(推荐) Step 1: 安装 Claude Code # 安装 Claude Code CLI npm install -g @anthropic-ai/claude-code Step 2: 初始化项目 mkdir my-ralph-project cd my-ralph-project claude init Step 3: 添加插件市场 claude plugins add-marketplace Step 4: 安装 Ralph Wiggum 插件 claude plugins install ralph-wiggum Step 5: 配置 Stop Hook 在 .claude/hooks/ 目录下创建 stop-hook.json: { "hook_type": "stop", "decision": "block", "conditions": { "check_tests": true, "check_type_errors": true, "check_git_changes": true }, "max_iterations": 20, "prompt": "任务未完成,请继续迭代修复问题" } 方法二:手动搭建(完全控制) Step 1: 创建项目结构 my-ralph-project/ ├── .claude/ │ ├── hooks/ │ │ └── stop-hook.sh │ ├── skills/ │ │ └── ralph-loop.json │ └── config.json ├── prd/ │ └── requirements.json └── workspace/ Step 2: 配置核心文件 config.json - 核心配置 { "max_iterations": 15, "auto_commit": true, "run_tests_after_each_iteration": true, "stop_conditions": { "all_tests_pass": true, "no_type_errors": true, "prd_completed": true } } skills/ralph-loop.json - 技能定义 { "name": "ralph-loop", "description": "自主迭代循环实现 PRD 任务", "trigger": "when_task_incomplete", "actions": [ "analyze_current_state", "identify_blockers", "fix_issues", "run_tests", "commit_if_passing" ] } hooks/stop-hook.sh - Stop Hook 脚本 #!/bin/bash # 检查测试是否通过 TESTS_PASS=$(npm test 2>&1 | grep -c "passed") # 检查是否有类型错误 TYPE_ERRORS=$(npx tsc --noEmit 2>&1 | grep -c "error") # 检查 PRD 是否完成 PRD_COMPLETE=$(node check-prd.js) if [ "$TESTS_PASS" -eq 0 ] || [ "$TYPE_ERRORS" -gt 0 ] || [ "$PRD_COMPLETE" = "false" ]; then echo "BLOCK: 任务未完成,继续迭代" exit 1 else echo "ALLOW: 任务已完成" exit 0 fi Step 3: 准备 PRD 文件 prd/requirements.json { "project_name": "My Feature", "tasks": [ { "id": 1, "description": "创建用户登录页面", "criteria": ["表单验证正常", "API 调用成功", "错误处理完善"], "status": "pending" }, { "id": 2, "description": "实现用户注册功能", "criteria": ["邮箱验证", "密码强度检查", "重复密码确认"], "status": "pending" } ] } 🚀 使用方法 启动 RALPH 循环 # 方法一:插件方式 claude run --skill ralph-loop --prd ./prd/requirements.json # 方法二:Docker 隔离环境 docker run -it \ -v $(pwd):/workspace \ -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \ claude-ralph:latest 监控循环状态 # 查看当前迭代次数 cat .ralph/iteration_count # 查看任务完成状态 cat .ralph/task_status.json # 查看日志 tail -f .ralph/loop.log 🔧 高级配置 1. 自定义 Stop Hook 规则 { "stop_conditions": { "all_tests_pass": { "enabled": true, "command": "npm test", "success_pattern": "all tests passed" }, "no_lint_errors": { "enabled": true, "command": "npm run lint", "success_pattern": "no problems" }, "coverage_threshold": { "enabled": true, "threshold": 80 } } } 2. 添加代码审查步骤 { "after_each_iteration": [ "run_tests", "run_linter", "code_review", "commit_if_passing" ], "code_review_prompt": "审查代码质量、安全性、性能问题" } 3. 设置成本控制 { "cost_limits": { "max_tokens_per_iteration": 50000, "max_total_cost": 50, "alert_at_cost": 30 } } 📊 典型工作流程 ┌─────────────────────────────────────────────┐ │ 1. Claude 读取 PRD 任务列表 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 2. 选择下一个待完成任务 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 3. 实现代码、编写测试 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 4. 运行测试套件 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 5. Stop Hook 检查是否完成 │ │ • 测试通过? │ │ • 无类型错误? │ │ • PRD 要求满足? │ └─────────────────┬───────────────────────────┘ ↓ ┌───────┴───────┐ ↓ ↓ 未完成 完成 ↓ ↓ 返回步骤 2 结束循环 💡 最佳实践 建议 说明 PRD 要清晰 任务描述具体、可验证,避免模糊需求 设置最大迭代 防止无限循环消耗过多成本 使用 Docker 隔离环境,避免污染本地系统 定期检查 每 10 轮查看一次进度和日志 成本监控 设置预算警报,避免超支 ⚠️ 注意事项 成本控制:每次迭代消耗 tokens,长时间运行成本较高 质量检查:AI 可能"认为"完成但实际有 bug,需要严格测试 安全边界:在沙盒环境运行,避免 AI 误删重要文件 人工介入:复杂任务仍需人工审查结果

28 天前
Ralph Loop 是一种让 AI 自主迭代的机制,主要用于解决 AI 编程助手"半途而废"的问题。
Minimax(海螺AI)已由大模型名Minimax替换原海螺AI。现海螺AI为Minimax视频生成产品名。
海螺AI