Skip to main content
The Serial Structure is the most basic and commonly used execution mode in the Pipeline. Multiple steps are executed sequentially. The output of the previous step (if any) can be used as the input for the next step, or it can be executed independently. Building a standard RAG workflow can usually be completed relying solely on the serial structure, clearly connecting everything from data loading to result evaluation.

Usage Example

https://mintcdn.com/ultrarag/T7GffHzZitf6TThi/images/yaml.svg?fit=max&auto=format&n=T7GffHzZitf6TThi&q=85&s=69b41e79144bc908039c2ee3abbb1c3bexamples/rag.yaml
# MCP Server
servers:
  benchmark: servers/benchmark
  retriever: servers/retriever
  prompt: servers/prompt
  generation: servers/generation
  evaluation: servers/evaluation
  custom: servers/custom

# MCP Client Pipeline
pipeline:
- benchmark.get_data
- retriever.retriever_init
- retriever.retriever_search
- generation.generation_init
- prompt.qa_rag_boxed
- generation.generate
- custom.output_extract_from_boxed
- evaluation.evaluate
In the serial structure, each line of the Pipeline represents a call to a Tool. Its basic syntax is:
- server_name.tool_name
  • server_name: The module name called, which must be declared in advance in the servers section;
  • tool_name: The function name registered via @tool(...) or @prompt(...) decorator in that module.
This structure is suitable for most single-turn Q&A or reasoning tasks and is also the basis for understanding more complex processes (such as loops, branches).