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 版本支持。
相关推荐
yanghuashuiyue2 天前
Deep Agents 框架-开发部署
langchain·langgraph·deepagents
FrontAI2 天前
深入浅出 LangGraph —— 第12章:多Agent系统架构
人工智能·langchain·ai agent·langgraph
yanghuashuiyue2 天前
Deep Agents 框架-前端
langchain·langgraph·deepagents
FrontAI3 天前
深入浅出 LangGraph —— 第11章:子图:构建模块化Agent
人工智能·langchain·ai agent·langgraph
m0_629494733 天前
LangGraph 构建AI Agent智能体
人工智能·大模型·langgraph
hrhcode4 天前
【LangGraph】五.人机协作:审批和中断
python·ai·langchain·agent·langgraph
hrhcode4 天前
【LangGraph】六.多 Agent 协作:Subgraph 机制
python·ai·langchain·langgraph·ai框架
新知图书4 天前
《LangGraph智能体设计模式与多智能体开发》1~6章试读
人工智能·langgraph·智能体设计模式·多智能体开发
hrhcode5 天前
【LangGraph】四.持久化:保存和恢复执行状态
python·ai·langchain·agent·langgraph
Irissgwe5 天前
LangChain之核心组件(消息与提示词模板)
人工智能·ai·langchain·llm·langgraph