在使用 LangGraph 时,如果你希望在后台执行多个节点(比如思考、调用工具、检索等),但只向终端用户“打字机式”地流式输出最终答案,最核心的思路是:利用 并在循环中进行条件过滤。 根据你的具体图结构(Graph),这里有三种最常用的过滤方案: 方案一:如果你有明确的“最终输出节点”(推荐) 如果你的图中有一个专门负责生成最终回答的节点(例如命名为 或 ),你可以通过判断 来过滤。 --- 方案二:如果你的 Agent 节点是动态循环的(如 ReAct 架构) 在标准的 Agent 架构中,大模型节点(例如 节点)会被反复调用:有时它输出工具调用(内部信息),最后一次它输出最终文本(最终答案)。 这时候,你不能只靠节点名称过滤,还需要过滤掉包含 Tool Calls 的消息。 --- 方案三:不要求 Token 级流式,只需要拿到最终字符串(状态更新模式) 如果你的前端不需要“打字机”效果,只需要展示一个“正在思考中...”的动画,然后等图执行完毕后直接显示最终结果,你应该使用 。 总结与核心原理 LangGraph 流式输出乱七八糟内部信息的原因是:它默认把所有节点的输入/...