
LangGraph
文章平均质量分 93
LangGraph
彬彬侠
人工智能(Python)算法工程师、后端(Java)工程师、嵌入式工程师
展开
-
【LangGraph】LangGraph 中集成 SearxNG:构建强大的 web 搜索增强工作流
SearxNG 作为一个开源、隐私友好的元搜索引擎,能够聚合多个搜索引擎的结果,为用户提供广泛的信息视角。将 SearxNG 集成到 LangGraph 中,可以显著增强工作流的搜索能力,适用于智能助手、研究自动化和多任务处理等场景。本文详细介绍如何在 LangGraph 中集成 SearxNG,涵盖安装配置、工具集成、工作流设计和实际应用,旨在为开发者提供清晰、实用的指导。关键步骤包括:设置自托管 SearxNG 实例并启用 JSON API。使用 SearxSearchWrapper 或 load_to原创 2025-05-30 14:26:43 · 1406 阅读 · 0 评论 -
【LangGraph】Implement generative UI with LangGraph:用 LangGraph 实现生成用户界面
本指南展示了如何使用 LangGraph 平台实现生成用户界面(Generative UI),通过将 React 组件与图代码共同托管,动态生成交互式、上下文感知的 UI。核心步骤:定义和配置 UI 组件:在 src/agent/ui.tsx 中创建 React 组件(如 WeatherComponent),以键值对形式导出({ weather: WeatherComponent })。在 langgraph.json 的 ui 部分指定组件路径(如 "agent": "./src/agent/ui.tsx原创 2025-05-22 15:17:36 · 802 阅读 · 0 评论 -
【LangGraph】Integrate LangGraph into a React app:将 LangGraph 集成到你的 React 应用 示例
指南展示了如何使用 useStream() React 钩子将 LangGraph 集成到 React 应用中,处理流式传输、状态管理、分支逻辑等复杂性,提供灵活的聊天体验构建方式。基本用法:使用 useStream() 钩子连接 LangGraph 部署(通过 apiUrl 和 assistantId)。渲染消息列表(thread.messages)并通过 thread.submit() 发送用户输入。管理加载状态(isLoading)和停止流(thread.stop())。高级功能:线程管理:通过 th原创 2025-05-22 14:57:51 · 968 阅读 · 0 评论 -
【LangGraph】Deploy CrewAI, AutoGen, and other frameworks:如何使用 LangGraph 平台部署 CrewAI、AutoGen 和其他框架 示例
指南展示了如何通过将 CrewAI、AutoGen 等框架的代理包装在一个单一 LangGraph 节点中,使用 LangGraph 平台进行部署,获得水平可扩展性、任务队列、短期和长期记忆支持等优势。核心步骤:定义 AutoGen 代理:使用 AutoGen 的 AssistantAgent 和 UserProxyAgent 创建代理,配置模型参数(如 gpt-4o、超时、温度)以及代码执行设置。设置自动终止条件(当响应以 “TERMINATE” 结尾时停止)。包装到 LangGraph:定义一个单一节点原创 2025-05-22 14:43:14 · 880 阅读 · 0 评论 -
【LangGraph】Use RemoteGraph:如何使用 RemoteGraph 与平台部署交互 示例
本指南展示了如何使用 RemoteGraph 接口与 LangGraph 平台部署交互,使其像本地定义的 CompiledGraph 一样,通过同步或异步方法(如 .invoke()、.stream() 等)调用远程图。核心步骤:初始化:必须提供 name(图名称,与 langgraph.json 中的一致)和 api_key(通过 LANGSMITH_API_KEY 或参数)。至少提供 url(部署 URL)、client(异步 LangGraphClient)或 sync_client(同步 SyncL原创 2025-05-22 14:30:05 · 679 阅读 · 0 评论 -
【LangGraph】Rebuild Graph at Runtime:运行中以不同配置重建图 示例
本指南展示了如何通过提供一个图创建函数(make_graph)在 LangGraph 运行时动态重建图,以根据配置(如用户 ID)使用不同的图状态或结构。核心步骤:不重建(静态图):在 openai_agent.py 中定义一个静态的已编译图实例(agent),通过 langgraph.json 指定其路径,适合固定行为的场景。重建(动态图):重写 openai_agent.py,提供 make_graph 函数,接受 RunnableConfig 并返回根据配置构建的图实例。示例中为用户 ID ‘1’ 构原创 2025-05-22 14:17:20 · 534 阅读 · 0 评论 -
【LangGraph】Authentication:在 LangGraph 平台上实现自定义认证、资源授权和连接认证提供者聊天机器人 示例
本教程成功构建了一个具有生产级认证和授权的 LangGraph 聊天机器人。主要工作:设置自定义认证:使用硬编码令牌创建了一个基本的认证系统,控制谁可以访问机器人。通过 Auth 对象和 @auth.authenticate 装饰器实现了令牌验证。使对话私有:添加了资源级授权,通过 @auth.on 和特定资源处理程序(如 @auth.on.threads.create)确保用户只能访问自己的线程。使用元数据过滤器实现了私有对话,防止用户访问彼此的资源。连接认证提供者:将硬编码令牌替换为 Supabase原创 2025-05-22 13:08:42 · 961 阅读 · 0 评论 -
【LangGraph】Graph runs in LangSmith:如何为 LangSmith 中的图运行传递自定义运行 ID 或设置标签和元数据 示例
本指南展示了如何通过 RunnableConfig 为 LangGraph 图运行设置自定义 run_id、run_name、tags 和 metadata,以便在 LangSmith 中进行调试、测试和监控。核心步骤:配置设置:使用 run_id(UUID)、run_name(字符串)、tags(字符串列表)和 metadata(JSON 可序列化字典)自定义跟踪信息。图运行:通过 stream、invoke 等方法传递配置,适用于所有标准 Runnable 方法。LangSmith 集成:在 LangS原创 2025-05-22 12:28:03 · 681 阅读 · 0 评论 -
【LangGraph】SQL agent:构建 SQL 代理(Build a SQL agent)示例
本教程展示了如何构建一个 SQL 代理,能够通过一系列结构化步骤(列出表、获取模式、生成查询、检查查询、执行查询、修正错误、生成回答)回答数据库相关问题。核心步骤:预构建代理:使用 create_react_agent 和 SQLDatabaseToolkit 快速构建代理,通过系统提示约束行为。自定义代理:通过 LangGraph 的 StateGraph 创建专用节点(list_tables、call_get_schema、generate_query、check_query、run_query),强制原创 2025-05-22 12:15:33 · 739 阅读 · 0 评论 -
【LangGraph】Agent Supervisor:多代理监督者(Multi-agent supervisor)示例
教程展示了如何构建一个多代理系统,其中监督者代理协调专门的研究和数学代理,通过交接机制实现任务分配和通信。核心步骤:工作代理创建:研究代理使用 TavilySearch 工具进行网络搜索,专注于研究任务。数学代理使用简单的 Python 数学函数(add、multiply、divide),专注于数学计算。监督者实现:使用 langgraph-supervisor 的 create_supervisor 快速构建监督者,协调代理并管理任务流。从头构建监督者,使用自定义交接工具和 StateGraph,实现更灵原创 2025-05-22 11:53:39 · 877 阅读 · 0 评论 -
【LangGraph】 Agentic RAG:构建一个检索代理(Retrieval Agent)示例
本教程展示了如何构建一个检索代理,能够智能决定是否从向量存储检索上下文或直接回应用户,结合了语义搜索和 LLM 的决策能力。核心步骤:文档预处理:使用 WebBaseLoader 获取博客内容,RecursiveCharacterTextSplitter 分割为适合索引的块。检索工具:通过 InMemoryVectorStore 和 OpenAIEmbeddings 创建向量存储,结合 create_retriever_tool 构建检索工具。图构建:generate_query_or_respond:LL原创 2025-05-22 11:29:23 · 588 阅读 · 0 评论 -
【LangGraph】Environment Variables(环境变量):用于配置部署
LangGraph 服务器通过环境变量支持灵活的部署配置,涵盖后台任务、日志、数据库、Redis、跟踪和认证等方面,适用于本地开发、自托管和云 SaaS 部署。核心变量:后台任务:BG_JOB_ISOLATED_LOOPS、BG_JOB_TIMEOUT_SECS 和 BG_JOB_SHUTDOWN_GRACE_PERIOD_SECS 用于优化后台运行的性能和稳定性。跟踪:DD_API_KEY 和 LANGCHAIN_TRACING_SAMPLING_RATE 启用 Datadog 和 LangSmith 跟原创 2025-05-22 10:13:09 · 794 阅读 · 0 评论 -
【LangGraph】RemoteGraph 类:调用远程 API 的客户端实现
RemoteGraph 类是用于调用远程 LangGraph 服务器 API 的客户端实现,遵循 LangGraph 服务器 API 规范,可作为 Graph 的节点,集成到更大的图结构中,适合与 LangGraph 平台部署交互。核心功能:初始化:通过 assistant_id、url、api_key 或自定义客户端(LangGraphClient / SyncLangGraphClient)配置远程连接。图管理:通过 get_graph 和 aget_graph 获取图结构,支持子图表示。状态管理:通过原创 2025-05-22 10:12:45 · 622 阅读 · 0 评论 -
【LangGraph】Python SDK:连接 LangGraph API 的客户端实现
LangGraph Python SDK 提供异步(LangGraphClient)和同步(SyncLangGraphClient)客户端,用于管理 LangGraph API 的核心资源(助手、线程、运行、定时任务和存储),支持 Python 和 JavaScript 项目,适合开发、测试和生产部署。核心类:LangGraphClient / SyncLangGraphClient:顶级客户端,管理助手、线程、运行、定时任务和存储。HttpClient / SyncHttpClient:处理 HTTP 请原创 2025-05-22 10:12:16 · 917 阅读 · 0 评论 -
【LangGraph】CLI(命令行界面):供了用于在本地 Docker 中构建和运行 LangGraph 平台 API 服务器的命令
LangGraph CLI 提供了在本地 Docker 中构建和运行 LangGraph 平台 API 服务器的工具,支持 Python 和 JavaScript 项目,适合开发、测试和生产部署。安装要求:需要安装 Docker 和 CLI 包(Python:langgraph-cli,JavaScript:@langchain/langgraph-cli)。Python 项目需 Python >= 3.11,JavaScript 项目需 Node.js 20。配置文件:使用 langgraph.json原创 2025-05-22 10:11:40 · 1204 阅读 · 0 评论 -
【LangGraph】MCP Adapters(模型上下文协议 适配器):连接多个 MCP 服务器并加载 LangChain 兼容工具、提示和资源的类和函数
LangChain 的 MCP 适配器模块提供了连接多个 MCP 服务器并加载工具、提示和资源的客户端,支持与 LangChain 生态系统的无缝集成。关键类:MultiServerMCPClient:客户端类,用于管理多个 MCP 服务器连接并加载资源。关键函数:load_mcp_tools:加载 MCP 工具并转换为 LangChain 工具。load_mcp_prompt:加载 MCP 提示并转换为 LangChain 消息。load_mcp_resources:加载 MCP 资源并转换为 LangC原创 2025-05-21 18:19:42 · 1023 阅读 · 0 评论 -
【LangGraph】Swarm(群集):用于创建和管理多代理群集的类和函数
LangGraph 的群集模块提供了协调多代理系统的功能,支持代理间的动态路由和控制交接,适合构建协作工作流。关键类:SwarmState:多代理群集的状态模式,继承自 MessagesState。关键函数:create_swarm:创建多代理群集,协调代理并支持动态路由。add_active_agent_router:向状态图添加路由器,跟踪并路由到活跃代理。create_handoff_tool:创建交接工具,将控制权传递给指定代理。使用建议:使用 create_swarm 构建多代理系统,结合专业化代原创 2025-05-21 18:05:04 · 812 阅读 · 0 评论 -
【LangGraph】Supervisor(监督者):定义了创建和管理多代理监督系统的函数
LangGraph 的监督者模块提供了协调多代理系统的功能,支持代理间的控制交接、工具调用和状态管理,适合构建复杂的协作工作流。关键函数:create_supervisor:创建多代理监督者,管理代理工作流并协调工具调用。create_handoff_tool:创建交接工具,将控制权传递给指定代理。create_forward_message_tool:创建转发工具,保留工作线程消息以避免信息丢失。使用建议:使用 create_supervisor 构建多代理系统,结合专业化代理(如数学或研究代理)实现任务原创 2025-05-21 17:33:17 · 687 阅读 · 0 评论 -
【LangGraph】Agents(代理):创建和管理代理的类和函数
LangGraph 的代理模块提供了构建交互式代理的工具,支持工具调用、人机交互和复杂工作流管理。关键类:AgentState:定义代理状态,包含消息列表和其他字段。InjectedState:注解工具参数以注入图状态。InjectedStore:注解工具参数以注入 LangGraph 存储。ToolNode:执行工具调用的节点,支持错误处理和状态注入。ValidationNode:验证工具调用,生成结构化输出。HumanInterruptConfig:配置人机中断的交互选项。ActionRequest:表原创 2025-05-21 17:09:42 · 597 阅读 · 0 评论 -
【LangGraph】Channels(通道):用于存储和更新状态的核心数据结构
LangGraph 的通道模块提供了基于 Pregel 模型的状态管理机制,支持多种值存储和更新策略,适用于复杂的工作流。关键类:BaseChannel:通道的抽象基类,定义基本操作接口。Topic:发布-订阅通道,支持累积或清空值。LastValue:存储最后一个值,每步最多接收一个值。EphemeralValue:存储前一步值,每步后清空。BinaryOperatorAggregate:通过二元运算符聚合值。AnyValue:存储最后一个值,假设多值相等。使用建议:根据需求选择合适的通道类型(如 Top原创 2025-05-21 16:54:06 · 1019 阅读 · 0 评论 -
【LangGraph】Constants(常量):图结构和跟踪的预定义常量
LangGraph 的常量模块提供了用于图结构和跟踪的预定义常量,确保一致的节点和边标识。关键属性:TAG_HIDDEN:用于隐藏节点或边,防止其在特定跟踪或流式传输环境中显示。START:标记图的起始节点,可能为虚拟节点。END:标记图的终止节点,可能为虚拟节点。使用建议:在定义图结构时,使用 START 和 END 常量明确指定入口和出口节点。使用 TAG_HIDDEN 隐藏对用户无关的内部节点或边,优化跟踪输出。常量值通过 intern 优化内存使用,适合高频访问场景。注意事项:常量值是字符串,确保在原创 2025-05-21 16:44:00 · 185 阅读 · 0 评论 -
【LangGraph】Errors(错误):处理图执行中的各种错误情况的异常类
LangGraph 的错误模块定义了一系列异常类,用于处理图执行中的各种错误情况,确保开发者能够捕获和处理异常。关键类:GraphRecursionError:防止图无限循环,允许通过配置调整最大步骤数。InvalidUpdateError:处理无效的通道更新,提供故障排查指南。GraphInterrupt:子图中断,内部使用,不暴露给用户。NodeInterrupt:节点主动中断执行。GraphDelegate:分布式模式下的图委托。EmptyInputError:处理空输入情况。TaskNotFound原创 2025-05-21 16:37:59 · 894 阅读 · 0 评论 -
【LangGraph】Config(配置):提供了访问存储(store)和流写入器(StreamWriter)的函数
LangGraph 的配置模块提供了运行时访问存储和流写入器的函数,支持在节点或任务中动态操作数据和输出流。关键函数:get_store:访问 LangGraph 存储,适用于从节点或任务内部读取或写入持久化数据。get_stream_writer:访问流写入器,适用于在自定义流模式(stream_mode="custom")下发出数据。使用建议:在初始化 StateGraph 或入口点时,传入存储实例以启用 get_store。使用 get_stream_writer 配合 stream_mode="cu原创 2025-05-21 16:28:13 · 299 阅读 · 0 评论 -
【LangGraph】Types(类型):用于配置、状态管理和工作流控制的核心数据结构和函数
类型模块定义了 LangGraph 中用于配置、状态管理和工作流控制的核心数据结构和函数。关键类:RetryPolicy:配置节点的自动重试策略,支持指数退避和抖动。CachePolicy:配置节点的缓存行为,指定缓存键生成和 TTL。Interrupt:表示节点中断,支持人机交互工作流。PregelTask:表示 Pregel 任务。StateSnapshot:捕获图状态快照,包含通道值、任务和中断。Send:表示发送到节点的动态消息,支持灵活工作流(如映射-归约)。Command:表示更新图状态和发送消原创 2025-05-21 16:16:05 · 598 阅读 · 0 评论 -
【LangGraph】Caching(缓存):提供用于存储和检索键值对的基类和实现
缓存模块提供用于存储和检索键值对的基类和实现,支持在内存或文件中持久化缓存数据。关键类:BaseCache:缓存的抽象基类,定义同步和异步操作接口,支持 TTL。InMemoryCache:基于内存的缓存实现,适合临时存储和快速访问。SqliteCache:基于 SQLite 的文件缓存实现,适合持久化存储。使用建议:对于需要快速、临时缓存的场景,使用 InMemoryCache。对于需要持久化缓存的场景,使用 SqliteCache 并指定数据库文件路径。根据应用需求选择同步(get, set, clea原创 2025-05-21 16:00:59 · 548 阅读 · 0 评论 -
【LangGraph】Storage(存储):供持久化的键值存储
存储模块提供持久化的键值存储基类和类型,支持跨线程和会话的长期内存。存储支持层次命名空间、键值存储以及可选的向量搜索功能。关键类:Embeddings:定义文本嵌入模型接口,支持同步和异步嵌入操作。Item 和 SearchItem:表示存储条目及其搜索结果,包含元数据。GetOp、SearchOp、ListNamespacesOp、PutOp:定义存储操作,分别支持检索、搜索、列出命名空间和存储/更新条目。MatchCondition:支持灵活的命名空间匹配模式。TTLConfig 和 IndexConf原创 2025-05-21 15:47:10 · 1049 阅读 · 0 评论 -
【LangGraph】Checkpointers(检查点):持久化图状态的核心功能
检查点机制是 LangGraph 中用于持久化图状态的核心功能,允许代理在多次交互中或跨交互保持状态。关键类:CheckpointMetadata 和 Checkpoint:定义检查点的元数据和状态快照。BaseCheckpointSaver:检查点保存器的基类,提供同步和异步方法。InMemorySaver:内存存储,适合调试和测试。SqliteSaver 和 AsyncSqliteSaver:基于 SQLite 的同步和异步保存器,适合轻量级应用。PostgresSaver 和 AsyncPostgre原创 2025-05-21 15:18:06 · 1044 阅读 · 0 评论 -
【LangGraph】Pregel :应用程序的运行时管理器,负责协调执行器(Actors)和通道(Channels)的执行
Pregel 是 LangGraph 应用程序的运行时管理器,负责协调执行器(Actors)和通道(Channels)的执行。它基于 Pregel 算法/批量同步并行(Bulk Synchronous Parallel)模型,将应用程序的执行组织为多个步骤。执行器(PregelNode):订阅和写入通道的计算单元,实现了 LangChain 的 Runnable 接口。通道:支持多种类型(如 LastValue、Topic、Context 和 BinaryOperatorAggregate),用于执行器之间原创 2025-05-21 14:40:52 · 686 阅读 · 0 评论 -
【LangGraph】Functional API( 函数接口):@entrypoint 将函数转换为 Pregel 图;final 允许将与返回值不同的值保存到检查点;@task 定义内部任务
LangGraph 的 Functional API 提供了一套通过装饰器(如 @entrypoint 和 @task)定义工作流和任务的工具。entrypoint 装饰器:将函数转换为 LangGraph 工作流,支持同步和异步函数,提供状态管理、检查点和并行任务执行功能。使用 entrypoint.final 可以解耦返回值和保存值,增强灵活性。task 装饰器:定义可在 entrypoint 或 StateGraph 中调用的任务,支持并行执行和缓存,适合分解复杂工作流。原创 2025-05-21 14:12:04 · 977 阅读 · 0 评论 -
【LangGraph】Graph Definitions(图定义):StateGraph、CompiledStateGraph 和 add_messages
LangGraph 是一个强大的框架,用于构建需要状态管理的复杂 LLM(大型语言模型)工作流。本文内容涵盖了 StateGraph、CompiledStateGraph 和 add_messages 函数的详细描述。StateGraph:用于定义节点、边和共享状态的图,编译后生成 CompiledStateGraph 以供执行。CompiledStateGraph:支持灵活的执行方式(同步/异步、流式/批量)和状态管理,stream 方法提供了多种输出模式,适合实时处理和调试。add_messages:简原创 2025-05-21 12:45:42 · 1019 阅读 · 0 评论 -
【LangGraph】langgraph.types 模块:定义类型别名、配置类、状态管理工具和中断处理机制
langgraph.types 模块是 LangGraph 库的基础模块,提供了类型定义和实用工具,支持状态管理、中断处理、缓存和流式处理。它通过类型别名、配置类和工具函数,确保代码的类型安全和可维护性,为构建复杂、有状态的 AI 系统奠定了坚实基础。开发者可以利用该模块快速实现高效、可靠的代理和工作流,提升开发效率和系统鲁棒性。原创 2025-05-20 23:34:36 · 907 阅读 · 0 评论 -
【LangGraph】langgraph.prebuilt 模块:封装了常见的代理逻辑、工具执行和状态管理功能
langgraph.prebuilt 模块是 LangGraph 的核心模块,提供了 create_react_agent、ToolNode、tools_condition、ValidationNode、InjectedState 等预构建组件,简化了 ReAct 代理、工具执行和状态管理的开发。它通过封装常见逻辑,支持快速构建对话代理、自动化工作流和人类交互场景。模块设计注重易用性和灵活性,适合从原型到生产级的多种应用场景。通过示例和实践,开发者可以快速上手,构建高效、可控的 AI 系统。原创 2025-05-20 22:24:35 · 694 阅读 · 0 评论 -
【LangGraph】langgraph.store.postgres.PostgresStore 类:于 PostgreSQL 数据库提供的持久化键值存储(?)
langgraph.store.postgres.PostgresStore 是 LangGraph 提供的持久化键值存储类,基于 PostgreSQL 数据库,支持层次命名空间和向量搜索(通过 pgvector)。它继承自 BaseStore,提供 put、get、delete 等方法,通过 setup() 初始化表结构。核心功能包括持久化存储、语义搜索和 TTL 管理,适合生产环境中需要长时记忆和内容检索的 AI 应用,如聊天机器人和复杂工作流。相比 InMemoryStore,它提供持久化优势;相比原创 2025-05-18 13:01:13 · 897 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.redis.RedisSaver 类:将状态图的检查点保存到 Redis 数据库
langgraph.checkpoint.redis.RedisSaver 是 LangGraph 的检查点保存器,基于 Redis 数据库实现同步持久化存储,适合生产环境中的高并发场景。它继承自 BaseCheckpointSaver,支持 TTL 配置、索引管理和序列化,通过 setup() 初始化 Redis 索引。核心功能包括线程隔离、状态恢复和高性能存储,适用于多轮对话、自动化工作流和分布式系统。相比 InMemorySaver,它提供持久化优势;相比 PostgresSaver,更适合内存密集型原创 2025-05-18 12:40:43 · 1006 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.mysql.pymysql.PyMySQLSaver 类:将状态图的检查点保存到 MySQL 数据库
langgraph.checkpoint.mysql.pymysql.PyMySQLSaver 是 LangGraph 的检查点保存器,基于 MySQL 数据库实现持久化存储,适合生产环境。它继承自 BaseCheckpointSaver,支持同步操作,通过 setup() 初始化表结构,提供线程隔离和序列化支持。核心功能包括持久化检查点、状态恢复,适用于多轮对话和复杂工作流。与 InMemorySaver 相比,提供持久化优势;与 PostgresSaver 类似,适用于 MySQL 环境。通过示例和实践原创 2025-05-18 12:36:57 · 476 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.postgres.PostgresSaver 类:将状态图的检查点保存到 PostgreSQL 数据库
langgraph.checkpoint.postgres.PostgresSaver 是 LangGraph 的检查点保存器,基于 PostgreSQL 数据库实现持久化存储,适合生产环境。它继承自 BaseCheckpointSaver,支持同步和异步操作,通过 setup() 初始化表结构,提供线程隔离和序列化支持。核心功能包括持久化检查点、状态恢复和高并发管理,适用于多轮对话、自动化工作流和分布式系统。相比 InMemorySaver,它提供持久化优势;相比 SqliteSaver,更适合高并发场景原创 2025-05-18 12:33:09 · 673 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.base 模块:提供了检查点机制的基础数据结构和抽象基类
langgraph.checkpoint.base 模块是 LangGraph 检查点系统的核心,提供了检查点数据结构(Checkpoint、CheckpointTuple)和抽象基类(BaseCheckpointSaver),定义了保存和检索检查点的标准接口。它支持同步和异步操作,通过子类(如 InMemorySaver、PostgresSaver)实现具体存储逻辑,适用于开发调试和生产环境。模块设计注重统一接口、灵活性和可扩展性,为构建可持久化、有状态的 AI 应用提供了坚实基础。原创 2025-05-18 12:22:43 · 641 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.base.BaseCheckpointSaver 类:定义检查点保存器的抽象基类
langgraph.checkpoint.base.BaseCheckpointSaver 是 LangGraph 库中 langgraph.checkpoint.base 模块的一个抽象基类(Abstract Base Class, ABC),用于定义检查点保存器的标准接口。LangGraph 是 LangChain 生态的扩展,专注于构建复杂、有状态的 AI 系统,通过状态图(StateGraph)管理节点和边,支持动态路由、循环和状态管理。检查点(Checkpoint)是 LangGraph 的核心功原创 2025-05-18 12:12:58 · 747 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.memory.PersistentDict 类:提供持久化字典功能
langgraph.checkpoint.memory.PersistentDict 是一个持久化字典类,结合内存操作的快速性和磁盘存储的持久性,适合 LangGraph 的开发和测试阶段。它支持 pickle、json、csv 格式,API 兼容 shelve 和 anydbm,通过 sync 和原子提交确保持久化可靠性。在 LangGraph 中,它可用于自定义持久化存储,如增强 InMemoryStore。然而,由于文件存储的局限性,不适合生产环境,推荐使用 PostgresSaver 或 Sqlit原创 2025-05-18 11:47:14 · 648 阅读 · 0 评论 -
【LangGraph】langgraph.checkpoint.memory.InMemorySaver 类:在内存中存储状态图的检查点(checkpoints)
InMemorySaver 是 langgraph.checkpoint.memory 模块中的类,基于 Python 的 collections.defaultdict 实现了一个内存中的检查点保存器。检查点是 LangGraph 中用于保存图状态的机制,确保代理在多轮对话或多步任务中保持上下文连续性。InMemorySaver 通过 thread_id 跟踪会话,支持快速读写,但数据在程序重启后丢失,因此主要用于开发、测试或临时记忆场景。原创 2025-05-18 10:54:49 · 850 阅读 · 0 评论