TriggerFlow 概览
TriggerFlow 不是“更复杂的请求调用”,而是 Agently 用来处理显式流程、并发、等待、恢复、运行态事件的工作流层。
适合什么时候读
- 你的问题已经不是一次请求能解决
- 你需要阶段、分支、并发或等待恢复
- 你希望流程本身可观察、可测试、可复盘
你会学到什么
- 什么情况下应该升级到 TriggerFlow
- TriggerFlow 的信号驱动心智模型
- blueprint、execution、runtime state 之间的关系
TIP
TriggerFlow 的工程实践默认推荐 Async First:优先 async chunk、async_start(...)、get_async_runtime_stream(...),以及在 chunk 内用 get_async_generator(type="instant") 消费模型结构化流式输出。
什么时候该升级
如果你已经出现这些特征,就别再把问题硬塞进单次请求:
- 同一个任务分多个阶段执行
- 需要显式条件分支或路由
- 需要并发处理一组任务
- 需要暂停、等待外部输入后再继续
- 需要 runtime stream 或 execution save/load
TriggerFlow 心智模型
最小示例
python
from agently import TriggerFlow, TriggerFlowRuntimeData
flow = TriggerFlow()
@flow.chunk("normalize")
async def normalize(data: TriggerFlowRuntimeData):
return str(data.value).strip()
@flow.chunk("greet")
async def greet(data: TriggerFlowRuntimeData):
return f"Hello, {data.value}"
flow.to(normalize).to(greet).end()
print(flow.start(" Agently "))上面这个最小例子保留同步入口,是为了先让你理解流程结构。只要流程进入真实服务场景,推荐马上切到:
- async chunk handler
execution.async_start(...)execution.get_async_runtime_stream(...)- 模型步骤中的
response.get_async_generator(type="instant")
推荐阅读顺序
常见误区
- 只是输出控制不稳,就误以为需要 TriggerFlow。
- 把 TriggerFlow 当成静态 DAG,而不是信号驱动 runtime。
- 还没想清楚流程 owner layer,就先写了很多 node 和状态共享逻辑。
下一步去哪
- 要先判断自己是否真的需要工作流:回看 能力升级地图
- 要看“为什么升级到编排”的真实例子:看 TriggerFlow 编排
- 要按推荐实践进入异步编排:看 Async First 实践
相关案例
Related Skills(可选)
agently-triggerflowagently-playbook