事情本身不复杂,线索都在日志里。在工作流里引用上一步的输出,运行时该字段为空,下游节点直接报错。

第一反应是「变量名包含特殊字符,解析失败」,验证下来不成立。

这类报错背后常见的原因有几处,逐个排除就行。引用路径与实际输出结构不一致。另一种情况是上一步节点没有把字段声明为输出。

另外,并行分支里变量作用域不同。

先打印上一步的完整输出结构

python -c "print(node_output.keys())"

然后按真实结构写引用路径

python -c "print(node_output['data']['text'])"

接着在节点配置里显式声明输出字段

python -c "print('declare output schema')"

等前面都确认过,再用固定输入跑一次单节点调试

python -c "print('run single node')")

恢复的判定其实很直接。下游节点能取到变量值,工作流完整跑通,输出与预期一致。

工作流的变量是弱类型传递,路径写错时多数情况下不报错只给空值,调试时先看中间节点的原始输出最有效。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189