AI-大语言模型LLM-LangGraphV1.0学习笔记-stream_mode参数详解

目的

为避免一学就会、一用就废,这里做下笔记

内容

在 LangGraph 中,stream_mode 参数用于控制调用 graph.stream()graph.astream() 方法时,流式输出(Streaming Output)的内容粒度类型。它允许你实时获取图执行过程中的中间状态、LLM 生成内容或自定义数据,而不是等待整个图执行完毕。

该参数接受一个字符串或字符串列表,指定要监听的流模式。以下是所有可用模式的详细说明:

1. 核心流模式详解

模式值 输出内容 适用场景 备注
"values" 图的完整状态(State)。在每个节点执行后,返回当前 State 的所有键值对。 需要监控图状态在每一步的完整快照。 数据量大,包含未变化的字段。
"updates" 状态的增量更新。在每个节点执行后,返回该节点具体修改了哪些字段(键值对)。 最常用。用于前端实时渲染进度、显示哪个节点做了什么。 只包含变化的字段,结构为 {node_name: {field: value}}
"messages" LLM 的 Token 流。在LLM 生成过程中,实时返回单个 Token 及其元数据。 实现打字机效果(Typewriter Effect),实时显示 AI 回复。 输出格式为 (token, metadata) 元组。
"custom" 自定义数据。捕获节点内部通过 get_stream_writer() 发出的任意数据。 输出进度条、内部日志、工具执行中间结果。 需在节点代码中主动调用 writer.write(data)
"debug" 详细的调试信息。包括节点开始/结束、状态变化、LLM 调用详情等。 深度调试图执行流程,分析性能瓶颈。 信息最全,但结构复杂,通常用于开发阶段。
"checkpoints" 检查点事件。当图创建或加载检查点时触发。 配合持久化存储(Checkpointer),用于状态恢复监听。 输出格式与 get_state() 类似。
"tasks" 任务事件。当任务(节点)开始和完成时触发,包含结果和错误信息。 监控异步任务的执行生命周期。 事件类型包括 startend

2. 使用示例

单模式使用(仅监听状态更新)

python 复制代码
for chunk in graph.stream(
    {"input": "Hello"},
    stream_mode="updates"  # 或 ["updates"]
):
    print(chunk)
# 输出示例: {'node_1': {'response': 'Hi there!'}}

多模式组合(监听状态更新 + LLM Token)

python 复制代码
for mode, chunk in graph.stream(
    {"input": "Hello"},
    stream_mode=["updates", "messages"]  # 返回元组 (mode, chunk)
):
    if mode == "updates":
        print(f"State updated: {chunk}")
    elif mode == "messages":
        token, meta = chunk
        print(f"Token: {token}")

自定义流写入(在节点函数中)

python 复制代码
from langgraph.config import get_stream_writer

def my_node(state):
    writer = get_stream_writer("custom")
    writer.write("Starting heavy computation...")  # 这行内容会被 stream_mode="custom" 捕获
    # ... 节点逻辑
    return {"result": "done"}

3. 注意事项

  • 异步兼容性astream() 是异步方法,需在 async for 循环中使用。
  • 默认行为 :如果不指定 stream_mode,方法将阻塞执行,直到图运行结束才返回最终状态。
  • 性能影响 :启用 "messages""debug" 模式可能会增加内存和网络开销,尤其是在处理长文本时。
  • 版本差异"checkpoints""tasks" 等模式在较新版本(如 0.2.x 之后)中引入,请确保 LangGraph 版本支持。
相关推荐
胡少侠73 天前
LangGraph 多步推理:State + Node + 条件路由,手写 StateGraph
ai·重构·langchain·agent·rag·langgraph
qq_211387473 天前
基于LangGraph多agent
开发语言·前端·javascript·agent·langgraph
小王努力学编程7 天前
LangGraph——AI应用开发框架
服务器·人工智能·python·ai·langchain·rag·langgraph
灵机一物7 天前
灵机一物AI智能电商小程序(已上线)-从“帮我买抽纸”到自动下单支付——大模型驱动全链路自动购物系统实战
人工智能·python·elasticsearch·小程序·fastapi·rag·langgraph
qq_364371728 天前
AI Agent 概念
ai·langchain·agent·langgraph
灵机一物8 天前
灵机一物AI智能电商小程序(已上线)-从零构建高可用智能电商客服:LangGraph+LlamaIndex+ES三层检索RAG系统实战|彻底解决大模型幻觉
elasticsearch·大模型实战·rag·llamaindex·langgraph·电商客服·零幻觉问答
梦想画家1 个月前
LangChain、LangGraph、DeepAgent、LangFlow 四大框架全景解析:从原理到落地选型
langchain·langgraph·langflow·deepagent
南_山无梅落1 个月前
从LangChain到LangGraph:构建智能Agent的实战指南(二)——LangGraph,当Agent需要“思考循环“
智能体·langgraph
cuber膜拜1 个月前
LangChain v1.0 Middleware(中间件)使用指南
python·中间件·langchain·langgraph