# 【AI Agent系列】【阿里AgentScope框架】4. 深入源码：Pipeline模块如何组织多智能体间的数据流？- 循环结构

• 大家好，我是 同学小张，日常分享AI知识和实战案例
• 欢迎 点赞 + 关注 👏，持续学习持续干货输出
• +v 一起交流💬，一起进步💪。
• 微信公众号也可搜【同学小张】 🙏

## 0. 推荐前置阅读

（1）Pipeline入门 & 顺序结构Pipeline源码详解：【AI Agent系列】【阿里AgentScope框架】2. Pipeline模块入门：使用Pipeline模块实现最简单的多智能体交互

（2）Pipeline基类 & 条件结构Pipeline源码详解：【AI Agent系列】【阿里AgentScope框架】3. 深入源码：Pipeline模块如何组织多智能体间的数据流？- 顺序结构与条件分支

## 1. ForLoopPipeline

### 1.1 初始化

class ForLoopPipeline(PipelineBase):
def __init__(
self,
loop_body_operators: Operators,
max_loop: int,
break_func: Callable[[dict], bool] = lambda _: False,
):
self.loop_body_operators = loop_body_operators
self.max_loop = max_loop
self.break_func = break_func
self.participants = [self.loop_body_operators]
def __call__(self, x: Optional[dict] = None) -> dict:
return forlooppipeline(
loop_body_operators=self.loop_body_operators,
max_loop=self.max_loop,
break_func=self.break_func,
x=x,
)

• loop_body_operators：需要循环的operators
• max_loop：最大循环次数
• break_func：跳出循环的条件

### 1.2 实现原理

def forlooppipeline(
loop_body_operators: Operators,
max_loop: int,
break_func: Callable[[dict], bool] = lambda _: False,
x: Optional[dict] = None,
) -> dict:
for _ in range(max_loop):
# loop body
x = _operators(loop_body_operators, x)
# check condition
if break_func(x):
break
return x  # type: ignore[return-value]

## 2. WhileLoopPipeline

### 1.1 初始化

class WhileLoopPipeline(PipelineBase):
def __init__(
self,
loop_body_operators: Operators,
condition_func: Callable[[int, dict], bool] = lambda _, __: False,
):
self.condition_func = condition_func
self.loop_body_operators = loop_body_operators
self.participants = [self.loop_body_operators]
def __call__(self, x: Optional[dict] = None) -> dict:
return whilelooppipeline(
loop_body_operators=self.loop_body_operators,
condition_func=self.condition_func,
x=x,
)

• loop_body_operators：需要循环的operators
• condition_func：跳出循环的条件

### 1.2 实现原理

def whilelooppipeline(
loop_body_operators: Operators,
condition_func: Callable[[int, Any], bool] = lambda _, __: False,
x: Optional[dict] = None,
) -> dict:
i = 0
while condition_func(i, x):
# loop body
x = _operators(loop_body_operators, x)
# check condition
i += 1
return x  # type: ignore[return-value]

## 3. 总结

• 大家好，我是 同学小张，日常分享AI知识和实战案例
• 欢迎 点赞 + 关注 👏，持续学习持续干货输出
• +v 一起交流💬，一起进步💪。
• 微信公众号也可搜【同学小张】 🙏

|
1天前
|

20 0
|
9天前
|

38 1
|
11天前
|

46 1
|
16天前
|

Agent AI智能体：如何借助机器学习引领科技新潮流
Agent AI智能体：如何借助机器学习引领科技新潮流
36 0
|
17天前
|

Agent AI智能体：如何借助机器学习引领科技新潮流
Agent AI智能体：如何借助机器学习引领科技新潮流
40 1
|
23天前
|

Agent AI智能体的未来角色、发展路径及其面临的挑战
Agent AI智能体的未来角色、发展路径及其面临的挑战
43 0
|
1月前
|

Agent AI智能体的未来
Agent AI智能体的未来
91 0
|
2天前
|

14 1
|
17小时前
|

AI技术创业有哪些机会？
AI技术创业有哪些机会？
5 0
|
1天前
|

2024通义语音AI技术图景，大模型引领AI再进化
2024通义语音AI技术图景，大模型引领AI再进化
19 0