跳转到主要内容
本小节建议结合教程 分支型结构 一起学习。

作用

在复杂的 RAG 推理任务 中,常常需要根据中间结果(例如模型当前的生成内容或检索结果)动态决定后续执行路径。 Router Server 正是为此而设计的关键组件——它根据输入信息对当前状态进行判断,并返回一个自定义的分支标签(状态标识),用于驱动 Pipeline 中的分支跳转与动态控制。

实现示例

下面通过一个简单示例,展示如何实现 Router Tool。 假设当前的 RAG 流程中,需要模型判断当前检索到的文档是否已包含足够信息回答问题:若信息充足则结束流程,否则继续执行检索。 可以这样实现一个 Router Tool:
servers/router/src/router.py
该 Tool 会为每条回答打上状态标签,用于引导后续流程执行:
  • continue:信息不足,需继续检索;
  • stop:信息已足够,可终止流程。

调用示例

定义好的 Router Tool 需要与分支结构 branch:router: 搭配使用,共同实现基于状态标签的动态跳转。
examples/rag_branch.yaml
该示例展示了一个典型的循环推理流程: 当 router.check_model_state 判断模型输出包含 <search> 标识时,进入 continue 分支继续检索; 否则进入 stop 分支直接结束循环。