agentscope.pipelines.pipeline module

Base class for Pipeline

class agentscope.pipelines.pipeline.PipelineBase[source]

Bases: Operator

Base interface of all pipelines.

The pipeline is a special kind of operator that includes multiple operators and the interaction logic among them.

__init__() None[source]
class agentscope.pipelines.pipeline.IfElsePipeline(condition_func: ~typing.Callable[[dict], bool], if_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator], else_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator] = <function placeholder>)[source]

Bases: PipelineBase

A template pipeline for implementing control flow like if-else.

IfElsePipeline(condition_func, if_body_operators, else_body_operators) represents the following workflow:

if condition_func(x):
    if_body_operators(x)
else:
    else_body_operators(x)
__init__(condition_func: ~typing.Callable[[dict], bool], if_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator], else_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator] = <function placeholder>) None[source]

Initialize an IfElsePipeline.

Parameters:
  • condition_func (Callable[[dict], bool]) – A function that determines whether to execute if_body_operators or else_body_operators based on the input x.

  • if_body_operators (Operators) – Operators executed when condition_func returns True.

  • else_body_operators (Operators) – Operators executed when condition_func returns False, does nothing and just return the input by default.

class agentscope.pipelines.pipeline.SwitchPipeline(condition_func: ~typing.Callable[[dict], ~typing.Any], case_operators: ~typing.Mapping[~typing.Any, ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator]], default_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator] = <function placeholder>)[source]

Bases: PipelineBase

A template pipeline for implementing control flow like switch-case.

SwitchPipeline(condition_func, case_operators, default_operators) represents the following workflow:

switch condition_func(x):
    case k1: return case_operators[k1](x)
    case k2: return case_operators[k2](x)
    ...
    default: return default_operators(x)
__init__(condition_func: ~typing.Callable[[dict], ~typing.Any], case_operators: ~typing.Mapping[~typing.Any, ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator]], default_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator] = <function placeholder>) None[source]

Initialize a SwitchPipeline.

Parameters:
  • condition_func (Callable[[dict], Any]) – A function that determines which case_operator to execute based on the input x.

  • case_operators (dict[Any, Operators]) – A dictionary containing multiple operators and their corresponding trigger conditions.

  • default_operators (Operators, defaults to placeholder) – Operators that are executed when the actual condition do not meet any of the case_operators, does nothing and just return the input by default.

class agentscope.pipelines.pipeline.ForLoopPipeline(loop_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator], max_loop: int, break_func: ~typing.Callable[[dict], bool] = <function ForLoopPipeline.<lambda>>)[source]

Bases: PipelineBase

A template pipeline for implementing control flow like for-loop

ForLoopPipeline(loop_body_operators, max_loop) represents the following workflow:

for i in range(max_loop):
    x = loop_body_operators(x)

ForLoopPipeline(loop_body_operators, max_loop, break_func) represents the following workflow:

for i in range(max_loop):
    x = loop_body_operators(x)
    if break_func(x):
        break
__init__(loop_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator], max_loop: int, break_func: ~typing.Callable[[dict], bool] = <function ForLoopPipeline.<lambda>>)[source]

Initialize a ForLoopPipeline.

Parameters:
  • loop_body_operators (Operators) – Operators executed as the body of the loop.

  • max_loop (int) – Maximum number of loop executions.

  • (`Callable[[dict] (break_func) –

  • bool]`

  • _ (defaults to `lambda) –

  • False`) – A function used to determine whether to break out of the loop based on the output of the loop_body_operators.

class agentscope.pipelines.pipeline.WhileLoopPipeline(loop_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator], condition_func: ~typing.Callable[[int, dict], bool] = <function WhileLoopPipeline.<lambda>>)[source]

Bases: PipelineBase

A template pipeline for implementing control flow like while-loop

WhileLoopPipeline(loop_body_operators, condition_operator, condition_func) represents the following workflow:

i = 0
while (condition_func(i, x))
    x = loop_body_operators(x)
    i += 1
__init__(loop_body_operators: ~agentscope.agents.operator.Operator | ~typing.Sequence[~agentscope.agents.operator.Operator], condition_func: ~typing.Callable[[int, dict], bool] = <function WhileLoopPipeline.<lambda>>)[source]

Initialize a WhileLoopPipeline.

Parameters:
  • loop_body_operators (Operators) – Operators executed as the body of the loop.

  • (`Callable[[int (condition_func) –

  • dict]

  • bool]`

  • to (defaults)

  • _ (`lambda) –

    False`): A function that determines whether to continue executing the loop body based on the current loop number and output of the loop_body_operator

  • __ – False`): A function that determines whether to continue executing the loop body based on the current loop number and output of the loop_body_operator

class agentscope.pipelines.pipeline.SequentialPipeline(operators: Sequence[Operator])[source]

Bases: PipelineBase

A template pipeline for implementing sequential logic.

Sequential(operators) represents the following workflow:

x = operators[0](x)
x = operators[1](x)
...
x = operators[n](x)
__init__(operators: Sequence[Operator]) None[source]

Initialize a Sequential pipeline.

Parameters:

operators (Sequence[Operator]) – A Sequence of operators to be executed sequentially.