N8N中文教程
集成节点/Built in_nodes/Cluster_nodes/Sub nodes/Structured_Output_Parser

结构化输出解析器节点常见问题#

以下是使用 结构化输出解析器节点 时的一些常见错误和问题,以及相应的解决或排查步骤。

处理参数#

结构化输出解析器节点是一种 子节点(sub-node)。当使用表达式处理多个数据项时,子节点的行为与其他节点不同。

大多数节点(包括 根节点(root nodes))可以接收任意数量的数据项作为输入,逐个处理这些项并输出结果。你可以使用表达式引用输入项,节点会依次为每个输入项解析该表达式。例如,如果有五个姓名值作为输入,表达式 {{ $json.name }} 将依次解析为每一个姓名。

而在子节点中,表达式始终只解析为第一个输入项。例如,即使有五个姓名值作为输入,表达式 {{ $json.name }} 始终只会解析为第一个姓名。

将结构化输出解析器节点添加到 AI 节点#

你可以将输出解析器节点附加到某些 AI 根节点 上。

要将结构化输出解析器添加到某个节点,请先在目标 AI 根节点中启用 Require Specific Output Format(要求特定输出格式)选项。启用后,界面会显示一个新的 output parser(输出解析器)挂载点。点击该挂载点即可将结构化输出解析器节点附加到该 AI 节点上。

使用结构化输出解析器格式化中间步骤#

结构化输出解析器节点用于对 AI 智能体(agent)的最终输出进行结构化处理,不适用于 对传递给其他 AI 工具或阶段的中间输出进行结构化。

如果你希望中间输出具有特定格式,建议在 AI AgentSystem Message(系统消息)中明确指定响应结构。该消息可以包含一个 schema(模式)或示例响应,作为智能体生成结果的模板。

对智能体的输出进行结构化#

在与 智能体(agents) 配合使用时,结构化输出解析往往不可靠。

如果工作流中使用了智能体,n8n 建议使用一个独立的 LLM-chain 来接收智能体返回的数据并对其进行解析。相比直接在智能体工作流中进行解析,这种方法可以获得更优且更一致的结果。