SuperAPI AI 工具集

langgraph-routing

智能体与模型

查看项目

更新于 10-16 04:12

技能介绍

用途

本技能聚焦 LangGraph 中的条件路由(Conditional Routing),用于根据工作流状态动态决定下一步执行哪个节点。适用于实现动态路由、分支工作流、重试循环以及基于语义相似度的意图路由等场景。

主要能力

基础条件边

通过 add_conditional_edges 将路由函数与节点连接,路由函数返回字符串决定跳转目标。示例中根据 quality_score 与 retry_count 决定发布、重试或转人工审核。

质量门控模式

在质量检查节点后路由:质量通过则继续压缩结果,未通过且重试次数小于 2 则回到 supervisor 重试,否则返回 END 输出部分结果。

重试循环模式

在 LLM 调用节点中捕获异常并累加 retry_count,路由函数根据是否有输出及重试次数决定成功、重试(循环回本节点)或失败转错误处理。

路由模式分类

  • 顺序:A → B → C(简单边)
  • 分支:A → (B 或 C)(条件边)
  • 循环:A → B → A(重试逻辑)
  • 汇聚:(A 或 B) → C(多输入)
  • 菱形:A → (B, C) → D(并行后合并)

基于状态的路由器

根据多个状态条件依次判断:有错误转错误处理、未验证转验证器、置信度低于 0.5 转增强、否则最终化。

Command 与条件边的选择

  • 纯路由、不更新状态时使用条件边。
  • 需要同时更新状态并路由时使用 Command,通过 update 更新状态、goto 指定目标,无需再添加条件边。

语义路由实现

使用 SentenceTransformer 预计算各路由的嵌入向量,对查询编码后计算余弦相似度,返回相似度最高的路由;可设置阈值,低于阈值时回退到 general。

使用方式

技能提供可直接参考的 Python 代码片段,包括路由函数定义、add_conditional_edges 的显式边映射、Command 用法以及语义路由的完整实现。开发者可将其作为模板复制到自己的 LangGraph 工作流中。

关键决策建议

  • 最大重试次数:LLM 调用建议 2-3 次。
  • 回退:始终保留 END 回退。
  • 路由函数:保持纯净,无副作用。
  • 边映射:显式映射以提升清晰度。
  • Command 与条件边:更新状态并路由时用 Command。
  • 语义路由:预计算嵌入,使用余弦相似度。

常见错误

  • 没有 END 回退导致工作流挂起。
  • 无限循环(未设最大重试)。
  • 路由函数含副作用,难以调试。
  • 缺少边映射导致运行时错误。

适用场景

需要根据状态动态分支、实现重试与质量门控、按语义意图分发到不同处理节点的 LangGraph 工作流开发。

限制

资料未提供安装命令、依赖版本、性能数据或收费信息。评估测试用例见 references/evaluations.md(资料未展开具体内容)。