蓝图与多执行实例
蓝图与多执行实例解决两个工程问题:
- 复用:把流程定义沉淀为可移植模板
- 并发:为每个请求创建独立执行实例,互不干扰
下面用“场景 + 方案 + 代码 + 结果”的方式说明。
场景一:流程模板复用
场景:同一套流程要在不同模块复用。
方案:用 save_blue_print() 导出,再 load_blue_print() 复用。
python
from agently import TriggerFlow, TriggerFlowEventData
flow = TriggerFlow()
@flow.chunk
async def upper(data: TriggerFlowEventData):
return str(data.value).upper()
flow.to(upper).end()
blueprint = flow.save_blue_print()
flow_2 = TriggerFlow()
flow_2.load_blue_print(blueprint)
result = flow_2.start("agently")
print(result)输出:
text
upper:AGENTLY场景二:同一 Flow 并发处理多个请求
场景:服务端用同一个 Flow 处理多个用户请求。
方案:每个请求 create_execution(),保证运行态隔离。
python
from agently import TriggerFlow, TriggerFlowEventData
flow = TriggerFlow()
@flow.chunk
def hello(data: TriggerFlowEventData):
return f"hello:{data.value}"
flow.to(hello).end()
exe_1 = flow.create_execution()
exe_2 = flow.create_execution()
print(exe_1.start("A"))
print(exe_2.start("B"))输出:
text
hello:A
hello:B执行隔离规则
- runtime_data:执行级别,实例之间互不影响
- flow_data:Flow 级别,影响所有执行实例(谨慎使用)