From 8b34b4ec4011be52f10fc55b1bc915368060a5ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com>
Date: Sat, 18 Apr 2026 21:02:59 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BE=AA=E7=8E=AF?=
=?UTF-8?q?=E8=8A=82=E7=82=B9=E6=A8=A1=E6=9D=BF=E4=B8=8A=E4=B8=8B=E6=96=87?=
=?UTF-8?q?=E4=B8=8E=E7=B4=AF=E8=AE=A1=E8=BE=93=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 统一节点模板渲染上下文,补齐 memory、当前参数与环境变量
- 支持循环体读取父循环上一轮输出,并区分空字符串与缺失值
- 补充模板路径、上下文与循环累计场景回归测试
---
.../flow/core/chain/ChainState.java | 34 +++-
.../easyagents/flow/core/node/CodeNode.java | 4 +-
.../easyagents/flow/core/node/HttpNode.java | 9 +-
.../flow/core/node/KnowledgeNode.java | 6 +-
.../easyagents/flow/core/node/LlmNode.java | 6 +-
.../easyagents/flow/core/node/LoopNode.java | 48 +++++-
.../flow/core/node/SearchEngineNode.java | 6 +-
.../flow/core/util/TextTemplate.java | 37 ++++-
.../core/test/ChainTemplateContextTest.java | 35 +++++
.../test/LoopNodeProgressContextTest.java | 145 ++++++++++++++++++
.../flow/core/test/TextTemplatePathTest.java | 23 +++
11 files changed, 332 insertions(+), 21 deletions(-)
create mode 100644 easy-agents-flow/src/test/java/com/easyagents/flow/core/test/ChainTemplateContextTest.java
create mode 100644 easy-agents-flow/src/test/java/com/easyagents/flow/core/test/LoopNodeProgressContextTest.java
diff --git a/easy-agents-flow/src/main/java/com/easyagents/flow/core/chain/ChainState.java b/easy-agents-flow/src/main/java/com/easyagents/flow/core/chain/ChainState.java
index 9c1f0dc..21c0786 100644
--- a/easy-agents-flow/src/main/java/com/easyagents/flow/core/chain/ChainState.java
+++ b/easy-agents-flow/src/main/java/com/easyagents/flow/core/chain/ChainState.java
@@ -370,6 +370,38 @@ public class ChainState implements Serializable {
return formatArgsMap;
}
+ /**
+ * 构建文本模板渲染所需的上下文列表。
+ *
+ * 顺序为:链路 memory -> 当前节点参数/临时参数 -> 环境变量。
+ * 后面的 map 会覆盖前面的同名 key,这样既能兼容直接引用历史节点输出,
+ * 又能保证当前节点显式解析出的参数优先级更高。
+ *
+ * @param formatArgs 当前节点参与模板渲染的参数
+ * @return 模板渲染上下文列表
+ */
+ public List