Skip to content

蓝图与多执行实例

蓝图与多执行实例解决两个工程问题:

  • 复用:把流程定义沉淀为可移植模板
  • 并发:为每个请求创建独立执行实例,互不干扰

下面用“场景 + 方案 + 代码 + 结果”的方式说明。

场景一:流程模板复用

场景:同一套流程要在不同模块复用。
方案:用 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 级别,影响所有执行实例(谨慎使用)