What is Pipeline?

In UR-2.0, a Pipeline is a flow script where you define “how inference tasks are executed”. It acts like a “task schedule” or “workflow blueprint” that clearly tells the system what to do at each step, how to do it, and where to go next after completion. You can use Pipeline to combine functions (Tools) from different modules (Servers) to build a complete, reproducible, and controllable RAG inference process. For example:
  • Load data → Retrieve documents → Construct prompt → Call large model → Evaluate results;
  • Or in multi-turn generation, decide whether to re-retrieve or stop generation based on the model’s intermediate performance.
The core function of Pipeline is to make complex RAG process structures clear, flexible, modular, and enable zero-code orchestration through YAML configuration.

Components of a Pipeline

In UR-2.0, a Pipeline is a flow configuration written in YAML file format, composed of two top-level structures:
  • servers: Declares all MCP Server modules used in this flow. Each Server corresponds to a functional module (such as retrieval, generation, etc.), with the key as the module name and the value as its path in the project.
  • pipeline: Defines the task execution flow, organizing execution logic step by step, supporting serial (sequential execution), loops, and branch judgments (branch) control structures. Each item represents an execution step or flow control node.
/images/yaml.svgexamples/sayhello.yaml
# MCP Server
servers:
  sayhello: servers/sayhello

# MCP Client Pipeline
pipeline:
- sayhello.greet