摘要: LangGraph4j 学习系列(9)-人机协同(human_in_the_loop) 接上节继续,在某些循环迭代流程中,希望人工干预来影响流程走向,也就是所谓的human_in_the_loop 代码示例 public class HumanInLoopGraphApplication { private static final String LOOP_COUNT_KEY = "l 阅读全文
posted @ 2026-03-01 19:38 菩提树下的杨过 阅读(45) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(8)-checkpoint检查点 接上节继续,Checkpoint(检查点)的主要作用是保存图执行过程中的状态,让图可以在需要时暂停并在之后从断点恢复执行,通常需要与interrupt结合使用。 先定义1个图 public static StateGraph<MessagesState<String>> getGraph() thr 阅读全文
posted @ 2026-03-01 19:25 菩提树下的杨过 阅读(30) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(7)-流式响应 接上节继续,流式响应在LLM应用中是改善用户体验的重要手段之一,可以有效缓解长耗时应用的用户焦虑感。 Stream基础示例 定义节点 /** * @author junmingyang */ public class ChatNode implements NodeAction<MessagesSt 阅读全文
posted @ 2026-03-01 19:11 菩提树下的杨过 阅读(50) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(6)-并行工作流 接上节继续,本篇将学习如何实现并行工作流。 上面这张图,用代码很容易绘制,参考以下代码。 核心代码 public static StateGraph<AgentState> getParallelGraph() throws GraphStateException { return new Stat 阅读全文
posted @ 2026-03-01 18:53 菩提树下的杨过 阅读(36) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(5)-Hook勾子 接上节继续,用过Spring框架的同学都知道,Spring中的AOP,可以在无侵入的情况下,对原有的代码逻辑做增强(比如:在代码执行前后,自动记录日志、计算方法执行耗时等等) LangGraph4j中的Hook机制跟AOP类似,可以在Node执行的before/after/wrap 这3个时机,无侵 阅读全文
posted @ 2026-03-01 18:38 菩提树下的杨过 阅读(23) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(4)-SCHEMA和Channel 接上节继续,前面的3种基本工作流演示,节点上携带的状态数据使用的是默认的AgentState data的Value是Object类型(通俗点说,等同于没有类型,没有强类型约束),读写状态值时,需要做各种类型转换,十分繁琐,且容易出错。实际应用时,可以给AgentState中的各项元素,加1个类型说明 阅读全文
posted @ 2026-03-01 13:21 菩提树下的杨过 阅读(26) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(3)-循环工作流 接上节继续,本节将演示条件工作流如何用langgraph4j实现。 注:循环工作流可以看成 条件工作流的一个变种。node1 -> node2 -> node1 这样就形成了1个死循环(loop),为了能跳出死循环,用条件边来判定跳出时机。 一、定义节点 public class Node1Acti 阅读全文
posted @ 2026-03-01 12:57 菩提树下的杨过 阅读(32) 评论(0) 推荐(0)
摘要: LangGraph4j 学习系列(2)-条件工作流 接上节继续,本节将演示条件工作流如何用langgraph4j实现 经过node-1节点时,根据该节点的输出状态值,来决定流向node-2,还是node-3 ? 一、定义节点 1 public class Node2Action implements NodeAction<AgentState> { 阅读全文
posted @ 2026-03-01 12:47 菩提树下的杨过 阅读(44) 评论(0) 推荐(0)