如何使用MemorySaver删除langgraph.js中的会话线程?
实现LangGraph.js线程删除的方法
因为你使用的是MemorySaver作为状态检查点存储,直接调用它的delete方法即可删除指定线程的所有状态数据,步骤如下:
单独保存Checkpointer实例
先把MemorySaver实例单独存储,不要直接在compile方法中匿名创建:// 单独实例化并保存MemorySaver this.checkpointer = new MemorySaver(); this.graph = new StateGraph(AssistantState) .addNode('route_node', this.routeNode.bind(this)) .addNode('init_node', this.initNode.bind(this)) .addNode('agent', this.agentNode.bind(this)) .addEdge(START, 'route_node') .addConditionalEdges('route_node', async (state) => state.route) .addEdge('init_node', END) .addEdge('agent', END) .compile({ checkpointer: this.checkpointer })调用delete方法删除线程
当会话结束需要删除线程时,传入目标线程的threadId调用checkpointer.delete():// 假设threadId是你会话对应的线程ID await this.checkpointer.delete(threadId);
说明
- 这里的
threadId就是你调用graph.run()时,在config参数中指定的thread_id,示例:const runConfig = { configurable: { thread_id: "user-session-123" } }; await this.graph.run(initialState, runConfig); - 如果后续切换到其他持久化Checkpointer(如Redis、SQL存储),需要对应调用该存储实现的删除接口,但
MemorySaver的delete方法是官方内置的内存存储删除方式。
内容的提问来源于stack exchange,提问作者imv
相关产品推荐
相关产品推荐

