SuperAPI AI 工具集

langgraph-state-management

智能体与模型

查看项目

更新于 10-16 02:43

技能介绍

LangGraph State Management 是一个用于 LangGraph 应用的状态管理技能,主要解决状态模式设计、reducer 实现、持久化配置和状态问题调试。它面向希望(1)设计或定义状态、(2)处理并发更新合并、(3)配置检查点持久化、(4)排查状态异常的开发者。

用途与设计工作流 该技能建议按以下流程设计或修改 LangGraph 应用状态:识别数据需求(图中流转哪些数据)、选择 schema 模式(将用例匹配到模板)、定义 reducer(决定并发更新如何合并)、配置持久化(选择并设置 checkpointer)、验证与测试(运行 schema 校验和 reducer 测试)。

主要能力

  1. 状态模式:提供聊天、研究、工作流、工具调用、RAG 等模式,分别对应会话智能体、信息收集、任务编排、带工具智能体、检索增强生成等场景,并给出关键字段,如 messages、query、search_results、summary、task、status、steps_completed、tool_calls_made、should_continue、retrieved_docs、response 等。
  2. Reducer:解释无 reducer 时后写覆盖、有 reducer 时按函数合并的机制;reducer 接收 (existing_value, new_value) 返回合并结果。Python 使用 Annotated 类型标注,TypeScript 使用 StateSchema 与 ReducedValue/MessagesValue。内置 reducer 包括 add_messages(追加、按 ID 更新、删除)、operator.add(数值相加或列表拼接)、MessagesValue(JS 版 add_messages)。可用 Overwrite 绕过 reducer 替换累积状态,用 RemoveMessage 删除指定消息或用 REMOVE_ALL_MESSAGES 删除全部消息。
  3. 持久化:支持 InMemorySaver(开发测试)、SqliteSaver(本地、单实例)、PostgresSaver(生产、多实例)、CosmosDBSaver(Azure 生产)。使用 LangGraph Agent Server 时 checkpointer 自动配置。每次调用需要 thread_id 标识会话,子图由父图自动传播 checkpointer,子图可通过 checkpointer=True 拥有独立记忆。
  4. 状态类型:Python 推荐 TypedDict,TypeScript 使用 Zod 的 StateSchema,支持自定义 reducer、UntrackedValue(不写入检查点的临时状态)并提取 State/Update 类型。Pydantic 校验、高级类型模式和迁移说明在参考文件中。

使用方式 提供 Python 与 TypeScript 快速开始示例:用 MessagesState 或 StateSchema 定义状态,构建 StateGraph、添加节点与边后 compile。持久化示例展示如何传入 checkpointer 与 thread_id 调用 graph.invoke。技能还附带脚本:validate_state_schema.py 校验 schema 结构,test_reducers.py 测试 reducer,inspect_checkpoints.py 检查检查点,migrate_state.py 迁移持久化状态值。参考文件覆盖 schema-patterns、reducers、persistence-backends、state-typing、state-debugging;assets 下提供 chat_state.py、research_state.py、workflow_state.py、tool_calling_state.py 模板。

适用场景与限制 适用于 LangGraph 智能体与工作流的状态设计、并发更新合并、多轮对话与人工介入的持久化、状态演化调试和持久化状态迁移。常见问题包括状态不更新(缺少 reducer)、消息被覆盖(缺少 add_messages)、重复条目(reducer 不去重)、状态无限增长(缺少清理)、create_agent 拒绝非 TypedDict 的 state_schema、并行更新冲突(同一 super-step 多个 Overwrite)。具体收费、价格、支持平台等信息暂未提供。