langgraph4j 并行执行action问题 issue 515
背景前篇《langgraph4j原理源码分析 agent框架II 子agent/子图消息过滤》介绍了子agent过滤消息只返回最后一条消息减少调用链无用消息流转。今天测试并行agent发现失效返回的消息没有过滤分析上图 展示ParallelNode的由来编译图的编译代码这些action是编译子图action没有被编译“摆平”并行节点包装多个并行的action执行器只需当单个节点执行并行action执行交给ParallelNode图编译的原理分析参看langgraph4j原理源码分析图 II图编译-CSDN博客上图 ParallelNode用reduce方法处理action返回的genrator上图 reduce的逻辑next.isDonetruenext是Data类型此时action最后一个返回next.resultValue被丢弃相比较单个节点处理WithEmbed的next方法上图 isDonetrue返回最后的result带resultValue的Data类型后面处理转为NodeOutput输出综述ParallelNode丢弃了action最后一个返回解决修改AsyncParallelNodeAction的evalGenerator方法上图 使用next方法手动遍历获取最后一个返回