LangGraph SDK 和 Agent Server 是 LangSmith 的一部分。
基本用法
基本用法示例:- Python
- JavaScript
- cURL
扩展示例:流式更新
扩展示例:流式更新
这是一个你可以在 Agent Server 中运行的示例图。
更多详情请参阅 LangSmith 快速入门。一旦你有了一个运行的 Agent Server,你可以使用
LangGraph SDK 与之交互。
- Python
- JavaScript
- cURL
client.runs.stream()方法返回一个迭代器,该迭代器产生流式输出。 2. 设置stream_mode="updates"以仅流式传输每个节点后图状态的更新。其他流模式也可用。详情请参阅支持的流模式。
支持的流模式
流式传输多种模式
你可以将一个列表作为stream_mode 参数传递,以同时流式传输多种模式。
流式输出将是 (mode, chunk) 的元组,其中 mode 是流模式的名称,chunk 是该模式流式传输的数据。
- Python
- JavaScript
- cURL
流式传输图状态
使用流模式updates 和 values 在图执行时流式传输其状态。
updates流式传输图每一步后状态的更新。values流式传输图每一步后状态的完整值。
示例图
示例图
有状态运行
下面的示例假设你希望将流式运行的输出持久化到检查点数据库中,并且已经创建了一个线程。要创建一个线程:如果你不需要持久化运行的输出,可以在流式传输时传递
- Python
- JavaScript
- cURL
None 而不是 thread_id。流模式:updates
使用此模式仅流式传输节点在每一步后返回的状态更新。流式输出包括节点的名称以及更新内容。
- Python
- JavaScript
- cURL
流模式:values
使用此模式在每一步后流式传输图的完整状态。
- Python
- JavaScript
- cURL
子图
要将子图的输出包含在流式输出中,你可以在父图的.stream() 方法中设置 subgraphs=True。这将同时流式传输父图和任何子图的输出。
- 设置
stream_subgraphs=True以流式传输子图的输出。
扩展示例:从子图流式传输
扩展示例:从子图流式传输
这是一个你可以在 Agent Server 中运行的示例图。
更多详情请参阅 LangSmith 快速入门。一旦你有了一个运行的 Agent Server,你可以使用
LangGraph SDK 与之交互。注意,我们不仅接收节点更新,还接收命名空间,这些命名空间告诉我们正在从哪个图(或子图)进行流式传输。
- Python
- JavaScript
- cURL
- 设置
stream_subgraphs=True以流式传输子图的输出。
调试
使用debug 流模式在图执行过程中流式传输尽可能多的信息。流式输出包括节点的名称以及完整的状态。
- Python
- JavaScript
- cURL
LLM 令牌
使用messages-tuple 流模式从图的任何部分(包括节点、工具、子图或任务)逐个令牌地流式传输大型语言模型 (LLM) 的输出。
messages-tuple 模式的流式输出是一个元组 (message_chunk, metadata),其中:
message_chunk:来自 LLM 的令牌或消息片段。metadata:一个包含图节点和 LLM 调用详细信息的字典。
示例图
示例图
- 注意,即使 LLM 是使用
invoke而不是stream运行的,也会发出消息事件。
- Python
- JavaScript
- cURL
- “messages-tuple” 流模式返回一个元组
(message_chunk, metadata)的迭代器,其中message_chunk是 LLM 流式传输的令牌,metadata是一个包含有关调用 LLM 的图节点信息和其他信息的字典。
过滤 LLM 令牌
- 要按 LLM 调用过滤流式传输的令牌,你可以将
tags与 LLM 调用关联。 - 要仅从特定节点流式传输令牌,请使用
stream_mode="messages"并按流式元数据中的langgraph_node字段过滤输出。
流式传输自定义数据
要发送自定义的用户定义数据:- Python
- JavaScript
- cURL
流式传输事件
要流式传输所有事件,包括图的状态:- Python
- JavaScript
- cURL
无状态运行
如果你不想将流式运行的输出持久化到检查点数据库中,你可以在不创建线程的情况下创建一个无状态运行:- Python
- JavaScript
- cURL
- 我们传递
None而不是thread_idUUID。
加入并流式传输
LangSmith 允许你加入一个活动的后台运行并从中流式传输输出。为此,你可以使用 LangGraph SDK 的client.runs.join_stream 方法:
- Python
- JavaScript
- cURL
- 这是你想要加入的现有运行的
run_id。
流式传输线程
线程流式传输为线程打开一个长期连接,并流式传输在该线程上执行的每次运行的输出。这使你可以从单个连接监控线程上的所有活动,例如,在聊天 UI 中,可能通过后续消息、人机交互恢复或后台运行随时间触发多次运行。要通过 ID 加入特定的现有运行,请参阅加入并流式传输。比较线程流式传输和运行流式传输
基本用法
- Python
- JavaScript
- cURL
线程流模式
线程流式传输支持三种流模式,用于控制返回哪些事件。通过stream_mode 参数传递一个或多个模式。
- Python
- JavaScript
- cURL
从最后一个事件恢复
线程流式传输通过Last-Event-ID 头支持可恢复性。如果连接断开,传递你接收到的最后一个事件的 ID 以恢复而不丢失事件。传递 "-" 以从头开始重放。
- Python
- JavaScript
- cURL
API 参考
有关 API 用法和实现,请参阅 API 参考。将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

