Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Ucbepic Docetl Directive Chaining

From Leeroopedia


Knowledge Sources
Domains Pipeline_Optimization, LLM_Operations
Last Updated 2026-02-08 00:00 GMT

Overview

Concrete tool for decomposing a complex operation into a chain of sequential Map steps provided by the DocETL reasoning optimizer.

Description

The ChainingDirective class decomposes a complex operation into a sequence by inserting one or more Map steps that rewrite the input for the next operation. Each Map step outputs a "result" string, and the downstream operation uses this result in its prompt. This transforms a single overloaded operation into a multi-step pipeline where each step focuses on a distinct subtask.

Usage

The MOAR agent applies this directive when the original task is too complex for one step and should be split into a series, for example first extracting key facts, then generating a summary based on those facts.

Code Reference

Source Location

Signature

class ChainingDirective(Directive):
    name = "chaining"
    description = "Decompose a complex operation into a sequence by inserting one or more Map steps that rewrite the input for the next operation."

    def check_applicability(self, ...) -> Tuple[bool, str]: ...
    def apply(self, ...) -> Tuple[List[Dict], List[Dict], str, dict]: ...

Import

from docetl.reasoning_optimizer.directives.chaining import ChainingDirective

I/O Contract

Inputs

Name Type Required Description
op_config Dict Yes Operation configuration to transform
pipeline_ops List[Dict] Yes Full pipeline operations list
op_idx int Yes Index of target operation
dataset_descriptions Dict Yes Dataset schema descriptions

Outputs

Name Type Description
new_ops List[Dict] Transformed operation configs
new_steps List[Dict] Updated pipeline steps
explanation str Human-readable description of changes
metadata dict Additional metadata about the transformation

Usage Examples

# Directives are typically invoked by the MOAR agent automatically
# Example of manual invocation:
from docetl.reasoning_optimizer.directives.chaining import ChainingDirective

directive = ChainingDirective()
applicable, reason = directive.check_applicability(op_config, pipeline_ops, op_idx, dataset_descriptions)
if applicable:
    new_ops, new_steps, explanation, metadata = directive.apply(op_config, pipeline_ops, op_idx, dataset_descriptions)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment