事情本身不复杂,线索都在日志里。在工作流里引用上一步的输出,运行时该字段为空,下游节点直接报错。
第一反应是「变量名包含特殊字符,解析失败」,验证下来不成立。
这类报错背后常见的原因有几处,逐个排除就行。引用路径与实际输出结构不一致。另一种情况是上一步节点没有把字段声明为输出。
另外,并行分支里变量作用域不同。
先打印上一步的完整输出结构
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')")
恢复的判定其实很直接。下游节点能取到变量值,工作流完整跑通,输出与预期一致。
工作流的变量是弱类型传递,路径写错时多数情况下不报错只给空值,调试时先看中间节点的原始输出最有效。这类问题最好一次改到位,反复小改反而容易把原因搅混。