在 LangGraph 中, 的设计初衷是用于控制流转、保存图的执行上下文以及支持“时间旅行”(Time Travel)和人类介入(Human-in-the-loop)等特性。 如果在 中直接存储极大的数据(如数 MB 甚至更大的 PDF 全文),不仅会导致单次传递时内存开销极大,更致命的是 LangGraph 的 Checkpointer(如 )会保存每一个 Step 的历史状态。这意味着一个 10MB 的文本经过 5 个节点,可能会在内存中膨胀到 50MB 以上,最终导致 OOM(内存溢出)。 针对这种场景,以下是几种业界最佳的优化方案(按推荐程度排序): 1. 核心模式:传递引用(Payload vs. Pointer)—— 最推荐 不要在 State 中传递数据本身,而是传递数据的“指针”(引用/ID/路径)。 实现原理:将大文件提取后的文本存储在外部存储(本地磁盘、S3、Redis、数据库)中,State 中只保留该文档的唯一标识符(如 或 )。 适用场景:所有包含大文件的流转场景,尤其是需要持久化和分布式的生产环境。 代码示例: 2. 外部共享内存上下文(In-Mem...