SuperAPI AI 工具集

langgraph-fundamentals

智能体与模型

查看项目

更新于 10-15 23:49

技能介绍

用途:在编写任何 LangGraph 代码时调用,帮助构建有状态图与智能体编排流程。

主要能力:StateGraph 是构建有状态图的主类;节点是执行工作并更新状态的函数;边定义执行顺序(静态或条件);START/END 标记入口与出口;状态配合 reducer 控制更新合并方式;图执行前必须 compile()。

设计流程:1)画出离散步骤,每步成为一个节点;2)识别每步类型(LLM、数据、动作、用户输入),确定静态上下文、动态上下文、重试策略与目标结果;3)设计状态,作为所有节点共享内存,存原始数据、在节点内按需格式化提示;4)实现节点,接收状态并返回部分更新;5)用边连接、加条件路由,必要时带 checkpointer 编译。

状态管理:默认无 reducer 为覆盖;用 operator.add/concat 等 reducer 追加列表(消息历史、日志);复杂合并用自定义 reducer。

边与路由:固定流程用 add_edge();按状态分支用 add_conditional_edges();同时更新状态并路由用 Command(含 update、goto、resume 字段);并行扇出用 Send,需在结果字段上配 reducer。注意 Command 只增加动态边,静态边仍会执行。

运行:graph.invoke(input, config) 运行至完成并返回最终状态;流式模式有 values(每步完整状态)、updates(状态增量)、messages(LLM token 与元数据)、custom(自定义数据)。

错误处理:瞬时错误用 RetryPolicy(max_attempts=3);LLM 可恢复的工具失败用 ToolNode(tools, handle_tool_errors=True);用户可修复的缺失信息用 interrupt({"message": ...});意外错误让其抛出。

边界:节点返回部分状态更新而非直接修改状态;循环需经过命名节点,START 仅作入口;累积列表字段必须定义 reducer,否则最后写入生效。

实现参考:先判断项目语言,Python 读 references/python.md,TypeScript 读 references/typescript.md,仅当任务涉及两种语言时都读;纯概念问题无需加载。

适用场景:需要细粒度控制智能体编排、复杂分支/循环工作流、人在回路与持久化时使用;快速原型、简单无状态工作流或需要开箱即用功能时可考虑替代方案。