SuperAPI AI 工具集

langgraph-fundamentals

智能体与模型

查看项目

更新于 10-29 04:36

技能介绍

本技能面向 LangGraph 代码编写、修改与调试,提供概念、设计方法与实现边界说明。

用途 在编写任何 LangGraph 代码时调用,帮助理解并正确使用 StateGraph 构建有状态图。

主要能力

  • StateGraph:构建有状态图的主类,执行前必须先 compile()。
  • 节点:执行工作并更新状态的函数,返回部分状态更新而非直接修改状态。
  • 边:定义执行顺序,包括静态边与条件边;START/END 标记入口与出口,START 仅作入口。
  • 状态与 Reducer:控制状态更新如何合并。默认无 reducer 时覆盖值;使用 operator.add / concat 等 reducer 追加列表(如消息历史、日志);也可自定义 reducer 实现复杂合并。
  • 路由与并行:add_edge 用于固定流转,add_conditional_edges 依据状态动态分支,Command 同时更新状态并路由,Send 从条件边扇出并行 worker(结果字段需配 reducer)。
  • 运行方式:graph.invoke(input, config) 运行至完成并返回最终状态;stream 支持 values(每步完整状态)、updates(状态增量)、messages(LLM token 与元数据,适合聊天 UI)、custom(用户自定义数据,用于进度指示)。
  • 错误处理:瞬时错误(网络、限流)用 RetryPolicy;LLM 可恢复的工具错误交给 ToolNode(handle_tool_errors=True),以 ToolMessage 返回;用户可修复的缺失信息用 interrupt 收集;意外错误向上抛出。

使用方式 资料建议按五步设计:先画出工作流并拆分离散步骤,每步对应一个节点;再识别每个节点类型(LLM、数据、动作或用户输入),确定静态上下文(提示词)、动态上下文(来自状态)、重试策略与预期结果;随后设计状态作为所有节点共享内存,存原始数据并在节点内按需格式化提示词;然后实现节点函数(接收状态、返回部分更新);最后用边连接、添加条件路由,必要时带 checkpointer 编译。

实现参考 若编写、修改或调试代码,先根据现有文件判断项目语言,再阅读对应参考:Python 读 references/python.md,TypeScript 读 references/typescript.md;仅当任务涉及两种语言时都读。纯概念问题无需加载。磁盘持久化 checkpointer、interrupt_before 审批门、子图组合、状态内错误路由、LangSmith 追踪与流式配置,需在上述语言参考之后阅读 references/production-patterns.md。

Command 与边界 Command 字段包括 update(状态更新)、goto(下一节点)、resume(interrupt 后恢复值)。Python 可用 Command[Literal["node_a", "node_b"]] 声明合法目标;TypeScript 通过 addNode 第三参数 { ends: ["node_a", "node_b"] } 声明。注意 Command 只新增动态边,add_edge/addEdge 定义的静态边仍会执行,因此需同时考虑两条路由。循环应通过具名节点路由。

适用场景 需要细粒度控制智能体编排、复杂分支/循环工作流、人在回路与持久化时使用;快速原型可选 LangChain agents,简单无状态工作流可选 LangChain 直接调用,需要开箱即用功能可选 Deep Agents。

限制 资料未提供具体收费、价格、平台支持范围与性能数据,暂未提供。